Nodes/ComfyUI-INT-Crush/OrbitQuant UNet Loader (INT-Crush)
ComfyUI Node

OrbitQuant UNet Loader (INT-Crush)

The one-input loader that will tell you off

By ThunderFun·Created 3 months ago·Updated 10 days ago· 1
OrbitQuant UNet Loader (INT-Crush)
    • MODEL
    unet_name

    The OrbitQuant UNet Loader (INT-Crush) is the research flavor of the pack. Where the INT4 and INT8 loaders handle the plain INT-Crush format, this node loads OrbitQuant models - a different quantization scheme built on a Lloyd-Max codebook plus an RPBH rotation. It's the "no calibration data needed" pitch: most quantization methods want you to run a pile of real prompts through the model to measure activation ranges first, and OrbitQuant is designed to skip that step.

    Here's the part that makes this node memorable: it has exactly one input, and it will refuse to load anything that isn't OrbitQuant. unet_name is the whole API. No rot_size, no kernel_backend, no strength dials. Drop a plain INT-Crush or regular checkpoint in and it raises a hard error telling you to use the INT4 or INT8 loader instead. That's not a bug - it's the node being honest, because the two formats genuinely can't share kernels.

    How it works

    OrbitQuant layers aren't compatible with the INT8 GEMM kernels the other loaders use; the codebook scheme is different math. So this loader validates the file's metadata (format_version 4 with int_crush.orbitquant=true), pre-loads the global RPBH/codebook tensors, and then runs each layer through a fused Triton codebook GEMM for small batches, or dequantizes to float and hits cuBLAS for large ones. The RPBH rotation uses a Triton kernel with a PyTorch fallback. This is also why the kernel_backend toggle that the other loaders have doesn't apply here - the OrbitQuant path ignores it entirely.

    In practice, be honest about what you're getting into: this is bleeding edge with essentially no community footprint yet. There are almost no OrbitQuant-quantized models floating around to load, and the pack's README openly calls itself "not thoroughly tested." You'll mostly hit this node because a workflow template references it, or because you went through the converter's OrbitQuant option yourself.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/ThunderFun/ComfyUI-INT-Crush
    

    Restart ComfyUI, or install via ComfyUI Manager (search "ComfyUI-INT-Crush"). No pip step. Triton is strongly recommended here - the RPBH rotation and codebook kernels want it, and without it you fall back to PyTorch, which is slow. Note that Triton on Windows remains the classic pain point; that hasn't changed for this pack.

    Where people get burned

    • The wrong file is the #1 failure mode. If the dropdown file isn't OrbitQuant, you get a hard ValueError. Read it: it tells you to use the INT4/INT8 loader for other INT-Crush formats, and it's right.
    • Slow OrbitQuant inference usually means Triton isn't available and you're on the PyTorch fallback. Install Triton or accept the crawl.
    • Untested territory. No reddit thread, no wiki, no best-practice writeups exist for this format yet - because almost nobody is running it. Back up a working fp16/INT8 workflow before you invest an afternoon here.
    Categoryloaders/INT-Crush

    Inputs (1)

    NameTypeDefaultDescription
    unet_nameCOMBO0 options:

    Outputs (1)

    NameTypeDescription
    MODELMODEL