Nano Banana is Google's Gemini 2.5 Flash Image, released in August 2025 and the first model to carry the Nano Banana name. It does text-to-image and image-to-image with up to 14 reference images, in 10 aspect ratios from 1:1 to 21:9. Output is 1K only, one image per request. Google now labels it a legacy model, so it mainly makes sense for existing pipelines tuned to its look, or for simple 1K edits where a newer tier adds nothing.
Best for
- Keeping an existing workflow stable while you test newer models
- Quick 1K edits: background swaps, outfit changes, object removal
- Avatars and social thumbnails that do not need high resolution
- Combining a few reference photos into one scene
Prompting tips
- Phrase edits as instructions: "remove the car, keep the street and the lighting".
- Do not ask for 2K or 4K; anything above 1K returns an error on this model.
- The default ratio on Jantaris is
1:1, so setaspect_ratioon edits to match the source photo. - When you need higher resolution or several images per call, move the same prompt to Nano Banana 2.
FAQ
What does Nano Banana cost per image?
Current pricing is $0.0359 per image. The cost is estimated before the request runs, and failed generations are refunded in full.
Is Nano Banana still supported?
Google lists Gemini 2.5 Flash Image as a legacy model. It still runs on Jantaris, but new projects will usually get more from Nano Banana 2 or Nano Banana Pro.
Can Nano Banana output 4K?
No. It is limited to 1K, and requests for 2K or 4K return an error.
How to call Nano Banana via API
curl https://jantaris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $JANTARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana",
"input": {
"prompt": "Product photo of a matte black ceramic coffee cup on a travertine table, soft window light, 50mm",
"aspect_ratio": "1:1",
"resolution": "1k"
}
}'import os, time, requests
API = "https://jantaris.com/v1"
H = {"Authorization": f"Bearer {os.environ['JANTARIS_API_KEY']}"}
task = requests.post(f"{API}/generate", headers=H, json={
"model": "nano-banana",
"input": {
"prompt": "Product photo of a matte black ceramic coffee cup on a travertine table, soft window light, 50mm",
"aspect_ratio": "1:1",
"resolution": "1k"
}
}).json()
while task["status"] in ("queued", "running"):
time.sleep(3)
task = requests.get(f"{API}/tasks/{task['id']}", headers=H).json()
print(task["status"], task["cost"], [o["url"] for o in task["output"]])const API = "https://jantaris.com/v1";
const headers = { Authorization: `Bearer ${process.env.JANTARIS_API_KEY}`, "Content-Type": "application/json" };
let task = await (await fetch(`${API}/generate`, {
method: "POST",
headers,
body: JSON.stringify({
"model": "nano-banana",
"input": {
"prompt": "Product photo of a matte black ceramic coffee cup on a travertine table, soft window light, 50mm",
"aspect_ratio": "1:1",
"resolution": "1k"
}
}),
})).json();
while (task.status === "queued" || task.status === "running") {
await new Promise((r) => setTimeout(r, 3000));
task = await (await fetch(`${API}/tasks/${task.id}`, { headers })).json();
}
console.log(task.status, task.cost, task.output.map((o) => o.url));
Parameters
| Parameter | Type | Allowed | Default |
|---|---|---|---|
prompt * | string | ≤ 32000 chars | |
aspect_ratio | string | 1:1 2:3 3:2 3:4 4:3 4:5 5:4 9:16 16:9 21:9 | 1:1 |
resolution | string | 1k | 1k |
image_urls | array | max 14 |
The same schema is available from GET /v1/models/nano-banana.












