Instructions to use radames/FLUX.2-klein-Sana-Sprint with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use radames/FLUX.2-klein-Sana-Sprint with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("black-forest-labs/FLUX.2-klein-4B", dtype=torch.bfloat16, device_map="cuda") pipe.load_lora_weights("radames/FLUX.2-klein-Sana-Sprint") prompt = "a red bicycle leaning on a whitewashed wall, morning light" image = pipe(prompt).images[0] - Inference
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- Draw Things
- DiffusionBee
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 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=1or2. Klein is a guidance-distilled model, soguidance_scaleis 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) andpeft. The weights are a standardpytorch_lora_weights.safetensorswithlora_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:

| 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
Model tree for radames/FLUX.2-klein-Sana-Sprint
Base model
black-forest-labs/FLUX.2-klein-4B