Qwen-Image-2.1 DiT β€” GGUF (Q8_0 Β· Q6_K Β· Q4_K_M)

Not affiliated with, or endorsed by, Alibaba / Qwen. Quantized redistribution of the Qwen/Qwen-Image-2.1 diffusion transformer under the Qwen Research License (copy included as LICENSE). Non-commercial use only.

Loads in stock city96/ComfyUI-GGUF β€” no patch, no extra nodes. These files carry general.architecture = qwen_image, so UnetLoaderGGUF recognises them directly (GGUFs without that field fail with Unknown model architecture!).

Text encoder: our Qwen-Image-2.1 Text Encoder GGUF works with this DiT, but it needs one extra node first β€” ComfyUI-GGUF-Qwen3VL-TE (stock ComfyUI-GGUF doesn't load Qwen3-VL text encoders yet). With a safetensors text encoder (bf16 / int8 / FP8 from the same repo family) nothing extra is needed.

Made with a simple node

The sample / showcase images in this repo were generated with the technique behind ComfyUI-QwenImage-PhotoStyles β€” a small ComfyUI node (17 photographic styles; one short prompt becomes a full styled prompt via the PE-T2I rewriter). If you're interested in how the images are made, the node and its recipe are there.

Where are the prompts? The node is applied up front as the PE-T2I step β€” you type one short line and it expands it into the full prompt. The exact short prompts live in that repo's Gallery: the line printed under each image there is the literal prompt (copy it verbatim), not a description of the picture.

πŸ“₯ Files

File Size For
qwen_image_2.1-Q8_0.gguf 7.69 GB closest to bf16
qwen_image_2.1-Q6_K.gguf 6.00 GB nearly identical to Q8_0 in our test
qwen_image_2.1-Q4_K_M.gguf 4.34 GB recommended β€” smallest; small detail changes vs Q8_0

Put one in ComfyUI/models/diffusion_models/ (or models/unet/) and load it with UnetLoaderGGUF. Needs ComfyUI 0.36.0 or newer (for TextEncodeQwenImage21).

πŸ–ΌοΈ Showcase


Warm Documentary

Candid B&W Street

Vivid Everyday Color

Black Fury

Geometry of Light

Frozen Film Still

Deadpan Large-Format

White Leap

Corner Elegance

Raw B&W Fashion

Color Behind Glass

High-Contrast Reportage

Lyrical Landscape

Hyper Chic East

Street in the Mirror

Plain Portrait

Melancholy B&W

Fairytale Giants

Cold Power

Cold Power

Hyper Chic East

Fairytale Giants

Hyper Chic East

White Leap

This is what Q4_K_M across the board looks like β€” every image above was made with:

Part File
PE-T2I rewriter pe_t2i_heretic-Q4_K_M.gguf
Text encoder qwen3vl_8b_heretic-Q4_K_M.gguf + f16 mmproj
DiT qwen_image_2.1-Q4_K_M.gguf
VAE qwen_image_2.1_vae_bf16.safetensors (official)

AI-generated. Style homage only β€” not affiliated with or endorsed by the photographers.

🍱 All-GGUF Qwen-Image-2.1

The whole pipeline can run on GGUF β€” useful on Macs and smaller GPUs:

Part File Where Loader
Prompt rewriter (optional) pe_t2i_heretic-Q4_K_M.gguf + system_prompt.txt PE-T2I Heretic GGUF llama.cpp / LLM node
Text encoder qwen3vl_8b_heretic-Q4_K_M.gguf + mmproj-…-f16.gguf Text Encoder Heretic GGUF CLIPLoaderGGUF + patch node (until ComfyUI-GGUF supports Qwen3-VL)
DiT qwen_image_2.1-Q4_K_M.gguf (or Q6_K / Q8_0) this repo UnetLoaderGGUF β€” stock
VAE qwen_image_2.1_vae_bf16.safetensors (official) β€” VAELoader

Prefer no patch at all? Use a safetensors text encoder instead (e.g. bf16 or int8-convrot) with the stock CLIPLoader.

βš™οΈ Recommended sampler settings

25 steps, euler / simple. For images with text (signs, posters, labels), switch cfg partway through with two KSamplerAdvanced nodes β€” the first 15 steps at cfg 1 lock in composition and materials, the last 10 at cfg 3 with a negative prompt redraw the lettering:

add_noise steps cfg start_at_step end_at_step return_with_leftover_noise
1st enable 25 1.0 0 12–17 enable
2nd disable 25 3.0 12–17 25 disable

Example negative prompt: oversaturated, overexposed, gibberish text. Without text, a single KSampler at cfg 1.0 is fine.

Quantization

Standard ComfyUI-GGUF image-model rules β€” no per-layer sensitivity scan:

Tensors Q4_K_M Q6_K Q8_0
img_in, txt_in, time_text_embed, norm_out, proj_out, modulation BF16 (kept) BF16 (kept) BF16 (kept)
attn.to_v (Γ—32 blocks) Q6_K Q6_K Q8_0
attn.to_q / to_k / to_out, img_mlp.gate_up / out Q4_K Q6_K Q8_0
norms F32 F32 F32

How it was made (reproducible)

Converted from the official bf16 weights (ComfyUI layout, 265 tensors) with ComfyUI-GGUF's own tooling. Neither its convert.py nor its patched llama.cpp knew Qwen-Image, so both got a small addition β€” the patches are in tools/:

  • tools/convert-qwen_image.patch β€” adds a qwen_image template to convert.py (7 lines)
  • tools/llama.cpp-b3962-qwen_image.patch β€” ComfyUI-GGUF's lcpp.patch plus a qwen_image architecture and its keep-in-BF16 list
# ComfyUI-GGUF's tools/ with tools/convert-qwen_image.patch applied
python tools/convert.py --src qwen_image_2.1_bf16.safetensors --dst qwen_image_2.1-BF16.gguf
# llama.cpp at tag b3962 with tools/llama.cpp-b3962-qwen_image.patch applied
llama-quantize qwen_image_2.1-BF16.gguf qwen_image_2.1-Q4_K_M.gguf Q4_K_M   # also Q6_K, Q8_0

Verified

On ComfyUI 0.36.0 + ComfyUI-GGUF 6ea2651 (NVIDIA GPU):

  • Stock loader β€” ComfyUI started with only ComfyUI-GGUF enabled (every other custom node disabled): all three files load through UnetLoaderGGUF with no compatibility-mode warning and generate normally. In that test (one prompt, one seed), they give near-identical images; Q6_K and Q8_0 are almost indistinguishable, Q4_K_M differs in small details. Rendered Chinese text (shop sign and a handwritten price menu) came out correct in all three.
  • All-GGUF pipeline β€” Q4_K_M together with the Q4_K_M GGUF text encoder and the GGUF prompt rewriter.

Not tested on a Mac. Not tested: a numeric quality comparison against bf16.

Downloads last month
5,290
GGUF
Model size
7B params
Architecture
qwen_image
Hardware compatibility
Log In to add your hardware

4-bit

6-bit

8-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for pottokao/Qwen-Image-2.1-DiT-GGUF

Quantized
(65)
this model