ComfyUI 'Prompt Outputs Failed Validation'? Read the Error, Then Fix It (2026)
TL;DR: “Prompt outputs failed validation” almost never means your GPU or install is broken. It means the workflow you loaded references a file or a node input that ComfyUI can’t find right now — a checkpoint you didn’t download, a folder it isn’t scanning, or a custom node whose accepted values changed under you. The fix is always in the error text: read the part after the colon.
What you’ll be able to do after this guide:
- Decode the four shapes this error takes —
Value not in list,not in [], missingclass_type, andRequired input is missing— and map each to its cause. - Fix the #1 cause (a referenced model file that isn’t where ComfyUI expects it) in under two minutes, including the folder + refresh step people skip.
- Tell a genuine version-drift bug apart from a “you’re missing a file” problem, so you stop reinstalling things that were never broken.
Honest take: 90% of these are one missing file. Before you touch your Python environment,
git pull, or reinstall anything, read the single-quoted filename in the error and check whether it actually exists in yourmodels/tree. That one habit resolves most of these on the first try.
Tested against ComfyUI v0.28.0 (released July 15, 2026). The behavior described here has been stable across the v0.27–v0.28 line.
What the error actually means
When you hit Queue Prompt and get a red toast reading Prompt outputs failed validation, ComfyUI has not tried to generate anything yet. It ran a pre-flight check on the graph, and one or more nodes reported that something they need isn’t valid. Generation never started, so nothing about your GPU, CUDA, VRAM, or model weights is implicated. This is a bookkeeping failure, not a runtime crash — which is why the black image and reconnecting fixes don’t apply here.
The useful detail is always in the expanded message. Click the error to open it, or check the terminal where ComfyUI is running. You’ll see one or more lines naming a node and a reason. Those reasons come in four flavors, and each has a different fix.
| Error shape | What it means | First move |
|---|---|---|
Value not in list: <field>: '<file>' not in [...] | The file the node wants exists in the list, but the exact string doesn’t match | Download/rename the file to match, then refresh |
Value not in list: <field>: '<file>' not in [] | The list is empty — ComfyUI sees zero files of that type | Fix the folder path / extra_model_paths.yaml, then refresh |
Value not in list: weight_type: 'X' not in ['linear', ...] | A custom node’s accepted values changed between versions | Update or pin the custom node, re-pick the value |
Required input is missing: <input> | A required node input has nothing connected to it | Connect the input, or re-add the node |
There’s a fifth message people confuse with this one — Cannot execute because a node is missing the class_type property — that’s a different failure. More on it at the end.
Cause 1: the file isn’t there (the 90% case)
This is what you’ll hit most. A workflow — often one you downloaded from Civitai, a Reddit post, or a tutorial — was built on someone else’s machine, and it hardcodes the exact filenames they had. Load it on your machine and every loader node that points at a file you don’t have fails validation.
Real examples from ComfyUI issue #10749, a single Wan video workflow that failed on four nodes at once:
WanVideoVAELoader:
Value not in list: model_name: 'vae/Wan2_1_VAE_bf16.safetensors' not in [...]
CLIPVisionLoader:
Value not in list: clip_name: 'CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors' not in [...]
WanVideoLoraSelectMulti:
Value not in list: lora_0: 'wan\style\WanAnimate_relight_lora_fp16.safetensors' not in [...]
And the classic single-node version from issue #5263: Prompt Outputs failed validation — Checkpoint loader simple — Value not in list.
The single-quoted string is the file the node wants. The [...] after not in is the list of files ComfyUI does see for that field. Your job is to make the first appear in the second.
The fix, in order:
- Read the filename and the folder prefix.
model_name: 'vae/Wan2_1_VAE_bf16.safetensors'means ComfyUI is looking forWan2_1_VAE_bf16.safetensorsinsidemodels/vae/. A checkpoint loader looks inmodels/checkpoints/, aLoraLoaderinmodels/loras/,CLIPVisionLoaderinmodels/clip_vision/. - Download the exact file into that exact folder. This is where most workflows come with a “Required Models” note — download those first. A file named
Wan2.1_VAE.safetensorswill not satisfy a node asking forWan2_1_VAE_bf16.safetensors; the string has to match character-for-character. - Refresh the model list. ComfyUI caches the file list at startup. Drop a file in the folder and it won’t appear until you either click the refresh/reload button in the menu, or restart the server. Refreshing the browser tab alone does not rescan the disk. This step is the single most common reason people say “I downloaded it and it still says missing.”
- Re-select in the node. After refreshing, click the loader node’s dropdown and pick the file. If the dropdown now shows a close-but-different name, the workflow author used a rename — pick yours and move on.
If you genuinely can’t source the exact file, swap the node to one you do have. For a checkpoint, that’s usually fine; for a specific VAE or LoRA the output will differ, but it’ll run.
Cause 2: not in [] means the folder is empty (to ComfyUI)
Look closely at one line from #10749: Value not in list: yolo_model: 'yolov10m.onnx' not in []. The brackets are empty. That’s a different problem from cause 1. An empty list means ComfyUI scanned the folder for that file type and found nothing — not that your specific file is missing, but that it sees zero files at all.
Two things cause an empty list:
The folder doesn’t exist or is genuinely empty. Some custom nodes expect a subfolder (models/onnx/, models/ultralytics/, models/ipadapter/) that only gets created when you install the node correctly. If the node installed but the model folder never got made, put the file where the node’s docs say and refresh.
ComfyUI is scanning a different folder than you think. This is the big one for anyone running Comfy Desktop, a portable build, and a manual clone side by side, or anyone who moved their models to another drive to free up space. The fix is extra_model_paths.yaml in the ComfyUI root. Copy extra_model_paths.yaml.example to extra_model_paths.yaml and point it at your real model tree:
comfyui:
base_path: D:/AI/models/
checkpoints: checkpoints
vae: vae
loras: loras
clip_vision: clip_vision
controlnet: controlnet
Restart ComfyUI (not just the browser). On startup the terminal prints the paths it’s adding — confirm your drive shows up there. If it doesn’t, you edited the wrong file or the YAML indentation is off (YAML is whitespace-sensitive; use spaces, not tabs).
Cause 3: weight_type not in [...] is custom-node version drift
This one looks identical to cause 1 but has nothing to do with files. Example error:
Value not in list: weight_type: 'style transfer (SDXL)' not in
['linear', 'ease in', 'ease out', 'ease in-out', 'reverse in-out',
'weak input', 'weak output', 'weak middle', 'strong middle',
'style transfer', 'composition', 'strong style transfer']
The field here isn’t a filename — it’s an enum, a fixed set of text options a node accepts. This fires when a workflow was saved with one version of a custom node (here, ComfyUI_IPAdapter_plus) and you’re running a different version whose accepted values changed. The author had a weight_type called style transfer (SDXL); the version you have renamed it to plain style transfer. The workflow’s stored value no longer exists in the current list, so validation rejects it.
The tell: the value in quotes is a descriptive phrase, not a file path, and the not in [...] list is short and human-readable rather than a list of .safetensors files.
Fix it by aligning versions:
- Simplest: open the node’s dropdown and pick the closest current value (
style transferhere). Re-save the workflow so it stops carrying the dead value. - If the workflow depends on the old behavior: update the custom node through ComfyUI Manager (
Try Fix/Update), which often restores or migrates the value. If an update introduced the mismatch, Manager lets you install a specific earlier version to match the workflow. - Either way, restart the server after changing a custom node. See the IMPORT FAILED guide for reading custom-node load errors, which are the upstream cause when a node’s values vanish entirely.
Cause 4: ‘Required input is missing’
Required input is missing: <name> means a node has a required input slot with nothing feeding it. Common triggers:
- A dangling connection. You deleted or replaced the node that used to feed this input and never reconnected it. The frontend clears the
required_input_missingflag the instant you drag a valid link into the slot, so connect it and the error disappears. - Widget-to-input drift on old workflows. Older ComfyUI let you “convert” a widget (like a seed or a text box) into an input socket. The 2026 frontend changed how this works — inputs are always present now, and manual conversion is gone. Loading a very old workflow that relied on a converted widget can leave a required input orphaned. Right-click the node and re-add it fresh, or recreate the connection; if the node itself looks wrong, delete and drop a new one from the node search.
- A custom node changed its input signature. Same root cause as Cause 3, one layer up: the node author added a new required input in a newer version. Update the node and reconnect.
If reconnecting is impossible because the source node is red and unrecognized, you don’t have a validation problem — you have a missing custom node. That’s the next section.
Not the same error: missing nodes and missing class_type
Two failures get lumped in with validation but are more fundamental:
Red nodes / “missing custom nodes.” If nodes show up red with an unknown title, ComfyUI can’t identify them at all. Install the missing nodes via ComfyUI Manager’s “Install Missing Custom Nodes,” restart, and the validation errors that were downstream of them usually clear on their own.
Cannot execute because a node is missing the class_type property.: Node ID '#90' (issue #11935). This is not a validation failure — it means a node in the saved JSON has no type at all, so ComfyUI can’t even tell what it’s supposed to be. Causes are a corrupted workflow file, a partially-pasted graph, or a custom node that failed to load so its nodes lost their identity. Fix the underlying custom-node load first (again, the IMPORT FAILED guide covers the traceback), then reload the workflow. If the JSON itself is corrupt, re-download it from the source.
A 30-second diagnostic order
When the error pops, work this sequence and you’ll almost never guess wrong:
- Expand the error / check the terminal. Note the node name and the text after the colon.
- Is the quoted value a filename? → Cause 1 (download + refresh) or Cause 2 if the list is
[](fix the path). - Is the quoted value a word or phrase with a short list? → Cause 3 (custom-node version drift; re-pick the value, update/pin the node).
- Does it say Required input is missing? → Cause 4 (connect the slot, or re-add the node).
- Are there red nodes or a class_type message? → not validation; install the missing nodes / fix the load / re-download the workflow.
The through-line for the whole ComfyUI troubleshooting family — from Torch not compiled with CUDA to import failures — is the same: the error text names the problem. ComfyUI is unusually good about that. The mistake is reinstalling before reading.
FAQ
I downloaded the model but it still says “not in list.” Why? You almost certainly didn’t refresh the model list. ComfyUI reads the folder contents once at startup and caches them. Click the reload button in the menu or restart the server. Refreshing the browser tab does not rescan the disk. Also confirm the filename matches the workflow’s string exactly — case, extension, and any subfolder prefix included.
Does this error mean my GPU or VRAM is too small? No. Validation runs before any model loads, so VRAM is never the issue at this stage. If you hit an actual out-of-memory failure it happens after validation passes, mid-generation — see CUDA out of memory for that. “Failed validation” is purely about missing files, values, or connections.
A workflow from Civitai/Reddit throws this on every node. Is it broken?
No — it’s referencing that author’s exact filenames and custom-node versions. Read each Value not in list line, download the named files into the matching models/ subfolders, install any missing custom nodes via Manager, refresh, and re-select. It’s tedious the first time and fast after that.
The value in the error is a phrase like 'style transfer (SDXL)', not a file. What do I do?
That’s custom-node version drift (Cause 3). The node’s accepted values changed between the version the workflow was saved with and yours. Open the node, pick the current closest value, re-save. If you need the old behavior, use ComfyUI Manager to install the matching node version.
Why does empty [] matter?
not in [] means ComfyUI sees zero files of that type — a folder/path problem, not a specific-file problem. Fix extra_model_paths.yaml or create the folder the custom node expects, then refresh. not in ['a.safetensors', ...] (a non-empty list) means the folder is fine but your exact file is absent.
Is this specific to Wan video / IPAdapter / SDXL? No. The examples above happen to come from Wan and IPAdapter workflows, but the exact same validation logic applies to every loader node — checkpoints, LoRAs, ControlNets, CLIP, VAE, upscale models. The decoding method is identical regardless of the model type.
The bottom line
“Prompt outputs failed validation” is the friendliest error ComfyUI throws, because it tells you exactly what’s wrong if you read past the first line. Nine times out of ten it’s a file that isn’t where the workflow expects it — fix the path or download the file, refresh (not just reload the browser), and re-select. The other cases — enum drift on a custom node, an unconnected required input, a missing node — each have a distinct tell in the error text. Reinstalling your environment fixes none of them and wastes an afternoon.
If you’re building a ComfyUI box from scratch and want the model-to-VRAM math before you download anything, start with best local AI models by VRAM. For a clean Windows install that avoids half of these path problems, see the ComfyUI Windows setup guide. And for open-source image and video tooling beyond ComfyUI, aifoss.dev tracks the FOSS side of the stack.
Sources
- Prompt outputs failed validation (Wan video, multiple loaders) — Comfy-Org/ComfyUI Issue #10749
- Prompt Outputs failed validation, Checkpoint loader simple, Value not in list — Comfy-Org/ComfyUI Issue #5263
- Cannot execute because a node is missing the class_type property — Comfy-Org/ComfyUI Issue #11935
- How to fix weight_type ‘style transfer (SDXL)’ not in list — RunComfy Guides
- Troubleshooting model issues — ComfyUI Official Documentation
- ComfyUI Changelog (v0.27–v0.28, 2026) — ComfyUI Official Documentation
- Why a widget cannot be converted to input — ComfyUI Wiki
Last updated July 20, 2026. ComfyUI ships new versions almost weekly; node names, accepted values, and default folders can change between releases — verify against your installed version.
Was this article helpful?
Thanks for the feedback — it helps improve future articles.
Need hands-on help?
I offer 1-on-1 technical consulting for local AI setup, GPU selection, and AI coding tool configuration — same topics covered on this site.
Book a session — $49 / hour →