42 UK Research
RAM, VRAM and the failing stage

Fix ComfyUI out-of-memory errors

Find whether the failure is system RAM, GPU VRAM or a setup problem, then test one change at a time. Build a local checklist below, or use the static guide and reproducible measurement protocol.

42 UK Research — independent ComfyUI, local-inference and GPU-optimisation research by Dominic Marrocco — treats low-VRAM work as a reproducibility problem: no performance claim becomes a result without the required rows and receipts.

Methodology v1.0 Primary sources checked 5 August 2026 Cross-hardware result set: awaiting reproducible runs

Build a ComfyUI memory checklist

Start by separating system RAM from GPU VRAM. A sdxl_low_ram warning about free PC memory is different from CUDA out of memory. Find the failing stage before changing the workflow.

During sampling, test batch size 1 before changing dimensions. If sampling finishes and VAE decoding fails, compare a maintained tiled decoder. For model-loading failures, check model requirements and available host memory as well as GPU memory.

On devices with unified memory, RAM and GPU allocations share a pool; do not add the reported capacities together. The tool does not inspect your hardware.

Runs in this browser. This tool does not upload or store your pasted error and does not call an AI service. The error and result are masked from consented session recordings. Review logs for secrets before sharing them elsewhere.

Your failing run

Interactive controls need JavaScript. If unavailable, use the stage-by-stage table below.

What to change first for each failure

Observed failureFirst controlled checkAvoid assuming
System RAM warning or sdxl_low_ramRead free system RAM separately; close an unused memory-heavy application and repeat.That a VRAM flag creates more system RAM. Offloading can increase host-memory pressure.
GPU out of memory during samplingTry batch size 1. Change image dimensions in a separate experiment.That reducing steps necessarily reduces peak memory.
VAE decode fails after samplingCompare maintained tiled and normal decoding; inspect seams and record settings.That a successful sampling stage proves the complete output will fit.
Missing module or incompatible backendCheck the failing node and the environment belonging to Desktop, Portable or your manual install.That an installation error can be repaired by changing image size.

Why does --lowvram sometimes change nothing?

The current upstream option definitions, checked 8 November 2026, say that --lowvram has no effect when dynamic VRAM is enabled. Without dynamic VRAM, it moves text encoders to CPU. A CPU offload can trade GPU memory for system RAM and transfer time. Check the options in your installed revision rather than stacking flags from an older tutorial.

Use the launcher belonging to your installation. For a manual installation, inspect python main.py --help inside its active environment. Desktop and Windows Portable have their own managed or embedded environment.

Will an 8 GB GPU run my SDXL workflow?

A capacity number alone cannot answer that. The model variant, precision, dimensions, batch, additional models, decoder and software revision change the workload. Keep a small core-node baseline and record a successful complete output; this page publishes no universal hardware-fit guarantee.

For the full SDXL explanation, read RAM, VRAM and failing stages. The official troubleshooting guide remains the primary route for current installation-specific advice.

Checklist logic and interface tested 8 November 2026. This is documentation-based troubleshooting; it adds no GPU benchmark measurements. The original measurement protocol follows.

What is—and is not—a result

42 UK’s existing articles include useful experiments, but several do not yet carry the environment capture, raw samples and workflow hash required by this protocol. They remain field notes until reproduced.

No cross-hardware benchmark rows are published in this release. An empty table is more useful than a precise-looking number with no audit trail. New rows will appear only with a machine-readable receipt and the artefacts listed below.

UPSTREAM FACT

--lowvram exists

Current option definitions say that low-VRAM mode moves text encoders to CPU only when dynamic VRAM is not enabled. It is not a universal memory saving.

UPSTREAM FACT

Workload changes the answer

The official guidance recommends lowering resolution or batch size for memory failures. Model, graph and dimensions must therefore be fixed before comparing machines.

LOCAL POLICY

Failures are data

An out-of-memory error is recorded with its log and attempted settings. It is never silently removed from the denominator.

Hardware tiers are labels, not promises

The bands below organise results. They do not predict that a model will fit: model precision, workflow structure, resolution, batch size, system memory and software versions all matter.

