OpenAI's GPT Image 2.5 Flare Edit edits one or more reference images from natural-language instructions, 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.039per run·~25 / $1

Preserve the same woman, same face, same pose, same headphones product design, same overall layout structure, same camera angle, and the same premium commercial advertising style. Redesign the image into a bold limited-edition holiday launch campaign while keeping the poster highly polished and product-focused. Change the color accents from subtle blue to deep red and warm gold. Update the typography styling to feel slightly more festive and luxurious, while preserving clean commercial readability and strong layout hierarchy. Replace the text exactly as follows, keeping all text perfectly spelled, aligned, and clearly legible: Change the main headline from: “WaveSpeed X1” to: “WaveSpeed X1 LUXE” Change the subheadline from: “Wireless Headphones for Focused Listening” to: “Luxury Wireless Headphones for Everyday Escape” Change the marketing line from: “Immersive sound. All-day comfort. Up to 40 hours battery life.” to: “Signature sound. Premium comfort. Limited holiday edition.” Change the feature list to: “• Adaptive Noise Cancellation” “• 45H Battery” “• Spatial Audio” “• Bluetooth 5.4” “• Fast Charge” “• Multi-Device Pairing” Change the price badge from: “Launch Price $199” to: “Holiday Price $249” Change the call-to-action button from: “SHOP NOW” to: “PRE-ORDER NOW” Change the small bottom text from: “Available in Black, Silver, and Sand” to: “Available in Onyx Black, Champagne Gold, and Winter Ivory” Change the small accessory line from: “Includes carrying case, USB-C cable, and 3.5 mm audio cable” to: “Includes premium hard case, USB-C cable, audio cable, and travel pouch” Change the small product callout from: “Premium Memory Foam Cushions” to: “Ultra-Soft Luxe Ear Cushions” Change the small corner label from: “NEW” to: “LIMITED EDITION” Add one extra small elegant label near the product close-up: “Holiday Collection 2026” Keep the product rendering realistic and detailed, preserve the woman's identity and styling, and ensure all updated text is sharp, professional, and perfectly readable. Premium commercial product poster, photorealistic, polished, typography-rich, visually refined.

Place this exact perfume bottle on a sunlit beach boardwalk at golden hour, ocean and soft bokeh in the background, keep the bottle design, blank label and proportions unchanged, no text or logos

Transform the flying page into an ancient glowing map fragment while preserving the woman’s face, bicycle, motion, and library setting. Add a subtle hidden doorway beginning to open between two bookshelves, with warm mysterious light spilling through. Make the scene feel like the beginning of a secret chase through the library. Keep it elegant, adventurous, and story-driven.
OpenAI GPT Image 2.5 Flare Edit transforms one or more reference images using natural-language instructions. Flare is the fast, balanced GPT Image 2.5 tier for everyday generation at low latency.
Natural-language image editing Edit images by describing the changes you want in plain language — no manual masking or complex editing workflow required.
Works with reference images Use up to 16 input images as the visual source for edits, transformations, or style adjustments.
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 |
|---|---|---|
| images | Yes | Reference images to edit (up to 16). |
| prompt | Yes | Text description of the desired edit. |
| 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. Auto-detected from the first input image if not specified. |
| 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.Turn this product photo into a premium studio advertisement with soft cinematic lighting, a clean beige background, subtle shadows, realistic reflections, and luxury brand aesthetics
Pricing varies by quality and resolution. Prices below include one input image. Each additional input image adds $0.015.
| Quality | 1k | 2k | 4k |
|---|---|---|---|
| low | $0.025 | $0.035 | $0.045 |
| medium | $0.039 | $0.055 | $0.085 |
| high | $0.105 | $0.165 | $0.285 |
| xhigh | $0.175 | $0.285 | $0.495 |
| max | $0.375 | $0.615 | $1.015 |
medium quality and 1k; move up a tier only if a specific detail is missing.images and prompt are required fields.aspect_ratio is set.Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/openai/gpt-image-2.5-flare/edit 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 Edit 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",
"images": [
"https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg"
],
"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/edit" \
-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/edit";
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",
"images": [
"https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg"
],
"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",
"images": [
"https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg"
],
"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/edit", 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 Edit is a OpenAI model for image editing, exposed as a REST API on WaveSpeedAI. OpenAI's GPT Image 2.5 Flare Edit edits one or more reference images from natural-language instructions, 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-edit.
Gpt Image 2.5 Flare Edit starts at $0.039 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`, `images`, `aspect_ratio`, `resolution`, `enable_base64_output`, `enable_sync_mode`. 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-edit.
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.