The third of my step-distillation LoRAs for Krea 2 Turbo, picking up where the other two left off. The 4-step LoRA took Turbo from 8 steps to 4 and is still the closest to Turbo's own 8-step pictures; the 2-step LoRA went down to 2 for fast previews but, despite best efforts, never quite reached the 4-step's quality. At one step fewer than the 4-step and one more than the 2-step, this one renders more fine detail than either, trained on a single cloud H100 with everything the 2-step project taught me.
🧪 A project still in training. This checkpoint is shared now because it is already good enough to use; training goes on, and further updates and LoRAs will likely be published.
Three steps instead of eight · 2.6× faster denoising (text encoding and VAE decode excluded) · fine detail at 1.15× the 8-step teacher's on the 22 test prompts, above the 4-step LoRA's 1.04× (stock Turbo at 3 steps: 0.58×) · colour at the teacher's level · 12,000 training samples on recorded teacher trajectories · one H100, about 41 hours · released from settled weights.
A LoRA for Krea 2 Turbo that takes the model from 8 steps down to 3 — Turbo's own weights and its own 3-step sigmas, CFG 1 (no guidance; diffusers writes it as guidance_scale=0.0) — aiming at the best quality three steps can give. It keeps — and passes — the 4-step LoRA's fine detail at three quarters of its denoising time, with the picture a little further from the teacher's own.
⚡ 8 → 3 steps — on Turbo's own 3-step sigmas [1.0, 0.8633, 0.6123]
⏱️ 2.6× faster denoising — 65.4 s → 24.9 s at 1024×1024 (float16 compute), text encoding and VAE decode excluded, as they take the same time at any step count; the adapter's own cost per call is within about 1%
🎯 Fine detail above the teacher's — fine texture 1.15× and the 16- and 8-pixel bands 1.17× / 1.16× the teacher's on the 22 test prompts (stock Turbo at 3 steps: 0.58×; the 4-step adapter 1.04×), colour at the teacher's level
📊 Distribution matching, not imitation — matches what the teacher would plausibly produce rather than its exact trajectory, so the student commits instead of averaging into blur and doubled edges
🔎 Eight critics — artefacts, real photographs, the first call's layout, content, prompt agreement, lettering, large faces and the whole three-call rollout, each a small head on the frozen base's own mid-network features
📐 11 trained resolutions — from 512×768 up to 1440×1440, and 1824×1024
🔌 Drop-in, no exceptions — plain LoRA, stock Euler, diffusers / ComfyUI / MLX. No custom nodes, no custom sampler (the LoRA needs none; the optional MLX workflow for Apple Silicon below runs it through my LVNodes)
🧬 Same shape as the 4-step and 2-step adapters — rank 64 on the same 228 modules
🎲 About 30,000 recorded teacher trajectories — Turbo's own 8-step paths at the 11 training sizes; every sample outside the two anneals is one the adapter had not seen
🔢 12,000 training samples, starting from the released 4-step adapter's weights
🧘 Settled weights, not an average — the last 600 samples take the learning rate to zero over already-trained data, so the published weights are the training weights at rest
Known Issues
In order of how often they show:
Further from the teacher's own picture than the 4-step adapter — distance 0.383 against 0.320, detail agreement 0.29 against 0.39. Three steps is a shorter path from the same noise, so framing, pose or a detail can differ from the 8-step render at the same seed: a swordsman's pose, a race car's line through the corner, the coat of one kitten. Treat the teacher's render as a quality reference, not the picture three steps will reproduce
Texture stronger than the teacher's — fine texture 1.15×, grain in flat areas 1.56×: watercolour paper, skin pores and film grain read more pronounced than in the 8-step render, freckles denser. A strength under 1.0 softens it (see LoRA Strength)
Doubled edges — the blur-invariant ghosting index is 1.19× the teacher's (the 4-step adapter's 1.02×): a faint doubled contour can show on fine edges — hair, rain streaks, thin limbs — most at the middle sizes, 768×1024 and 1024×768
A part drawn twice, now and then — in a few scenes a subject's part or a background figure comes twice: a second engine fused under a spaceship's, extra figures behind the main one in a busy set
Small faces in crowds — still the weakest spot of any few-step adapter: faces far back in a crowd can come out soft or smeared, where a portrait-sized face holds up
These are the published checkpoint's limits, stated as they are.
Hardware
Trained on a single NVIDIA H100 80 GB. The frozen base runs in bf16 (the 4-step and 2-step adapters trained on a single RTX 3090 with a weight-only int8 base). Batches of 3 at 512×768 / 768×512, 2 at 768×1024 / 1024×768 and 1 from 1024×1024 up keep every term inside about 45–50 GB; a step with every term live takes 4–24 s by size. Throughput averaged about 290 samples an hour (12,000 in about 41 hours) — each sample costs a dozen or so passes of the 12.8B base (the fake score's three updates alone are about 40% of a step). The trajectories were recorded once and are read from disk.
Released LoRA is bf16.
Usage Notes
🎯 Made for Krea 2 Turbo — trained against Turbo's weights and schedule; on Raw it is a bonus at 6–20 steps with CFG on, not a supported mode (see Using it on Raw)
🚫 No guidance: CFG 1 — cfg 1.0 in ComfyUI (0.0 breaks the image), guidance_scale=0.0 in diffusers (its way of writing the same setting)
📐 Keep μ = 1.15 — the three training sigmas are anchored to that grid
🔬 Training used a bf16 base; released LoRA is bf16
