Which Sume image models accept the quality parameter?

Only five Sume image rows list quality: ChatGPT Image 2, both ChatGPT Image 2.5 ids, Ideogram V3 and Ideogram 4.5. Every other row returns 400 if you send it.

5 min readSume
All posts

Five rows of the Sume image catalog list a quality parameter, read 2026-10-03: ChatGPT Image 2, ChatGPT Image 2.5 (both the Flare and Sunburst ids), Ideogram V3 and Ideogram 4.5. The other rows list none, so a request that sets quality on them is rejected with 400 unsupported_parameter. The ChatGPT Image 2.5 rows add xhigh and max to the usual three words.

The Sume code comments record that this tripped up Sume's own presets once: Nano Banana 2 and Pro advertise no quality, and a default quality preset turned every request to those families into a 400. The rule to take from it is to read the descriptor before you send the field.

The five rows

The Image API page lists the public vocabulary as auto, low, medium, high, xhigh or max, catalog-gated per model.

quality descriptors from GET /v1/images/models, read 2026-10-03.
ModelCatalog idAllowed values
ChatGPT Image 2openai/gpt-image-2low, medium, high
ChatGPT Image 2.5openai/gpt-image-2.5auto, low, medium, high, xhigh, max
ChatGPT Image 2.5 Sunburstopenai/gpt-image-2.5-sunburstauto, low, medium, high, xhigh, max
Ideogram V3ideogram/ideogram-v3low, medium, high
Ideogram 4.5ideogram/ideogram-v4.5low, medium, high

What quality changes

  • ChatGPT Image 2.5: quality changes the output-token estimate and so the price per image. Omitted quality defaults to high on Sume, and auto reserves max.
  • Ideogram 4.5: quality sets the per-image price, at $0.03, $0.06 or $0.22 at the provider list for low, medium and high, before Sume's margin. Omitted defaults to medium.
  • Ideogram V3: the catalog says quality maps to the provider's rendering speed; the catalog price is one flat number.

Guarding the field in code

Send quality only when the descriptor lists it and lists your word. Otherwise omit the field and let the model's default apply.

import os
import requests

headers = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
models = requests.get("https://api.sume.com/v1/images/models", headers=headers, timeout=30).json()["data"]
want = "low"
for m in models:
    q = m["supported_parameters"].get("quality")
    print(m["id"], "send" if q and want in q["values"] else "omit")

Sources

Related posts

More in Developers

All Developers posts

Written by Sume