Nano Banana 2 is retired on Sume: the old id still works, as 2.1
google/nano-banana-2 and nano-banana-2 still work on Sume and run as Nano Banana 2.1. The job stores the 2.1 id, and the catalog lists only 2.1.

Nano Banana 2 is retired on Sume, and requests that name it do not fail. google/nano-banana-2 and the bare nano-banana-2 still work and run as Nano Banana 2.1 (google/nano-banana-2.1). The job stores the 2.1 id, and GET /v1/images/models no longer lists the retired id. So old code keeps generating, but the model you pay for and receive is 2.1.
What changes for an old integration
| You send | What runs | What the job stores | In the catalog |
|---|---|---|---|
| google/nano-banana-2 | Nano Banana 2.1 | google/nano-banana-2.1 | Only the 2.1 id is listed |
| nano-banana-2 | Nano Banana 2.1 | google/nano-banana-2.1 | Only the 2.1 id is listed |
| nano-banana-2.1 | Nano Banana 2.1 | google/nano-banana-2.1 | Listed |
| sume/auto | Chosen by Sume | sume/auto | Not listed; job.model stays sume/auto |
What it costs now
Price follows the model that runs. The catalog list for Nano Banana 2.1 is $0.08 per image, and Sume bills list times 1.25 rounded up to the cent, which is $0.10. At that price 1,000 images cost $100.00. Sizes and options can change the figure, so read the live price from GET /v1/images/models before you budget a large run.
| Step | Value |
|---|---|
| Catalog list per image | $0.08 |
| x 1.25 | $0.10 |
| 100 images | $10.00 |
| 1,000 images | $100.00 |
Move the id on your side
Silent aliasing is convenient, but it hides drift. Change your config to the 2.1 id so logs, dashboards and cost reports name the model that actually ran. The script below sends the new id and prints the model stored on the job, which is the quick way to confirm the change.
Other legacy bare ids such as gpt-image-2 are accepted as aliases for their org-prefixed equivalents, so the bare forms are not errors.
import os
import httpx
key = os.environ.get("SUME_API_KEY", "")
if not key:
raise SystemExit("set SUME_API_KEY")
headers = {"Authorization": f"Bearer {key}"}
r = httpx.post(
"https://api.sume.com/v1/images",
headers={**headers, "Idempotency-Key": "nb21-switch-check-001"},
json={"model": "google/nano-banana-2.1",
"prompt": "A matte black bottle on marble",
"mode": "async"},
timeout=60,
)
r.raise_for_status()
job = r.json()
print(job.get("id") or job.get("request_id"), job.get("model"))Why aliasing is a short-term bridge
Aliases keep old code alive, but they do not tell you when a successor changes cost or behavior. Nano Banana 2.1 is a different model from Nano Banana 2, so the same prompt can look different, and a size or option that the old model took may be handled differently. Run a small side-by-side before you decide that the alias is good enough for production.
Also check what your code stores. If a database column holds the requested id and a report groups by it, your reports now mix two models under one label. Store the model from the job as well as the one you requested.
Related catalog rules
Legacy bare ids such as nano-banana-2.1 and gpt-image-2 are accepted as aliases for their org/slug equivalents. sume/auto is a separate case: it is not listed by GET /v1/images/models, the job model stays sume/auto, and Sume does not disclose which family ran. If you need a known family for a series of images, pin a catalog id.
Sources
Related posts
More in Developers
- Edit a photo with Nano Banana: aspect_ratio auto and the cost of 100
Send a product photo as input_references to Nano Banana 2.1 or Pro and set aspect_ratio auto to keep its shape. Python request and cost of 100 edits.
- Next.js 16.4 Cache Components: will a Sume webhook route break?
Next.js 16.4 turns on Cache Components in create-next-app. A POST route handler is never cached, so a Sume webhook route works if it reads the raw body.
- Next.js 16.4 GET route handler: poll a Sume job at request time
With Cache Components, Next.js 16.4 runs GET handlers at request time. A Sume job status route stays live if it sends no-store and follows the poll hint.
- Next.js 16.4 Cache Components: keep Sume job polls out of use cache
Next.js 16.4 enables Cache Components in new apps. We built a Sume status route both ways: a plain GET handler stayed live, a use cache helper froze one answer.
Written by Sume