FLUX.1 Kontext [pro] is Black Forest Labs' image editing model, released in May 2025. You change an image by describing the edit in words, with no mask to draw, and it keeps characters consistent across repeated edits. It also generates from text alone. Each request accepts up to 4 reference images and returns one image at about 1 MP, in 9 aspect ratios from 1:1 to 21:9 and 9:21. A seed parameter lets you reproduce a result.
Best for
- Changing clothing, background or pose while keeping the same person
- Step-by-step edits in a chat-style app, one instruction at a time
- Replacing text on signs, labels or posters
- Restyling a photo as an illustration or a film still
Prompting tips
- State what changes and what stays: "change the jacket to red leather, keep face, pose and background".
- Make one edit per request and chain requests for bigger changes to limit drift.
- To replace text, quote both the old and the new wording.
- Output is about 1 MP, so upscale separately if you need print size.
FAQ
How much does the FLUX.1 Kontext [pro] API cost?
The rate is $0.088 per image. There is no subscription, and failed generations are not charged.
Do I need a mask to edit with Kontext?
No. Edits are driven only by the prompt, and the model works out which area to change.
Kontext [pro] or Kontext [max]?
FLUX.1 Kontext [max] has stronger typography and prompt adherence. [pro] is the standard tier with the same inputs.
How to call FLUX.1 Kontext [pro] via API
curl https://jantaris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $JANTARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flux-kontext-pro",
"input": {
"prompt": "Product photo of a matte black ceramic coffee cup on a travertine table, soft window light, 50mm",
"aspect_ratio": "1:1"
}
}'import os, time, requests
API = "https://jantaris.com/v1"
H = {"Authorization": f"Bearer {os.environ['JANTARIS_API_KEY']}"}
task = requests.post(f"{API}/generate", headers=H, json={
"model": "flux-kontext-pro",
"input": {
"prompt": "Product photo of a matte black ceramic coffee cup on a travertine table, soft window light, 50mm",
"aspect_ratio": "1:1"
}
}).json()
while task["status"] in ("queued", "running"):
time.sleep(3)
task = requests.get(f"{API}/tasks/{task['id']}", headers=H).json()
print(task["status"], task["cost"], [o["url"] for o in task["output"]])const API = "https://jantaris.com/v1";
const headers = { Authorization: `Bearer ${process.env.JANTARIS_API_KEY}`, "Content-Type": "application/json" };
let task = await (await fetch(`${API}/generate`, {
method: "POST",
headers,
body: JSON.stringify({
"model": "flux-kontext-pro",
"input": {
"prompt": "Product photo of a matte black ceramic coffee cup on a travertine table, soft window light, 50mm",
"aspect_ratio": "1:1"
}
}),
})).json();
while (task.status === "queued" || task.status === "running") {
await new Promise((r) => setTimeout(r, 3000));
task = await (await fetch(`${API}/tasks/${task.id}`, { headers })).json();
}
console.log(task.status, task.cost, task.output.map((o) => o.url));
Parameters
| Parameter | Type | Allowed | Default |
|---|---|---|---|
prompt * | string | ||
aspect_ratio | string | 1:1 4:3 3:4 16:9 9:16 3:2 2:3 21:9 9:21 | 1:1 |
num_images | integer | 1-1 | 1 |
image_urls | array | max 4 | |
seed | integer |
The same schema is available from GET /v1/models/flux-kontext-pro.












