Wan2.1 HuMo 14B β INT8 + ConvRot (ComfyUI)
INT8 quantization of HuMo 14B (human-centric video
generation built on Wan2.1-T2V-14B) for ComfyUI's native int8_tensorwise quantized-weight path
(comfy-kitchen). 17.35 GB vs 34.1 GB fp16.
Why INT8 + ConvRot instead of fp8
ConvRot applies a QuaRot-style block-Hadamard rotation (groupsize 256) to weights offline and to activations online, spreading outliers so per-channel INT8 stays accurate:
| format | weight reconstruction error |
|---|---|
| int8 + ConvRot (this repo) | 0.88% mean, 0.95% max |
| plain int8 per-channel | 1β3% |
| fp8 e4m3 | ~2.6% (mantissa floor) |
INT8 tensor-core GEMMs are also at least as fast as fp8 β in my testing this checkpoint runs noticeably faster than the fp8 equivalent in ComfyUI, with no visible quality loss vs fp16. The runtime picks CUTLASS or cuBLAS int8 kernels per-GPU automatically, so the same file works on Ampere/Ada/Blackwell.
What's quantized
All 560 per-token block linears across the 40 transformer blocks:
self_attn.{q,k,v,o}, cross_attn.{q,k,v,o}, audio_cross_attn.{q,k,v,o}, ffn.{0,2} β
int8 [N,K] weights with per-channel float32 [N,1] scales and an embedded per-layer
comfy_quant config (format: int8_tensorwise, convrot: true, convrot_groupsize: 256).
Kept in fp16 (small-M / quality-sensitive): patch_embedding, text_embedding,
time_embedding, time_projection, audio_proj.*, head.
Per-layer relative error: mean 0.878%, min 0.808%, max 0.952%; cosine similarity β₯ 0.99995 on every layer (verified against the fp16 source at conversion time).
Usage
Drop into ComfyUI/models/diffusion_models/ and load with the standard Load Diffusion Model
node β quantization is detected from the embedded layer configs, no special loader needed.
Requires a ComfyUI version with comfy-kitchen int8 support. Use exactly as you would the fp16
HuMo model (same workflows, audio conditioning, etc.).
Conversion
Converted with comfy-model-tools
quant_int8_convrot.py: fp32 upcast β block-Hadamard rotation (via comfy_kitchen's own kernels,
so stored weights match the runtime exactly) β per-channel absmax int8, with per-layer
reconstruction verification.
Tools used:
- comfy-model-tools β the quantization script
- comfy-kitchen β Hadamard rotation / int8 kernels (the same code that runs at inference time)
- The conversion was planned, executed, and format-verified with the help of Claude (Claude Fable 5, via Claude Code)
Related quantization tooling: ComfyUI-QuantOps, convert_to_quant
Source: Wan2_1-HuMo-14B_fp16.safetensors (ComfyUI repack of HuMo 14B).
Credits
Model tree for drozbay/Wan2.1-HuMo-14B-int8-convrot
Base model
bytedance-research/HuMo