Nano Banana Pro, czyli Gemini 3 Pro Image, to model, po który sięgasz, gdy jedna grafika ma wyjść naprawdę dobrze. Radzi sobie z napisami w kilku linijkach i potrafi zbudować spójną scenę z kilkunastu zdjęć wejściowych. Pasuje do plakatów, okładek i materiałów reklamowych, które idą do druku albo na duży ekran.
Co z nim zrobisz
- Plakat koncertu albo ulotkę z nagłówkiem, datą i miejscem, które da się przeczytać.
- Zdjęcie produktu przeniesione do nowej aranżacji na bazie kilku ujęć z sesji.
- Okładkę podcastu albo miniaturę w 4K, którą jeszcze obrabiasz w programie graficznym.
- Serię kadrów z tą samą osobą do storyboardu teledysku albo reklamy.
Ustawienia w praktyce
- Rozdzielczość:
1k,2klub4k. Pierwsze próby rób w 1K, finał renderuj w 4K. - Proporcje: 10 formatów od 21:9 do 9:16, domyślnie 1:1. Przy edycji zdjęcia ustaw format zgodny z plikiem źródłowym, żeby nic nie zostało ucięte.
- Referencje: do 14 obrazów w
image_urls. Każdemu daj w prompcie rolę ("first image is the product, second is the background"). - Język: producent oficjalnie wspiera angielski i chiński, więc scenę opisuj po angielsku, a po polsku zostaw tylko tekst, który ma się pojawić na grafice.
- Napisy: krótkie hasła wychodzą czyściej niż długie zdania. Rozbij tekst na nagłówek i jedną linijkę podpisu.
- Jedno zapytanie to jeden obraz. Prompt zmieści do 32 000 znaków.
Prompt na start
Concert poster, bold modern typography at the top reading "NOC JAZZU", below it "12.11 / KLUB PIWNICA", a saxophone player silhouette in warm orange stage light, dark textured background, print-ready, high contrastWstaw swój tytuł i datę w cudzysłowach, a opis tła i postaci dopasuj do wydarzenia.
Pytania
Ile kosztuje grafika z Nano Banana Pro?
Jeden obraz kosztuje od 0,411 zł za obraz, z VAT. Jeśli generacja się nie uda, płacisz 0 zł, a blokada wraca na saldo.
Czy Nano Banana Pro dobrze pisze polskie napisy?
Oficjalnie model wspiera angielski i chiński, więc polskie hasła traktuj jako próbę: dawaj je krótko, w cudzysłowie, i każdą literę sprawdź przed drukiem. Więcej sztuczek z tekstem opisuję w poradniku napisy na grafikach AI, a o samym modelu po polsku w tekście Nano Banana Pro po polsku.
Czy w Kadrarisie obowiązuje limit obrazów jak w aplikacji Gemini?
Nie ma tu puli odnawiającej się co kilka godzin. Płacisz za każdy obraz z salda, które nie wygasa. Jak wyglądają limity u Google, opisuję w tekście limity Nano Banana, Gemini i Veo.
Lepszy niż Midjourney?
W wielu zadaniach daje porównywalny efekt, a do tego ma API i rozliczenie za obraz bez abonamentu. Mój test na tym samym kadrze jest w tekście alternatywa dla Midjourney, a pełny ranking w najlepszy generator obrazów AI.
Nano Banana Pro w twoim kodzie
curl https://kadraris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $KADRARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-pro",
"input": {
"prompt": "Packshot of a white linen sneaker on a concrete block, hard midday sun, crisp shadow, 85mm",
"aspect_ratio": "1:1",
"resolution": "1k"
}
}'import os, time, requests
API = "https://kadraris.com/v1"
H = {"Authorization": f"Bearer {os.environ['KADRARIS_API_KEY']}"}
task = requests.post(f"{API}/generate", headers=H, json={
"model": "nano-banana-pro",
"input": {
"prompt": "Packshot of a white linen sneaker on a concrete block, hard midday sun, crisp shadow, 85mm",
"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://kadraris.com/v1";
const headers = { Authorization: `Bearer ${process.env.KADRARIS_API_KEY}`, "Content-Type": "application/json" };
let task = await (await fetch(`${API}/generate`, {
method: "POST",
headers,
body: JSON.stringify({
"model": "nano-banana-pro",
"input": {
"prompt": "Packshot of a white linen sneaker on a concrete block, hard midday sun, crisp shadow, 85mm",
"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));
Pola wejściowe
| Parametr | Typ | Dozwolone | Domyślnie |
|---|---|---|---|
prompt * | string | ≤ 32000 znaków | |
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 2k 4k | 1k |
image_urls | array | maks. 14 |
Tę listę w JSON-ie dostaniesz z GET /v1/models/nano-banana-pro.



























