Detect new AI image models: diff Sume GET /v1/images/models
Image models arrive weekly. A short Python diff against GET /v1/images/models tells you when Sume adds or retires an image model id, with no news feed to watch.

The most reliable way to know whether an image model you read about is available on Sume is to ask the API: GET /v1/images/models lists every model id with its capabilities and the per-endpoint pricing is one call away. Run it on a schedule, save the ids, and diff against yesterday. New launches show up as added ids; retired ones show up as removed, so a pinned id that disappears does not surprise you in production.
This matters because launches are frequent and a vendor announcement is not a Sume release. Image models launch often, so check each new one against Sume's list instead of assuming it is there.
How fast is the field moving?
Dates below come from each vendor's own page on the day read.
| Model | Date on vendor page | Source |
|---|---|---|
| GPT Image 2.5 (Flare, Sunburst) | September 8, 2026 | fal page for GPT Image 2.5 |
| MAI-Image-2.6 and 2.6-Flash | Preview in Foundry; model version 2026-07-31 | Microsoft AI |
| Nano Banana 2 | February 26, 2026 | |
| Sume catalog | Whatever GET /v1/images/models returns now | Image API |
What is the diff script?
It stores the id list in a local file and prints what changed since the last run. Schedule it with cron or any job runner:
import json
import os
import pathlib
import requests
r = requests.get(
"https://api.sume.com/v1/images/models",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
timeout=30,
)
r.raise_for_status()
now = {m["id"] for m in r.json()["data"]}
store = pathlib.Path("image-models.json")
old = set(json.loads(store.read_text())) if store.exists() else set()
print("added:", sorted(now - old))
print("removed:", sorted(old - now))
store.write_text(json.dumps(sorted(now)))What does the list not tell me?
It lists ids, not quality. Pair a new id with the comparison in run the same prompt through several models before you switch. sume/auto is deliberately absent from the list, and Sume never says which family it chose, so a diff cannot see routing changes under Auto. Legacy bare ids such as gpt-image-2 are accepted as aliases for their org/slug forms, so keep config on the full id.
Limits
Run the diff against the environment you deploy to. Capability descriptors can change without the id changing, so diff the supported_parameters too if you rely on one, such as the 16-reference ceiling on GPT Image 2.5.
Sources
Related posts
More in Developers
- Dub a 20-minute video: audio detach 900 s cap, STT 600 s, TTS 1,200 s
A 20-minute video needs chunking before a dub: audio detach outputs at most 900 s, STT reservation tops out at 600 s, and TTS fails past 1,200 s.
- Facebook Reels API: start, upload, finish and the video_state values
Publishing a Facebook Reel takes three calls: upload_phase start, a file upload to rupload, then finish with video_state PUBLISHED, SCHEDULED or DRAFT.
- Fix one sentence in an AI avatar video without a full re-render
ElevenLabs can regenerate only edited dubbing regions. A Sume avatar video is one job, so the fix is to keep clips short and join them: the cost math.
- FLUX API 402, 403 and 503 errors, and Sume's equivalents
BFL returns 402 for credits, 403 for key permission, 503 for load. Sume returns 402 insufficient_credits and 503 provider_capacity_exceeded. What to do.
Written by Sume