INT8 UNet Loader (INT-Crush)
Half the memory, none of the drama
- MODEL
The INT8 UNet Loader (INT-Crush) is the calm sibling of the INT4 loader in the same pack. Same family, same inputs, roughly the same code path - but at 8 bits instead of 4, which is a genuinely different trade. It gets you about 2× compression over fp16 instead of 4×, and in exchange you keep most of the quality you'd get at full precision.
The community's quantization ladder has been pretty consistent on this: 8-bit is the tier where the quality loss is close to invisible, and people's honest advice for fp8 and GGUF-Q8 is basically "just use it." Four-bit is where you start to notice. So the rule of thumb for choosing between this and the INT4 loader is simple: if INT8 fits on your card, use INT8. The INT4 loader exists for the card that can't fit INT8.
How it works
INT-Crush INT8 stores each weight as a signed int8 with an fp16 scale per output channel, plus an optional permutation. The INT8 loader reads the same safetensors metadata to auto-detect rot_size (format version 1), and it skips the whole unpack step that the INT4 path has to deal with - no two-weights-per-byte trick, no W4A16 fallback. The Hadamard rotation machinery is the same: weights are pre-rotated at quantization time, activations are quantized on the fly, and the loader picks a backend from auto: comfy-kitchen CUDA if your ComfyUI has it, Triton otherwise, PyTorch as the always-available slow floor. Padded layers get detected and fixed automatically.
The inputs that matter
unet_name- the INT8-quantized.safetensorsfrommodels/diffusion_models/.rot_size- default 256, auto-detected from metadata. Only touch it when a file has no metadata and output looks wrong.kernel_backend-auto/triton/cuda/pytorch. Leave it onauto.
Output: MODEL, wired into KSampler or the INT-Crush LoRA loader.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/ThunderFun/ComfyUI-INT-Crush
Restart ComfyUI, or install via ComfyUI Manager by searching "ComfyUI-INT-Crush". Same story as the INT4 loader: no pip step, but the fast CUDA path needs comfy_kitchen from a recent ComfyUI, so keep ComfyUI updated or you'll silently run on the slow PyTorch fallback. Your model file has to be quantized to INT-Crush INT8 (--int-bits 8 in the companion converter) - this node won't load a regular checkpoint, a GGUF file, or an INT4-Crush file correctly.
Where people get burned
- Wrong file, silently. Feed it an INT4-Crush or OrbitQuant model and it may load without complaint and produce garbage. Check what your file actually is before wiring it up.
- Metadata mismatch. If the file lacks
int_crushmetadata, the loader falls back to therot_sizeyou set and warns it may be wrong. If output degrades, setrot_sizeto match the converter. - Slow generation usually means you're on the PyTorch fallback - update ComfyUI or install Triton.
- Same honesty note as the rest of this pack: the README says the code is "not thoroughly tested" and was built with AI assistance. It's early-stage; verify outputs on a new install.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| unet_name | COMBO | 0 options: | |
| rot_size | COMBO | 256 | 10 options: 0, 16, 32, 64, 128, 256, +4 |
| kernel_backendopt | COMBO | auto | 4 options: auto, triton, cuda, pytorch |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |