Disclaimer:This site is not affiliated with or endorsed by ComfyUI.
YuliusWiki
Published:•Last updated:•yuliuswiki
🌐 中文版 (Chinese)

ComfyUI Diffusion Model vs Single-File Checkpoint: What's the Difference & How to Load Qwen-Image-2.1

Quick Answer

Split trio vs single file: diffusion models need separate loaders for the diffusion model, text encoder and VAE; checkpoints load all three with one node.

If you came up in the SD 1.5 / SDXL era, your muscle memory says: drop one .safetensors file into the checkpoints folder, wire up a CheckpointLoader, done. Then you download Qwen-Image-2.1 (or FLUX, or SD 3.5) and the official release hands you three separate files — a diffusion model, a text encoder, and a VAE. Where does each go, and which nodes load them? This guide explains the real difference between the two formats, maps every file to its folder, walks through a complete Qwen-Image-2.1 setup, and covers the errors almost everyone hits.

The Short Answer: What Actually Differs

In one line: a checkpoint is an old packaging habit; the split diffusion-model layout is how new architectures ship. In the SD 1.5 / SDXL (UNet) era, a single model file bundled three things: the UNet doing the denoising, the CLIP text encoder, and the VAE converting between latent and pixel space. ComfyUI's CheckpointLoaderSimple splits them into MODEL, CLIP and VAE outputs from one node — so everyone got used to the one-file workflow. Starting with the DiT / MMDiT generation — FLUX, SD 3.5, Qwen-Image-2.1 — that changed. Text encoders got huge (Qwen-Image-2.1 uses an 8B Qwen3-VL), VAEs iterate independently, so vendors ship the three components separately: the diffusion weights go in diffusion_models/, the text encoder in text_encoders/, the VAE in vae/. Qwen-Image-2.1 is a diffusion model, not a checkpoint — and that single sentence decides which loading workflow you need. Analogy: a checkpoint is a brand-name all-in-one PC — unbox and go. A split diffusion model is a DIY build — CPU, GPU and RAM bought separately, two extra steps during assembly, but you can upgrade the GPU later without replacing the whole machine.

File Map: Where Qwen-Image-2.1's Three Files Go

Using the three files from the official Comfy-Org/Qwen-Image-2.1 repo on Hugging Face (filenames verified October 2026): 1. qwen_image_2.1_int8_convrot.safetensors → ComfyUI/models/diffusion_models/. The diffusion weights themselves — the part that denoises. The int8 build is a quantized version using roughly half the VRAM of the full bf16 weights with very little quality loss; it's the default choice for most people. 2. qwen3vl_8b_int8_convrot.safetensors → ComfyUI/models/text_encoders/. The text encoder that turns your prompt into conditioning the model understands. In the CLIPLoader node, set the type to qwen_image or the encoder won't be recognized. 3. qwen_image_2.1_vae_bf16.safetensors → ComfyUI/models/vae/. The VAE that decodes the latent result into a visible image. The number-one beginner mistake is putting files in the wrong folder: a diffusion-model file sitting in checkpoints/ will never appear in CheckpointLoader's dropdown, because that node only reads single-file checkpoints. There is also a GGUF route: the community-converted qwen-image-2.1-Q8_0.gguf (~7.6 GB) belongs in ComfyUI/models/unet/ and loads through the Unet Loader (GGUF) node, which requires the ComfyUI-GGUF custom node. Dropping a GGUF file into diffusion_models/ is the second most common mistake — it won't be picked up there.

Hands-On: Loading Qwen-Image-2.1 in ComfyUI, Start to Finish

Step 1: update ComfyUI to the latest build. Qwen-Image-2.1 support was added recently; older builds report it as not supported. Click Manager → Update ComfyUI in the top bar, then restart. Step 2: download the three files from the Comfy-Org/Qwen-Image-2.1 page on Hugging Face and place them per the map above — one file per folder. Step 3: wire the workflow. UNETLoader (select the diffusion file) → KSampler's model input; CLIPLoader (select the text encoder, type qwen_image) → CLIP Text Encode (positive/negative) → KSampler's conditioning inputs; VAELoader (select the VAE) → VAE Decode's vae input. Then Empty Latent Image → KSampler → VAE Decode → Save Image. If wiring by hand sounds tedious, grab the official workflow from comfy.org — search Qwen Image 2.1 and import it in one click. Step 4: settings and VRAM. A sane starting point: 1024×1024, ~25 sampling steps. Qwen-family models follow prompts closely, so detailed prompts pay off. VRAM guide: full bf16 wants ~24 GB; the int8 quant runs on 12 GB; the GGUF Q8_0 build fits 6–8 GB cards and is the pick for low-VRAM users.

Troubleshooting: Four Errors Almost Everyone Hits