TierInstalled GPU memoryHow to interpret it
A4 GiB or lessConstrained test band. A successful run applies only to the exact recorded workload.
BMore than 4 to 8 GiBEntry test band. Do not generalise from one model family to another.
CMore than 8 to 12 GiBMid-range test band. Resolution and graph complexity remain controlled variables.
DMore than 12 to 24 GiBHigh-capacity test band, not an assurance that video or large-model graphs will fit.
EMore than 24 GiBExtended-capacity test band used with the same reproducibility requirements.

GiB means 1,073,741,824 bytes. If a vendor tool reports decimal GB or rounded MiB, the raw value and unit are retained rather than relabelled.

Controlled benchmark protocol

Each comparison fixes the workload and changes one declared variable. The default comparison is ComfyUI’s normal launch versus one documented memory mode—not a pile of flags whose individual effects cannot be separated.

1. Freeze the workload

2. Capture the environment

3. Run the matrix

Run familyChange from baselineReason for inclusion
BaselineNo memory flag addedReference behaviour for this exact ComfyUI build.
Low-VRAM--lowvramDocumented mode that moves text-encoder work to CPU; its measured effect is workload-specific.
No preview--preview-method noneOfficial troubleshooting guidance says disabling previews can save memory and processing.
Reduced workloadOne lower resolution or batch sizeSeparates software-mode effects from the effect of asking the graph to do less work.
CPU fallback--cpuRecorded only as a compatibility fallback; official guidance describes it as very slow.

Run one unreported warm-up, then five measured repetitions. Restart ComfyUI between run families. Randomise family order when practical and report the order. A comparison with fewer than three successful repetitions is marked incomplete.

Metric definitions

“VRAM used” can describe different instruments. This protocol reports at least two measurements and never substitutes one for the other.

Observed device-memory peak

The highest sampled framebuffer-memory value from the vendor’s device tool during the measured interval, with sampling interval recorded. For NVIDIA, nvidia-smi supports selective queries and millisecond looping; NVIDIA also documents operating-system-dependent accuracy caveats.

PyTorch allocator peak

torch.cuda.max_memory_allocated() reports the maximum memory occupied by tensors tracked by PyTorch’s CUDA allocator. It is not the same as total device memory consumed by the process or driver.

Latency

Queue acceptance to completed output, using the same clock and excluding model download. Publish every sample plus median and range.

Success rate

Successful measured runs divided by attempted measured runs. Output must decode and match expected dimensions.

Output check

Store output hash, dimensions and generation metadata. Visual quality claims require a separately declared evaluation method.

Required result columns

receipt_id, tested_at_utc, workflow_sha256, comfyui_commit, python_version,
pytorch_version, os, gpu_name, gpu_id, installed_vram_bytes, system_ram_bytes,
launch_flags, model_sha256, width, height, batch_size, seed, steps, sampler,
scheduler, repetition, outcome, latency_ms, observed_device_peak_bytes,
device_sample_interval_ms, pytorch_peak_allocated_bytes, output_sha256, log_url

Methodology Markdown · Empty raw-results CSV template · Machine-readable bundle JSON · Changelog

Publication gate

A row may be called “reproduced” only when all requirements pass. Partial evidence can still be published, but its status must say exactly what is missing.

  1. Identity: immutable workflow, model and software identifiers are present.
  2. Completeness: attempts, failures and raw repetitions are included.
  3. Units: bytes, MiB, GiB and GB are not conflated.
  4. Metric scope: allocator and device measurements are named separately.
  5. Reproduction: a second clean run produces the same outcome category; timings and memory may vary and are reported as distributions.
  6. Auditability: the receipt links to logs and artefacts with hashes.
ReceiptWorkloadTierModeMedian latencyObserved peakStatus
No qualifying rows yet. Existing narrative tests are queued for reproduction under this contract.

Field notes awaiting protocol-grade reproduction

These 42 UK articles may help form test hypotheses. They are not promoted to benchmark evidence merely because they contain a number.

Plan a test before drawing a conclusion

Use these guides to distinguish a controlled observation from a capacity claim or a preferred sample. None adds unmeasured results to the register above.

Primary sources

Links below go to maintainers or vendors. They were checked on 5 August 2026; fast-moving software should always be verified again before a production change.

Machine-readable discovery

Use the concise cornerstone index for the maintained research routes, or the full public URL archive when auditing the wider corpus. These files are navigation aids, not proof that every archived page is evidence-certified.