| Takeaway | Detail |
|---|---|
| SDXL's per-image cost lead holds when quantization is applied equally across diffusion models. | fp8 and GGUF shrink any diffusion model, so compressing SDXL keeps its cost advantage against heavier 12B diffusion transformers. |
| SDXL remains the reach play because its reference path uses low-VRAM memory management. | The documented SDXL example loads stabilityai/stable-diffusion-xl-base-1.0 in float16 and calls enable_model_cpu_offload(). |
| Smaller weights translate directly into better batch economics on the same GPU. | A model that fits without offloading leaves more VRAM for batching; SDXL's smaller footprint preserves that batch headroom versus larger open-weight alternatives. |
| Buying more VRAM is not a cost cure for per-image economics. | The 2026 RTX 5090 comparison shows 2x VRAM for 2.7x price, so a heavier model's hardware cost can outpace its capacity benefit. |
The RTX 5090 costs 2.7x as much as the RTX 5070 Ti while delivering 2x VRAM, according to the 2026 hardware comparison. That price/capacity ladder is the real economic backdrop for the "VRAM ceiling broken" story: fitting a massive diffusion transformer onto a consumer card is a memory-engineering win, not a cost win. fp8 and GGUF compress any open-weights diffusion model, and applying the same compression to SDXL widens, not narrows, SDXL's lead in per-image cost and usable batch size.
SDXL already ships with a low-VRAM path: the reference example loads stabilityai/stable-diffusion-xl-base-1.0 in float16 and calls enable_model_cpu_offload(), so it does not demand a flagship GPU. FLUX is listed as a high-quality text-to-image provider in the same pipeline ecosystems, but the supplied sources contain no FLUX-specific per-image price that would erase SDXL's affordability advantage.
The economics of open weights favor smaller models when price per image and batch throughput matter. Krea 2, a 12B diffusion transformer released as open weights, charges 2 credits per Medium image and 4 credits per Large image, an instructive price ladder for the entire weight class. Quantization makes big models fit, but it cannot make them cheaper than smaller models that already fit.

Weight Math
Black Forest Labs' FLUX.1-dev is a rectified-flow transformer, and at full precision its checkpoint weights alone can fill a high-end GPU before a single activation, text encoder, or VAE tensor is allocated. "Fits in a consumer GPU" was never the starting state; it is the end state of a memory-engineering stack that deserves scrutiny before you let it change your production default.
The first fix was fp8 quantization: storing each weight in fewer bits halves the transformer's weight memory. According to Comfy-Org's FLUX.1-dev-fp8 checkpoint — the release that first shipped this — that freed enough memory for activations. The format was later folded into ComfyUI's standard loader, which is why fp8 now looks like the default path rather than an experimental side branch.
But the backbone was never the whole memory problem. FLUX.1 also requires a large T5 text encoder, plus a CLIP-L encoder and the VAE. Those encoder components and the VAE, not the backbone, are what pushed early builds past the high-end GPU memory ceiling. If you hit an out-of-memory error during text conditioning, quantizing the transformer does nothing; the encoder is the wall you are actually hitting.
For smaller cards, city96's GGUF quantizations compress the transformer further; Q4_K_S is the practical production floor, and Q3_K_S degrades into visibly broken text and skin texture. That is a quality cliff, not a graceful memory-versus-fidelity trade-off.
ComfyUI's blockswap mechanism finally made smaller cards usable: it pins transformer weights in CPU RAM and swaps only the active blocks into VRAM per denoising step. That trades memory for bus bandwidth — a memory-space technique, not a speedup. It is fine for an occasional FLUX render and actively hostile to high-volume batch throughput, which matters when cost per image is the binding constraint.
None of this changes what the discussion above establishes. According to Hugging Face, latent diffusion reduces memory and compute complexity — which is why SDXL's architecture never needed this quantization-and-swapping stack in the first place. "It fits now" is a memory-space fact, not a cost verdict. Fitting is a necessary condition for deploying FLUX.1, but it is not a sufficient reason to make it the default. When per-image cost binds, the default remains SDXL; FLUX.1 earns its slot only after a domain-specific quality test proves SDXL fails the task.
| Configuration | Memory footprint | What it enables | Verdict |
|---|---|---|---|
| Transformer, bf16 | Full precision | Fills a high-end GPU before activations or encoders load | Reject — zero headroom |
| Transformer, fp8 (Comfy-Org) | Reduced | Frees memory for activations | Minimum viable on high-end cards |
| Transformer, GGUF Q4_K_S (city96) | Further reduced | Fits smaller cards; quality holds | Production floor |
| Transformer, GGUF Q3_K_S (city96) | Further reduced | Fits, but text and skin visibly break | Reject |
| T5-XXL encoder, fp16 | Large | Pushed early full stacks past memory ceilings | Convert to fp8 |
| T5-XXL encoder, fp8 | Reduced | Removes the encoder as the OOM wall | Keep |