1. Model missing from the dropdown: 99% of the time the file is in the wrong folder. Walk the map in the previous section: diffusion weights must be in diffusion_models/, GGUF in unet/, the text encoder in text_encoders/, the VAE in vae/. Hit refresh after moving files. 2. "not supported" or "Unknown model architecture": your ComfyUI is too old — update first. On the GGUF route, make sure you installed the maintained fork of ComfyUI-GGUF; older builds don't recognize the Qwen-Image architecture. 3. Completely black output: the int8 text encoder is overflowing in fp16 precision. Add --fp32-text-enc to your launch arguments and retry. 4. Mushy, low-detail results: if you're on the Turbo weights, default KSampler settings don't reproduce its sampling schedule. The community fix is SamplerCustomAdvanced plus a ManualSigmas node with sigmas 1.0, 0.978453, 0.95418, 0.926626, 0.89508, 0.845148, 0.704534, 0.414568, 0.0, euler sampler, CFG 1, 8 steps. Save that node group as a subgraph so you only type it once.

Sources & Disclaimer

Key facts verified October 19, 2026: Official repo with the three files: https://huggingface.co/Comfy-Org/Qwen-Image-2.1 Full illustrated tutorial covering both int8 and GGUF routes: https://www.earngenix.com/tutorials/qwen-image-2-1-image-edit-comfyui Turbo VRAM measurements and sampler schedule: https://dev.to/alanwest/qwen-image-21-turbo-isnt-7b-the-vram-you-actually-need-to-run-it-locally-3ikp Official Qwen Image 2.1 workflow on comfy.org: https://comfy.org/workflows/bb7e03924a5c-bb7e03924a5c/ Disclaimer: this site is not affiliated with ComfyUI, Comfy-Org or Qwen; this article is a technical introduction only. All trademarks and model copyrights belong to their respective owners. Also note the license: Qwen-Image-2.1 ships under the Qwen Research License, which permits non-commercial use (research and evaluation) only — commercial use requires writing to model-business@notice.qwencloud.com for a separate license. That's different from the Apache-2.0 first-generation Qwen-Image.

Diffusion Model (Split Trio) vs Checkpoint (Single File)

DimensionDiffusion Model (split trio)Checkpoint (single file)
File layout3 separate files: diffusion model + text encoder + VAE1 .safetensors file bundling all three
Foldersmodels/diffusion_models/, models/text_encoders/, models/vae/models/checkpoints/
Loader nodesUNETLoader (or dedicated diffusion loader) + CLIPLoader + VAELoaderCheckpointLoaderSimple — one node outputs MODEL / CLIP / VAE
Example modelsQwen-Image-2.1, FLUX.1, SD 3.5SD 1.5, SDXL and derivatives
FlexibilitySwap the text encoder or VAE independently (e.g. int8 quants to save VRAM)Replace as a whole; overriding the VAE needs an external node
Learning curveSlightly higher: match each file to its folder and loaderLow: one file, one node
Why it existsDiT / MMDiT architectures differ enough per component that separate releases make updating and quantizing easierPackaging habit from the UNet era

Frequently Asked Questions

Why doesn't my downloaded Qwen-Image-2.1 show up in CheckpointLoader?

Because it isn't a checkpoint — it's a split diffusion model. CheckpointLoader only reads single files in models/checkpoints/. Put the diffusion weights in models/diffusion_models/ and load them with UNETLoader (or the dedicated loader in the official workflow), the text encoder with CLIPLoader, and the VAE with VAELoader.

Can split diffusion models and single-file checkpoints convert into each other?

Yes. ComfyUI's built-in CheckpointSave node does exactly this: feed it the diffusion model + CLIP + VAE trio and it saves a single checkpoint file. The reverse is rarely worth it — packing a new-architecture model back into one file loses the flexibility of updating the text encoder or swapping quant versions independently.

GGUF or safetensors — which Qwen-Image-2.1 build should I pick?

12 GB VRAM or more: the official safetensors int8 build (minimal quality loss). Only 6–8 GB: the GGUF Q8_0 (~7.6 GB). Two caveats for the GGUF route: you need the ComfyUI-GGUF custom node, and _K-series quants (like Q4_K_M) can run noticeably slower on the diffusion model — prefer Q8_0.

Do my old SD 1.5 / SDXL single-file checkpoints still work?

Absolutely — nothing changes for them. CheckpointLoaderSimple works as before. It's just that new DiT-architecture models (Qwen-Image-2.1, FLUX.1, SD 3.5) no longer ship single-file versions, so both workflows now coexist.

Can I use Qwen-Image-2.1 commercially?

Not directly. It's under the Qwen Research License: non-commercial use (research or evaluation) only. Commercial use needs a separate license — email model-business@notice.qwencloud.com. Don't confuse it with the first-generation Qwen-Image, which was Apache-2.0.

© 2026 YuliusWiki. All rights reserved.