Downloads · 30 days
16.6K
28% of all-time downloads
lvladikov/Krea2-Turbo-Distill-4step-LoRA
Krea2-Turbo-Distill-4step-LoRA is a text-to-image model from lvladikov. Use it when you need an image from a text prompt. It is set up for diffusers. The card lists the license as other.
🆕 New: a 3-step LoRA takes Krea 2 Turbo from 8 steps down to 3, at three quarters of this LoRA's denoising time, with more fine detail (fine texture 1.26× the 8-step teacher's on its 22 test prompts). This 4-step LoR…
Downloads · 30 days
16.6K
28% of all-time downloads
All-time downloads
59.5K
Public
Repo size
16.5 GB
Likes
208
Trending 9
Click a slice to open those files.
.safetensors10.5 GB · 94%
From the Hugging Face model README
🆕 New: a 3-step LoRA takes Krea 2 Turbo from 8 steps down to 3, at three quarters of this LoRA's denoising time, with more fine detail (fine texture 1.26× the 8-step teacher's on its 22 test prompts). This 4-step LoRA stays the closest to Turbo's own 8-step pictures.
Half the steps · ~1.6× faster end to end · cleaner than the first release: grid patterns, ghosting and flat-area grain all closer to the 8-step teacher · 13 trained resolutions up to 1824×1024 · 133,000 training samples, 1.7× the first release.
🆕 This version (chk00133000) replaces the first 'final' release (chk00078000), from two months ago. I decided to train a 'few more' samples (55K more to be precise), the newer part with five critic heads where the first release had one. Measured against the 8-step teacher on the 15 test prompts at 12 sizes:
- cleaner fine structure — the 8- and 16-pixel grid patterns at 0.96–0.98× the teacher's, where the first release was at 1.09–1.11×
- less ghosting and fewer doubled edges — closer to the teacher at 10 of 12 sizes on both measures
- cleaner flat areas — grain at 0.99× the teacher's, down from 1.08×
- no over-sharpening at large sizes — fine texture at 1.01–1.04× the teacher's at 1440 px, down from 1.18–1.20×
- saturation matching the teacher's
Fine texture now sits at the teacher's level, a touch softer than the first release at mid sizes. The first release stays in
_archive/checkpoints/.
A LoRA for Krea 2 Turbo that reduces the minimum usable step count from 8 to 4 — Turbo's own model and sigmas, half the denoising passes, and the fine texture that 4-step Turbo loses put back.
💡 Too strong on a prompt? Turn it down. The LoRA restores fine texture, and on some subjects — stylised art, high-contrast splash pieces, very large renders — that can read as too much at strength 1.0. Effect scales smoothly: 0.75 is a good second setting, 0.6–0.9 is fair game.
| file | what it is |
|---|---|
krea2_turbo_4step_rank_64_lora.safetensors | LoRA in diffusers key format — see diffusers |
krea2_turbo_4step_rank_64_lora_comfyui.safetensors | Same weights under ComfyUI key names — see ComfyUI |
krea2_turbo_4step_lora_t2i.json | Ready ComfyUI workflow, stock nodes only |
krea2_turbo_4step_rank_64_lora_checkpoint_info.md | Which checkpoint the two weight files are, with their SHA-256s |
LICENSE.pdf | Krea 2 Community License Agreement |
NOTICE.txt | Required attribution notice |
Both weight files are one adapter — only key names differ. Both carry training details in safetensors metadata.
pip install git+https://github.com/huggingface/diffusers.git
import torch
from diffusers import Krea2Pipeline
from huggingface_hub import hf_hub_download
from safetensors.torch import load_file
pipe = Krea2Pipeline.from_pretrained("krea/Krea-2-Turbo", torch_dtype=torch.bfloat16).to("cuda")
lora = hf_hub_download("lvladikov/Krea2-Turbo-Distill-4step-LoRA", "krea2_turbo_4step_rank_64_lora.safetensors")
state = load_file(lora)
state = {f"transformer.{k}": v for k, v in state.items() if not k.endswith(".alpha")}
pipe.load_lora_weights(state, adapter_name="4step")
image = pipe("a fox in the snow", num_inference_steps=4, guidance_scale=0.0).images[0]
image.save("krea2_4step.png")
num_inference_steps=4 is the whole config. Pipeline applies Turbo's fixed timestep shift (μ = 1.15) and evaluates at σ = 1.0, 0.905, 0.760, 0.513 — exactly the four points the LoRA was trained on. Keep guidance_scale=0.0.pipe.set_adapters(["4step"], adapter_weights=[0.75]). Stock Turbo for comparison: pipe.unload_lora_weights() + num_inference_steps=8.| file | put it in |
|---|---|
krea2_turbo_4step_rank_64_lora_comfyui.safetensors | ComfyUI/models/loras/ |
krea2_turbo_bf16.safetensors (from Comfy-Org/Krea-2) | ComfyUI/models/diffusion_models/ |
qwen3vl_4b_bf16.safetensors (same repo) | ComfyUI/models/text_encoders/ |
qwen_image_vae.safetensors (same repo) | ComfyUI/models/vae/ |
Load krea2_turbo_4step_lora_t2i.json. Full bf16, no quantisation, runs on CUDA / Apple Silicon / CPU unchanged.
Settings: steps 4, cfg 1.0, sampler euler / simple, LoRA strength 1.0.
⚙️ cfg 1.0, not 0.0. ComfyUI expresses "no CFG" as 1.0 (one forward pass); diffusers uses 0.0. Setting 0.0 in ComfyUI is not the same thing.
| strength | what happens |
|---|---|
| below 1.0 | Correction partly applied — output between unassisted 4-step and full LoRA. 0.75 for when 1.0 is too textured/hard |
| 1.0 | Trained point, recommended |
| 1.0–1.5 | Extrapolation — surface detail denser, micro-contrast harder, coherent but stylised |
| above 1.5 | Not recommended — breaks into uniform speckle/noise over whole image |
Reach for steps before strength: 1.0 at more steps is the dependable way to get more. Strength and step count trade against each other.
Trained on single RTX 3090 (24 GB) to the first release; since then about a day on a single H200 and two more on the RTX 3090. Frozen base quantized weight-only to int8 (blockwise-64) — ~0.007 relative error, ~3% step time cost. Teacher trajectories rolled at same precision (targets permanent, error baked in).
Every bucket trained under full int8 up to 1440×1440. Large buckets fit via:
Released LoRA is bf16 applied to unquantized base.
Every sheet below: base model (8 steps), base at 4 steps without LoRA, base at 4 steps with LoRA — same seed throughout. Compare panels 2 vs 3 to isolate LoRA effect. NFE = steps (Turbo is CFG-free).
assets/resolution_sweeps/ — this LoRA at every trained resolution for all 15 test prompts (same prompts, seed, 4 steps, strength 1.0), 1824×1024 included. Nothing cherry-picked. This version's sweep was rendered in ComfyUI (seed 4242); the teacher's renders came from another renderer, so pose and framing can differ between the two.
_teacher-8step/ — official Krea 2 Turbo 8-step reference renders for same prompts/seeds/resolutions.
Layout:
assets/resolution_sweeps/
├── _teacher-8step/ 8-step stock Turbo reference
│ ├── 512x512/
│ ├── 1024x1024/
│ └── ... (all 12 buckets)
└── 4step-LoRA/ Same tree, this LoRA at 4 steps (+ 1824x1024)
Two ways to read: down the sweep (does it hold across resolutions?) or against teacher (open same file in both folders).
Every published checkpoint and its resolution sweep under _archive/ — checkpoints/ and resolution_sweeps/, each under its number: chk00133000, this release, the first 'final' release chk00078000 (its sweep in chk78000-final/), and the earlier chk00060000, chk00042000, chk00026000, chk00019000, chk00014000, chk00010000, chk00006000, chk00005000 and chk00004000.
The full write-up is in the Detailed Model Card:
This adapter is a Derivative of Krea 2 Turbo under the Krea 2 Community License Agreement. Everything the agreement says about Krea 2 Turbo applies to this LoRA: Acceptable Use Policy, revenue threshold for commercial use, content-filtering duty for deployments.
Copy of agreement: LICENSE.pdf, required notice: NOTICE.txt. See krea.ai/krea-2-licensing.
Not an official Krea product, not endorsed by Krea. Base model is Krea's; adapter weights and everything else in this repo are mine.