NitroFusion2 for ComfyUI: int8, W6A8, W4A8
NitroFusion2 (Dar-Yen Chen and Yi-Zhe Song), the 1β2 step
distillation of Z-Image-Turbo, in three smaller formats that run in stock ComfyUI: no custom nodes, the normal
Load Diffusion Model node, and ComfyUI's own int8 / W6A8 / W4A8 kernels. They are about 1.7Γ faster per step
than bf16 on an RTX 4090 and half to a quarter of its size. All files are made from the publisher's
nf2-bf16.safetensors (sha256 a1e11422β¦).
Use the GPTQ files. They have the same size, layout and speed as the plain conversions and are closer to bf16 in every format. For 2 steps, each GPTQ file has a step-1 file (the publisher's de-distillation LoRA merged in before quantizing), which cuts the 2-step error by another 21β33%.
| Format | Size | 1 step, 4090 | Error, 1 step | Error, 2 steps with the LoRA | Error, 2 steps with the step-1 file |
|---|---|---|---|---|---|
| bf16 (original) | 12.31 GB | 0.50 s | 0 | 0 | β |
| int8 GPTQ | 6.18 GB | 0.29 s | 11.3% | 8.7% | 6.9% |
| W6A8 GPTQ | 5.02 GB | 0.30 s | 13.8% | 12.9% | 8.6% |
| W4A8 GPTQ | 3.49 GB | 0.29 s | 25.8% | 24.0% | 18.5% |
| int8, plain | 6.18 GB | 0.29 s | 13.4% | 9.3% | β |
| W6A8, plain | 5.02 GB | 0.30 s | 17.5% | 14.0% | β |
| W4A8, plain | 3.49 GB | 0.29 s | 33.6% | 26.0% | β |
Files, in diffusion_models/:
nitrofusion2_int8_convrot_gptq.safetensors,nitrofusion2_w6a8_gptq.safetensors,nitrofusion2_w4a8_gptq.safetensors: the GPTQ files, for 1 step and for step 2 of 2nitrofusion2_int8_convrot_gptq_step1.safetensors,nitrofusion2_w6a8_gptq_step1.safetensors,nitrofusion2_w4a8_gptq_step1.safetensors: their step-1 files (same size each), for step 1 of 2nitrofusion2_int8_convrot.safetensors,nitrofusion2_w6a8.safetensors,nitrofusion2_w4a8.safetensors: the plain conversions published first
Time is the sampler at 1024Γ1024 (ComfyUI master fb2b26fda, comfy-kitchen 0.2.41), measured on the plain files;
the GPTQ files use the same layout and kernels. Error is the relative error of the model's prediction against bf16
for the same input: 12 prompts Γ 4 noise samples at 1024Γ1024, the 2-step figures averaged over both steps. A one-step
prediction from pure noise reacts strongly to small weight changes, and nearly all of that error is fine texture: the
pictures keep bf16's composition, faces and text (below). Use the numbers to rank the files against each other, not
to compare with other models.
Use
- Put the files in
ComfyUI/models/diffusion_models/: one GPTQ file for 1 step; the same file and its_step1file for 2 steps. - The text encoder and VAE are Z-Image-Turbo's:
qwen_3_4b.safetensorsintext_encoders/andae.safetensorsinvae/. - Open a workflow from
example_workflows/(int8 selected; pick another file in the subgraph's loaders):- 1 step: the publisher's 1-step workflow.
- 2 steps with a step-1 file: the publisher's 2-step workflow with a second Load Diffusion Model for step 1 in place of the LoRA. No LoRA file is needed.
Settings as published: euler / simple, CFG 1; 1 step at shift 3; 2 steps at shift 6.
Why a step-1 file. The official 2-step workflow applies the de-distillation LoRA at 0.5 on step 1. On a quantized
file ComfyUI re-quantizes the LoRA-patched weights with fresh scales and random rounding, so step 1 loses the
calibration (the plain and GPTQ files end up nearly equal there). The step-1 file has the LoRA merged in before
quantizing and is calibrated on step 1 itself. Both files are loaded during a 2-step run (W4A8: 7.9 GB VRAM peak).
The LoRA route still works with every file: the publisher's
2-step workflow with
nf2-dedistill-lora.safetensors
in loras/. The plain 1-step workflow is there too.
Pictures
One step with the GPTQ files, seed 42, 1024Γ1024, the same prompt and noise for every file (top: bf16, int8; bottom:
W6A8, W4A8). The plain files' version of each sheet is in assets/ (the same name without _gptq).
How they were made
ComfyUI's own quantization formats (comfy-kitchen):
- What is quantized: all 202 linear layers of the 30 main blocks and the 4 refiner blocks (attention qkv and out, the three feed-forward layers, adaLN): 6.142B of the model's 6.155B weights. Embedders, norms and the final layer stay bf16.
- int8: ConvRot (block Hadamard rotation of 256), one scale per row, 8-bit activations.
- W6A8 / W4A8: 6-bit / 4-bit weights in the rotated basis with an FP8 scale per group of 16, 8-bit activations.
- Plain files: comfy-kitchen's own conversion, no calibration.
- GPTQ files: the rotation and rounding in fp32, a search over each group's FP8 scale, then GPTQ in the rotated basis (act order, damping 0.01), every weight snapped to the exact value the kernel decodes. Calibration: 48 prompts that are not among the evaluation prompts, at about one megapixel, with every model call of both official modes.
- Step-1 files: the de-distillation LoRA merged into bf16 at 0.5 with ComfyUI's own patch code (the merged model matches bf16 + LoRA exactly), then the same GPTQ on statistics of step 1 alone.
License and credit
Apache-2.0, as the original: LICENSE, changes listed in NOTICE. The model is NitroFusion2 by Dar-Yen Chen and Yi-Zhe Song, built on Z-Image-Turbo by Tongyi-MAI; the workflows are the publisher's; the step-1 files contain the publisher's de-distillation LoRA, merged. Paper: arXiv 2611.05648.
@article{chen2026nitrofusion2,
title={NitroFusion2: Bringing Adversarial Loss to the Text Stream of Multimodal Diffusion Transformers},
author={Chen, Dar-Yen and Song, Yi-Zhe},
journal={arXiv preprint arXiv:2611.05648},
year={2026}
}



