Load Experimental W4A8 Diffusion Model
MiniMax H3 from 40GB down to 12.5GB — W4A8 with the fine print
- MODEL
MiniMax H3 is a 33B omni-modal video model, and that bigness is the problem. Its pruned BF16 single-file checkpoint is 40.23 GB - a day-one thread had people immediately asking whether it'd fit on 8GB cards. This node doesn't make it fit on a 3060, but it does hand you a 12.54 GB version of the model, and that's the difference between needing a 24GB card plus offloading gymnastics and just running the thing. That's what Load Experimental W4A8 Diffusion Model is for: it's the loader that reads MiniMax H3 checkpoints quantized to the asym_w4a8_int8 layout this pack produces.
The name's "experimental" on purpose. W4A8 isn't a ComfyUI core format yet - the whole integration rides on an open experimental PR (ComfyUI #15308, plus comfy-kitchen PR #90). Read that as "lossy and not fully settled," not "broken." The README says it plainly: keep your original BF16 checkpoint and compare important outputs before you trust the converted one for anything serious. Hands, faces, lip-sync, fine motion - all candidates for quantization drift.
How it works
"W4A8" means the weights are 4-bit and the activations stay 8-bit. That asymmetry matters more than it sounds: W4A4 is the format that's mostly marketing material on Nvidia's datasheets, because nothing is really trained for it and quality tanks. Keeping activations at INT8 is what makes this usable at all. The converter (a separate script in the pack, convert_minimax_h3.py) takes a pruned BF16 MiniMax H3 single-file state dict and quantizes the 200 main attention and MLP weights - attn.qkv_proj, attn.out_proj, mlp.fc1, mlp.fc2 across the 50 blocks - into packed 4-bit, group-size-16 weights with a learned calibration-free 16-value codebook and FP8 scales. Everything else stays BF16, which is why the files are called w4a8_mixed rather than just "4-bit." On load, the node registers the AsymW4A8Int8Layout with ComfyUI's quant ops and swaps in a custom Linear that unpacks those tensors and runs an INT8 GEMM on a compiled CUDA path from comfy-kitchen.
The input side is gloriously simple, because there's exactly one thing to set:
unet_name- a dropdown of files inComfyUI/models/diffusion_models/(the pack also acceptsmodels/unet/).
Output is a single MODEL, and here's the nice part: you don't rebuild your workflow. Take an existing MiniMax H3 Ref2VA or FL2VA graph, delete the standard diffusion-model loader, drop this node in, and wire its MODEL where the old one went. VAE, text encoder, conditioning, sampler, reference inputs - all stay put. Don't feed this checkpoint to the built-in Load Diffusion Model node; it doesn't know the format and will throw KeyError: 'asym_w4a8_int8'.
Installing
This is where the pack is fiddly, and you can't skip it. Install via ComfyUI Manager (search "ComfyUI-W4A8-Loader") or:
cd ComfyUI/custom_nodes
git clone https://github.com/starsFriday/ComfyUI-W4A8-Loader.git
cd ComfyUI-W4A8-Loader
python install_comfy_kitchen_w4a8.py
That last command isn't optional. The pack doesn't ship comfy-kitchen - it fetches pinned commits, compiles them with nanobind/cmake/ninja, and force-installs the wheel into your Python env, then runs a real CUDA op test. Which means your machine needs to qualify: Linux, NVIDIA, SM 80 or newer, PyTorch CUDA 12.8+, and a CUDA toolkit with nvcc (set CUDA_HOME if it's not found). Windows, AMD/ROCm, Apple Silicon, and CPU-only are all explicitly unsupported. The repo doesn't download weights - grab the preconverted minimax_h3_ref2va_pruned_w4a8_mixed.safetensors or minimax_h3_fl2va_pruned_w4a8_mixed.safetensors from starsfriday/MiniMax-H3-w4a8 and drop it in models/diffusion_models/. Restart ComfyUI afterward.
Where people get burned
AsymW4A8Int8Layout is unavailable- comfy-kitchen's W4A8 build isn't in the env ComfyUI is actually running. Re-run the installer andpython install_comfy_kitchen_w4a8.py --check.- Model missing from the dropdown - wrong folder, or you didn't refresh ComfyUI.
- It stopped working after an update - updating comfy-kitchen from PyPI can silently replace the experimental build. Rerun the installer.
One last thing the README won't say: if you're in the US, EU, UK, or South Korea, check the MiniMax H3 Community License before downloading the weights at all - it geofences those regions out, and the quantization here doesn't change whose grant you're under. It's an independent community integration, not an official MiniMax or ComfyUI release.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| unet_name | COMBO | 0 options: |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |