ahmed22xa's picture
Upload README.md with huggingface_hub
dc9cbbd verified
|
Raw
History Blame Contribute Delete
3.52 kB
---
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.