Qwen-Image-2.1-Turbo-GGUF

DogukanUrker/Qwen-Image-2.1-Turbo-GGUF

作者
DogukanUrker
任务
图像生成
下载量
377,417
点赞数
8
趋势分
0
许可证
other
收录时间
2026/11/4

license: other license_name: qwen-research license_link: LICENSE base_model: Qwen/Qwen-Image-2.1-Turbo pipeline_tag: text-to-image library_name: gguf tags:

  • qwen
  • qwen-image
  • gguf
  • stable-diffusion.cpp
  • text-to-image
  • image-editing

Qwen-Image-2.1-Turbo GGUF

GGUF quants of Qwen/Qwen-Image-2.1-Turbo, the 8-step distilled Qwen-Image-2.1 (7B DiT). Converted with stable-diffusion.cpp from the official diffusers weights on release day. Every quant is tested on a single RTX 3060 12GB.

These are made for stable-diffusion.cpp (sd-cli, sd-server, and anything built on it, like llama-swap). They are not ComfyUI-GGUF files. Using ComfyUI? See the section at the bottom.

samples

Q6_K, 8 steps, 1024x1024, one shot per prompt, no cherry-picking.

Files

FileSizePeak VRAM, all on GPUNotes
qwen-image-2.1-turbo-F16.gguf14.2 GBdoes not fit 12 GiBreference, and the source for your own quants
qwen-image-2.1-turbo-Q8_0.gguf7.6 GBdoes not fit 12 GiBnear identical to F16. On 12 GB, let auto-fit place it (8.0 GiB peak)
qwen-image-2.1-turbo-Q6_K.gguf5.9 GB10.7 GiBrecommended for 12 GB cards. Near identical to F16
qwen-image-2.1-turbo-Q5_0.gguf4.9 GB9.9 GiBnear identical to F16
qwen-image-2.1-turbo-Q4_K_S.gguf4.1 GB9.0 GiBrecommended for 6-8 GB cards (see low VRAM). Same layout and text as F16, minor detail changes
qwen-image-2.1-turbo-Q3_K_S.gguf3.1 GB8.2 GiBstill clean, but the composition drifts away from F16
qwen-image-2.1-turbo-Q2_K.gguf2.4 GB7.5 GiBvisible quality loss: softer, color shift, wobbly letters. Last resort

Q4_K_S and Q3_K_S are uniform k-quants (every quantized tensor is Q4_K or Q3_K). qwen-image-2.1-turbo-Q4_K.gguf and qwen-image-2.1-turbo-Q3_K.gguf are the exact same files under their old names, kept so existing links keep working.

Peak VRAM is the whole pipeline on the GPU (--auto-fit off): diffusion model, Qwen3-VL-8B UD-Q4_K_XL text encoder and VAE, 1024x1024, --diffusion-fa --vae-tiling. Measured by polling nvidia-smi.

quant comparison

You also need

  • Text encoder: any Qwen3-VL-8B-Instruct GGUF, e.g. Qwen3-VL-8B-Instruct-UD-Q4_K_XL.gguf from unsloth/Qwen3-VL-8B-Instruct-GGUF (used for all numbers here)
  • VAE: vae/qwen_image_2.1_vae_bf16.safetensors from Comfy-Org/Qwen-Image-2.1
  • For editing only: mmproj-F16.gguf from the same text encoder repo

Tested with stable-diffusion.cpp f0aac52. Any build with Qwen-Image-2.1 support should work (the first tests used a1ded76).

Run with stable-diffusion.cpp

The important part is the turbo schedule. It is saved in the official model_index.json as sample_sigmas. Pass it with --sigmas (plus a trailing 0.0), with 8 steps, cfg 1.0 and euler. Without it you get the default schedule, which is not what the model was distilled for.

sd-cli \
  --diffusion-model qwen-image-2.1-turbo-Q6_K.gguf \
  --vae qwen_image_2.1_vae_bf16.safetensors \
  --llm Qwen3-VL-8B-Instruct-UD-Q4_K_XL.gguf \
  --sigmas "1.0,0.978453,0.95418,0.926626,0.89508,0.845148,0.704534,0.414568,0.0" \
  --steps 8 --cfg-scale 1.0 --sampling-method euler \
  --diffusion-fa --vae-tiling \
  -W 1024 -H 1024 \
  -p "a cozy coffee shop storefront at dusk, neon sign that reads \"HUB CAFE\", rain on the street, cinematic photo" \
  -o out.png

