FLUX 3 Image Klein

FLUX 3 Image Klein is the distilled checkpoint of Black Forest Labs' open-weights FLUX 3 image model, covering text-to-image generation and reference-based editing in a single model. It is built for speed without giving up quality, which suits interactive applications, rapid iteration, and high-volume production.

Complete technical specification for integration
Ready-to-use code snippets for common workflows
Step-by-step tutorials for advanced use cases
← All GuidesPrompting
How to prompt FLUX 3 Image Klein for text-to-image: writing a full scene caption, holding a layout with the seed, sizing up to 4K, and trading steps for speed.
Introduction
FLUX 3 Image Klein was trained on full scene captions: paragraphs that state the framing, the subject, the background and the light. Black Forest Labs pairs it with a separate upsampler that rewrites short prompts into that form. On Runware there is no rewriting step, so the model reads your prompt exactly as you send it, and the caption is yours to write.
A complete caption is also what makes the model predictable. Every clause you write is a choice the model no longer makes for you, and the 5.6B checkpoint follows a long, specific caption closely.

A wide side-on shot at court level, the player on the left third of the frame with open court to the right: a woman in her twenties serving on a red clay tennis court, caught at the top of her toss with the racket drawn back behind her shoulder and her eyes on the ball. She wears a white sleeveless dress, a white visor and a black wristband, and a small cloud of clay dust lifts from her front foot. Behind her, the baseline, a dark green windbreak fence and a row of tall cypress trees. Low golden-hour sun from behind the camera on the right, long shadows stretching across the clay. Photoreal sports photography, 200mm lens, fast shutter, warm terracotta palette.
This guide covers how to write that caption, what a short prompt leaves open, how to hold a layout with seed while you iterate, how to size the output up to 4K, and how steps and acceleration trade quality for speed.
Writing a scene caption
A caption that the model reads well covers four things in plain sentences: the framing, the subject, the background and the lighting. A short style line at the end sets the medium, the lens, the depth of field and the palette. The prompts in this guide all follow that order.

A medium shot from the waist up, the subject on the right third of the frame: a man in his early thirties with short curly hair and round tortoiseshell glasses, wearing a sage green overshirt over a white t-shirt, talking on a video call at a standing desk with an open laptop, one hand raised mid-gesture. Behind him, slightly out of focus, a bright home office with a pale oak bookshelf, a trailing pothos and a framed print on a white wall. Soft daylight from a large window on the left, gentle fill on his face from the laptop screen. Photoreal lifestyle stock photography, 35mm lens, shallow depth of field, fresh neutral palette.
Framing goes first because it decides where everything else lands. "The subject on the right third of the frame" is why the man sits right of center with the office opening up to his left. The subject clause carries the action as well as the person: "one hand raised mid-gesture" is the difference between a stock photo of someone talking and one of someone sitting.
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'bfl:flux@3-image-klein',
positivePrompt: 'A medium shot from the waist up, the subject on the right third of the frame: a man in his early thirties with short curly hair and round tortoiseshell glasses, wearing a sage green overshirt over a white t-shirt, talking on a video call at a standing desk with an open laptop, one hand raised mid-gesture. Behind him, slightly out of focus, a bright home office with a pale oak bookshelf, a trailing pothos and a framed print on a white wall. Soft daylight from a large window on the left, gentle fill on his face from the laptop screen. Photoreal lifestyle stock photography, 35mm lens, shallow depth of field, fresh neutral palette.',
width: 1248,
height: 832
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "bfl:flux@3-image-klein",
"positivePrompt": "A medium shot from the waist up, the subject on the right third of the frame: a man in his early thirties with short curly hair and round tortoiseshell glasses, wearing a sage green overshirt over a white t-shirt, talking on a video call at a standing desk with an open laptop, one hand raised mid-gesture. Behind him, slightly out of focus, a bright home office with a pale oak bookshelf, a trailing pothos and a framed print on a white wall. Soft daylight from a large window on the left, gentle fill on his face from the laptop screen. Photoreal lifestyle stock photography, 35mm lens, shallow depth of field, fresh neutral palette.",
"width": 1248,
"height": 832
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "imageInference",
"taskUUID": "6c1f2a8e-3b4d-4e5f-9a0b-1c2d3e4f5a6b",
"model": "bfl:flux@3-image-klein",
"positivePrompt": "A medium shot from the waist up, the subject on the right third of the frame: a man in his early thirties with short curly hair and round tortoiseshell glasses, wearing a sage green overshirt over a white t-shirt, talking on a video call at a standing desk with an open laptop, one hand raised mid-gesture. Behind him, slightly out of focus, a bright home office with a pale oak bookshelf, a trailing pothos and a framed print on a white wall. Soft daylight from a large window on the left, gentle fill on his face from the laptop screen. Photoreal lifestyle stock photography, 35mm lens, shallow depth of field, fresh neutral palette.",
"width": 1248,
"height": 832
}
]'runware run bfl:flux@3-image-klein \
positivePrompt="A medium shot from the waist up, the subject on the right third of the frame: a man in his early thirties with short curly hair and round tortoiseshell glasses, wearing a sage green overshirt over a white t-shirt, talking on a video call at a standing desk with an open laptop, one hand raised mid-gesture. Behind him, slightly out of focus, a bright home office with a pale oak bookshelf, a trailing pothos and a framed print on a white wall. Soft daylight from a large window on the left, gentle fill on his face from the laptop screen. Photoreal lifestyle stock photography, 35mm lens, shallow depth of field, fresh neutral palette." \
width=1248 \
height=832{
"taskType": "imageInference",
"taskUUID": "6c1f2a8e-3b4d-4e5f-9a0b-1c2d3e4f5a6b",
"model": "bfl:flux@3-image-klein",
"positivePrompt": "A medium shot from the waist up, the subject on the right third of the frame: a man in his early thirties with short curly hair and round tortoiseshell glasses, wearing a sage green overshirt over a white t-shirt, talking on a video call at a standing desk with an open laptop, one hand raised mid-gesture. Behind him, slightly out of focus, a bright home office with a pale oak bookshelf, a trailing pothos and a framed print on a white wall. Soft daylight from a large window on the left, gentle fill on his face from the laptop screen. Photoreal lifestyle stock photography, 35mm lens, shallow depth of field, fresh neutral palette.",
"width": 1248,
"height": 832
}Response
{
"data": [
{
"taskType": "imageInference",
"taskUUID": "6c1f2a8e-3b4d-4e5f-9a0b-1c2d3e4f5a6b",
"imageUUID": "d2e3f4a5-b6c7-4d8e-9f0a-1b2c3d4e5f6a",
"imageURL": "https://im.runware.ai/image/os/a14d18/ws/2/ii/d2e3f4a5-b6c7-4d8e-9f0a-1b2c3d4e5f6a.jpg"
}
]
}What a short prompt leaves open
A short prompt still returns an image, but every gap gets filled with the model's own defaults, and some of those defaults are not ones you can ship. The two pairs below use the same seed for each prompt, so the only difference is the text.

