42 UK Research · beginner evidence bridge

SDXL for Beginners: ComfyUI Low VRAM Guide

A compatibility-first route for learning what to check, what to record and how to test one documented change without turning somebody else’s settings into a performance promise.

Published · Evidence rewrite reviewed

Certification status: retained bridge page; temporarily noindex while the evidence and locale gates are rechecked.

What this beginner guide can safely answer

“Low VRAM” is not a complete hardware description. A useful diagnosis also needs the operating system, accelerator and driver or backend, installed device memory, system RAM, Python and PyTorch versions, the ComfyUI revision, the exact workflow and models, and the launch command. Without that context, a setting copied from another machine is only a hypothesis.

The official ComfyUI system-requirements page is the starting point for platform and accelerator compatibility. The official troubleshooting page is the source for current memory-pressure options. Those pages can change, so their current wording takes precedence over this retained bridge.

A beginner route that does not invent a benchmark

  1. Check compatibility before tuning. Compare your operating system and accelerator with the current official system requirements. Do not infer support from the age, price or marketing tier of a GPU.
  2. Save one baseline. Keep one workflow, model set, prompt, seed, dimensions, batch, sampler, scheduler and output format unchanged. Record the exact launch command and any memory-affecting environment variables.
  3. Describe the failure precisely. Preserve the console message and note whether the failure occurs while loading, sampling or decoding. “It crashed” cannot be compared across runs.
  4. Select one documented condition. The maintained protocol includes a baseline, --lowvram, --preview-method none, one declared workload reduction and --cpu as a compatibility fallback. Test only a condition that the current official documentation still supports.
  5. Compare, then decide. Restart ComfyUI between run families, record failures as well as successes, and avoid combining several changes until a single-change comparison is understood.

What “measure memory” should mean

Two values answer different questions. PyTorch’s torch.cuda.max_memory_allocated() reports the peak memory occupied by tensors tracked by its CUDA allocator. It is not the same as total device memory used by the process, runtime or driver. A vendor device tool can sample framebuffer memory, but the sampling interval and tool caveats must accompany the peak.

For NVIDIA hardware, the methodology points to nvidia-smi because its official documentation defines selective queries and looping. That does not make its sampled peak interchangeable with the PyTorch allocator peak. Keep both labels and units explicit.

How to read an outcome

A completed image is not enough to call a technique reproduced. The controlled protocol asks for an unreported warm-up, repeated measured runs, all raw samples, logs, artefact hashes and an exact outcome check. It labels a run family incomplete when too few repetitions succeed and reserves “reproduced” for a second clean run that reaches the same outcome category.

Practical limit: until qualifying rows are published, this page can help you construct a comparison; it cannot tell you what result your hardware will achieve.

Primary sources and controlled assets

Where to go next

If you already have a repeatable baseline and need to separate device readings from allocator readings, continue to the measurement-first diagnostic guide. If you are still choosing an installation route, use the source-backed installation matrix.