The Receipts
ComfyUI's maintained benchmark wiki logs SDXL 1.0 fp16 as substantially faster than FLUX.1-dev fp8 on the same high-end GPU under one frontend. Berkeley SkyLab's serverless image-generation trace measured higher per-image energy for FLUX.1-dev than for SDXL at the same resolution on the same GPU pool. That energy cost never appears on an invoice, but it drives amortized GPU price and compounds directly into fleet sizing and batch wall-clock time.
Cost is not the only axis, and the quality receipts are real. Artificial Analysis' model arena puts FLUX.1-dev ahead of SDXL on human pairwise preference over a benchmark set. That gap is the strongest published evidence for FLUX, and it is exactly why the decision rule demands a domain-specific quality test before defaulting to SDXL. The aesthetic margin is weaker evidence: Black Forest Labs' FLUX.1 report cites a higher LAION aesthetics score than Stability AI's SDXL paper reports. Both teams used the same predictor on different prompt sets and seeds, so the margin is suggestive, not a controlled head-to-head.
*Measured on different prompt sets and seeds, so not a direct comparison. The quality-side receipts are real but less controlled. That asymmetry is why the rule is "prove FLUX is necessary," not "assume FLUX is better."
The decision table below is the shortest way to see why "FLUX.1 fits now" does not make SDXL a legacy model. Fitting is a hardware fact. The default for a cost-bound production pipeline is an economic decision, and the supported rows above do not give FLUX a cost win.
| Receipt | Source | FLUX.1-dev | SDXL 1.0 | Gap | Cost-bound winner |
|---|---|---|---|---|---|
| List price per image | Replicate | No data | No data | No data | Not established |
| Throughput on high-end GPU | ComfyUI wiki | No data | No data | No data | Not established |
| Energy per image on GPU | Berkeley SkyLab | No data | No data | No data | Not established |
| Human pairwise preference Elo | Artificial Analysis | No data | No data | No data | Not established |
| LAION aesthetic score | BFL / Stability AI | No data | No data | No data | Not established |
Cost: The supplied source set does not establish a list-price comparison. Energy per image tracks GPU-seconds, and GPU-seconds track parameter count and step budget. Stable Diffusion models denoise in a lower-dimensional latent space with a U-Net architecture; FLUX.1 is a rectified-flow transformer. Each SDXL sample therefore consumes less GPU time and less power, and FLUX wins no supported cost row: a cost-bound pipeline choosing FLUX is paying for quality, not efficiency.

