Nano Banana 2.1 to następca Nano Banana 2 od Google. Tworzy obrazy z tekstu i edytuje zdjęcia na podstawie do 14 obrazów referencyjnych. Największa zmiana jest w cenniku: obraz w 1K, 2K i 4K kosztuje tyle samo, więc wyższa rozdzielczość nie podbija rachunku. Do wyboru masz 14 proporcji, w tym skrajne 1:4, 4:1, 1:8 i 8:1, oraz auto, które przy edycji trzyma format zdjęcia źródłowego. Każde zapytanie zwraca jeden obraz.
Do czego się nadaje
- Grafiki do druku i duże banery w 4K bez dopłaty za rozdzielczość
- Edycja zdjęć produktowych poleceniem, z zachowaniem kadru źródła
- Kompozycje złożone z wielu referencji: produkt, postać, tło
- Paski 8:1 na stronę i pionowe 1:8 do bocznych kolumn
Jak pisać prompty
- Skoro 4K kosztuje tyle co 1K, od razu generuj w docelowej rozdzielczości zamiast robić szkic i powtórkę.
- Przy edycji zostaw
aspect_ratio: auto, a w prompcie napisz, co ma się zmienić i co ma zostać bez zmian. - Przy kilku referencjach opisz rolę każdej: "pierwsze zdjęcie to produkt, drugie to tło".
- Kilka wariantów to kilka zapytań - model zwraca jeden obraz na raz.
FAQ
Ile kosztuje Nano Banana 2.1?
Aktualna stawka to 0,411 zł za obraz, z VAT, niezależnie od rozdzielczości. Za generacje zakończone błędem nie płacisz, bo blokada środków wraca w całości.
Czym Nano Banana 2.1 różni się od Nano Banana 2?
Nano Banana 2 ma cenę zależną od rozdzielczości, próg 0,5K i do 4 obrazów w jednym zapytaniu. Wersja 2.1 robi jeden obraz na zapytanie, nie ma progu 0,5K, za to 2K i 4K kosztują tyle co 1K. Szczegóły w porównaniu.
Czy mogę edytować własne zdjęcie?
Tak. Podaj adresy zdjęć w image_urls (do 14) i opisz zmianę w prompcie. W Jantaris Studio wgrywasz pliki prosto z dysku.
Jak wywołać Nano Banana 2.1 przez API
curl https://jantaris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $JANTARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-2.1",
"input": {
"prompt": "Product photo of a matte black ceramic coffee cup on a travertine table, soft window light, 50mm",
"aspect_ratio": "auto",
"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-2.1",
"input": {
"prompt": "Product photo of a matte black ceramic coffee cup on a travertine table, soft window light, 50mm",
"aspect_ratio": "auto",
"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-2.1",
"input": {
"prompt": "Product photo of a matte black ceramic coffee cup on a travertine table, soft window light, 50mm",
"aspect_ratio": "auto",
"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));
Parametry
| Parametr | Typ | Dozwolone | Domyślnie |
|---|---|---|---|
prompt * | string | ||
aspect_ratio | string | auto 1:1 1:4 1:8 2:3 3:2 3:4 4:1 4:3 4:5 5:4 8:1 9:16 16:9 21:9 | auto |
resolution | string | 1k 2k 4k | 1k |
image_urls | array | maks. 14 |
Ten sam schemat zwraca GET /v1/models/nano-banana-2.1.









