GPT Image 2.5 is OpenAI's September 2026 image model, and this page covers the Flare tier: the default and faster of the two GPT Image 2.5 API models. One request can generate from text or edit from up to 16 reference image URLs. On Jantaris you pick the size in aspect_ratio: 1024x1024, 1536x1024, 1024x1536 or auto, with quality from low to max. OpenAI also offers mask inpainting, custom sizes up to 3840 px and transparent output, but Jantaris does not expose those options yet.
Best for
- Ad creatives and product shots with legible text and a fixed layout
- Placing a product into a new scene using several reference photos
- Logo and icon drafts on a plain background
- Landscape covers at 1536x1024 and vertical posters at 1024x1536
Prompting tips
- Write the prompt like a brief: subject, setting, lighting, camera angle, then any exact text in quotes.
- Sending
image_urlsswitches the request to editing. Say which reference supplies what: "the bottle from image 1, the kitchen from image 2". - Set
aspect_ratioto the exact frame you need (1536x1024for landscape,1024x1536for portrait) instead of relying onauto. - Check composition at
quality: lowormedium, then re-run the winning prompt at high or max.
FAQ
How much does the GPT Image 2.5 API cost?
Jantaris charges $0.0432 per image for this model, taken from a prepaid balance with no subscription. The cost is returned as estimated_cost before the job runs, and failed generations are not charged.
What is the difference between GPT Image 2.5 and GPT Image 2.5 Sunburst?
Both accept the same inputs. This Flare tier is the faster default, while GPT Image 2.5 Sunburst is the more capable tier for long chains of edits that must stay consistent, and it runs slower.
Can GPT Image 2.5 make transparent PNGs?
OpenAI supports transparent PNG or WebP output for this model, but Jantaris does not expose that option yet, so images come back with a regular background. For larger output, GPT Image 2 offers 2k and 4k tiers.
How to call GPT Image 2.5 via API
curl https://jantaris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $JANTARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.5",
"input": {
"prompt": "Product photo of a matte black ceramic coffee cup on a travertine table, soft window light, 50mm",
"aspect_ratio": "auto"
}
}'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": "gpt-image-2.5",
"input": {
"prompt": "Product photo of a matte black ceramic coffee cup on a travertine table, soft window light, 50mm",
"aspect_ratio": "auto"
}
}).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": "gpt-image-2.5",
"input": {
"prompt": "Product photo of a matte black ceramic coffee cup on a travertine table, soft window light, 50mm",
"aspect_ratio": "auto"
}
}),
})).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 | ≤ 32000 chars | |
aspect_ratio | string | auto 1024x1024 1536x1024 1024x1536 | auto |
quality | string | auto low medium high xhigh max | auto |
image_urls | array | max 16 |
The same schema is available from GET /v1/models/gpt-image-2.5.











