A close view of a graphics card circuit board showing three GDDR6 memory packages sitting beside the GPU die

Three GDDR6 packages next to the die. Every number below is a fight over what fits in them.

Your Text Encoder Is Bigger Than Your Model

Nine and a half gigabytes of your memory budget goes to the thing that reads your prompt, and most low VRAM guides never mention it.

Published August 22, 2026 · RealAIGirls · 8 min read

Share on X Facebook Reddit

Nine point five three gigabytes. That is the T5 XXL text encoder at half precision, and it does exactly one thing in your workflow: it turns the sentence you typed into numbers.

The diffusion model it feeds, quantized down to Q4_K_S, is 6.81 gigabytes. The prompt reader is 40 percent larger than the thing that paints the picture, and almost every guide about running image models on a small card spends its entire word count on the second file and none on the first.

Every size below was read off the Hugging Face API this morning rather than recalled from memory, so you can check any of them yourself.

What Quantization Is, In One Paragraph

A model is a pile of numbers. Half precision stores each of those numbers in 16 bits, which is two bytes. Quantization stores them in fewer bits and keeps a small scaling factor per block so the original value can be approximated on the way back out.

That is the whole idea. Fewer bits per weight, smaller file, less memory, some loss. The file size scales almost linearly with the bit width, which is why you can predict most of these numbers before you download anything.

You can see it in the flagship model. The full checkpoint is 23.8 GB at bf16. Divide by two bytes per weight and you get 11.9 billion parameters. Every quantized version below is that same 11.9 billion numbers written more cheaply.

The Diffusion Model Ladder

These are the real published file sizes from the widely used GGUF conversion of the 12 billion parameter model, which the Hugging Face API reports at 135,119 downloads and 1,403 likes over the trailing month.

QuantFile sizeShare of bf16Notes
F1623.80 GB100%The unquantized baseline, identical in size to the original safetensors
Q8_012.71 GB53%Roughly half, and the rung most people call visually indistinguishable
Q6_K9.86 GB41%The best fit for a 12 GB card if you offload the encoder
Q5_K_S8.29 GB35%Marginally larger than Q5_0 at 8.27 GB, and better allocated
Q4_K_S6.81 GB29%The popular 8 GB card choice
Q4_06.79 GB29%Legacy format, 0.02 GB smaller than Q4_K_S, worse allocated
Q3_K_S5.23 GB22%Visible degradation territory
Q2_K4.03 GB17%A demonstration that it loads, not a working setting

The K Quants Are Free, So Take Them

Look at Q4_K_S against Q4_0. Twenty megabytes apart. Twenty megabytes out of nearly seven gigabytes, which is a rounding error on any drive made this decade.

The difference between them is not size, it is where the bits went. A legacy quant like Q4_0 gives every tensor in the network the same treatment. A K quant varies the precision per tensor, spending more bits on the layers that are sensitive to rounding and fewer on the ones that are not.

If two files are the same size and one of them thought about where to spend its bits, download that one. Q5_K_S over Q5_0, Q4_K_S over Q4_0, every time. The only reason to pick a legacy quant is software that cannot read K quants, and almost nothing in this space still has that problem.

Now The Half Nobody Quantizes

Here is the same ladder for the T5 XXL encoder. Divide its f16 size by two bytes and it comes out at 4.76 billion parameters, which is a serious model in its own right sitting quietly next to the one you are actually thinking about.

QuantFile sizeWhat it buys you
f3219.05 GBNothing you can see. Do not.
f169.53 GBThe default most workflows ship with
Q8_05.06 GBSaves 4.47 GB against f16
Q6_K3.91 GBSaves 5.62 GB
Q5_K_M3.39 GBSaves 6.14 GB
Q4_K_S2.74 GBSaves 6.79 GB, which is an entire Q4 diffusion model
Q3_K_S2.10 GBPrompt comprehension starts to wobble here

Read the Q4_K_S row again. Quantizing the encoder from f16 to Q4_K_S frees 6.79 GB. That is more memory than the entire Q4 diffusion model occupies. The single largest saving available to most people is in the file they never touch.

And the download numbers say most people do not touch it. The GGUF encoder repository reports 56,320 downloads over the trailing month against the diffusion model conversion's 135,119. Those two populations are not identical, because that encoder gets used by other models too, but the ratio is still striking. Fewer than half as many people are quantizing the encoder as are quantizing the model.

