Nodes/Krea 2 SVDQuant/Krea2 SVDQuant Quantize All-in-One
ComfyUI Node

Krea2 SVDQuant Quantize All-in-One

Bake DiT + text encoder + VAE into one 12 GB Krea 2 checkpoint

By alperktt·Created 2 months ago·Updated 25 days ago· 13
Krea2 SVDQuant Quantize All-in-One
    • summary
    source_dit
    text_encoder
    vae
    formatsvdq
    te_formatw4a4
    rank64
    refine_iters100
    groupsize256
    variantturbo
    output_name
    overwritefalse
    act_stats
    seed0

    The short version

    The modular Krea 2 setup is three files scattered across three folders: the DiT in diffusion_models/, the Qwen3-VL text encoder in text_encoders/, and the VAE in vae/ - about 15.5 GB in total. This node bakes all three into one combined checkpoint (~12 GB) in models/checkpoints/, and it quantizes the text encoder while it's at it. Result: one file, one loader, one-click generation. If you've used the Krea2 SVDQuant Quantize node, this is the sequel that also handles the other two components.

    Run workflows/krea2_quantize_all_in_one.json in ComfyUI to do it in the graph, or tools/build_all_in_one.py from a terminal - same underlying logic. The output loads with the Krea2 SVDQuant Checkpoint Loader, which hands you model, clip, and VAE from one node.

    The inputs that matter

    • source_dit - the Krea 2 DiT. Either a BF16 source (~24 GB, which gets quantized first) or an already-quantized SVDQuant/W4A4/INT8 file. The low-rank branch inputs (rank, refine_iters, act_stats, seed) only apply if you feed it BF16.
    • text_encoder - the Qwen3-VL 4B BF16 safetensors (~8.88 GB). Its 252 linear projections get quantized to te_format, shrinking it to ~3.2 GB while the vision tower and embeddings stay untouched.
    • vae - the Krea 2 VAE (~0.51 GB, kept unquantized).
    • format - the diffusion model format, same choices as the plain Quantize node: svdq (default, 4-bit + low-rank branch), w4a4, int8, fp8.
    • te_format - text encoder format: w4a4 (convrot_w4a4, ~3.2 GB) or int8 (~5.2 GB).

    The rest - variant (turbo/base/unknown, mostly affects the output filename), output_name, overwrite - behave the same as the plain Quantize node. output_name defaults to something derived from variant and format, so you can usually leave it empty.

    Output is a single summary string: size, tensor counts, and loader instructions for the baked file.

    How to install

    cd ComfyUI/custom_nodes && git clone https://github.com/alperktt/Krea-2-SVDQuant-ComfyUI krea-2-svdquant
    

    No Python dependencies - the tooling in this pack is pure Python and builds on ComfyUI's own comfy_kitchen backend. From the terminal, the equivalent is:

    cd ComfyUI/custom_nodes/krea-2-svdquant
    python tools/build_all_in_one.py \
        --dit  models/diffusion_models/Krea2-Turbo-SVDQuant-W4A4-rank64.safetensors \
        --text-encoder models/text_encoders/qwen3vl_4b_bf16.safetensors \
        --vae  models/vae/Krea2-HD-vae.safetensors \
        --te-format w4a4 --variant turbo
    

    The writer streams, so it never holds the combined 12+ GB in memory at once.

    Gotchas

    • Budget the time. Quantizing the DiT from BF16 means the same 54s–6min conversion the plain Quantize node takes, and the text encoder pass on top. This node blocks the queue and takes the GPU while it runs.
    • The cu130 gate applies to everything here. If your torch was built against CUDA < 13, ComfyUI disables the comfy_kitchen CUDA backend and the baked checkpoint will run on a slow fallback. Check python -c "import torch; print(torch.version.cuda)" before you burn a build on it.
    • Re-saving a baked checkpoint logs "left over keys in diffusion model" in the stock loader. Expected: the svdq_l1/svdq_l2 keys are what let the file round-trip into this pack's loader, and stock UNETLoader just doesn't know them. Harmless.
    CategoryKrea2/SVDQuant

    Inputs (13)

    NameTypeDefaultDescription
    source_ditCOMBOThe Krea 2 DiT model: either a BF16 source (~24 GB, will be quantized first) or an already-quantized SVDQuant/W4A4/INT8 file.
    text_encoderCOMBOThe Qwen3-VL 4B BF16 text encoder safetensors (~8.88 GB). Its 252 linear projections will be quantized to te_format, reducing it to ~3.2 GB without losing the vision tower.
    vaeCOMBOThe Krea 2 VAE (~0.51 GB, kept unquantized).
    formatCOMBOsvdqDiffusion model format. svdq: 4-bit weights and activations plus a low-rank bf16 correction branch.
    te_formatCOMBOw4a4Text encoder format: w4a4 (convrot_w4a4, ~3.2 GB) or int8 (int8_tensorwise, ~5.2 GB).
    rankINT648–1024svdq only: size of the low-rank branch on the diffusion model.
    refine_itersINT1000–200svdq only (if source_dit is BF16). Refines the branch against quantization error. Ignored if source_dit is already quantized.
    groupsizeINT25632–1024convrot rotation group size.
    variantCOMBOturboWhich Krea 2 release this is.
    output_nameSTRINGFilename in models/checkpoints/. Leave empty to derive automatically.
    overwriteBOOLEANfalseAllow overwriting existing output checkpoint.
    act_statsoptSTRINGsvdq only (if source_dit is BF16): activation statistics file.
    seedoptINT0-1–4294967295Random seed for reproducible SVD.

    Outputs (1)

    NameTypeDescription
    summarySTRINGSize, tensor counts and loader instructions for the baked checkpoint.