ComfyUI diffusion_models vs checkpoints: Which Folder Your Model Goes In
The difference between a checkpoint and a diffusion model file in ComfyUI, which loader reads which folder, what happens when a file is in the wrong one, and where GGUF goes.
Quick answer
A checkpoint is one file that carries the diffusion model together with its text encoder and its VAE. It goes in ComfyUI/ and loads with Load Checkpoint, which hands out all three at once.
A diffusion model file carries the model alone. It goes in ComfyUI/ and loads with Load Diffusion Model. The text encoder and the VAE are separate files, in text_ and vae/, with their own loaders.
How to tell which one you have: if the model's page tells you to download a separate text encoder and VAE, the main file is a diffusion model. Wan 2.1, Wan 2.2 and HunyuanVideo all ship that way in ComfyUI's own examples, and so does MiniMax H3.
| Folder | Loader node | What the node outputs | Typical files |
|---|---|---|---|
Foldercheckpoints/ | Loader nodeLoad Checkpoint | What the node outputsMODEL, CLIP, VAE | Typical filesSD 1.5 and SDXL models, all-in-one bundles |
Folderdiffusion_ | Loader nodeLoad Diffusion Model | What the node outputsMODEL | Typical filesWan, HunyuanVideo, Flux dev, MiniMax H3 |
Foldertext_ | Loader nodeLoad CLIP, Load CLIP (Dual) | What the node outputsCLIP | Typical filesumt5, T5 XXL, Gemma, Qwen VL |
Foldervae/ | Loader nodeLoad VAE | What the node outputsVAE | Typical fileswan_, ae, hunyuanvideo15_ |
We read the folder rules from ComfyUI's source code at commit 1d2ea29, and the examples from ComfyUI's documentation and example pages, on 2026-10-09.
unet and clip are the same folders
Older guides tell you to put models in models/ and text encoders in models/. That still works. ComfyUI's folder_ registers both names for each list:
diffusion_readsmodels models/, thenunet/ models/.diffusion_ models/ text_readsencoders models/, thentext_ encoders/ models/.clip/
The same file also maps the old names to the new ones, so a workflow that asks for unet finds the diffusion_ list. Pick one folder of each pair and keep everything there, so you do not end up with two copies of a 14 GB file.
The same model, both ways
Some models are published both as a bundle and as separate parts. The examples make the difference concrete:
| Model | As a checkpoint | As separate files |
|---|---|---|
| ModelFlux dev | As a checkpointflux1- in checkpoints/, loaded with Load Checkpoint | As separate filesflux1- in diffusion_, T5 XXL and CLIP-L in text_, ae in vae/ |
| ModelMochi preview | As a checkpointall_, 15.84 GB | As separate filesfp8 model 10.03 GB + fp8 T5 XXL 5.16 GB + VAE 0.92 GB = 16.11 GB |
The Mochi bundle is almost exactly the sum of its parts, because it is the parts.
A checkpoint does not always carry everything. ComfyUI's example for LTX-Video 0.9.5 puts ltx- in checkpoints/ but still loads the T5 XXL text encoder separately. Stable Diffusion 3.5 checkpoints also come without their text encoders. When a checkpoint leaves something out, you add a Load CLIP or Load VAE node beside Load Checkpoint.
What happens when a file is in the wrong folder
A diffusion model in checkpoints/. Current ComfyUI tries to rescue it. The console logs:
Warning, This is not a checkpoint file, trying to load it as a diffusion model only.
The model loads, but Load Checkpoint has no text encoder or VAE to hand out. The run then stops at the first node that needs one, with one of these:
ERROR: clip input is invalid: None
ERROR: VAE is invalid: None
Newer versions of the ComfyUI interface word the first one as "The CLIP input is missing or invalid. Check the connected checkpoint or CLIP loader." Older versions failed earlier, with "Could not detect model type". In 2024 a ComfyUI maintainer answered that error on a Flux file: that is not a checkpoint model, use Load Diffusion Model.
The fix is to move the file to diffusion_, replace Load Checkpoint with Load Diffusion Model, and add Load CLIP and Load VAE nodes for its text encoder and VAE. Or start from the model's official template, which already has them.
A file the loader cannot find. If the file is in neither folder of a pair, the loader's dropdown is empty or does not list it, and queuing gives an error ending in not in [] or a "value not in list" message. ComfyUI reads the folders at start-up; after copying a file, refresh the model list or restart.
Load Diffusion Model's fp8 setting
Load Diffusion Model has a weight_ option: default, fp8_, fp8_ and fp8_. ComfyUI's Flux example says setting it to fp8 halves the model's memory use. If the file is already fp8, as most video repacks are, leave it on default.
Load Checkpoint has no such option. That is one practical reason the large models ship as separate files: you can pick a smaller copy of each part.
Where GGUF files go
ComfyUI does not read .gguf files by itself; its supported extensions are .safetensors, .ckpt, .pt, .pt2, .pth, .bin, .pkl and .sft. GGUF needs the ComfyUI-GGUF custom node.
- Its README says to put
.ggufmodel files inmodels/. Its code reads bothunet/ unet/anddiffusion_, so either works.models/ - Load them with Unet Loader (GGUF), not Load Diffusion Model.
- GGUF text encoders go in
text_orencoders/ clip/, and load with CLIPLoader (GGUF) or its dual variant.
A GGUF file is never a checkpoint. It replaces the diffusion model file only; the VAE stays a normal .safetensors in vae/.
Keeping models outside the ComfyUI folder
If your models live on another drive, or you share one model folder between installs, ComfyUI reads extra paths from a YAML file. The name depends on the install:
| Install | File |
|---|---|
| InstallPortable or manual install | FileComfyUI/, made by renaming extra_ |
| InstallComfyUI Desktop, Windows | FileC:\Users\<you>\AppData\Roaming\ComfyUI\extra_, or the Storage tab in settings |
| InstallComfyUI Desktop, macOS | File~/ |
Use the same folder keys inside it: checkpoints, diffusion_, text_, vae, loras. The documentation's example still uses the old clip: key, which works for the same reason models/ does. ComfyUI Desktop's documentation warns against overwriting the paths it writes at install; add to the file instead.
Related pages
- Wan 2.2 ComfyUI models folder lists every Wan 2.2 file and the folder it goes in.
- Our ComfyUI download page covers the installs and where each keeps its
models/folder. - Our ComfyUI troubleshooting page has a section on model-not-found errors, written for MiniMax H3.
GenVidKit is an independent guide. It is not affiliated with Comfy Org, city96, Black Forest Labs, Genmo, Lightricks, Alibaba or Hugging Face.
Sources
All read on 2026-10-09.
- ComfyUI
folder_— folder lists, thepaths .py unetandclipaliases, supported extensions. - ComfyUI
nodes— which loader reads which folder, the.py weight_options, the clip error.dtype - ComfyUI
comfy/— the not-a-checkpoint fallback and the VAE error.sd .py - ComfyUI
extra_— the extra paths file.model_ paths .yaml .example - ComfyUI documentation: Models — the Desktop config file and the Storage tab.
- ComfyUI_examples: Flux, Mochi, LTX-Video — checkpoints and split files.
- Comfy-Org/mochi_preview_repackaged — the bundle and part sizes.
- ComfyUI issues #4329, #6880 and #16015 — the errors users hit.
- city96/ComfyUI-GGUF — the GGUF folders and loaders.