Newer builds print that --diffusion-fa is deprecated (--flash-attn off,diffusion=on is the new form). It still works.

For editing, add --llm_vision mmproj-F16.gguf and -r input.png.

Which placement for your card

12 GB (Q6_K or smaller), fastest: put everything on the GPU.

--auto-fit off --backend diffusion=CUDA0,te=CUDA0,vae=CUDA0

Recent sd.cpp builds turn auto-fit on by default and it overrides --backend, so --auto-fit off is required here.

6-8 GB: let auto-fit keep the weights in system RAM and use the GPU only for compute.

--auto-fit on --max-vram 6
QuantBudgetPeak VRAMSampling
Q4_K--max-vram 84.7 GiB28.6 s
Q4_K--max-vram 64.6 GiB30.8 s
Q3_K--max-vram 64.5 GiB23.7 s
Q2_K--max-vram 64.4 GiB27.7 s
Q2_K--max-vram 44.1 GiB30.4 s

Sampling is about as fast as all on the GPU (28-33 s). The cost is system RAM: the text encoder (4.9 GB), the VAE and the diffusion weights all live there, so plan for ~10 GB of free RAM with Q4_K. These budgets were measured on the 12 GB card, so a real 6 GB card should behave the same, but it is not tested. 4 GB cards are borderline: the peak was just over 4 GiB.

Q8_0 / F16 on 12 GB: leave auto-fit on (the default). Q8_0 keeps the diffusion weights on the GPU (8.0 GiB peak, 34.6 s). F16 streams them from disk (11.0 GiB peak, 66 s).

Keep --vae-tiling everywhere. On a 16 GB RAM machine do not add --offload-to-cpu: it asks for a lot of pinned host memory and fails.

llama-swap / sd-server

Serve it behind an OpenAI-style POST /v1/images/generations endpoint:

"qwen-image-2.1-turbo":
    proxy: http://127.0.0.1:${PORT}
    checkEndpoint: /
    cmd: |
        sd-server
        --listen-ip 127.0.0.1 --listen-port ${PORT}
        --diffusion-model /sd/qwen-image-2.1-turbo-Q6_K.gguf
        --vae /sd/qwen_image_2.1_vae_bf16.safetensors
        --llm /sd/Qwen3-VL-8B-Instruct-UD-Q4_K_XL.gguf
        --auto-fit off --backend diffusion=CUDA0,te=CUDA0,vae=CUDA0
        --sigmas 1.0,0.978453,0.95418,0.926626,0.89508,0.845148,0.704534,0.414568,0.0
        --steps 8 --cfg-scale 1.0 --sampling-method euler
        -W 1024 -H 1024 --diffusion-fa --vae-tiling

Two gotchas: the proxy line must use 127.0.0.1, because localhost can resolve to IPv6 while sd-server listens on IPv4 only. And checkEndpoint: / makes llama-swap wait until the model has loaded, which takes ~15-25 s.

Speed (RTX 3060 12GB, 1024x1024, 8 steps, sd-cli)

QuantPlacementSamplingTotal (incl. loading)
F16auto-fit66.3 s93 s
Q8_0auto-fit34.6 s61 s
Q6_Kall on GPU33.3 s55 s
Q5_0all on GPU29.6 s47 s
Q4_Kall on GPU28.4 s46 s
Q3_Kall on GPU28.5 s50 s
Q2_Kall on GPU31.5 s47 s

Below Q5_0, smaller quants save memory, not time. With sd-server the model stays loaded, so a warm request is roughly the sampling time plus a few seconds for the text encoder and VAE.

Sizes and limits

  • 1024x1024, 1344x768 and 1152x864 all fit on Q6_K, all on the GPU.
  • 1536x1536 worked on Q4_K (85 s, 10.5 GB peak) but showed some colour banding. 2048 is not tested here.
  • Big typography (signs, posters, labels) is reliable. Very small text, like UI labels on a screen, comes out garbled at 8 steps.
  • The MLP weights keep the diffusers layout (img_mlp.gate_layer + img_mlp.proj). stable-diffusion.cpp loads this directly, no fusing needed.

Using ComfyUI?

Check out NidAll/Turbo-INT8-ConvRot-for-Qwen-Image-2.1, a native INT8 ConvRot quant of the same Turbo transformer for ComfyUI.

License

Same as the original model: Qwen Research License.

If these quants helped you, a like on the repo helps others find them.

内容来源:Hugging Face 模型卡

在 Hugging Face 查看