| ---
|
| 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.
|
|
|