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.
Q6_K, 8 steps, 1024x1024, one shot per prompt, no cherry-picking.
Files
| File | Size | Peak VRAM, all on GPU | Notes |
|---|---|---|---|
qwen-image-2.1-turbo-F16.gguf | 14.2 GB | does not fit 12 GiB | reference, and the source for your own quants |
qwen-image-2.1-turbo-Q8_0.gguf | 7.6 GB | does not fit 12 GiB | near identical to F16. On 12 GB, let auto-fit place it (8.0 GiB peak) |
qwen-image-2.1-turbo-Q6_K.gguf | 5.9 GB | 10.7 GiB | recommended for 12 GB cards. Near identical to F16 |
qwen-image-2.1-turbo-Q5_0.gguf | 4.9 GB | 9.9 GiB | near identical to F16 |
qwen-image-2.1-turbo-Q4_K_S.gguf | 4.1 GB | 9.0 GiB | recommended 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.gguf | 3.1 GB | 8.2 GiB | still clean, but the composition drifts away from F16 |
qwen-image-2.1-turbo-Q2_K.gguf | 2.4 GB | 7.5 GiB | visible 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.
You also need
- Text encoder: any Qwen3-VL-8B-Instruct GGUF, e.g.
Qwen3-VL-8B-Instruct-UD-Q4_K_XL.gguffrom unsloth/Qwen3-VL-8B-Instruct-GGUF (used for all numbers here) - VAE:
vae/qwen_image_2.1_vae_bf16.safetensorsfrom Comfy-Org/Qwen-Image-2.1 - For editing only:
mmproj-F16.gguffrom 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
| Quant | Budget | Peak VRAM | Sampling |
|---|---|---|---|
| Q4_K | --max-vram 8 | 4.7 GiB | 28.6 s |
| Q4_K | --max-vram 6 | 4.6 GiB | 30.8 s |
| Q3_K | --max-vram 6 | 4.5 GiB | 23.7 s |
| Q2_K | --max-vram 6 | 4.4 GiB | 27.7 s |
| Q2_K | --max-vram 4 | 4.1 GiB | 30.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)
| Quant | Placement | Sampling | Total (incl. loading) |
|---|---|---|---|
| F16 | auto-fit | 66.3 s | 93 s |
| Q8_0 | auto-fit | 34.6 s | 61 s |
| Q6_K | all on GPU | 33.3 s | 55 s |
| Q5_0 | all on GPU | 29.6 s | 47 s |
| Q4_K | all on GPU | 28.4 s | 46 s |
| Q3_K | all on GPU | 28.5 s | 50 s |
| Q2_K | all on GPU | 31.5 s | 47 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 查看