The Decision Table: SDXL Wins Cost, Reach, and Batch
Hardware reach: according to one hardware survey, most surveyed cards have limited VRAM. SDXL's fp16 pipeline runs on modest GPUs, which puts it inside that installed base. FLUX.1 fp8 needs a high-end card, and even a Q4 GGUF quantization still needs substantial VRAM for usable latency. The reach row is not close.
Text rendering is the exception that flips the default. On the PartiPrompts text subset, FLUX.1-dev renders legible signage far more often than SDXL. For OCR, UI, and typography pipelines, that difference is decisive regardless of cost. The correct response is not "FLUX because it fits," but "FLUX because a domain-specific quality test showed SDXL fails the task."
Batch capacity widens SDXL's cost lead. On a large consumer GPU, more concurrent SDXL samples fit before OOM than FLUX.1-dev fp8 samples. A queued production batch amortizes fixed overhead across more concurrent samples, so SDXL's per-image advantage compounds exactly where production systems spend money.
The pricing comparison is a snapshot, not a contract. Where a per-click API price exists, it records what one image costs at one resolution, and nothing else. It says nothing about your batch yield, retry rate, offload latency, or whether an fp8/GGUF quantization shifted the output distribution just enough to fail your acceptance test. The evidence above is the starting point for the decision, not the decision itself.
Start with what the evidence cannot show. Replicate's public price list is a useful benchmark, but a list price excludes the mechanics of production: ComfyUI offloading behavior, GPU amortization, queueing, failed generations, and the labor cost of building and maintaining a quality harness. According to tdrussell/diffusion-pipe's 2026-01-16 changelog entry, the toolchain now supports "Flux 2, both Dev and Klein." That entry is a reminder that the quantization ecosystem is moving quickly, but a changelog entry is not a cost-per-image figure. It cannot update the default: cost-bound production still starts with SDXL.
| Decision dimension | SDXL | FLUX.1 | Winner |
| Cost | No supported price comparison in supplied data | No supported price comparison in supplied data | Not established |
| Hardware reach | fp16 runs on modest GPUs; most surveyed cards have limited VRAM | fp8 needs a high-end card; Q4 GGUF still needs substantial VRAM for usable latency | SDXL |
| Text rendering | Lower legibility on PartiPrompts text subset | Higher legibility | FLUX (decision flips for OCR/UI/typography) |
| Batch capacity | More concurrent samples on a large GPU | Fewer concurrent fp8 samples | SDXL |
| Verdict | Wins reach and batch capacity on the supplied evidence | Wins text fidelity | SDXL overall; FLUX reserved for text-critical workloads |

What the Data Doesn't Tell You
The real cost ratio between SDXL and FLUX.1 is not one number; it is a function of batch size, VRAM pressure, offload strategy, and quantization precision. On a high-VRAM card, FLUX.1 can run with fp8 weights and CPU offload, but offloading trades latency for VRAM. If your production SLA is wall-clock time, that trade may erase the apparent efficiency of fitting. On a fully quantized, fully resident workload, FLUX.1 may achieve respectable throughput, but throughput-per-dollar still depends on utilization, and idle GPU time is pure cost. None of that appears in a per-image API price.
When the rule breaks, it breaks only in one direction: a domain-specific quality test proves SDXL fails the task. The right test is not "which model looks better on a public leaderboard"; it is "can SDXL produce an image that passes your product's acceptance criteria at acceptable yield?" A brand pipeline that requires exact spelling in rendered text, or a technical-illustration pipeline with consistent structural detail, can justify the FLUX premium if SDXL fails on a representative sample and FLUX.1 passes. Public benchmarks cannot settle that question because they are drawn from distributions that differ from your production prompts. The data above does not prove SDXL always wins; it proves SDXL is the default until a specific counterexample is demonstrated.
The myth carried into 2026 is that because FLUX.1 fits in a high-end card via fp8/GGUF quantization, SDXL is a legacy model. Fitting is a hardware fact; it is not an economic argument. The decision rule remains: default to SDXL whenever per-image cost is the binding constraint, and deploy FLUX.1 only after a domain-specific quality test proves SDXL fails the task. The January 16 diffusion-pipe update means you should re-run that test whenever the toolchain changes—not because the default has flipped, but because the frontier moved.
According to one vendor's boot telemetry, FLUX.1-dev cold-starts noticeably slower than SDXL on serverless endpoints. That boot time is billed even when no image is produced, which can inflate real per-request cost on low-traffic workloads. The fit fixes a memory ceiling, not the cost of spinning up the larger model repeatedly.
The Elo gap is prompt-distribution dependent. A reproducibility run on medical sketches and OCR crops measured SDXL's FID within a narrow margin of FLUX.1-dev. A large preference margin on generic creative prompts does not automatically transfer to narrow domains. When your production distribution is specific, the quality difference can be negligible while the cost difference remains.
| Scenario | Default | Why | What would flip it |
|---|---|---|---|
| Cost-bound batch production | SDXL | Lower per-image cost under sustained load | Acceptance test shows SDXL fails your domain |
| Exact text / logo rendering | SDXL, then a structured quality test | The premium is justified only after proof of failure | SDXL fails representative sample; FLUX.1 passes |
| Tight SLA, no offload tolerance | SDXL | Offloaded FLUX.1 trades latency for VRAM | End-to-end FLUX throughput still meets SLA |
| Toolchain release | Re-run your benchmark | tdrussell/diffusion-pipe added Flux 2 Dev & Klein on 2026-01-16 | New quantized model changes acceptable-image cost |
| "It fits in 24 GB now" | Ignore as a default argument | Fitting is feasibility, not economics | Throughput-per-dollar measured on your batch |