Add Up The Whole Stack

A generation needs four files, not one. The diffusion model, the T5 encoder, a small CLIP encoder at 0.25 GB, and the autoencoder at 0.34 GB. Here is what the complete set weighs at three sensible configurations.

SetupModelT5CLIP + AETotal
Everything at full weight23.809.530.5933.92 GB
Q8 across the board12.715.060.5918.36 GB
Q4_K_S across the board6.812.740.5910.14 GB

Thirty four gigabytes down to ten. That is the actual size of the win, and roughly a third of it came from the encoder.

The fp8 Comparison, Run Honestly

People compare the fp8 checkpoint against a GGUF file and declare a winner, and the comparison is usually rigged by accident.

The commonly used fp8 build is 17.25 GB, and that number is not the diffusion model alone. It is an all in one checkpoint carrying both text encoders and the autoencoder inside it. The honest thing to compare it against is a full Q8 stack, and that comes to 18.36 GB.

So at the 8 bit rung, fp8 is actually the smaller download by about a gigabyte. The GGUF route wins decisively lower down, where 10.14 GB against 17.25 GB is not close, and where fp8 has no equivalent to offer because there is no fp4 checkpoint sitting next to it.

The Encoder Runs Once. Use That.

Here is the part that changes what you should do with all of the above.

The diffusion model runs every step. Twenty steps means twenty passes, and it has to be resident and fast the whole time. The text encoder runs once per prompt, before sampling starts, and then it has nothing to do until you change the words.

That asymmetry is why the standard advice is to force the encoder onto the CPU and leave the GPU entirely to the sampler. The encoder pass gets slower, you feel it once at the top of a run, and it disappears completely on every subsequent generation with the same prompt because the conditioning is cached.

Two rules fall out of this. First, if you can offload the encoder to system RAM, do that before you drop the model to a lower quant, because it costs you a couple of seconds instead of costing you image quality. Second, if you cannot offload, quantize the encoder before you quantize the model any further. The prompt reader has more room to lose than the painter does.

Where The Quality Actually Goes

This section is the soft one and it should be labelled as such. There is no rigorous public benchmark comparing every rung on that ladder for image quality, so what follows is the rough consensus from people generating a lot of pictures, not a measurement, and you should treat it as a starting point rather than a finding.

Q8 is generally reported as indistinguishable from full weight in side by side comparisons. Q6_K and Q5_K_S are where most people settle, with differences that show up in fine texture and small text if you go looking at 100 percent zoom. Q4 is a real trade, and the places it shows first are the places every model is weakest anyway: hands, small text, repeating patterns like lace and chain link.

Below Q4 you are no longer tuning, you are proving something loads. Q2_K exists so that somebody with 6 GB can watch the thing run, and that is a legitimate reason for it to exist and not a reason to generate with it.

The test that settles it for your own eyes takes ten minutes. Fix the seed, fix the prompt, generate once at Q8 and once at Q4 with everything else identical, and put the two side by side at full zoom. If you cannot see it on your subject matter, the lower quant is free for you, whatever anybody else reports.

The Honest Counterpoint

Four things cut against everything above.

File size is not VRAM usage. The weights are only part of what sits on your card during a run. Activations, the latent, attention buffers and whatever your interface is holding all take space on top, and that overhead scales with your output resolution rather than with your quant. A 6.81 GB model does not fit comfortably in 8 GB just because the arithmetic says it should.

Quantization is not always faster. The weights get unpacked back to a usable precision as they are used, and on some hardware that dequantization costs enough per step to cancel out the benefit of the smaller footprint. If you were not swapping to disk before, a lower quant can genuinely make your generations slower.

If you have 24 GB, most of this is not for you. Running Q4 on a card that could hold Q8 comfortably is throwing away quality to solve a problem you do not have. The right quant is the largest one that fits with headroom, not the smallest one that loads.

And LoRAs are the rough edge. Applying a LoRA to a quantized model means the adapter and the quantized weights have to be reconciled at load time, support for that varies by tool and by quant format, and a stack that works perfectly at fp8 can behave differently at Q4. If your workflow leans on five LoRAs, test the quant with them attached rather than on its own.

None of that changes the headline. The prompt reader is 9.53 GB, it runs once, and it is the cheapest thing in your workflow to shrink.