ChatGPT Image 2.5 Flare vs Sunburst: same price and limits on Sume

Both ChatGPT Image 2.5 ids list 16 references, the same ratios and quality tiers, and $0.065875 per image on Sume; A 20-prompt A/B test costs $2.635.

4 min readSume
All posts

On Sume, ChatGPT Image 2.5 comes as two ids, openai/gpt-image-2.5 (Flare) and openai/gpt-image-2.5-sunburst, and the catalog lists identical limits and the same $0.065875 price for both. Pin one id in config and switch only if your own prompts show a difference.

Everything below is from the Sume Image API docs and the live catalog (read 2026-10-03). It does not describe a quality difference, because the docs do not describe one.

What the catalog says

The docs add that both ids use the same upstream token rates and that no separate Effortless endpoint is advertised; its documented automatic quality option is auto.

Flare and Sunburst side by side on Sume (read 2026-10-03)
FieldFlareSunburst
Model idopenai/gpt-image-2.5openai/gpt-image-2.5-sunburst
Price per image (high, 1024)$0.065875$0.065875
Reference imagesup to 16up to 16
Quality valuesauto, low, medium, high, xhigh, maxauto, low, medium, high, xhigh, max
Background, mask_urlauto/transparent/opaque, mask_urlauto/transparent/opaque, mask_url
Billing basisSame upstream token ratesSame upstream token rates

How to compare them on your own prompts

Pick 20 prompts that represent your real work, run each on both ids with the same references and quality, and score the pairs blind. With 40 images the whole test costs $2.635.

Fix everything but the model id, including quality: omitted quality defaults to high, but pin it so a later default change cannot alter your test.

  • Count failures (wrong text, extra fingers, drifted logos) as well as your preference.
  • Re-run the failures once to separate a model weakness from a bad sample.
  • Keep the winning id in config, not in prompts.

The test loop

Replace the prompt list with your own. Each result is a URL you can open or hand to a reviewer.

import os
import requests

URL = "https://api.sume.com/v1/images"
H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
IDS = ["openai/gpt-image-2.5", "openai/gpt-image-2.5-sunburst"]
PROMPTS = ["a matte black kettle on a wooden counter, morning light"]


def main():
    for prompt in PROMPTS:
        for model in IDS:
            body = {"model": model, "prompt": prompt, "quality": "medium"}
            r = requests.post(URL, headers=H, json=body, timeout=60)
            r.raise_for_status()
            if r.status_code == 200:
                print(model, r.json()["data"][0]["url"])
            else:
                print(model, "202: poll the job")


if __name__ == "__main__":
    main()

Sources

Related posts

More in Comparisons

All Comparisons posts

Written by Sume