F16/krea2-turbo-sda
Krea 2 Turbo — SDA Diversity LoRA (v1.0)
中文版 Model Card
A rank-32 LoRA for Krea 2 Turbo that restores the sampling diversity the Turbo distillation removed, without degrading image quality or prompt adherence. Trained with SDA (Semantic Directional Alignment) — a teacher-guided diversity alignment loss — wrapped in Forward XM best-of-5 candidate exploration, on a single high-noise sigma node (σ = 0.9567).
Same prompt, 16 different seeds — baseline vs +SDA LoRA (gate=2):
"a cat sitting on a windowsill" — the baseline regenerates the same tabby-and-white cat 16 times; the LoRA varies fur patterns, lighting, seasons and window settings:
"a still life with fruit on a table" — one pineapple-centric template vs varied compositions, props and backgrounds:
"a red sports car parked in an alley" — the same front-view coupe 16× vs different models, angles and environments:
"a photo of a woman" — identical studio headshot framing 16× vs varied scenes, ages, hair, and even illustration styles:
Measured effect
Evaluation panel: 10 prompts × 16 seeds, paired against the shared adapter-off baseline:
Prompt adherence (24 multi-constraint prompts × 8 seeds, constraint-hit rate and full-prompt score) is statistically indistinguishable from the baseline.
How SDA works
Semantic Directional Alignment treats diversity collapse as a direction problem. For one training image x0 we draw two noises (z1, z2) and noisify both to σ = 0.9567 — the highest learnable step of the 8-step Turbo schedule, where composition is decided. The frozen teacher (Krea 2 RAW, the non-distilled parent) and the student (Turbo + LoRA) each predict x0 for both noises; both predictions are decoded and embedded by a frozen CLIP stack. The teacher's feature delta ΔT records which direction in perceptual space this noise swap should move the image; the loss L_div = 1 − cos(ΔS, ΔT) teaches the student's delta ΔS to point the same way instead of collapsing all noises onto one template. An SFT self-anchor keeps the student's own trajectory stable.
Forward XM best-of-5 adds exploration on top: each step draws K = 5 candidate noises, scores all of them without gradients, and backpropagates only through the candidate whose student delta is best aligned — every step trains on the most informative pair, giving a measured ~3× learning-speed gain.
⚠️ Inference gating is mandatory (gate = 2)
This LoRA is trained at a single high-noise node (σ = 0.9567, the second step of the 8-step Turbo schedule). It must only be active for the first 2 of the 8 denoise steps, then switched off:
The LoRA changes the composition decided in the first two high-noise steps; the remaining steps are pure detail refinement where the adapter only does damage.
Usage with 🤗 diffusers
Krea2Pipeline requires a recent diffusers (merged after 0.39.0.dev0 — install from source if your release is older). The gate is a one-line step callback:
import torch
from diffusers import Krea2Pipeline
pipe = Krea2Pipeline.from_pretrained("krea/Krea-2-Turbo", torch_dtype=torch.bfloat16).to("cuda")
pipe.load_lora_weights(".", weight_name="krea2_turbo_sda_v1.0_diffusers.safetensors")
def gate(pipe, step_index, timestep, callback_kwargs):
if step_index == 1: # step 2 (0-based) just finished -> switch the LoRA off
pipe.disable_lora()
return callback_kwargs
image = pipe(
"a still life with fruit on a table",
num_inference_steps=8,
guidance_scale=1.0,
callback_on_step_end=gate,
).images[0]Weight format. The repo ships both key formats: krea2_turbo_sda_v1.0_comfy.safetensors (ComfyUI format) and krea2_turbo_sda_v1.0_diffusers.safetensors (diffusers-style diffusion_model.blocks.*.lora_A/B.weight keys — the one used in the snippet above).
ComfyUI
Stock ComfyUI applies LoRAs on every step, which will hurt quality (see gate=8 above). Use a per-step LoRA scheduling node (hooks/scheduling custom nodes) to disable the LoRA after step 2, or run with diffusers as shown.
Training details
Intended use & limitations
- Research artifact. Best for workflows that need varied samples per prompt (exploration, data augmentation, preference-pair mining).
- Diversity gain is per-prompt across seeds; it does not change prompt semantics.
- Restoring diversity lowers the model's stability and may make anatomy problems (e.g. limbs) more likely.
- All evaluation numbers come from a fixed panel at 1024×1024, 8 steps, guidance 1.0, shift μ = 1.15.
- Derived from Krea 2 — usage is subject to the Krea 2 Community License (see the base model repo).
Acknowledgments
- [Krea AI](https://huggingface.co/krea) — for open-sourcing Krea 2; the Turbo checkpoint is the student/base model and the RAW checkpoint serves as the diversity teacher.
- [musubi-tuner](https://github.com/kohya-ss/musubi-tuner) (kohya-ss and contributors) — the training framework this work is built on.
- Explorative Modeling (XM) — Gladstone, Ji & Du, 2026 (arXiv:2607.27372); the best-of-K candidate exploration wrapped around our loss.
- Perceptual Flow Matching — Zhao et al., 2026 (arXiv:2607.03524); inspiration for perceptual-space supervision.
- [DiffusionOPSD](https://github.com/worldbench/DiffusionOPSD) (ByteDance / worldbench, 2026) — on-policy self-distillation reference point for this line of work.
- [z-image-turbo-sda](https://huggingface.co/F16/z-image-turbo-sda) (F16, 2026) — the original SDA LoRA lineage on Z-Image-Turbo that this port follows.
- Core techniques and metrics: LoRA (Hu et al., 2022), CLIP (Radford et al., 2021), HPSv2 (Wu et al., 2023).
