OpenAI's GPT Image 2.5 Flare Text-to-Image generates high-quality images from natural-language prompts, with five quality tiers up to 4K. Flare is the fast, balanced GPT Image 2.5 tier for everyday generation at low latency. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Idle

$0.024per run·~41 / $1

A stylish young European woman standing in front of a premium retro-futuristic bookstore at night, wearing a sharp black coat and silver boots, holding a red hardcover book in one hand. The storefront is filled with elegant illuminated typography and poster design. The main sign above the entrance clearly reads: “THE MIDNIGHT ARCHIVE” A large window poster clearly reads: “OPEN UNTIL 2 AM” A smaller promotional sign beside the door clearly reads: “RARE BOOKS • ART • DESIGN” The red book in her hand has the clearly legible title: “MEMORIES OF TOMORROW” Sophisticated editorial composition, cinematic blue and amber lighting, realistic glass reflections, clean typography hierarchy, premium graphic design, photorealistic fashion photography, highly detailed, all text perfectly spelled and clearly readable.

A cinematic product photo of an unbranded amber glass perfume bottle with a plain frosted-glass label and no text or logo, on a marble surface, soft golden-hour lighting, shallow depth of field, elegant reflections, premium editorial photography style

A handsome young Mediterranean man standing on the rooftop of an old apartment building just before a storm, wearing a loose white shirt and dark trousers, struggling to pull a huge white bedsheet from a clothesline as powerful wind turns it into a sail around him, dramatic dark clouds approaching behind the city skyline, warm sunlight breaking through one gap in the clouds, poetic cinematic realism, expressive full-body action.
OpenAI GPT Image 2.5 Flare Text-to-Image turns natural-language prompts into high-quality images. Flare is the fast, balanced GPT Image 2.5 tier for everyday generation at low latency.
Strong prompt fidelity Generate images that closely follow detailed natural-language instructions, including scene layout, visual style, and composition.
Accurate text rendering Create images with clearer, more usable in-image text for posters, ads, packaging, and interface mockups.
Five quality tiers
Choose from low drafts to max fidelity and pay only for the detail you need.
Up to 4K output and flexible aspect ratios
Square, portrait, landscape, and panoramic outputs at 1k, 2k, or 4k.
Production-ready API Access the model through a ready-to-use REST inference API for fast integration into applications and workflows.
| Parameter | Required | Description |
|---|---|---|
| prompt | Yes | Text description of the desired image. |
| aspect_ratio | No | Aspect ratio: 1:1, 3:2, 2:3, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9, 2:1, 1:2, 3:1, 1:3, 9:21. Defaults to 1:1. |
| resolution | No | Output resolution: 1k (default), 2k, or 4k. |
| quality | No | Quality tier: low, medium (default), high, xhigh, or max. Higher tiers add detail and cost more. |
| output_format | No | png (default), jpeg, or webp. |
GPT Image 2.5 exposes five quality tiers. Pick the lowest tier that meets your need; every step up adds detail, latency, and cost.
| Tier | Best for |
|---|---|
low | Fast drafts, thumbnails, layout exploration. |
medium | The balanced default for most production images. |
high | Detailed marketing visuals, text-heavy designs, product shots. |
xhigh | Fine textures, intricate scenes, print-ready assets. |
max | The highest-fidelity output the model offers. |
medium / 1k is the default; raise quality for more detail or resolution for larger output.1:1 for square, 2:3 or 9:16 for portrait, 3:2 or 16:9 for landscape, up to 3:1 / 1:3 panoramas.A cinematic product photo of a luxury perfume bottle on a marble surface, soft golden-hour lighting, shallow depth of field, elegant reflections, premium editorial photography style
Pricing varies by quality and resolution.
| Quality | 1k | 2k | 4k |
|---|---|---|---|
| low | $0.01 | $0.02 | $0.03 |
| medium | $0.024 | $0.04 | $0.07 |
| high | $0.09 | $0.15 | $0.27 |
| xhigh | $0.16 | $0.27 | $0.48 |
| max | $0.36 | $0.60 | $1.00 |
medium quality and 1k; move up a tier only if a specific detail is missing.prompt is the only required field.Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/openai/gpt-image-2.5-flare/text-to-image with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read output values from data.outputs. Examples for Gpt Image 2.5 Flare Text To Image below.
set -euo pipefail
: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"
REQUEST_BODY=$(cat <<'JSON'
{
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"aspect_ratio": "1:1",
"resolution": "1k",
"quality": "medium",
"output_format": "png"
}
JSON
)
# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
-X POST "https://api.wavespeed.ai/api/v3/openai/gpt-image-2.5-flare/text-to-image" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $WAVESPEED_API_KEY" \
-d "$REQUEST_BODY")
TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; then
printf 'Submission response did not contain a prediction id
' >&2
exit 1
fi
RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/$PREDICTION_ID/result"
# 2. Poll until the prediction finishes.
while true; do
RESPONSE=$(curl --silent --show-error --fail-with-body "$RESULT_URL" \
-H "Authorization: Bearer $WAVESPEED_API_KEY")
RESULT=$(printf '%s' "$RESPONSE" | jq 'if has("data") then .data else . end')
STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
case "$STATUS" in
completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
failed|cancelled|timeout|deleted) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
*) sleep 2 ;;
esac
doneconst submitUrl = "https://api.wavespeed.ai/api/v3/openai/gpt-image-2.5-flare/text-to-image";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');
async function requestJson(url, options = {}) {
const response = await fetch(url, options);
if (!response.ok) throw new Error(await response.text());
return response.json();
}
// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
method: "POST",
headers: {
"Authorization": `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"aspect_ratio": "1:1",
"resolution": "1k",
"quality": "medium",
"output_format": "png"
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = `https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;
// 2. Poll until the prediction finishes.
while (true) {
const resultBody = await requestJson(resultUrl, {
headers: { "Authorization": `Bearer ${apiKey}` },
});
const result = resultBody.data ?? resultBody;
if (result.status === "completed") {
console.log(result.outputs);
break;
}
if (["failed", "cancelled", "timeout", "deleted"].includes(result.status)) throw new Error(JSON.stringify(result));
await new Promise(resolve => setTimeout(resolve, 2000));
}import json
import os
import time
from urllib.request import Request, urlopen
api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"aspect_ratio": "1:1",
"resolution": "1k",
"quality": "medium",
"output_format": "png"
}
def request_json(url, data=None):
request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
with urlopen(request) as response:
return json.load(response)
# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/openai/gpt-image-2.5-flare/text-to-image", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
raise RuntimeError("Submission response did not contain a prediction id")
result_url = f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"
# 2. Poll until the prediction finishes.
while True:
result_body = request_json(result_url)
result = result_body.get("data", result_body)
status = result.get("status")
if status == "completed":
print(result.get("outputs", []))
break
if status in {"failed", "cancelled", "timeout", "deleted"}:
raise RuntimeError(result)
time.sleep(2)Gpt Image 2.5 Flare Text To Image is a OpenAI model for image generation, exposed as a REST API on WaveSpeedAI. OpenAI's GPT Image 2.5 Flare Text-to-Image generates high-quality images from natural-language prompts, with five quality tiers up to 4K. Flare is the fast, balanced GPT Image 2.5 tier for everyday generation at low latency. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing. You can call it programmatically or try it from the playground above.
POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates production-oriented Python, JavaScript, and cURL examples with timeouts, transient-error handling, and safe GET retries. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/openai/openai-gpt-image-2.5-flare-text-to-image.
Gpt Image 2.5 Flare Text To Image starts at $0.024 per run. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.
Key inputs: `prompt`, `aspect_ratio`, `resolution`, `enable_base64_output`, `enable_sync_mode`, `output_format`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/openai/openai-gpt-image-2.5-flare-text-to-image.
Sign up for a free WaveSpeedAI account to claim starter credits, copy your API key from /accesskey, then call the endpoint shown in the API tab of the playground. The playground also auto-generates a code sample in Python, JavaScript, or cURL for the parameters you've set.
Commercial usage rights depend on the model's license, set by its provider (OpenAI). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.