FLUX.2 [flex] is the tunable tier of Black Forest Labs' FLUX.2 family, released in November 2025. Black Forest Labs built it around direct control of sampling steps and guidance, but Jantaris does not expose those two settings yet, so on Jantaris it works like the other FLUX.2 tiers. It generates from text or from up to 8 reference images, one image per request, at 1K or 2K in 7 aspect ratios (1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3) plus auto when references are attached.
Best for
- Stylized illustrations and posters in a set aesthetic
- Multi-reference generation with up to 8 images
- Comparing its look with other FLUX.2 tiers on the same prompt
- Social graphics in 1:1, 4:3 or 9:16
Prompting tips
- Lead with the style and medium ("flat vector illustration", "risograph print"), then the content.
- Name colors explicitly, ideally as color names or hex codes.
- Order references by importance and describe them in the same order.
autoratio is only available when reference images are attached.
FAQ
How much does FLUX.2 [flex] cost?
It costs from $0.193 per image. The estimate appears before you submit, and failed generations are not charged.
Can I set steps and guidance in FLUX.2 [flex] on Jantaris?
Not yet. The Jantaris schema for this model covers prompt, aspect ratio, resolution and reference images; GET /v1/models/flux-2-flex returns the current fields. For output up to 4 MP use FLUX.2 [max].
Does FLUX.2 [flex] support reference images?
Yes, up to 8 per request, like FLUX.2 [pro].
How to call FLUX.2 [flex] via API
curl https://jantaris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $JANTARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flux-2-flex",
"input": {
"prompt": "Product photo of a matte black ceramic coffee cup on a travertine table, soft window light, 50mm",
"aspect_ratio": "1:1",
"resolution": "1K"
}
}'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-2-flex",
"input": {
"prompt": "Product photo of a matte black ceramic coffee cup on a travertine table, soft window light, 50mm",
"aspect_ratio": "1:1",
"resolution": "1K"
}
}).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-2-flex",
"input": {
"prompt": "Product photo of a matte black ceramic coffee cup on a travertine table, soft window light, 50mm",
"aspect_ratio": "1:1",
"resolution": "1K"
}
}),
})).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 auto | 1:1 |
resolution | string | 1K 2K | 1K |
image_urls | array | max 8 |
The same schema is available from GET /v1/models/flux-2-flex.









