Load Checkpoint (Quantized)
Load a quantized checkpoint without knowing which layer is which format
- MODEL
- CLIP
- VAE
Checkpoints are the old-school way to ship a model: diffusion transformer, text encoder, and VAE all in one file. This node is the QuantOps answer to loading those combined files when the weights inside are quantized in silveroxides' layouts - and the useful part is that it figures out the per-layer formats itself, so you don't need to know that layer 12 is int8 and layer 40 is fp8-blockwise. If the file came from the convert_to_quant toolchain, this loader reads it and hands you the familiar triple output.
Why would you reach for it over the separate loaders? Because your file is a checkpoint. If the thing you downloaded is one big .safetensors with the diffusion model, CLIP, and VAE inside, you use this node (or its Simple sibling) the same way you'd use the stock Load Checkpoint. If instead you're working with split files - a diffusion_models UNET plus a text_encoders file - you want Load Diffusion Model (Quantized) and Load CLIP (Quantized) separately. Different file layout, different node.
How it works
The loader reads the state dict, then does three quiet things. It cleans up legacy naming - converting old scale_weight tensors to the weight_scale convention the current ops expect. It detects the quantization format of each layer, either from the auto scan or whatever you force in the dropdown. And it packages that as quantization metadata in the model options, so ComfyUI's model factory builds the right mixed-precision operations and attaches the pack's custom kernels. The kernel_backend choice (pytorch vs triton) then decides which int8 matmul path runs.
The inputs that matter
- ckpt_name - the combined checkpoint from your
checkpointsfolder. - quant_format -
autois the sensible default; the dropdown also hasint8,int8_tensorwise, the fp8 variants (float8_e4m3fn, blockwise, rowwise),mxfp8,hybrid_mxfp8, andnvfp4if you ever need to force one. - kernel_backend -
pytorchortriton; triton is the fast int8 path but carries the setup requirements below. - disable_dynamic and low_memory - the pack's shared loading toggles.
Outputs are MODEL, CLIP, and VAE - the same triple the stock Load Checkpoint gives you, so your KSampler and VAE decode wiring doesn't change at all.
Installing it
ComfyUI Manager → search "ComfyUI-QuantOps", or:
cd ComfyUI/custom_nodes
git clone https://github.com/silveroxides/ComfyUI-QuantOps
Restart and let requirements.txt install unifiedefficientloader>=0.5.2. Quantized checkpoints live on silveroxides' HuggingFace.
The caveats
The int8 fast path is a setup list, not a single switch: on an RTX 30-series card, int8_tensorwise wants torch 2.10+cu130 or newer, the matching triton-windows wheel, silveroxides' pre-compiled comfy-kitchen int8 wheel, and the --enable-triton-backend launch flag. Skip any step and you'll get fallbacks or backend errors. And the pack itself is deprecated - the README opens by saying int8 ConvRot support is now built into ComfyUI, the author has stopped maintaining, and issue reports get short shrift. If you're on a recent ComfyUI, check whether the native checkpoint loader already handles your file before pulling this pack in; this node's remaining value is for older quantized checkpoints made with the convert_to_quant toolchain.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| ckpt_name | COMBO | 0 options: | |
| quant_format | COMBO | 9 options: auto, int8, int8_tensorwise, float8_e4m3fn, float8_e4m3fn_blockwise, float8_e4m3fn_rowwise, +3 | |
| kernel_backend | COMBO | 2 options: pytorch, triton | |
| disable_dynamic | BOOLEAN | false | — |
| low_memory | BOOLEAN | false | Use fast and efficient low impact loading of model. Set to False to use comfy's default loading. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| VAE | VAE | — |