a skincare serum bottle

A centered close-up at bottle height, the bottle filling the middle third of the frame: a frosted glass dropper bottle with a matte white cap and a plain unlabeled body, filled with pale pink serum, standing on a wet slate tile beside two smooth white pebbles. Behind it, a seamless soft blush backdrop. Soft diffused light from the upper left, a crisp highlight down the left edge of the glass and a few water droplets catching the light. Beauty product photography, 100mm macro lens, clean minimal palette.
The four-word prompt came back with a label, and the model filled it with lettering that spells nothing. A product shot with invented text on it is unusable for a catalog. The caption says "a plain unlabeled body", and the label is gone. When the label should carry real copy, quote it, as the text rendering guide shows.

a hotel bedroom

A wide shot from the doorway at standing height, the bed centered: a king bed with crisp white linen, a rust-colored wool throw folded across the foot and two linen pillows, in a boutique hotel room. Behind it, a headboard wall in warm limewashed plaster with two brass wall lamps, a walnut nightstand on each side and a tall window with sheer curtains on the right. Warm late-afternoon sun through the sheers, long soft shadows across the floor. Photoreal hospitality interior photography, 24mm lens, warm terracotta and cream palette.
The short prompt produced a room that could belong to any chain hotel, with flat lamp light and a navy rug nobody asked for. The caption decides the plaster, the brass, the throw and the direction of the light, which is what turns a generic room into a listing photo for a specific property.
Holding a layout with the seed
The same prompt with the same seed returns the same image. Keep the seed fixed and change a single clause, and most of the layout carries over while the clause you changed takes effect. That is the fastest way to explore lighting or styling on a composition you already like.

A wide shot from standing height at the terrace doorway, the seating centered: an L-shaped outdoor sofa with oatmeal cushions, a low concrete coffee table and two potted olive trees on the rooftop terrace of a city apartment. Behind it, a glass balustrade and a skyline of mid-rise rooftops. Bright morning sun from the left, crisp shadows across the decking and a clear pale blue sky. Photoreal real estate photography, 24mm lens.

