Smoke-test 1:4, 4:1, 1:8 and 8:1 on Nano Banana 2.1 for $0.30
Four calls at 0.5K, one per new ratio, cost $0.30 on Sume ($0.80 at 4K). A script that prints status and cost per ratio, and what a 400 or 202 means.

The cheapest real check that all four new Nano Banana 2.1 ratios work on your key is four calls at 0.5K: $0.075 each, $0.30 total. The same four at 4K cost $0.20 each, $0.80 total, so keep smoke tests at the small tier.
What each run costs
| Resolution | Price per image | Four ratios |
|---|---|---|
| 0.5K | $0.075 | $0.30 |
| 1K | $0.10 | $0.40 |
| 2K | $0.15 | $0.60 |
| 4K | $0.20 | $0.80 |
The script
It prints the status code, the billed usage.cost, and any error object for each ratio.
import os, requests
H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
for ratio in ["1:4", "4:1", "1:8", "8:1"]:
r = requests.post("https://api.sume.com/v1/images", headers=H, timeout=60, json={
"model": "google/nano-banana-2.1",
"prompt": "A plain grey gradient with one small red circle",
"aspect_ratio": ratio,
"resolution": "0.5K",
})
body = r.json()
print(ratio, r.status_code, body.get("usage", {}).get("cost"), body.get("error"))Reading the output
| Status | Meaning | What to do |
|---|---|---|
| 200 | Image body with data[].url and usage.cost | Pass |
| 202 | Job envelope; generation passed the 30 s budget | Poll the job and fetch the result |
| 400 | unsupported_parameter if the model does not list the value | Check the ratio list for the model |
Gotchas
- A failed or cancelled generation is not billed; a completed one is billed in full.
- Treat
202as a pass for the ratio check, then read the job result. - Do not run the smoke test on every commit. Run the free ratio-list check from
GET /v1/images/modelsthere, and the paid test nightly.
Sources
Related posts
More in Developers
- Sora, Veo and Omni preview shutdown dates in one table (Oct 2026)
OpenAI removed the Sora Videos API on Sept 24, 2026. Google ends Veo 3.1 and Omni preview ids Oct 22. One dated table, and how to read Sume's live list.
- Make an SRT file from Sume STT word timings in Python (7 words a cue)
Sume STT always returns words[] with word, start and end in seconds. This Python function turns the list into an SRT file, seven words a cue.
- Stable idempotency keys for pause-cut trims: hash source, start, end
Derive each trim's Idempotency-Key from a hash of source, start, end and precision. A retried batch then returns the same jobs and bills 8 trims once.
- Still on /v1/image-router/generate? It works but gets no new params
Sume's legacy image-router generate and models routes still work but are deprecated and get no new parameters. What to change to move to POST /v1/images.
Written by Sume