--- license: other license_name: krea-2-community-license license_link: https://huggingface.co/krea/Krea-2-Turbo tags: - krea2 - diffusion - dit - comfyui - int8 - int8_tensorwise - convrot - quantization base_model: - krea/Krea-2-Turbo - krea/Krea-2 --- # 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](https://huggingface.co/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) ```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) ```bash 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 ```python 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 - **Upstream Turbo:** [krea/Krea-2-Turbo](https://huggingface.co/krea/Krea-2-Turbo) / Comfy packaging [Comfy-Org/Krea-2](https://huggingface.co/Comfy-Org/Krea-2) - **Upstream Raw:** Krea 2 Raw BF16 (Comfy-Org packaging) - **Quant tool:** [silveroxides/convert_to_quant](https://github.com/silveroxides/convert_to_quant) (`ctq`) - **Quant date:** 2026-08-20 - Architecture profile: `--krea2` (sensitive first/last/modulation layers kept high precision) ## License Follow the upstream **Krea 2 Community License** for the base models. This repo only redistributes lossy INT8+ConvRot re-quantizations of those weights.