gpt-image-1 retires December 1: scan your repo, move to gpt-image-2.5

OpenAI's deprecations page lists gpt-image-1, 1.5 and 1-mini for December 1, 2026. A Python scan finds the ids, and Sume serves openai/gpt-image-2.5.

4 min readSume
All posts

OpenAI's deprecations page lists gpt-image-1, gpt-image-1.5 and gpt-image-1-mini with a shutdown date of December 1, 2026, and points to gpt-image-2.5-sunburst or gpt-image-2.5-flare as replacements. Some roundups give an earlier date for gpt-image-1; this page uses OpenAI's own table.

Hard-coded model ids hide in config files, notebooks, CI and docs. A scan is faster than remembering.

Dates and replacements

From the OpenAI deprecations page, read 2026-10-06
Retiring idShutdownOpenAI replacement
gpt-image-12026-12-01gpt-image-2.5-sunburst or gpt-image-2.5-flare
gpt-image-1.52026-12-01gpt-image-2.5-sunburst or gpt-image-2.5-flare
gpt-image-1-mini2026-12-01gpt-image-2.5-sunburst or gpt-image-2.5-flare

Find every use

The regex stops at a trailing word character, dot or hyphen, so gpt-image-1 does not also match gpt-image-1.5. It exits 1 when it finds anything, so you can run it in CI.

import pathlib, re, sys

SHUTDOWN = {"gpt-image-1": "2026-12-01", "gpt-image-1.5": "2026-12-01",
            "gpt-image-1-mini": "2026-12-01"}
PATTERN = re.compile(r"gpt-image-1(?:\.5|-mini)?(?![\w.-])")
SKIP = {".git", "node_modules", ".venv", "dist", ".next"}

def scan(root):
    for path in pathlib.Path(root).rglob("*"):
        if path.is_dir() or SKIP & set(path.parts) or path.suffix in {".png", ".jpg", ".lock"}:
            continue
        try:
            lines = path.read_text(encoding="utf-8").splitlines()
        except (UnicodeDecodeError, OSError):
            continue
        for number, line in enumerate(lines, 1):
            for hit in PATTERN.finditer(line):
                yield f"{path}:{number}: {hit.group()} (shut down {SHUTDOWN[hit.group()]})"

if __name__ == "__main__":
    found = list(scan(sys.argv[1] if len(sys.argv) > 1 else "."))
    print("\n".join(found) or "no retiring gpt-image ids found")
    sys.exit(1 if found else 0)

On Sume

The Sume image docs list openai/gpt-image-2.5 (Flare) and openai/gpt-image-2.5-sunburst. They take up to 16 references, mask_url for edits, background and quality up to max. Confirm what your key can see with GET /v1/images/models, and read prices from the per-model endpoints record rather than a blog table.

Swap the id, run a one-image smoke test, then compare output before you move production traffic. The default quality on these models is high, so set it explicitly and check the price on the endpoint record before you scale up.

Sources

Related posts

More in Models

All Models posts

Written by Sume