7 models 廊 gallery 订 pricing API docs
Migration

gpt-image-1 migration guide (shutdown October 23, 2026)

OpenAI lists gpt-image-1 for shutdown on October 23, 2026 and recommends GPT Image 2.5 Sunburst or Flare. Here is how to move, with working code. On VELIN both cost ¥0.25 (about $0.037) per image at any resolution.

The dates

ModelShutdown (per OpenAI)Recommended replacement
gpt-image-1October 23, 2026gpt-image-2.5-sunburst or gpt-image-2.5-flare
gpt-image-1-miniDecember 1, 2026same
gpt-image-1.5December 1, 2026same

Source: OpenAI API deprecations, read 2026-10-07. Confirm on that page before you plan. After the shutdown date, calls to the old model id fail.

Which replacement to pick

Your useModel on VELINTypical timePrice (1K / 2K / 4K)
Default, fast iterationgpt-image-2.5-flare~45 s¥0.25 ≈ $0.037
Maximum detail, printgpt-image-2.5-sunburst~100 s¥0.25 ≈ $0.037
Many aspect ratiosgpt-image-2~60 s¥0.25 ≈ $0.037
Want a second opinionnano-banana-pro~60 s¥0.25 ≈ $0.037

One API key covers all of them, so you can A/B GPT Image 2.5 against Nano Banana Pro on your own prompts by changing one field.

What changes when you move to VELIN

Before and after

Before (OpenAI SDK, Python):

result = client.images.generate(model="gpt-image-1", prompt=prompt, size="1024x1536")
open("out.png", "wb").write(base64.b64decode(result.data[0].b64_json))

After (VELIN, Python with requests):

import os, time, requests
BASE, H = "https://72agi.com", {"Authorization": f"Bearer {os.environ['VELIN_API_KEY']}"}

def generate(prompt, model="gpt-image-2.5-flare", size="2:3", resolution="2K"):
    r = requests.post(f"{BASE}/api/generate", headers=H,
                      files={k: (None, v) for k, v in {  # multipart form
                          "prompt": prompt, "model": model, "size": size, "resolution": resolution}.items()})
    r.raise_for_status()
    job_id = r.json()["id"]
    while True:
        time.sleep(4)
        job = requests.get(f"{BASE}/api/task/{job_id}", headers=H).json()
        if job["status"] == "succeeded":
            return requests.get(BASE + job["url"], headers=H).content
        if job["status"] == "failed":
            raise RuntimeError(job.get("error"))  # not charged

open("out.png", "wb").write(generate("a red fox in fresh snow, golden hour"))

curl:

curl -X POST https://72agi.com/api/generate \
  -H "Authorization: Bearer $VELIN_API_KEY" \
  -F "prompt=a red fox in fresh snow, golden hour" \
  -F "model=gpt-image-2.5-flare" \
  -F "size=2:3" \
  -F "resolution=2K"
# -> 202 {"id": "02a38b1d1b66", "status": "queued"}
curl https://72agi.com/api/task/02a38b1d1b66 -H "Authorization: Bearer $VELIN_API_KEY"
# -> {"id": "02a38b1d1b66", "status": "processing"}
# -> {"id": "02a38b1d1b66", "status": "succeeded", "url": "/outputs/02a38b1d1b66.png", "price": 0.25}

curl -o image.png "https://72agi.com/outputs/02a38b1d1b66.png"

Node 18+:

// Node 18+ (built-in fetch). export VELIN_API_KEY=your_key
import { writeFile } from "node:fs/promises";

const BASE = "https://72agi.com";
const auth = { Authorization: `Bearer ${process.env.VELIN_API_KEY}` };
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));

// 1) submit (multipart form; add form.append("refs", blob, "name.png") for up to 14 reference images)
const form = new FormData();
form.set("prompt", "a red fox in fresh snow, golden hour");
form.set("model", "gpt-image-2.5-flare");
form.set("size", "16:9");
form.set("resolution", "1K");
const submit = await fetch(`${BASE}/api/generate`, { method: "POST", headers: auth, body: form });
if (submit.status === 402) throw new Error("Not enough credits, top up first");
if (submit.status === 429) throw new Error("Rate limited, retry in a few seconds");
const { id } = await submit.json();

// 2) poll every 4 s until it finishes (typically 45-100 s)
let job;
do {
  await sleep(4000);
  job = await (await fetch(`${BASE}/api/task/${id}`, { headers: auth })).json();
} while (job.status === "queued" || job.status === "processing");
if (job.status !== "succeeded") throw new Error(`failed (not charged): ${job.error}`);

// 3) download (url is a site path such as /outputs/<id>.png)
const img = await fetch(BASE + job.url, { headers: auth });
await writeFile("image.png", Buffer.from(await img.arrayBuffer()));
console.log("saved image.png, price", job.price, "CNY");

Migration checklist

  1. grep -rn "gpt-image-1" . across code, env files, n8n/Make/Zapier workflows and config.
  2. Map pixel sizes to aspect ratios: 1024x1024 → 1:1, 1024x1536 → 2:3, 1536x1024 → 3:2.
  3. Replace the sync call with submit + poll (above); handle 402 (top up), 429 (back off), 503 (retry in ~30 s).
  4. Run 10-20 of your real prompts on Flare and Sunburst; keep whichever looks best.
  5. Ship before October 23, 2026.

FAQ

When does gpt-image-1 stop working?

OpenAI's deprecations page lists gpt-image-1 with a shutdown date of October 23, 2026. gpt-image-1-mini and gpt-image-1.5 are listed for December 1, 2026.

What is the recommended replacement?

OpenAI recommends gpt-image-2.5-sunburst or gpt-image-2.5-flare. Both are available on VELIN at ¥0.25 (about $0.037) per image.

Is VELIN a drop-in replacement for the OpenAI SDK?

No. VELIN has its own small async REST API: POST /api/generate (multipart form), then poll GET /api/task/{id}. The change is usually 20-30 lines; examples are below and in the GitHub kit.

Do I pay for failed generations?

No. Credits are reserved when you submit and refunded automatically if the job fails.

Is the image price the same at 1K, 2K and 4K?

Yes. Standard image models cost ¥0.25 (about $0.037) per image at 1K, 2K and 4K; the Pro+ and 2+ variants cost ¥0.35 (about $0.052).

How do I pay?

Top up from $5 by card (Stripe, Apple Pay, Google Pay) or USDT on the billing page. Pay as you go, no subscription.

Is there a free trial?

No. The minimum top-up is $5, which buys roughly 130 images or about 40 music generations.

Is VELIN affiliated with OpenAI, Google or Suno?

No. VELIN is an independent API service and is not affiliated with or endorsed by OpenAI, Google or Suno.

Get started

  1. Sign in at 72agi.com and copy your API key from My account.
  2. Top up from $5 on the billing page: card (Stripe, Apple Pay, Google Pay) or USDT.
  3. Call the API with Authorization: Bearer YOUR_KEY. Reference: API docs. Examples: GitHub kit. AI agents: agent skill file.

Questions, higher rate limits or volume pricing: @ayan8866e on Telegram.

Top up from $5→ Read the API docs→

More guides

Nano Banana and Gemini are trademarks of Google. GPT Image is a trademark of OpenAI. Suno is a trademark of Suno, Inc. VELIN is an independent service and is not affiliated with or endorsed by any of these companies. Competitor prices are quoted from the linked public pages on the date shown and may change.