Krea 2 INT8 ConvRot (native int8_tensorwise)

Native ComfyUI INT8 ConvRot checkpoints for Krea 2 Turbo and Krea 2 Raw, quantized from the official BF16 weights so they load with the stock Load Diffusion Model (UNETLoader) node — no OTUNetLoaderW8A8 / ComfyUI-INT8-Fast custom loader required.

Files

File Size Source BF16 Notes
Krea2-Turbo-int8-ConvRot.safetensors ~13.2 GB krea2_turbo_bf16.safetensors (Comfy-Org/Krea-2) 8-step distilled
Krea2-Raw-int8-ConvRot.safetensors ~13.2 GB krea2_raw_bf16.safetensors Undistilled base

Place both under ComfyUI/models/diffusion_models/.

Per-tensor metadata (.comfy_quant JSON)

{
  "format": "int8_tensorwise",
  "orig_dtype": "torch.bfloat16",
  "convrot": true,
  "convrot_groupsize": 256,
  "per_row": true
}

Older “INT8-Fast” exports that only carry {"convrot": true, "per_row": true} (no "format": "int8_tensorwise") do not load in stock ComfyUI ≥ 0.27 — this repo replaces those.

Requirements

  • ComfyUI ≥ 0.27.0 (native int8_tensorwise + ConvRot)
  • comfy-kitchen with INT8 kernels (shipped with current ComfyUI)
  • NVIDIA GPU with INT8 tensor cores (RTX 30 / 40 / 50, SM ≥ 7.5)
  • Companion assets (unchanged): Qwen3-VL text encoder + Qwen Image VAE

Usage (ComfyUI)

  1. Drop the .safetensors into models/diffusion_models/
  2. Use Load Diffusion Model (UNETLoader), weight_dtype: default
  3. Standard Krea 2 graph: CLIPLoader (type: krea2) → CLIPTextEncode → KSampler / FLS → VAEDecode

LoRAs: use a normal LoRA stack / LoraLoader on the MODEL output. Prefer clip_strength = 0 for Krea UNet-only LoRAs so text encode can cache.

Conversion (reproduce)

ctq -i krea2_turbo_bf16.safetensors \
    -o Krea2-Turbo-int8-ConvRot.safetensors \
    --int8 --convrot --convrot-group-size 256 \
    --scaling_mode row \
    --comfy_quant --save-quant-metadata --krea2 \
    --simple --low-memory --device cuda

Same for Raw (krea2_raw_bf16.safetensors). --scaling_mode row is mandatory.

Verify after convert

from safetensors import safe_open
import json
with safe_open("Krea2-Turbo-int8-ConvRot.safetensors", framework="pt") as f:
    raw = f.get_tensor([k for k in f.keys() if k.endswith(".comfy_quant")][0]).tolist()
    print(json.loads(bytes(raw)))
# Must include: format=int8_tensorwise, convrot=True, per_row=True, convrot_groupsize=256

Provenance

License

Follow the upstream Krea 2 Community License for the base models. This repo only redistributes lossy INT8+ConvRot re-quantizations of those weights.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for ahmed22xa/Krea2-INT8-ConvRot-Native

Base model

krea/Krea-2-Raw
Finetuned
(34)
this model