---
title: "Generate an image with FLUX 3 Image Klein."
method: POST
path: "/v1/flux-3-image-klein"
tags: ["Models"]
---

# Generate an image with FLUX 3 Image Klein.

`POST /v1/flux-3-image-klein`

## Request

- Base URL: `https://api.bfl.ai`
- URL: `https://api.bfl.ai/v1/flux-3-image-klein`
- Auth: API key in header `x-key`
- TypeScript: <https://skmtc.dev/bfl/apis/bfl-api/docs/v1/flux-3-image-klein/post.ts> (a function with typed inputs; its response is checked against the schema)

Submits a text-to-image or image editing task with FLUX 3 Image Klein.

## Request body

- Flux3ImageKleinInputs: FLUX 3 Image Klein: text-to-image, or editing with up to 10 reference images.
  - `user` string, nullable: Opaque identifier for the end user supplied by the calling platform.
  - `prompt` string, required: Free-form prompt describing the image.
  - `images` union: Optional reference image(s), each an http(s) URL or base64, one to 10 total. The first is the image being edited and sets the default output size.
    - string
    - string[]
  - `aspect_ratio` union: Output aspect ratio, as in flux-3-image. `auto` (default): for edits, the first reference's exact aspect; for text-to-image, a ratio picked from the prompt (prompt rewrite, else ratio keywords, else 16:9) at the requested tier. Ignored when width and height are set.
    - '21:9' | '2:1' | '16:9' | '3:2' | '7:5' | '4:3' | '5:4' | '1:1' | '4:5' | '3:4' | '5:7' | '2:3' | '9:16' | '1:2' | '9:21'
    - 'auto'
  - `resolution` '768sq' | '1k' | '1.5k' | '2k' | '4k', nullable: Equal-area size tier, as in flux-3-image: `768sq`, `1k`, `1.5k`, `2k` or `4k`. Omitted: `1k` for text-to-image; for edits the first reference's own size, or its nearest tier when aspect_ratio is set. Ignored when width and height are set.
  - `width` integer, nullable: Exact output width in pixels, [64, 6256]; set together with height. Overrides resolution and aspect_ratio.
  - `height` integer, nullable: Exact output height in pixels, [64, 6256]; width x height at most 16822272 pixels (16.8 MP, the largest 4k bin).
  - `seed` integer, nullable: Seed for reproducibility; random when omitted.
  - `safety_tolerance` integer: Harm moderation tolerance from 0 to 7, with 0 the strictest. The route and organization determine the approved maximum and per-category ceilings. Unapproved levels return 422 with approved levels.
  - `output_format` 'jpeg' | 'png': Output image format: `jpeg` (default) or `png`.
  - `steps` integer, nullable: Denoising steps (default 16).

## Response `200`

Successful Response

- AsyncResponse
  - `id` string, required
  - `polling_url` string, required
  - `cost` number, nullable: Cost in credits for this request
  - `input_mp` number, nullable: Input megapixels (2 decimal places)
  - `output_mp` number, nullable: Output megapixels (2 decimal places)

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-21** `ab75e0a84610`: 1 info
  - added the new optional request property `user`
- **2026-10-15** `7fbcacd8a21b`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/bfl/apis/bfl-api/changes/v1/flux-3-image-klein/post.md)

---

[API](https://skmtc.dev/bfl/apis/bfl-api.md) - [All operations](https://skmtc.dev/bfl/apis/bfl-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bfl/apis/bfl-api/revisions/ea458c661ef8?raw)
