Nodes/DiffSynth-ComfyUI/DiffSynth: Qwen Image 2.1 Loader
ComfyUI Node

DiffSynth: Qwen Image 2.1 Loader

Qwen Image 2.1 Loader — the unified generation-and-editing Qwen, with weights

By modelscope·Created about a month ago·Updated a day ago· 8
DiffSynth: Qwen Image 2.1 Loader
  • model_configs
  • processor_config
  • vram_limit
  • pipe
◄torch_dtypebfloat16►
◄devicecuda►

Qwen-Image's family history has an annoying wrinkle in it. The 20B v1 line split into a base model and an Edit line that grew its own LoRA library, then Qwen-Image-2.0 collapsed the two back into a single unified generation-plus-editing design - and shipped it API-only in February 2026, with no weights. Everyone who wanted to run the unified thing locally was stuck waiting.

Qwen-Image-2.1 is that wait ending. Qwen/Qwen-Image-2.1 is a real repo with real files, and this loader is the node that turns three or four ModelConfigs into a pipeline you can actually prompt.

Required inputs

  • model_configs - the merged list from Merge ModelConfigs. The pack's own featured template wires four: transformer (transformer/diffusion_pytorch_model*.safetensors), text encoder (text_encoder/model*.safetensors), VAE (vae/diffusion_pytorch_model*.safetensors), and a fourth ModelConfig for the repo's processor/ folder.
  • torch_dtype - bfloat16 (default), float16, float32.
  • device - cuda, or cpu.

The optional inputs

processor_config takes a DIFFSYNTH_MODEL_CONFIG - the processor/ ModelConfig, wired separately because it isn't part of the model_configs list the way the transformer is. Same idiom as every other loader in the pack.

vram_limit takes a VRAM Limit node's output. That node is worth understanding rather than ignoring: it reads your actual VRAM and subtracts a buffer_size (0.5 GB by default) to give the loader a budget, which is a much nicer answer to "leave room for the desktop" than hoping.

What you get

A pipe for the Qwen Image 2.1 Inference node. Because 2.1 is a unified model, that one inference node covers both text-to-image and instruction editing - there's an edit_image input on it that simply isn't used in generation mode. That's the convenience the unified design was for, and it means you keep one loader and one inference node in the graph instead of swapping pipelines when the job changes.

Coming from the 20B v1 line: expect it to be different in the ways you'd expect a smaller unified successor to be. Fewer moving parts in the graph, one LoRA story instead of two incompatible ones, and the same architecture-driven rules - CFG 1 by default, resolution that matters because the family's signature is text rendering.

Install

ComfyUI Manager, search DiffSynth-ComfyUI, install, restart. Or manually:

pip install git+https://github.com/modelscope/DiffSynth-Studio.git
cd ComfyUI/custom_nodes
git clone https://github.com/modelscope/DiffSynth-ComfyUI.git

Then either build the wiring by hand or open featured_qwen_image_2_1 from the Template tab and edit it. The template is the better starting point - it already has the VRAM config fan-out and the processor/ node in the right place.

Where people get burned

Mixing 2.1 files with v1 files. The transformer and text encoder come from the same 2.1 repo. Pointing the transformer at Qwen/Qwen-Image-2.1 and the VAE at Qwen/Qwen-Image is a good way to spend an evening on a cryptic load error.

Expecting ComfyUI's model dropdowns to see it. They won't. Everything arrives through the ModelConfig nodes, into DiffSynth's cache.

Copying v1 settings wholesale. 30 steps and CFG 4 is the v1 base's recipe. The 2.1 template runs 50 steps at CFG 1 - a guidance-distilled configuration - and quietly changing CFG to 4 will burn your images without an obvious error message.

Forgetting the processor. It's optional on the node and mandatory in practice; the text path won't be right without it.

CategoryDiffSynth/loader

Inputs (5)

NameTypeDefaultDescription
torch_dtypeCOMBObfloat163 options: bfloat16, float16, float32
deviceCOMBOcuda2 options: cuda, cpu
model_configsDIFFSYNTH_MODEL_CONFIG_LIST—
processor_configoptDIFFSYNTH_MODEL_CONFIG—
vram_limitoptDIFFSYNTH_VRAM_LIMIT—

Outputs (1)

NameTypeDescription
pipeDIFFSYNTH_PIPE—