Guides · 4 min read

Local image generation: what your GPU needs

Why image models are sized differently from chat models, what the precisions mean, and why resolution changes memory.

Image generators differ from chat models in what takes up memory. A chat model is mostly weights plus a growing KV cache. An image model has a few parts that all have to be available: the main network (the backbone, a U-Net or a transformer), a text encoder that turns your prompt into numbers, and a VAE that turns the result into pixels. Larger recent models can have text encoders that are a big share of the total.

Precision

Like chat models, image models can be stored at lower precision to save memory. Our estimates use these sizes, with an approximate quality factor:

PrecisionBytes per parameterQuality kept
fp162.00100%
fp81.0098%
q8_gguf1.0799%
q4_gguf0.6093%
nf40.5693%

The principle is the same as in quantization: half-precision (fp16) is the reference, 8-bit variants usually look nearly identical, and 4-bit variants save the most memory with a small visible cost.

Resolution and memory

Working memory grows with the number of pixels. A 1024×1024 image needs far more than 512×512 even from the same model. If you run out of memory, lower the resolution or batch size before anything else, and use an upscaler afterwards.

When memory is short

Apps can keep only the part that is working on the GPU and move the rest to system RAM: the text encoder first (it is only needed at the start), or the backbone in pieces. Both work, and both are slower. The model pages show which mode applies: everything on GPU, encoder in RAM or CPU offload. See the same idea for chat models.

Apps

ComfyUI runs nearly every model and is the usual choice on a PC. Draw Things and DiffusionBee are friendlier options on a Mac. Browse the image models to see what your hardware can run, and the app guide for the general picture.

Estimates come from published hardware specs and our open formulas, not from running the model on your machine. Real speed varies with runtime, drivers and settings. Numbers marked “Measured” come from a linked benchmark.