FLUX.2 Klein · SANA-Sprint LoRA

A 1–2 step LoRA for FLUX.2-klein-4B. Klein 4B is already step-distilled (4 steps, no CFG); this adapter pushes it the rest of the way with a SANA-Sprint-style continuous-time consistency distillation, so it produces a clean image in one step and a good one in two — where the stock weights at 1 step are still a blur. It keeps Klein's text-to-image and reference-image editing, and it's small: rank 256, 735 MB in bf16 (≈ 0.39 GB as int8 web weights, see below).

2-step samples

2 steps, 512×512, seed 7 — prompts in the widget on the right.

Quick start (🧨 diffusers)

import torch
from diffusers import Flux2KleinPipeline

pipe = Flux2KleinPipeline.from_pretrained(
    "black-forest-labs/FLUX.2-klein-4B", torch_dtype=torch.bfloat16
).to("cuda")
pipe.load_lora_weights("radames/FLUX.2-klein-Sana-Sprint")

image = pipe(
    prompt="a capybara wearing a tiny knitted hat, sitting in a hot spring, steam, soft light",
    width=512, height=512,
    num_inference_steps=2,          # 1 also works
    generator=torch.Generator("cuda").manual_seed(7),
).images[0]
image.save("capybara.png")

Notes:

  • Use num_inference_steps=1 or 2. Klein is a guidance-distilled model, so guidance_scale is ignored.
  • lora_alpha == r, i.e. scale 1.0 — leave it there; pipe.set_adapters(["default_0"], [0.0]) gives you the stock 4B back without reloading.
  • Editing / image-to-image works the same way — pass one or more reference images and Klein conditions on them:
from diffusers.utils import load_image

ref = load_image("photo.jpg")
out = pipe(
    prompt="make it a watercolor painting",
    image=[ref],                    # one or several reference images
    width=512, height=512,
    num_inference_steps=2,
).images[0]
  • Needs diffusers >= 0.37 (Flux2KleinPipeline) and peft. The weights are a standard pytorch_lora_weights.safetensors with lora_adapter_metadata, so anything that loads diffusers Flux.2 LoRAs can load this one.

What you get

Same seed, same prompt, stock Klein 4B vs. Klein 4B + this LoRA:

sprint vs base grid

column model steps comment
sprint-1step 4B + LoRA 1 sharp, composed; slightly softer texture than 2 steps
sprint-2step 4B + LoRA 2 the sweet spot — matches the 4-step base in detail
base-1step stock 4B 1 washed-out blur — the distilled base needs its 4 steps
base-2step stock 4B 2 usable but soft
base-4step stock 4B 4 the reference quality Klein 4B ships with

The LoRA has a slightly warmer, higher-contrast look than the stock model at 4 steps; it's a look, not a bug, and it is consistent across prompts.

Run it in the browser (WebGPU)

The same adapter is packaged as int8 web weights for flux-klein.js, a WebGPU port of Klein 4B:

import { createFluxKlein } from "flux-klein.js";

const klein = await createFluxKlein({ lora: "sprint", decoder: "tiny" }); // few-step LoRA + fast decode
const { image } = await klein.generate({ prompt: "a red bicycle leaning on a whitewashed wall", steps: 2 });

Try it without installing anything: radames/flux-klein-web (the "SANA-Sprint / stock 4B" switch in the prompt bar is this LoRA). Web weights live in radames/flux2-klein-edge-web (web_weights_lora_sprint/).

Limitations

  • 1-step output is softer than 2-step; use 2 unless you're latency-bound.
  • Warmer / punchier colors than the stock model. Blend with set_adapters(..., [0.7]) if you want it closer to base.
  • Best at 256–512 px; larger sizes run but are less consistent.
  • Inherits everything from the base model: FLUX.2-klein-4B is Apache-2.0, and so is this adapter.

Citation

@misc{chen2025sanasprint,
  title={SANA-Sprint: One-Step Diffusion with Continuous-Time Consistency Distillation},
  author={Junsong Chen and Shuchen Xue and Yuyang Zhao and Jincheng Yu and Sayak Paul and Junyu Chen and Han Cai and Enze Xie and Song Han},
  year={2025}, eprint={2503.09641}, archivePrefix={arXiv}
}
Downloads last month
43
Inference Providers NEW
Examples

Model tree for radames/FLUX.2-klein-Sana-Sprint

Adapter
(70)
this model

Space using radames/FLUX.2-klein-Sana-Sprint 1

Paper for radames/FLUX.2-klein-Sana-Sprint