Model Releases

Krea2 Turbo Distill 4 step LoRA - FINAL Version released today

Krea 2 Turbo — 4-Step Distillation LoRA Full details and to download - HF Repo: https://huggingface.co/lvladikov/Krea2-Turbo-Distill-4step-LoRA https://preview.redd.it/9p2rjwh3y3oh1.jpg?width=3072&for

DGX agentreddit
model-releasesr-stablediffusion

Krea 2 Turbo — 4-Step Distillation LoRA Full details and to download - HF Repo: https://huggingface.co/lvladikov/Krea2-Turbo-Distill-4step-LoRA https://preview.redd.it/9p2rjwh3y3oh1.jpg?width=3072&format=pjpg&auto=webp&s=f7f8896210c72328f2257cf1337a2be6e69d41b6 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. ⚡ Half the steps — 8 → 4, on Turbo's own deployment sigmas. ⏱️ ~1.6× faster end to end — 54.5 s against the 8-step bar's 88.7 s at 1024×1024, and 1.8× on denoise alone. 🎯 Texture as good as the teacher or better — 1.03× the teacher's fine-texture energy at 1280×1280 and 1440×1440, every frequency band within 10% of the teacher's; verified clean: saturation 0.96–0.97× the teacher's, fewer clipped highlights and shadows, skin texture 0.97–0.99×. 📏 45% of the 4-step gap closed — the held-out velocity error to the 8-step teacher fell from 4.70e-02 (stock Turbo at 4 steps) to 2.59e-02 with the LoRA; a vision-language judge shown the teacher's and the LoRA's renders side by side preferred the teacher on only 6 of 45 (37 ties, 2 wins for the LoRA). 🗣️ Prompt-aware training — the critic scores images against their prompts during training, so adherence is pressured directly, not inherited. 📐 12 trained resolutions — multi-aspect from 512×512 up to 1440×1440, each with its sweep. 🔌 Drop-in — plain LoRA weights for diffusers and ComfyUI. No custom nodes, no patched sampler, no code. 🎲 13,750 prompts drawn at random from Lakonik's 3-million-prompt dataset, each recorded by the teacher as a full 8-step trajectory at one of the 12 resolutions — 13,750 teacher shards. 📷 43,044 real-photo crops — 25,560 from LSDIR and 17,484 from Flickr2K — cut at native resolution and captioned, in the critic's real set: texture anchored to reality as well as to the teacher. 🔢 78,000 training samples in the shipped weights. 📅 21 days from the first training launch to the final file, on a single RTX 3090. 🔁 16 recipe adjustments Load it on top of Krea 2 Turbo, run 4 steps instead of 8, keep guidance at 0.0. Everything else about the model stays as it is. 💡 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. The effect scales smoothly with strength, so 0.75 is a good second setting, and anything from 0.6 to 0.9 is fair game; you lose nothing but the extra bite. Files file what it is krea2_turbo_4step_rank_64_lora.safetensors the LoRA in diffusers key format — see Inference with diffusers; also for MLX or anything that reads safetensors krea2_turbo_4step_rank_64_lora_comfyui.safetensors the same weights under ComfyUI's key names — see ComfyUI krea2_turbo_4step_lora_t2i.json a ready ComfyUI workflow, stock nodes only LICENSE.pdf the Krea 2 Community License Agreement, which covers this adapter — see License NOTICE.txt the attribution notice the license requires of a derivative The two weight files are one adapter — only the key names differ. Both carry the training details in their safetensors metadata: base model, method, sample count and the inference settings. If you want to bypass the Reddit image compression and check the quality of the LoRA produced images directly, here are some of the Hugging Face 1440x1280 links: portrait, sorceress, snowleopard, colonyship, inventor, kingfisher, claychef, ... the rest you can see in the 1440x1280 folder. And full sweep at: https://huggingface.co/lvladikov/Krea2-Turbo-Distill-4step-LoRA/tree/main/assets/resolution_sweeps/4step-LoRA How I got here This was not a "train for longer and ship whatever comes out last" project. More samples do not reliably mean a better adapter — measured here, they can make it worse, and a higher sample count on its own means nothing. The loop was train → assess → adjust the recipe → carry on → assess again — carrying on from the weights in hand when they were worth keeping, and from an earlier point when they were not. What ships is the point of the run that measurably advanced the release axes as a whole — teacher faithfulness, prompt adherence, and texture/detail, on the same held-out set and the same fixed-seed renders — with a full resolution sweep showing no regression. Stretches that came out flat or worse were kept as information about the recipe and never shipped; there were several. The recipe therefore grew over the run rather than being fixed at the start. In broad strokes: the early stretch settled the optimiser schedule (cosine decay with weight decay) after a first attempt that got steadily worse; the next added the final-call loss weighting and the running average of the weights that the shipped adapter is, and established that a run left going past its peak measures worse — so the shipping point is chosen by measurement, not by distance run. A much larger trajectory pool then pushed the single number the project optimised at the time — the velocity gap to the teacher — to its best value, and exposed that number's limit: past a point, chasing it further trades away exactly the texture a step-distillation exists to restore. The recipe from then on judged all three axes at once and added a measured dose of real-image texture pressure and a prompt-aware critic (the discriminator saw images with their prompts and punished mismatches). The long final stretch of the run continued on that recipe, with the critic's weight tuned once texture had settled where it was wanted. The sixteen recipe adjustments, in order — each one made on the measurement of the one before: progressive distillation replaced the policy-head objective the project started with cosine learning-rate decay with weight decay the shipped weights became a running (EMA) average instead of the live state the final chord — the call that decides fine texture — weighted 3× in the loss resumable state, warmup and a plateau rule, so a run could pause and continue without a cold restart the LADD-style critic on the frozen model's own block-14 features, teacher finals as its real class real photographs entered the critic's real set, half the draws the critic's weight rebalanced against the distillation term the prompt-aware critic head with its mismatch term, on a fresh pool of teacher trajectories 1440×1440 joined the training mix the real photographs got captions, so they took part in the prompt-aware term too a low-frequency anchor to the teacher's chord on the large buckets, restarting from the averaged weights the critic's weight lowered once texture had settled a paired critic: the teacher's final for the same prompt as the real the paired critic plus a hard low-frequency floor on every bucket back to the recipe before 14 and 15, once both were measured as unnecessary Timeline of training process The adapter was the product of several stages with very different costs: Text-encoder embeddings. Every training prompt was encoded once and cached. This was the fast part — thousands of prompts took minutes. Teacher shards. For each cached prompt, the unmodified Krea 2 Turbo ran its full 8-step schedule and the whole trajectory was recorded, each prompt at one of the supported resolutions so that every resolution was covered. This was by far the most time-consuming stage — it was the teacher doing real inference, thousands of times, and a batch of several thousand shards was measured in days of GPU time, not hours. Real-photo crops. Bucket-sized crops were cut at native resolution from quality-gated real photo sources (public high-res datasets), VAE-encoded into the training latent space, and captioned per crop for the prompt-aware side of training. Cutting, encoding and captioning a pool refresh was a matter of hours. Student training. The LoRA trained against the recorded trajectories (progressive distillation), with a latent-space GAN critic running alongside — real crops and teacher finals as its real class, the student's outputs as fake — plus a prompt-aware head that scored images against their prompts. Relative to the shard stage this was quick: each block of a thousand training samples was a matter of hours, not days. Of course the longer the training, the better and more diverse the results, so hours did turn into days. Because these stages competed for the same GPU, they were interleaved rather than run to completion one after another: generate a block of embeddings, produce teacher shards for them, refresh the crop pool when measurement said it was worth it, train on what existed, assess, then go back to producing shards while the results were reviewed. A larger and more varied shard pool was what made further training worthwhile, so shard production was always the gate; the run took several such cycles. Archive Earlier checkpoints of the run and their resolution sweeps are kept under _archive/ — checkpoints/ and resolution_sweeps/ — for anyone who wants to look back. They are superseded by the final release files and not maintained. What's next A 2-step LoRA is the natural follow-on, and it is the next project. It will be a separate release rather than a competitor to this one: at two steps a distilled model gives up more than at four, so the goal is a usable 2-step Turbo — fast previews and drafts at half this adapter's cost, a quarter of the teacher's — not the quality bar this adapter holds. I may or may not get there. I will try anyway, and if it works it will appear as its own project alongside this one. Full details and to download - check my Hugging Face LoRA HF Repo: https://huggingface.co/lvladikov/Krea2-Turbo-Distill-4step-LoRA Important NOTE: The repo has been fully restructured folder and files wise for the final release (focus is no longer on checkpoint numbers). So for those of you who have been part of the journey over the last few weeks - first of all, Big Thank You for all the feedback - and do check the repo's fully rewritten README and the new files/folders structure. Previous posts on Reddit: Initial, Previous: here, here, here, here, and here Enjoy! submitted by /u/TimeTruth2490 [link] [comments]

Related

Source: r/StableDiffusion | 2026-09-07

Loading related sources…