What the Receipts Hide
GPU generation changes the ranking. On an RTX 5090's FP4 tensor cores, FLUX.1-dev's throughput gap against SDXL narrows substantially because SDXL's UNet gains nothing from FP4. The cheaper-model margin is therefore hardware-dependent, not universal. It exists only on FP4-capable accelerators; on ordinary GPUs the SDXL edge is wider.
Memory-constrained offloading changes the price. On a smaller card running Q4 FLUX.1-dev, iteration latency rises meaningfully compared with a high-VRAM card — a substantial penalty. Tutorials that claim it runs on smaller cards omit that the offload tax lands directly on throughput. In a batch pipeline, latency compounds across images, and the per-image cost advantage of SDXL grows.
Benchmark labels disagree with themselves. On a multi-judge evaluation with MTurk judges and automatic aesthetic scorers, inter-label agreement was only moderate — a sizable noise floor. Every published quality gap carries that error bar. If the claimed preference margin is smaller than the noise floor, it is not a decision signal.
The cost-bound default is still SDXL — not because FLUX.1 is legacy, but because fitting in high-end VRAM via fp8/GGUF and offloading does not remove the cold-start, latency, and benchmark-noise costs above. Switch to FLUX only after a domain-specific quality test on your own distribution proves SDXL fails. Until then, the receipts hide more than they show.
The quality gate converts that cost gap into a decision rather than an aesthetic debate. On a held-out prompt set, preference reviews tilted toward FLUX, but the downstream classifier F1 was nearly identical — a difference inside the noise band. A visible quality preference did not move the task metric the benchmark was actually optimizing.
| Hidden factor | Evidence | What wins |
|---|---|---|
| Narrow-domain quality | SDXL FID within a narrow margin of FLUX on medical sketches and OCR crops | SDXL — the quality penalty is too small to justify the price gap |
| Serverless cold start | FLUX cold-starts noticeably slower than SDXL; measurable real per-request cost inflation on low traffic | SDXL — boots faster and wastes less idle GPU time |
| FP4 hardware | FLUX throughput gap narrows on RTX 5090 FP4 cores | SDXL, but the margin is hardware-dependent |
| Offload on smaller GPUs | Q4 FLUX latency increases meaningfully, a substantial per-iteration penalty | SDXL — no offload tax on small GPUs |
| Benchmark noise | MTurk judges plus automatic scorers agree only moderately (sizable noise floor) | No published gap is decisive; run a domain test |
Rule 1 — GPU floor. If your deployment GPU has limited VRAM, choose SDXL fp16 or TensorRT. On that class, no FLUX.1 quantization below Q4 runs with acceptable latency, and Q3 quality is a production risk. The fp8/GGUF memory savings do not erase this floor, because offloading FLUX into modest VRAM steals memory bandwidth from generation; you save VRAM but pay in tokens per second.

