lite-infer/z-image-turbo-nunchaku-lite-int4_r32-bnb4-text-encoder
Z-Image-Turbo Nunchaku Lite INT4 r32
Diffusers-loadable conversion of:
- Base model:
Tongyi-MAI/Z-Image-Turbo - Source repo:
nunchaku-ai/nunchaku-z-image-turbo - Source checkpoint:
svdq-int4_r32-z-image-turbo.safetensors
The transformer uses quant_method: nunchaku_lite, INT4 SVDQ, group size 64, rank 32, and 238 quantized targets. Packed fused QKV and SwiGLU projections are split in logical layout into the stock Z-Image graph. The Qwen3 text encoder is packaged with BitsAndBytes 4-bit NF4.
Benchmark
RTX 5090, 1024×1024, 9 scheduler steps (8 DiT forwards), guidance scale 0, seed 42, one warmup and three measured runs. VRAM is peak total device usage sampled through nvidia-smi. The native row uses the base model's BF16 Qwen3 encoder.
Output Comparison
Both images use the same prompt, seed, scheduler, resolution, and step count. Native Nunchaku 1.x selects NVFP4 kernels on Blackwell, so the comparison uses native NVFP4 as a visual reference only (cross-precision MAE 23.37, RMSE 30.81).
Run
Requires the Hugging Face kernels package and an NVIDIA Turing, Ampere, Ada, or Blackwell (not Hopper) GPU.
import torch
from diffusers import ZImagePipeline
pipe = ZImagePipeline.from_pretrained(
"lite-infer/z-image-turbo-nunchaku-lite-int4_r32-bnb4-text-encoder",
torch_dtype=torch.bfloat16,
).to("cuda")
image = pipe(
prompt='A cinematic portrait of a red fox in a misty forest at sunrise, detailed fur, volumetric light',
height=1024,
width=1024,
num_inference_steps=9,
guidance_scale=0.0,
generator=torch.Generator("cuda").manual_seed(42),
).images[0]
image.save("output.png")