How many image models does Sume list? Count them with a script

Sume's image catalog lists 19 ids plus sume/auto. Count text-only versus edit-capable rows live from the API instead of trusting a number in a blog post.

5 min readSume
All posts

How many image models can you call through Sume? On origin/main the image catalog contains 19 model ids, plus sume/auto, which resolves to ChatGPT Image 2.5 (openai/gpt-image-2.5) but always echoes sume/auto in the response. Five of the 19 are text-to-image only; the other 14 accept reference images.

Those counts will go stale, so the useful artefact is a script that reads them live. The one below asks the catalog for every model, counts the ones whose input_references range has a maximum of zero, and prints the reference ceiling per model. It needs only requests and a Sume API key.

What the catalog lists today

The ids are org/slug strings: Higgsfield Soul; OpenAI GPT Image 2, 2.5 (Flare) and 2.5 Sunburst; Google Nano Banana 2 and Pro, Imagen 4 Fast and Ultra; ByteDance Seedream 5 Lite, 4.5 and 4; xAI Grok Image; Qwen Image and Image Max; Black Forest Labs FLUX.2 pro and flex; Ideogram v3 and v4.5; and Recraft V4. Legacy bare ids still work as aliases (Sume Image API docs).

FLUX 3 is a vendor model that appears on Black Forest Labs' pricing page (read 2026-10-04) but is not an id in this catalog, so a request for it returns 404 model_not_found. The check below keeps you from assuming a vendor launch is callable.

Sume image catalog on origin/main: counts by input capability (read 2026-10-04)
GroupCountExamples
Catalog ids19openai/gpt-image-2.5, google/nano-banana-2
Text-to-image only (0 references)5google/imagen-4-fast, recraft/recraft-v4
Accept references14ideogram/ideogram-v4.5 (5), openai/gpt-image-2.5 (16)
Auto router1 aliassume/auto resolves to openai/gpt-image-2.5

Count them live

The script treats any model whose input_references descriptor is absent or has max 0 as text-only, which matches the docs: such rows reject references. It also prints whether a vendor model you care about is present, so you can answer "does Sume have it yet" without reading a changelog.

import os, requests

r = requests.get("https://api.sume.com/v1/images/models", timeout=30,
                 headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"})
r.raise_for_status()
models = r.json()["data"]

text_only, editable = [], {}
for m in models:
    refs = m["supported_parameters"].get("input_references", {})
    top = refs.get("max", 0)
    if top == 0:
        text_only.append(m["id"])
    else:
        editable[m["id"]] = top

print(len(models), "models;", len(text_only), "text-only;", len(editable), "accept references")
for mid, top in sorted(editable.items(), key=lambda kv: -kv[1]):
    print(f"  {top:>2} refs  {mid}")
print("flux 3 listed:", any("flux.3" in m["id"] or "flux-3" in m["id"] for m in models))

What the count does not tell you

A model count says nothing about quality or price. The pricing line on each endpoint record is the price, and supported_parameters is the contract. Two rows with the same references can differ on ratio lists, n ranges and quality tiers.

If a model you expect is missing, see image model missing from the catalog. To pick a row that takes a photo at the lowest price, see cheapest Sume image models that take a reference photo.

Related posts

More in Developers

All Developers posts

Written by Sume