---
title: Prompting — FLUX 3 Image Klein | Runware Docs
url: https://runware.ai/docs/models/bfl-flux-3-image-klein/guides/prompting
description: "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](https://runware.ai/docs/models/bfl-flux-3-image-klein/guides/prompting#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 woman in a white tennis dress and visor serving on a red clay court at golden hour, a puff of clay dust at her front foot, with a dark green windbreak and tall cypress trees behind her](https://runware.ai/docs/assets/hero.CbxlZ89B_HxUj4.jpg)

> **Prompt**: 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](https://runware.ai/docs/models/bfl-flux-3-image-klein/guides/prompting#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.

**[Framing]** A medium shot from the waist up, the subject on the right third of the frame, **[Subject]** 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, **[Background]** 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, **[Lighting]** Soft daylight from a large window on the left, gentle fill on his face from the laptop screen, **[Style]** Photoreal lifestyle stock photography, 35mm lens, shallow depth of field, fresh neutral palette

![A man with curly hair and tortoiseshell glasses in a sage green overshirt gesturing at an open laptop, framed on the right side of a bright home office with a bookshelf, a trailing plant and a framed print](https://runware.ai/docs/assets/anatomy.DTkQiaC6_8SF18.jpg)

> **Prompt**: 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.

**TypeScript**:

```typescript
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
})
```

**Python**:

```python
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**:

```bash
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
    }
  ]'
```

**CLI**:

```bash
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
```

**JSON**:

```json
{
  "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
}
```

### [What a short prompt leaves open](https://runware.ai/docs/models/bfl-flux-3-image-klein/guides/prompting#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 tall pump bottle with a silver collar on a white background, its label covered in invented, unreadable lettering](https://runware.ai/docs/assets/short-serum.DrVnJIll_Z1i05he.jpg)

*Four words*

> **Prompt**: a skincare serum bottle

![A frosted glass dropper bottle of pale pink serum with no label, standing on wet slate between two white pebbles against a blush backdrop](https://runware.ai/docs/assets/caption-serum.C8lZqKnG_R16.jpg)

*Full caption*

> **Prompt**: 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](https://runware.ai/docs/models/bfl-flux-3-image-klein/guides/text-rendering) shows.

![A generic hotel room with a wooden headboard, two bedside lamps, a navy rug and a framed seascape on a beige wall](https://runware.ai/docs/assets/short-bedroom.H3cdLShi_xow0w.jpg)

*Three words*

> **Prompt**: a hotel bedroom

![A boutique hotel room with a white king bed and a rust wool throw, brass wall lamps on a limewashed plaster wall and sunlight coming through sheer curtains on the right](https://runware.ai/docs/assets/caption-bedroom.BG4WK3K0_1amUyr.jpg)

*Full caption*

> **Prompt**: 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](https://runware.ai/docs/models/bfl-flux-3-image-klein/guides/prompting#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 rooftop terrace seen through open glass doors, with an L-shaped sofa in oatmeal cushions, a concrete coffee table and two potted olive trees in bright morning sun](https://runware.ai/docs/assets/seed-morning.C7jc2733_9Bwsw.jpg)

*Seed 777, morning light*

> **Prompt**: 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.

![The same rooftop terrace at dusk, the sofa, table and olive trees in the same places under glowing string lights, with lit windows across a deep blue skyline](https://runware.ai/docs/assets/seed-dusk.BADjn7Qy_9cm91.jpg)

*Seed 777, dusk*

> **Prompt**: 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.

**TypeScript**:

```typescript
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
})
```

**Python**:

```python
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**:

```bash
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
    }
  ]'
```

**CLI**:

```bash
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
```

**JSON**:

```json
{
  "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
}
```

### [Choosing the output size](https://runware.ai/docs/models/bfl-flux-3-image-klein/guides/prompting#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 mountain cabin living room with a stone fireplace and a lit fire, a charcoal sofa with a cream cable-knit throw, a live-edge walnut table and a window onto snowy fir trees](https://runware.ai/docs/assets/size-4k.BC5M_Fhh_Z22aXxs.jpg)

*Full frame at 3840 × 2160*

> **Prompt**: 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 close crop of the cream cable-knit throw beside the edge of the walnut table and the fieldstone hearth, showing individual stitches and wood grain](https://runware.ai/docs/assets/size-4k-crop.BpU33NKG_15O2dR.jpg)

*A 30% crop of the same file*

> **Prompt**: 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](https://runware.ai/docs/models/bfl-flux-3-image-klein/guides/prompting#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.

> **Prompt**: 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.

**16 steps**:

![A woman with short silver hair and glasses pushed up on her head, in a navy apron over a denim shirt with a grease smudge on one cheek, smiling in front of a bicycle shop pegboard](https://runware.ai/docs/assets/steps-16.BUIbf8M5_Z1csxIG.jpg)

*Default, 16 steps and medium acceleration*

**8 steps**:

![The same bicycle shop owner portrait rendered at 8 steps, nearly identical to the default](https://runware.ai/docs/assets/steps-8.CO5lVj9b_Z1a87Hq.jpg)

*8 steps*

**4 steps**:

![The same portrait rendered at 4 steps, with the same face, apron and pegboard](https://runware.ai/docs/assets/steps-4.BGqNJcwl_IKfhT.jpg)

*4 steps*

**No acceleration**:

![The same portrait rendered at 16 steps with acceleration turned off](https://runware.ai/docs/assets/acceleration-none.PvHGFQel_ZDaygE.jpg)

*16 steps, acceleration none*

**High acceleration**:

![The same portrait rendered at 16 steps with high acceleration](https://runware.ai/docs/assets/acceleration-high.CbO5kLTD_mKCTR.jpg)

*16 steps, acceleration high*

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](https://runware.ai/docs/models/bfl-flux-3-image-klein/guides/prompting#tips-for-best-results)

1. **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.
    
2. **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](https://runware.ai/docs/models/bfl-flux-3-image-klein-base/guides/guidance-and-negative-prompts) takes a negative prompt if you need one.
    
3. **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.
    
4. **Lock the seed while you iterate.** Change one clause per run so you can tell what each change did.
    
5. **Draft small, deliver large.** Settle the caption at 1K, then render once at the size you will ship.
    
6. **Use fewer steps for previews.** 8 steps or `high` acceleration cost half of the default and are fast enough for interactive tools.