Nodes/ComfyUI-INT4-Fast/Load Diffusion Model INT4 (W4A4)
ComfyUI Node

Load Diffusion Model INT4 (W4A4)

The INT4 (W4A4) loader that makes it fit

By viralvfx·Created 2 months ago·Updated 2 months ago· 38
Load Diffusion Model INT4 (W4A4)
  • pre_lora
  • MODEL
unet_name
weight_dtype
model_type
on_the_fly_quantizationfalse
enable_convrottrue
lora_modeNone

This is the node that got people on 6GB RTX 3060s running Krea 2 Turbo at 1024x1024, in about 17 seconds a generation. That's the pitch, and it's not marketing: the author demoed it on a 6GB card in the July 2026 launch thread. If a model you want is sitting in diffusion_models but refuses to fit, this loader is a real answer - not a GGUF Q3 fallback, but native 4-bit weight and 4-bit activation (W4A4) compute.

It's a drop-in replacement for the standard Load Diffusion Model node. Same job, one MODEL output you wire into your sampler exactly as usual. The difference is what happens on load: every layer gets squeezed to 4-bit, with a Hadamard rotation (ConvRot) applied first so the quantization error doesn't concentrate in the outliers that ruin output quality. The matmuls then run on GPU Tensor Cores at 4-bit speed. It's the INT4 cousin of the INT8-ConvRot support that went native in ComfyUI around June 2026, built on BobJohnson24's ComfyUI-INT8-Fast.

The part that actually matters: mixed precision

Quantizing everything to 4-bit produces ugly results, because some layers - patch projections, embedders, the first and last blocks - are hypersensitive. So model_type isn't decoration. It tells the loader which layer names to leave out of INT4, and those stay in INT8 on Triton execution paths instead. For krea2, for instance, that's the first/last/tmlp/tproj/txtfusion/txtmlp weights. Set it to your architecture or you'll get either dimension errors or noticeably worse output.

The inputs you'll actually touch

  • unet_name - pick your .safetensors from diffusion_models. Pre-quantized files just work; the pack is verified against krea2_turbo_convrot_int4_fast.safetensors from comfyanonymous's int4_tests repo.
  • on_the_fly_quantization - the author's tooltip is the rule: check it to quantize a higher precision model (BF16/FP16) to INT4 on load, and leave it unchecked if the model is already INT4. Feed it an FP8 checkpoint and you can get static noise - that's a fixed bug, not a feature.
  • model_type - only used for on-the-fly quantization, to filter those sensitive layers. Set it to whatever architecture you loaded.
  • lora_mode - None bakes LoRA patches in with normal rounding, Stochastic bakes with stochastic rounding (nicer for quantized bases), Dynamic applies LoRAs at inference time. Start at None.
  • enable_convrot - the Hadamard rotation. Default true. Leave it on.
  • weight_dtype - compute dtype; default follows the model. Only touch if you're chasing something specific.

Install

ComfyUI Manager (search "ComfyUI-INT4-Fast"), or:

cd ComfyUI/custom_nodes/
git clone https://github.com/viralvfx/ComfyUI-INT4-Fast.git

Then restart. Two hard requirements: ComfyUI updated to the latest version, and comfy-kitchen installed - it provides the QuantizedTensor execution layouts this whole pack runs on. No pip deps of its own, but kitchen is a hard one.

Where people get burned

  • First generation is slow. The loader compiles custom Triton operators on first run; the author measured a long init on the very first generation, then fast subsequent ones. Don't panic and uninstall.
  • Don't on-the-fly quantize an FP8 file. The pack's own commit log fixed a "static noise bug by dequantizing FP8 weights before INT4 quantization." Quantize from BF16/FP16.
  • "Why not just native ComfyUI?" - a fair question in the launch thread. Native merged comfy-kitchen support, but it hides the settings. This node's case is the exposed controls (convrot, groupsize, LoRA modes) plus on-the-fly quantization and the Save Int4 Model node, if you want the full quantization toolkit rather than just a loader.
Categoryloaders

Inputs (7)

NameTypeDefaultDescription
unet_nameCOMBO0 options:
weight_dtypeCOMBOCompute dtype. Default follows the model dtype.
model_typeCOMBOOnly used for on the fly quantization, to filter sensitive layers.
on_the_fly_quantizationBOOLEANfalseQuantize a higher precision model to INT4. If the selected model is already INT4 keep unchecked.
enable_convrotBOOLEANtrueEnable ConvRot for better quantization.
lora_modeCOMBONoneNone bakes LoRA patches with normal rounding which is the default behavior. Stochastic bakes with stochastic rounding. Dynamic applies LoRA at inference time.
pre_loraoptPRE_LORA

Outputs (1)

NameTypeDescription
MODELMODEL