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.

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.
| Where | Model | Default when omitted |
|---|---|---|
| OpenAI API | GPT Image 2.5 Flare and Sunburst | auto |
| Sume /v1/images | openai/gpt-image-2.5 and -sunburst | high |
| Sume /v1/images | ideogram/ideogram-v4.5 | medium |
| Sume /v1/image-1.0/generate | Image 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
- Index-Echo bilingual SRT from a Chinese video to Sume cues
Index-Echo S2TT turns Chinese speech into timed bilingual subtitles in 60-second windows. Convert its SRT into Sume caption cues and burn the English line.
- Syllable-controlled translation for voiceover that must fit
Translated speech often runs longer than the original. Index-Homura targets length-controlled translation. How to budget words against clip time before TTS.
- Index-Translate subtitles: translate cues, then burn them in
Bilibili's Index-Translate covers 150 languages with a free OpenAI-compatible API. Translate each cue, then burn the result with Sume video captions.
- Free Index-Translate API for client subtitles: what to check
Index-Translate's free endpoint is labelled an online demo with no stated rate limit. A checklist before client transcripts go in, and the self-host option.
Written by Sume