Retired AI model id to Sume id: GPT Image, Gemini and Sora lookup

One lookup table that maps retired gpt-image-1, gemini-2.5-flash-image and sora-2 ids to Sume ids, with dates, so a failing call tells you what to switch to.

5 min readSume
All posts

Keep a single lookup from retired vendor ids to Sume ids, with the shutdown date next to each. As of 2026-10-06: OpenAI ends gpt-image-1 on 2026-10-23 and gpt-image-1-mini, gpt-image-1.5 and chatgpt-image-latest on 2026-12-01. Google ended gemini-2.5-flash-image on 2026-10-02. OpenAI ended Sora 2 and the Videos API on 2026-09-24.

Only the OpenAI image rows have a vendor-named replacement that exists on Sume. The Gemini and Sora rows are choices, so they are marked as such.

The lookup table

Retired ids and Sume ids, vendor pages read 2026-10-06
Retired idDateVendor-named replacementSume id to try
gpt-image-12026-10-23gpt-image-2.5-sunburst or -flareopenai/gpt-image-2.5-sunburst
gpt-image-1-mini2026-12-01gpt-image-2.5-sunburst or -flareopenai/gpt-image-2.5-sunburst
gpt-image-1.52026-12-01gpt-image-2.5-sunburst or -flareopenai/gpt-image-2.5-sunburst
gemini-2.5-flash-image2026-10-02gemini-3.1-flash-image-previewgoogle/nano-banana-2 (a choice, test it)
sora-2, sora-2-pro2026-09-24none listedseedance-2.5 or kling-3 (a choice, test it)

The lookup in code

explain returns a message, so it can sit in an exception handler or a startup check.

RETIRED = {
    "gpt-image-1": ("2026-10-23", "openai/gpt-image-2.5-sunburst"),
    "gpt-image-1-mini": ("2026-12-01", "openai/gpt-image-2.5-sunburst"),
    "gpt-image-1.5": ("2026-12-01", "openai/gpt-image-2.5-sunburst"),
    "chatgpt-image-latest": ("2026-12-01", "openai/gpt-image-2.5-sunburst"),
    "gemini-2.5-flash-image": ("2026-10-02", "google/nano-banana-2"),
    "sora-2": ("2026-09-24", "seedance-2.5"),
    "sora-2-pro": ("2026-09-24", "seedance-2.5"),
}

def explain(model_id):
    hit = RETIRED.get(model_id)
    if not hit:
        return f"{model_id}: not in the retired list"
    date, sume_id = hit
    return f"{model_id} retired {date}; try {sume_id} on Sume"

if __name__ == "__main__":
    for m in ("gpt-image-1", "sora-2", "nano-banana-2"):
        print(explain(m))

Pin, then re-read the vendor pages

The video row names seedance-2.5 and kling-3 only as starting points; the video ids and limits are in the Sora port guide. For image ids the longer notes are in the gpt-image-1 shutdown post and the Gemini post. Dates can move, so refresh the table when you re-read the vendor pages.

Sources

Related posts

More in Models

All Models posts

Written by Sume