Image quality defaults differ: OpenAI auto, Sume high, Ideogram medium

Omit quality and the tier differs: OpenAI defaults GPT Image 2.5 to auto, Sume to high, Ideogram 4.5 to medium, Image 1.0 to low. Pin it before you budget.

4 min readSume
All posts

If you omit quality, you do not get the same tier everywhere. OpenAI's guide says both GPT Image 2.5 models default to auto. Sume's docs say an omitted quality on GPT Image 2.5 defaults to high, Ideogram 4.5 defaults to medium, and the legacy Image 1.0 route defaults to low. Port a request between them without setting quality and the output estimate can move by about nine times between low and high.

The defaults, side by side

The differences matter because the tiers are priced very differently. At 1024x1024, GPT Image 2.5 output is estimated at $0.00588 on low and $0.05268 on high; Ideogram 4.5 lists $0.03, $0.06 and $0.22 for low, medium and high.

What happens when quality is omitted (read 2026-10-04)
WhereModelDefault when omitted
OpenAI APIGPT Image 2.5 Flare and Sunburstauto
Sume /v1/imagesopenai/gpt-image-2.5 and -sunbursthigh
Sume /v1/imagesideogram/ideogram-v4.5medium
Sume /v1/image-1.0/generateImage 1.0 (retiring)low

Why auto is not the same as high

On OpenAI's side auto lets the model choose. On Sume, auto is accepted but the Sume docs say an auto quality reserves max in the price estimate, so a request that sets quality: "auto" is estimated at the top tier. The default for an omitted field is high. Two spellings that look similar behave differently, and the docs describe both in the Image API page.

The retiring Image 1.0 route defaults to low and tells you to escalate for finals, dense text or packaging.

Pin it in your wrapper

Put the tier in your own config and send it on every call. A one-line default in a client wrapper avoids three surprises: a draft that silently renders at high, a final that silently renders at low, and a migration from one route to another that changes the bill.

import os
import requests

QUALITY = {"draft": "low", "review": "medium", "final": "high"}

def generate(prompt: str, stage: str = "draft", model: str = "openai/gpt-image-2.5"):
    r = requests.post(
        "https://api.sume.com/v1/images",
        headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
        json={"model": model, "prompt": prompt, "quality": QUALITY[stage]},
        timeout=60,
    )
    r.raise_for_status()
    return r.json()

print(generate("A paper boat on a pond", "draft")["usage"])

Check the model's own list

Ideogram 4.5 accepts only low, medium and high, while GPT Image 2.5 also accepts xhigh and max. A request that names a value the model does not list is rejected with 400 unsupported_parameter on Sume. Read the model's supported_parameters before you share one config across families.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume