9B step-distilled text-to-image — 4 inference steps, ~8s per 1024² image on an A100.
What this repo is: a requantized, split-layout build of the upstream model — weights only, not a retrain. The recommended settings below are the values these weights are actually run with day to day, not copied from the upstream card.
Samples
prompt: a red apple on a rustic wooden table beside a window, soft daylight, fine skin texture and wood grain, studio photograph, sharp focus — 1024×1024, 4 steps, guidance 1.0, seed 12345
prompt: portrait of an older fisherman with a weathered face, natural window light, shallow depth of field, photorealistic — 1024×1024, 4 steps, guidance 1.0, seed 99
**prompt:** `a red apple on a rustic wooden table beside a window, soft daylight, fine skin texture and wood grain, studio photograph, sharp focus` — 1024×1024, 4 steps, guidance 1.0, seed 12345
**prompt:** `portrait of an older fisherman with a weathered face, natural window light, shallow depth of field, photorealistic` — 1024×1024, 4 steps, guidance 1.0, seed 99
prompt: a rain-slicked Tokyo street at night, neon signs reflecting in puddles, cinematic, 35mm photograph — 1024×1024, 4 steps, guidance 1.0, seed 1234
**prompt:** `a rain-slicked Tokyo street at night, neon signs reflecting in puddles, cinematic, 35mm photograph` — 1024×1024, 4 steps, guidance 1.0, seed 1234
img2img
One source, three prompts, identical settings — so the difference you see is the prompt.
source photograph
oil render
watercolor render
sketch render
**source** — one photograph, used for all three
**img2img prompt:** `An oil painting of a dramatic mountain landscape at sunset, thick impasto brushstrokes` — 1024×1024, **24 steps**, **guidance 4.0**, **strength 0.90**, seed 42
**img2img prompt:** `A watercolor painting of a mountain valley at dawn, soft wet-on-wet washes` — 1024×1024, **24 steps**, **guidance 4.0**, **strength 0.90**, seed 42
**img2img prompt:** `A detailed pencil sketch of a mountain landscape in warm sepia and sanguine tones` — 1024×1024, **24 steps**, **guidance 4.0**, **strength 0.90**, seed 42
Do not run img2img at the txt2img step count
This model's txt2img preset is 4 steps — it is a distilled 4-step model and that is
correct for text-to-image. Running img2img at 4 steps produces output
indistinguishable from the source at everystrength from 0.3 to 0.9: there is
not enough schedule left to restyle anything.
At 24 steps with guidance 4.0 — the settings this repo's own img2img integration
test uses — it restyles properly. The three results above are the same photograph as
oil, watercolour and pencil, with the composition intact in each and the medium
genuinely different rather than a colour filter.
If img2img appears to do nothing, check the step count before anything else.
Recommended settings
Values this build is run with in practice. They are read out of a live config when this card is generated, so they cannot drift from what is actually used.
Parameter
Production value
Meaning
width
1024
Output width in pixels
height
1024
Output height in pixels
steps
4
Denoising steps
guidance
1.0
Guidance scale
max_sequence_length
512
Max prompt tokens
strength
0.9
img2img denoise strength (1.0 = ignore the input image)
Supported modes:txt2img, img2img
Notes and gotchas
4 steps is not a typo. FLUX.2 [klein] is step-distilled to 4 inference steps at guidance 1.0, per the upstream model card.
Do not run this at 50 steps / guidance 4.0. An earlier preset did exactly that — roughly 10× slower (measured 78s → 8s on the A100) and the wrong guidance for a guidance-distilled model.
img2img strength 0.90 is the verified value for this build.
Layout
Components ship as separate files rather than one bundle: the transformer, the text encoder(s) and the VAE each load independently, with configs and tokenizers under config/. Any loader that accepts explicit per-component paths can consume this directly — point it at the files listed below.
A generic diffusers snippet is deliberately omitted. This is a repacked split layout with substituted encoders, so an upstream example will not load it unmodified, and an untested snippet would be worse than none.
This build: requantized and relaid out into a split component layout. Weights are not retrained; only the format and directory layout differ.
License: left as unknown in this repo's metadata. Refer to the upstream model's license for redistribution and commercial-use terms — several of these bases are non-commercial.