Black Forest Labs
FLUX.3 Image
black-forest-labs/flux-3-image
Black Forest Labs' flagship image generation and editing model: text-to-image plus multi-reference editing with up to 10 input images, at fixed resolution tiers.
RoleThe product shot studio
Free
In / M
Free
Out / M
47K
Context
- AA intelligence index
- Not on listing
- Inputs
- text, image
- Outputs
- image
- Tools
- Not listed
- Structured output
- Not listed
- Reasoning
- Not listed
- Weights
- Not verified
- Listed
- Oct 1, 2026
01 · What it's good at
Use it for this.
Three jobs this model is built for, and the ones to give to something else.
01
Product and marketing images from a prompt
02
Editing with several reference images (up to 10)
03
Consistent style across a set of images
Skip it for
- Describing an image. That is a vision chat model
02 · Example tasks
What you'd actually send it.
Real inputs, not a benchmark. Paste one into the snippet below to try it.
You send
A matte black kettle on a limestone slab, soft daylight, no text, 16:9.
Why this model
Text-to-image is the core use.
03 · Your stack
Where it sits: Draw, speak, listen.
At the edge of the stack: a chat model writes the brief, the image model renders it, your app stores the file.
Layer 01
Retrieve
Layer 02
Plan & reason
Layer 03
Do the volume
Layer 04
Gate & route
Layer 05 · this model
Draw, speak, listen
04 · Wire it up
One request. Paste and run.
Uses OpenRouter, so one key works for every model on this site. Set OPENROUTER_API_KEY and swap the prompt for one of the tasks above.
import { writeFile } from "node:fs/promises";
const res = await fetch("https://openrouter.ai/api/v1/images", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.OPENROUTER_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"model": "black-forest-labs/flux-3-image",
"prompt": "A matte black kettle on a limestone slab, soft daylight, no text",
"aspect_ratio": "16:9"
}),
});
const result = await res.json();
// Images come back base64-encoded.
await writeFile("out.png", Buffer.from(result.data[0].b64_json, "base64"));
05 · Watch out for
Gotchas.
Resolution comes in fixed tiers; check the
resolutionvalues in the image models API.Images return as base64. Decode and store them as files, not database rows.
Sources
Lessons are written from each model's listing and the linked docs. We don't publish our own benchmark numbers; the index above is Artificial Analysis, as shown on OpenRouter.
Keep learning