WaveSpeedAI

Introducing OpenAI GPT Image 2.5 on WaveSpeedAI: Flare and Sunburst, Five Quality Tiers, From $0.01 per Image

OpenAI's GPT Image 2.5 is live on WaveSpeedAI as four endpoints: Flare and Sunburst tiers, each with text-to-image and edit. Five quality levels from low to max, 1K to 4K output, up to 16 reference images, and a medium tier that starts at $0.024 per image.

By WaveSpeedAI7 min read
Introducing OpenAI GPT Image 2.5 on WaveSpeedAI: Flare and Sunburst, Five Quality Tiers, From $0.01 per Image

OpenAI’s GPT Image 2.5 is available on WaveSpeedAI today, and it arrives as two tiers rather than one model:

Both tiers share the same request shape, the same five quality levels, the same 1K / 2K / 4K output sizes, and the same prices. The landing page with all four endpoints is at wavespeed.ai/gpt-image-2-5-api.

The cover image is Flare text-to-image at the default medium quality, 1K, aspect ratio 3:2, from this prompt:

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

It took about 20 seconds and cost $0.024.

Flare or Sunburst?

Pick by how much the fine detail matters, not by price, because the price is identical.

Flare is the default for product shots, social creatives, hero images, and anything you iterate on. It returns a 1K image in roughly 20 seconds at medium quality.

Sunburst is for the images where you will zoom in: macro photography, intricate mechanical or architectural subjects, dense typography, print work. It takes longer per image and rewards prompts that describe texture and material. This is Sunburst text-to-image, again at medium and 1K:

Sunburst text-to-image: macro of a mechanical watch movement

Extreme macro photograph of an open mechanical wristwatch movement, intricate gears and jewels, brushed steel and gold plating, dramatic studio lighting, ultra-detailed

Because both tiers accept identical parameters, the sensible workflow is to draft on Flare and re-run the settled prompt on Sunburst only for the deliverables that need it.

Five quality tiers, and how they map to GPT Image 2

GPT Image 2.5 exposes five quality values: low, medium, high, xhigh, and max. Every step up adds detail, latency, and cost. medium is the default on WaveSpeedAI.

TierBest for
lowFast drafts, thumbnails, layout exploration
mediumThe balanced default for most production images
highDetailed marketing visuals, text-heavy designs, product shots
xhighFine textures, intricate scenes, print-ready assets
maxThe highest-fidelity output the model offers

One thing to know before you copy settings across from GPT Image 2: the tiers are a new five-step scale, not a renaming of the old three. Treat medium as the starting point, run your own prompts, and move one step up or down until the output matches what you need. Every tier costs less than the GPT Image 2 tier of the same name.

Pricing

Prices are per image and identical for Flare and Sunburst.

Text-to-image

Quality1K2K4K
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

Edit (prices include one reference image; each additional reference image adds $0.012)

Quality1K2K4K
low$0.02$0.03$0.04
medium$0.034$0.05$0.08
high$0.10$0.16$0.28
xhigh$0.17$0.28$0.49
max$0.37$0.61$1.01

For comparison, GPT Image 2 text-to-image at medium is $0.06 at 1K and $0.18 at 4K; the GPT Image 2.5 default is $0.024 at 1K and $0.07 at 4K.

Parameters

Text-to-image and edit take the same parameters; edit adds images.

ParameterRequiredNotes
promptYesNatural-language description of the image or the edit.
imagesEdit onlyUp to 16 reference images. The output follows the first image’s aspect ratio unless aspect_ratio is set.
aspect_ratioNo1:1, 1:2, 2:1, 1:3, 3:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 9:21, 21:9. Text-to-image defaults to 1:1.
resolutionNo1k (default), 2k, 4k.
qualityNolow, medium (default), high, xhigh, max.
output_formatNopng (default), jpeg, webp.
enable_base64_outputNoReturn the image as base64 instead of a CDN URL.
enable_sync_modeNoWait for the result in the same response when it finishes within the sync window.

Editing with reference images

Edit takes the same prompt plus up to 16 images. It is good at keeping a product intact while changing everything around it. This is the cover bottle handed to Flare Edit with the instruction to place it on a beach boardwalk at golden hour and keep the bottle, blank label, and proportions unchanged:

Flare edit: the same bottle moved to a beach boardwalk

And Sunburst Edit turning the watch macro into a print advertisement, adding a navy backdrop, a vignette, and the headline text “PRECISION, ENGINEERED” in serif type while every gear and jewel stays where it was:

Sunburst edit: the watch movement as a print advertisement

Edits take about 30 seconds at 1K. Put the exact wording of any text you want rendered in quotes, and say explicitly what must not change.

Calling the API

Submit a prediction, then poll for the result. Swap the model ID to move between Flare, Sunburst, text-to-image, and edit.

curl -X POST "https://api.wavespeed.ai/api/v3/openai/gpt-image-2.5-flare/text-to-image" \
  -H "Authorization: Bearer $WAVESPEED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A cinematic product photo of an unbranded amber glass perfume bottle on a marble surface, soft golden-hour lighting",
    "aspect_ratio": "3:2",
    "resolution": "1k",
    "quality": "medium"
  }'

The response carries a prediction id. Poll https://api.wavespeed.ai/api/v3/predictions/{id}/result until status is completed; outputs[0] is the image URL.

import os
import time

import requests

API_KEY = os.environ["WAVESPEED_API_KEY"]
BASE = "https://api.wavespeed.ai/api/v3"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}


def run(model: str, payload: dict) -> str:
    submit = requests.post(f"{BASE}/{model}", headers=HEADERS, json=payload, timeout=60)
    submit.raise_for_status()
    prediction_id = submit.json()["data"]["id"]
    while True:
        time.sleep(3)
        result = requests.get(f"{BASE}/predictions/{prediction_id}/result", headers=HEADERS, timeout=60)
        result.raise_for_status()
        data = result.json()["data"]
        if data["status"] == "completed":
            return data["outputs"][0]
        if data["status"] == "failed":
            raise RuntimeError(data.get("error"))


# Text-to-image on Flare
image_url = run(
    "openai/gpt-image-2.5-flare/text-to-image",
    {"prompt": "Extreme macro photograph of an open mechanical wristwatch movement, ultra-detailed", "aspect_ratio": "3:2"},
)

# Edit on Sunburst, using the generated image as the reference
ad_url = run(
    "openai/gpt-image-2.5-sunburst/edit",
    {
        "prompt": "Turn this into a premium print advertisement with a dark navy backdrop and the headline text \"PRECISION, ENGINEERED\" at the top, keep every gear exactly as shown",
        "images": [image_url],
        "quality": "high",
    },
)
print(image_url, ad_url)

Migrating from GPT Image 2

  • Model IDs. Replace openai/gpt-image-2/text-to-image with openai/gpt-image-2.5-flare/text-to-image (or the Sunburst equivalent) and openai/gpt-image-2/edit with openai/gpt-image-2.5-flare/edit. The request body does not change.
  • Quality. Decide whether you want the same fidelity (medium becomes high) or the same tier name at a lower price (medium stays medium).
  • Aspect ratios. The same 15 presets are accepted, so no prompt or layout changes are needed.
  • Nothing is removed. GPT Image 2 stays online at its current prices, so you can migrate one endpoint at a time.

If you are new to the family, the earlier guides still apply to the request flow: GPT Image 2 API guide, GPT Image 2 pricing in 2026, and GPT Image 2 rate limits.

Start generating

One API key covers all four endpoints and the rest of the WaveSpeedAI catalog, with the same prediction flow you already use for GPT Image 2.

Share