A wide shot from standing height at the terrace doorway, the seating centered: an L-shaped outdoor sofa with oatmeal cushions, a low concrete coffee table and two potted olive trees on the rooftop terrace of a city apartment. Behind it, a glass balustrade and a skyline of mid-rise rooftops. Dusk just after sunset, warm string lights glowing overhead, lit windows across the skyline and a deep blue sky. Photoreal real estate photography, 24mm lens.
Only the lighting sentence changed between the two prompts. The doorway framing, the sofa, the coffee table and both olive trees stay where they were, while the string lights and the evening skyline arrive with the new clause. The decking turned into concrete on the way, so treat the seed as a strong anchor rather than a lock: the more you change, the more of the scene moves with it.
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'bfl:flux@3-image-klein',
positivePrompt: 'A wide shot from standing height at the terrace doorway, the seating centered: an L-shaped outdoor sofa with oatmeal cushions, a low concrete coffee table and two potted olive trees on the rooftop terrace of a city apartment. Behind it, a glass balustrade and a skyline of mid-rise rooftops. Dusk just after sunset, warm string lights glowing overhead, lit windows across the skyline and a deep blue sky. Photoreal real estate photography, 24mm lens.',
width: 1248,
height: 832,
seed: 777
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "bfl:flux@3-image-klein",
"positivePrompt": "A wide shot from standing height at the terrace doorway, the seating centered: an L-shaped outdoor sofa with oatmeal cushions, a low concrete coffee table and two potted olive trees on the rooftop terrace of a city apartment. Behind it, a glass balustrade and a skyline of mid-rise rooftops. Dusk just after sunset, warm string lights glowing overhead, lit windows across the skyline and a deep blue sky. Photoreal real estate photography, 24mm lens.",
"width": 1248,
"height": 832,
"seed": 777
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "imageInference",
"taskUUID": "8a7b6c5d-4e3f-4a2b-9c1d-0e9f8a7b6c5d",
"model": "bfl:flux@3-image-klein",
"positivePrompt": "A wide shot from standing height at the terrace doorway, the seating centered: an L-shaped outdoor sofa with oatmeal cushions, a low concrete coffee table and two potted olive trees on the rooftop terrace of a city apartment. Behind it, a glass balustrade and a skyline of mid-rise rooftops. Dusk just after sunset, warm string lights glowing overhead, lit windows across the skyline and a deep blue sky. Photoreal real estate photography, 24mm lens.",
"width": 1248,
"height": 832,
"seed": 777
}
]'runware run bfl:flux@3-image-klein \
positivePrompt="A wide shot from standing height at the terrace doorway, the seating centered: an L-shaped outdoor sofa with oatmeal cushions, a low concrete coffee table and two potted olive trees on the rooftop terrace of a city apartment. Behind it, a glass balustrade and a skyline of mid-rise rooftops. Dusk just after sunset, warm string lights glowing overhead, lit windows across the skyline and a deep blue sky. Photoreal real estate photography, 24mm lens." \
width=1248 \
height=832 \
seed=777{
"taskType": "imageInference",
"taskUUID": "8a7b6c5d-4e3f-4a2b-9c1d-0e9f8a7b6c5d",
"model": "bfl:flux@3-image-klein",
"positivePrompt": "A wide shot from standing height at the terrace doorway, the seating centered: an L-shaped outdoor sofa with oatmeal cushions, a low concrete coffee table and two potted olive trees on the rooftop terrace of a city apartment. Behind it, a glass balustrade and a skyline of mid-rise rooftops. Dusk just after sunset, warm string lights glowing overhead, lit windows across the skyline and a deep blue sky. Photoreal real estate photography, 24mm lens.",
"width": 1248,
"height": 832,
"seed": 777
}Response
{
"data": [
{
"taskType": "imageInference",
"taskUUID": "8a7b6c5d-4e3f-4a2b-9c1d-0e9f8a7b6c5d",
"imageUUID": "3b4c5d6e-7f8a-4b9c-8d0e-1f2a3b4c5d6e",
"imageURL": "https://im.runware.ai/image/os/a14d18/ws/2/ii/3b4c5d6e-7f8a-4b9c-8d0e-1f2a3b4c5d6e.jpg",
"seed": 777
}
]
}Choosing the output size
width and height take any value from 128 to 4096 in steps of 16, so the aspect ratio is yours to set: a 2:1 web banner and a 9:16 story both come out of the model at their final size. Both are required for text-to-image.
The model generates natively up to 4K. A large render holds detail you can crop into, which is what makes it worth the extra time and cost.

A wide shot at seated height, the fireplace centered: the living room of a mountain rental cabin, with a deep sofa in charcoal wool, a chunky cream cable-knit throw draped over one arm and a low table made from a single slab of walnut. Behind it, a fieldstone fireplace with a small fire burning, walls of honey-toned pine boards and a large window showing snowy fir trees. Soft overcast daylight from the window on the right and warm firelight from the center. Photoreal vacation rental photography, 24mm lens, fine material texture, warm wood palette.

