Downloads · 30 days
78
53% of all-time downloads
JoaoZaokk/Z-Image-De-Turbo-W4A4-ConvRot
Z-Image-De-Turbo-W4A4-ConvRot is a text-to-image model from JoaoZaokk. Use it when you need an image from a text prompt. It is set up for diffusion-single-file. The card lists the license as apache-2.0.
Native convrotw4a4 and mixed 4/8-bit builds of ostris/Z-Image-De-Turbo, the de-distilled fine-tune of Z-Image Turbo that people train LoRAs on. ComfyUI's own quantization format — stock UNETLoader, no custom node.
Downloads · 30 days
78
53% of all-time downloads
All-time downloads
148
Public
Repo size
6.7 GB
Likes
2
Public
Click a slice to open those files.
.safetensors6.7 GB · 100%
From the Hugging Face model README
Native convrot_w4a4 and mixed 4/8-bit builds of ostris/Z-Image-De-Turbo, the de-distilled
fine-tune of Z-Image Turbo that people train LoRAs on. ComfyUI's own quantization format — stock
UNETLoader, no custom node.
11.46 GiB → 3.06 GiB, and 0.911 → 0.348 s/step on an RTX 3090 at 1024×1024. Thirty-six renders across six prompts and two seeds, none broken.
Method, tools and the full measurement log: https://github.com/JoaoZaokk/comfy-quant-bench
| file | format | GiB | median per-layer error | latent divergence | s/step |
|---|---|---|---|---|---|
zimage_deturbo_w4a4.safetensors | 170 × convrot_w4a4 | 3.06 | 0.1211 | 0.4126 | 0.348 |
zimage_deturbo_mixed.safetensors | 116 × 4-bit + 54 × 8-bit | 3.17 | — | 0.4325 | 0.398 |
Source: 11.46 GiB BF16, 6.15 B parameters. Eight steps, 1024×1024, euler/simple, cfg 1.0.
err_bf16 median 0.0019 <- the floor. This much is not quantization.
err_w4a4 median 0.1211
err_w4a8 median 0.0384
Dispatch counted with the weights on the card: 170 quantized modules, 8/8 quantized forwards,
0 dequantize, convrot_linear_dtype=int4 on comfy_kitchen.backends.cuda.

| BF16 reference | W4A4 | mixed |
|---|---|---|
![]() | ![]() | ![]() |
paired against zimage_deturbo_w4a4, run by run
zimage_deturbo_mixed mean delta +0.0199 wins 7/12
Seven of twelve is a coin flip, and the tool that produced it prints Split decisions, i.e. not separated at 12 run(s) rather than a winner. So the mixed build costs 0.11 GiB and 14% more time
per step for no measurable gain here.
That is the interesting part, because the same recipe does earn its keep on the parent model.
Run on the official Tongyi-MAI/Z-Image-Turbo at the identical threshold, the mixed build wins
11 of 12 paired runs. Same converter, same --promote-error 0.15, same six prompts, same two
seeds, same card — a model and its own de-distilled fine-tune disagree about whether promoting
~55 layers to 8 bits buys anything.
Nothing about the per-layer error predicted that: the two checkpoints measure 0.1228 and 0.1211, within 1.4% of each other. Whatever separates them is not in that number.
One more reason not to read too much into the means: the between-run spread inside a single arm is 0.37–0.42 on this checkpoint, which is larger than the 0.02 gap between the arm means. Always read the paired row.
Drop into ComfyUI/models/diffusion_models/ and load with UNETLoader.
text encoder qwen_3_4b.safetensors
VAE ae.safetensors
sampler euler / simple, cfg 1.0
De-Turbo is not distilled — it exists precisely to undo the turbo distillation so LoRA training behaves. The 8-step / cfg 1.0 settings above are what these measurements used, for comparability with the Turbo builds; for actual generation this model wants more steps and real cfg.
A quantized qwen_3_4b text encoder is published separately at
JoaoZaokk/Qwen3-4B-W4A4-ConvRot.
beyond-reality-zimage-v2 used, so the family stays internally
comparable; a fresh calibration would move the medians a few percent.