Kroma v0.3.1: On-Policy Distillation for the Krea 2 Fine-Tune
Lodestones ships Kroma v0.3.1 OPD for Krea 2: an on-policy distilled turbo checkpoint that stays inside the base model's distribution, with LoRA training carried over.
kroma-v0.3.1-turbo-opd.safetensors, is distilled on-policy, so it keeps Turbo sampling speed without the quality tax that usually comes with distillation. The Kroma repository was trimmed the same day: the v0.1 and v0.2 files are gone, leaving only v0.3.1 OPD, the v0.3 base and the v0.3 teacher.
What OPD changes
The earlier Kroma turbo checkpoints were distilled offline: the student was trained to imitate the teacher on a fixed sampling schedule. The readme describes the failure mode of that recipe directly. Imitating the teacher on states the teacher chose slowly pulls the student off the original data manifold, which shows up as mode collapse, washed-out detail and prompts that suddenly stop working.
OPD, on-policy distillation, flips the direction. The student generates its own trajectories, and the teacher corrects it on those exact points. Training only ever happens on states the model actually visits, so the distilled checkpoint stays inside the distribution of the model it came from. The result is meant to be Turbo speed without the usual distillation tax.
What is in the repo now
The repository was reorganised on October 7 and now holds three files:
| File | Size | What it is |
|---|---|---|
kroma-v0.3.1-turbo-opd.safetensors | ~26.3 GB | Recommended checkpoint: v0.3 distilled on-policy into a Turbo-speed model |
kroma-v0.3-base.safetensors | ~51.3 GB | Full fine-tune of the Krea 2 raw (non-distilled) weights |
kroma-sensei-booru-e6-teacher-velocity-v0.3.safetensors | ~25.7 GB | The teacher used for LoRA training and for the OPD run |
The kroma-v0.2-turbo, kroma-v0.2-base, kroma-v0.3-turbo and kroma-v0.3-tdm-4steps-artifact files that earlier Kroma articles linked to have been deleted, so older download instructions no longer resolve. The readme's "files to download" table still names kroma-v0.2-turbo.safetensors, which is stale: v0.3.1 OPD is the file to grab.
How to run it in ComfyUI
Running v0.3.1 is identical to v0.2 and v0.3. It uses the standard Krea 2 stack, so no custom node is required beyond ComfyUI's native Krea 2 support:
- Put
kroma-v0.3.1-turbo-opd.safetensorsinComfyUI/models/diffusion_models/ - Load the Krea 2 text encoder (Qwen3-VL, 12 layers) with a CLIPLoader set to type
krea2 - Load the Krea 2 VAE
- Sample with the Turbo settings the checkpoint was distilled for: 8-12 steps, CFG 1.0-1.5, shift (mu) 1.15
The minimal chain is a Load Diffusion Model into a KSampler, with the krea2 CLIP and the Krea 2 VAE feeding it. If output looks off, the readme's first suspect is the text encoder: confirm the CLIPLoader type is krea2 and that ComfyUI is on a current build with native Krea 2 support.
LoRA training still carries over
Because OPD keeps the student inside the original distribution, LoRAs trained the normal way keep working. Train against either the teacher (kroma-sensei-booru-e6-teacher-velocity-v0.3.safetensors) or the base (kroma-v0.3-base.safetensors), and the resulting LoRA loads on kroma-v0.3.1-turbo-opd.safetensors unchanged. That is the main practical difference from an aggressively distilled student: you do not have to retrain or re-derive adapters when the turbo checkpoint is swapped.
Availability
Model: lodestones/Kroma
Checkpoint: kroma-v0.3.1-turbo-opd.safetensors
Base model: Krea 2
Comments
Sign in with GitHub to join the discussion.