A wide shot at seated height, the fireplace centered: the living room of a mountain rental cabin, with a deep sofa in charcoal wool, a chunky cream cable-knit throw draped over one arm and a low table made from a single slab of walnut. Behind it, a fieldstone fireplace with a small fire burning, walls of honey-toned pine boards and a large window showing snowy fir trees. Soft overcast daylight from the window on the right and warm firelight from the center. Photoreal vacation rental photography, 24mm lens, fine material texture, warm wood palette.
The crop covers less than a tenth of the frame, and the throw still shows separate cables and loose wool fibers next to the grain of the walnut slab. One 4K render can supply a listing's hero image and its detail shots.
Klein is billed by the compute each image takes, and the cost climbs faster than the pixel count. A 4K square takes more than ten times as long as a 1024 × 1024 one. Draft compositions small, and render at the delivery size once the caption is settled.
Steps and acceleration
steps defaults to 16 and acceleration to medium. Both trade a little of the model's work for speed, and since the bill follows the compute, fewer steps also cost less. The set below is one caption and one seed at five settings.

A chest-up portrait, the subject centered and looking straight into the camera: a woman in her fifties with short silver hair and reading glasses pushed up on her head, wearing a navy work apron over a denim shirt, a faint smudge of grease on one cheek, smiling with her mouth closed. Behind her, out of focus, the workbench and pegboard wall of her bicycle repair shop, with wheels and tools hanging in rows. Soft daylight from a shop window on the left and a warm work lamp behind her on the right. Photoreal small-business portrait photography, 85mm lens, shallow depth of field, natural skin texture.

A chest-up portrait, the subject centered and looking straight into the camera: a woman in her fifties with short silver hair and reading glasses pushed up on her head, wearing a navy work apron over a denim shirt, a faint smudge of grease on one cheek, smiling with her mouth closed. Behind her, out of focus, the workbench and pegboard wall of her bicycle repair shop, with wheels and tools hanging in rows. Soft daylight from a shop window on the left and a warm work lamp behind her on the right. Photoreal small-business portrait photography, 85mm lens, shallow depth of field, natural skin texture.

A chest-up portrait, the subject centered and looking straight into the camera: a woman in her fifties with short silver hair and reading glasses pushed up on her head, wearing a navy work apron over a denim shirt, a faint smudge of grease on one cheek, smiling with her mouth closed. Behind her, out of focus, the workbench and pegboard wall of her bicycle repair shop, with wheels and tools hanging in rows. Soft daylight from a shop window on the left and a warm work lamp behind her on the right. Photoreal small-business portrait photography, 85mm lens, shallow depth of field, natural skin texture.

A chest-up portrait, the subject centered and looking straight into the camera: a woman in her fifties with short silver hair and reading glasses pushed up on her head, wearing a navy work apron over a denim shirt, a faint smudge of grease on one cheek, smiling with her mouth closed. Behind her, out of focus, the workbench and pegboard wall of her bicycle repair shop, with wheels and tools hanging in rows. Soft daylight from a shop window on the left and a warm work lamp behind her on the right. Photoreal small-business portrait photography, 85mm lens, shallow depth of field, natural skin texture.

A chest-up portrait, the subject centered and looking straight into the camera: a woman in her fifties with short silver hair and reading glasses pushed up on her head, wearing a navy work apron over a denim shirt, a faint smudge of grease on one cheek, smiling with her mouth closed. Behind her, out of focus, the workbench and pegboard wall of her bicycle repair shop, with wheels and tools hanging in rows. Soft daylight from a shop window on the left and a warm work lamp behind her on the right. Photoreal small-business portrait photography, 85mm lens, shallow depth of field, natural skin texture.
On this portrait, the face, the grease smudge, the glasses and the pegboard survive every setting. Measured at 1024 × 1024, the settings compare like this:
| Setting | Time | Cost against the default |
|---|---|---|
16 steps, medium (default) | about 3 s | 1× |
| 8 steps | about 2.4 s | ½ |
| 4 steps | about 2 s | ½ |
acceleration: "none" | about 3.6 s | 1½× |
acceleration: "high" | about 2 s | ½ |
Dropping to 8 steps or high acceleration halves the bill with little visible change here, which makes them a sensible setting for previews and high-volume jobs. Check them against your own subject before switching a production pipeline over, and keep the default for the final render when in doubt.
Tips for best results
-
Write all four parts. Framing, subject, background and lighting, then a style line. Any part you skip is a decision the model makes on its own, and it rarely makes the one you would have.
-
State absences as what is there. Klein has no negative prompt, so say "a plain unlabeled bottle" or "an empty street" rather than listing what to leave out. FLUX 3 Image Klein Base takes a negative prompt if you need one.
-
Quote any text you want in the frame. Text the prompt doesn't spell out comes back as invented lettering. Either quote the exact words or describe the surface as blank.
-
Lock the seed while you iterate. Change one clause per run so you can tell what each change did.
-
Draft small, deliver large. Settle the caption at 1K, then render once at the size you will ship.
-
Use fewer steps for previews. 8 steps or
highacceleration cost half of the default and are fast enough for interactive tools.