Volume Images, One GPU, SDXL Instead of FLUX
Rule 3 — Text requirement. If your workload renders signage, labels, or UI text, switch to FLUX.1 even at a substantial price premium. SDXL's typography fails at the task level, not the preference level, so no cost comparison applies. A misspelled label is not a slightly worse image — it is a failed deliverable. For that workload, the premium buys the only output that passes QA.
Rule 4 — Batch size. If you run wall-time-billed inference with larger batches, re-measure both models at your exact batch size before choosing. The FLUX/SDXL latency gap is batch-dependent, and single-image provider benchmarks will mislead your capacity plan. FLUX's transformer attention and SDXL's UNet have different memory-bandwidth and scaling curves; a model that is slower at small batch sizes can close the gap at larger ones, or the reverse. Measure, don't extrapolate.
Rule 5 — Evidence bar. If both models pass a domain evaluation within a small margin of your target metric, choose SDXL and spend the savings on more seeds. The downstream-task result is consistent: extra data beats a slightly higher preference Elo. A model that brute-forces more seeds will cover the failure modes a preference Elo misses.
The pattern is simple: SDXL is the default. FLUX.1 earns the job only when the task itself demands it — either because the GPU floor is crossed, the text requirement is present, or a measured batch advantage shows up in your own billing profile. Otherwise, take the cost gap and buy more inference.
The final decision, logged in 2026, was a hybrid allocation: SDXL ran the full batch at lower cost, and FLUX was reserved for a small subset of text-label-heavy prompts where SDXL's glyph rendering was unusable. The cost advantage outweighed a quality gap that did not move the downstream metric. The transferable tactic is to isolate the small prompt subset where the cheap model provably fails and spend the expensive model's budget only there, not across the entire workload.
| Metric | FLUX.1-dev fp8 | SDXL 1.0 fp16 | Winner |
|---|---|---|---|
| Seconds per image | Higher | Lower | SDXL |
| Total runtime on a GPU | Longer | Shorter | SDXL |
| Total cost | Higher | Lower | SDXL |
| Budget position | Exceeded a fixed ceiling | Within a fixed ceiling | SDXL |
| Preference on held-out prompts | Preferred | Less preferred | FLUX |
| Downstream classifier F1 | Tie (noise band) | Tie (noise band) | Tie (noise band) |
How to Choose Well
FLUX.1 now fits on high-end cards through fp8/GGUF quantization and ComfyUI offloading, but fitting is a hardware fact, not a production default. As of 2026 list prices, SDXL remains the correct default whenever per-image cost is the binding constraint, and the fit does not change that. The myth — "FLUX fits now, so SDXL is a legacy model" — collapses on threshold questions before you even look at quality: VRAM capacity and per-image cost.
Rule 1 — GPU floor. If your deployment GPU has limited VRAM, choose SDXL fp16 or TensorRT. On that class, no FLUX.1 quantization below Q4 runs with acceptable latency, and Q3 quality is a production risk. The fp8/GGUF memory savings do not erase this floor, because offloading FLUX into modest VRAM steals memory bandwidth from generation; you save VRAM but pay in tokens per second.
Rule 2 — Cost ceiling. If your per-image budget is very tight, SDXL is the only defensible choice on the price list cited above. FLUX.1's published price is out of budget by definition, regardless of quality. This is not a preference vote; it is a feasibility constraint. You cannot select a model whose list price exceeds your per-image economics.
Rule 3 — Text requirement. If your workload renders signage, labels, or UI text, switch to FLUX.1 even at a substantial price premium. SDXL's typography fails at the task level, not the preference level, so no cost comparison applies. A misspelled label is not a slightly worse image — it is a failed deliverable. For that workload, the premium buys the only output that passes QA.
Rule 4 — Batch size. If you run wall-time-billed inference with larger batches, re-measure both models at your exact batch size before choosing. The FLUX/SDXL latency gap is batch-dependent, and single-image provider benchmarks will mislead your capacity plan. FLUX's transformer attention and SDXL's UNet have different memory-bandwidth and scaling curves; a model that is slower at small batch sizes can close the gap at larger ones, or the reverse. Measure, don't extrapolate.
Rule 5 — Evidence bar. If both models pass a domain evaluation within a small margin of your target metric, choose SDXL and spend the savings on more seeds. The downstream-task result is consistent: extra data beats a slightly higher preference Elo. A model that brute-forces more seeds will cover the failure modes a preference Elo misses.
| When | Choose | Why |
|---|---|---|
| GPU has limited VRAM | SDXL fp16 or TensorRT | No FLUX quantization below Q4 runs with acceptable latency; Q3 is a production risk |
| Very tight per-image budget | SDXL | FLUX list price is out of budget by definition, independent of quality |
| Signage, labels, or UI text in workload | FLUX.1 even at a premium | SDXL typography fails the task, so quality trumps cost |
| Wall-time billing and larger batches | Re-measure both at your exact batch size | FLUX/SDXL latency gap is batch-dependent; single-image benchmarks mislead capacity planning |
| Both pass domain eval within a small margin of target | SDXL, spend savings on seeds | Extra data beats a slightly higher preference Elo in downstream tasks |
The pattern is simple: SDXL is the default. FLUX.1 earns the job only when the task itself demands it — either because the GPU floor is crossed, the text requirement is present, or a measured batch advantage shows up in your own billing profile. Otherwise, take the cost gap and buy more inference.
Frequently Asked Questions
If FLUX.1 hits an out-of-memory error during text conditioning, what should you check first?
If you hit an out-of-memory error during text conditioning, quantizing the transformer does nothing; the encoder is the wall you are actually hitting.
What is the lowest GGUF quantization of FLUX.1-dev that still holds quality?
Q4_K_S is the practical production floor, and Q3_K_S degrades into visibly broken text and skin texture.
How does the RTX 5090's price compare to its VRAM increase over the RTX 5070 Ti?
The RTX 5090 costs 2.7x as much as the RTX 5070 Ti while delivering 2x VRAM, according to the 2026 hardware comparison.
How does ComfyUI's blockswap mechanism make FLUX.1 fit on smaller cards?
ComfyUI's blockswap mechanism pins transformer weights in CPU RAM and swaps only the active blocks into VRAM per denoising step, trading memory for bus bandwidth.
When should FLUX.1 be chosen over SDXL in a cost-bound pipeline?
When per-image cost binds, the default remains SDXL; FLUX.1 earns its slot only after a domain-specific quality test proves SDXL fails the task.
What did Berkeley SkyLab's serverless trace find about FLUX.1-dev versus SDXL energy use?
Berkeley SkyLab's serverless image-generation trace measured higher per-image energy for FLUX.1-dev than for SDXL at the same resolution on the same GPU pool.
Quick answers
| What happens to SDXL's per-image cost lead when quantization is applied equally across diffusion models? | SDXL's per-image cost lead holds, and compressing SDXL keeps its cost advantage against heavier 12B diffusion transformers. |
| Why does SDXL remain the reach play? | Because its reference path uses low-VRAM memory management: the documented example loads stabilityai/stable-diffusion-xl-base-1.0 in float16 and calls enable_model_cpu_offload(). |
| What does the RTX 5090 versus RTX 5070 Ti comparison show about hardware cost? | The RTX 5090 costs 2.7x as much as the RTX 5070 Ti while delivering 2x VRAM, so a heavier model's hardware cost can outpace its capacity benefit. |
| What is the practical production floor for GGUF quantizations of FLUX.1-dev, and what happens below it? | Q4_K_S is the practical production floor, and Q3_K_S degrades into visibly broken text and skin texture. |
| What measured evidence supports SDXL's cost-bound advantage over FLUX.1-dev? | ComfyUI's wiki logs SDXL 1.0 fp16 as substantially faster than FLUX.1-dev fp8 on the same high-end GPU, and Berkeley SkyLab measured higher per-image energy for FLUX.1-dev than for SDXL at the same resolution on the same GPU pool. |
Sources: Reddit, arXiv, arXiv, Reddit, arXiv
Also worth reading: AI virtual staging reshapes property marketing: AI virtual staging reshapes property · Market Analysis Why Brewster, NY Home Prices Remain Stable Despite Regional Market Fluctuations in 2024: Market Analysis Why Brewster, NY · 7 Strategies for Airbnb Hosts to Balance Digital Marketing and In-Person Hospitality: 7 Strategies for Airbnb Hosts