.webp)
When FLUX.1 [dev] fails in ComfyUI, identify the failing stage before replacing files or changing startup flags. This guide covers missing models, text-encoder mismatches, CUDA allocation failures and unusable output. For installation from scratch, use the separate local FLUX setup guide.
This is a diagnostic reference based on project documentation. The cover is an illustration; this page does not report private render counts, measured speedups or a tested fix on your GPU.
Visual guide: Diagnose a FLUX failure by its boundary
How to use this map
- Copy the full error before replacing model files. Missing input, incompatible loader and CUDA allocation failure require different checks.
- For black output, compare the selected variant, source image, latent path and VAE with a matching minimal example. A dark preview by itself does not reveal the cause.
- Remove optional LoRA and custom branches from a saved copy of the graph, then rerun one small job. Preserve the original failure so the comparison is meaningful.
- Check the actual saved image at full size. A completed queue and timing labels demonstrate execution progress, not necessarily usable pixels or a verified repair.
Stop and check: The FLUX Fill screenshot added here is a related black-output example, not a FLUX.1 dev benchmark or proof that a particular fix works.
Next practical guides: Run FLUX Locally in ComfyUI: Model Files and First Image · ComfyUI Queue Errors: Stuck Prompts and Missing Nodes
Implementation reference: Official ComfyUI FLUX setup. Use the matching version-specific example alongside this editorial map.
Firsthand example: a nearly black FLUX Fill output

The screenshot shows why a dark output should not immediately be labelled a CUDA memory error: a source preview is also almost black, and execution timings are visible. Those observations narrow what to inspect, but they do not establish the cause. The selected model is a Fill variant, so use a Fill-compatible example when reproducing this particular graph.
- Open the actual input file outside ComfyUI and check whether it is already dark. Record dimensions and the intended edit region.
- Inspect the latent input and any mask handling against the matching Fill workflow. Do not infer mask correctness from the node name alone.
- Check the selected VAE and loader compatibility, then compare one minimal run without optional branches.
- Open the saved output outside the canvas. Only a recorded rerun with usable output can establish that a change repaired the failure.
No successful follow-up run is established by this screenshot, and these checks should not be presented as a proven fix.
Start with the error boundary
| Where it stops | Inspect first | Next useful check |
|---|---|---|
| Before a job enters the queue | Validation message and red node | Required inputs, selected filenames and missing node types |
| During model loading | Loader and full console traceback | File format, complete download and available RAM/VRAM |
| During text encoding | CLIP-L/T5 selection and model type | Match encoders to the supplied graph |
| During sampling | Sampler, model variant and custom modifications | Return to the matching official example |
| During decode or save | VAE, output dimensions and save path | Isolate decode memory from sampling memory |
Copy the first meaningful exception and the node it names. The final “execution failed” line may describe the consequence rather than the cause. Keep the original error text when you make a change so you can tell whether the failure moved.
Missing model or text encoder
The official ComfyUI FLUX examples distinguish the regular separate-file model from an integrated FP8 checkpoint. Regular FLUX dev uses diffusion weights, CLIP-L, T5 and an autoencoder. The checkpoint example uses a different loader. Choose one layout and follow its graph.
- Open the loader that fails and note the exact requested file.
- Check the file exists locally, is fully downloaded and is not an HTML download-error page.
- Use the directory expected by that loader. For the regular graph, diffusion weights go in
models/diffusion_models/, encoders inmodels/text_encoders/and the autoencoder inmodels/vae/. - Refresh the model list or restart ComfyUI, then select the file actually installed.
- Run the unmodified matching graph before adding a LoRA, ControlNet or cache node.
Renaming a file cannot convert its architecture. A GGUF file also needs a compatible GGUF loader; changing its extension to safetensors will not make it work.
CLIP or conditioning mismatch
If the error mentions tensor dimensions or encoder types, compare the graph with its source example. Check the dual-encoder selection, model type and conditioning path. An SDXL graph is not a FLUX graph merely because its sockets can be connected.
Make a copy of the failing workflow and remove optional branches there. Use one short positive prompt and keep the example’s guidance and sampling choices. Reintroduce components one at a time only after this baseline completes.
Do not confuse guidance controls
Sampler CFG and a FLUX guidance node are separate settings. The integrated FP8 checkpoint example explicitly uses sampler CFG 1.0. Follow the exact model example rather than copying a CFG number from an SDXL tutorial or assuming all FLUX variants use identical settings.
CUDA out of memory: loading, encoding, sampling or decoding?
First note the failing node and output size. Memory allocated by another process, image batch size and multiple loaded models can all change the available headroom. Do not diagnose from GPU capacity alone.
- Keep batch size at one and close applications actively using the GPU.
- Retry the plain example at a smaller output size.
- If it fails while loading, check weight precision and whether the chosen graph includes extra models.
- If T5 encoding fails, inspect the text-encoder variant and available system memory as well as VRAM.
- If sampling completes but decode fails, test a smaller output or a supported tiled decoder while keeping other settings fixed.
- Record whether each change completes and what stage fails next.
Offloading trades GPU memory for transfers and system-memory pressure. Quantization changes the loaded representation and can affect quality. Neither guarantees compatibility or a particular speed. See the 6GB troubleshooting plan for constrained hardware and the FLUX optimization guide for measuring a working graph.
Black images, NaNs or distorted output
Save the console error and check that sampling actually completed. Verify the autoencoder and checkpoint variant, then restore the example’s precision and sampler choices. Disable optional acceleration changes in a copy of the graph. A corrupted output after a new custom node is a reason to isolate that node, not proof the base model is broken.
If the plain graph works, add one modification and run again with the same input. If it fails again, retain both workflow files and outputs. This pair is more useful for debugging than a screenshot of the last image alone.
The queue finishes but no image appears
Check that the final decoded image reaches Save Image or a preview node. Inspect the output directory and execution record. For API use, receiving a prompt ID means the job was submitted; retrieve the completed history entry and its image metadata. Follow the ComfyUI Python API guide for that separate workflow.
What belongs in a useful bug report
Provide the full error, failing node, ComfyUI version, installation type, GPU, RAM, model filenames, workflow and the smallest prompt that reproduces the problem. List recent changes and say whether the official graph works. Remove tokens, private images and personal paths where necessary.
Check the FLUX.1 dev model card for model limitations and licensing. The terms governing model use and generated outputs are distinct; review them for your intended use.
A fix is verified only after another run
Keep a short record: original error → one change → rerun result. A graph opening without red nodes proves it loaded, while a saved image proves a later stage completed. If the job now fails at decode, report that narrower result instead of calling the entire workflow fixed.
For broader validation and missing-node problems, use ComfyUI queue troubleshooting.