A Nano Banana Pro prompt from an image: three names you type yourself
A request to Pro asks you to name three things — the model, the shape and the size. A prompt generated from your picture supplies at most one of them: the shape, and only from the Midjourney output. The other two are 127 characters you add by hand.
Read this first, because it decides how to read everything below. This site’s generator writes prompts in four shapes — Midjourney, Stable Diffusion, Flux and DALL·E. Nano Banana Pro is not one of them, and this page does not pretend otherwise. Nothing below is a Pro prompt that the tool wrote; it cannot write one. No API was called and no picture was generated. What follows is what still has to be supplied by hand when you take a generated line and put it in a Pro request.
Three names, one of which the generator gives you. Across twelve real outputs — four shapes, three pictures — the tool named the model 0 times, named a pixel size 0 times, and carried a usable shape string 3 times, all three from the Midjourney shape and all three written into the prompt text rather than into a request field.
The three names, and how many of them you get
| Name | What a Pro request wants | What the generator supplies | Measured |
|---|---|---|---|
model | one id string, gemini-3-pro-image-preview | nothing — the tool has no model selector, only four output shapes | 0 of 12 |
aspect_ratio | one of fourteen fixed strings | Midjourney only, as a --ar tail inside the prompt text, never as a field | 3 of 12 |
image_size | one of 1K, 2K, 4K | nothing — no shape writes a pixel dimension anywhere | 0 of 12 |
That is the whole problem in one table. The descriptive half of the work — exposure, contrast, saturation, temperature, detail, mood — is what this tool does, and it reads as ordinary English in a request. The three names are switches, and they are not in the text.
Pro is the only one of the three with nothing of its own
The cookbook lists three models. Read the capability lines carefully and an odd shape appears: everything the cookbook attributes to Pro, it also attributes to Nano Banana 2 — reasoning, 4K output, complex typography, multi-image composition, search grounding. Meanwhile three things appear on Nano Banana 2’s line and not on Pro’s: the 512px size, image grounding, and video-to-image input. As listed, the flagship is the narrower model.
| Model | Id | Ratios | Sizes | Combinations |
|---|---|---|---|---|
| Nano Banana 2 Lite | gemini-3.1-flash-lite-image | 10 | 512px, 1K | 20 |
| Nano Banana 2 | gemini-3.1-flash-image | 14 | 512px, 1K, 2K, 4K | 56 |
| Nano Banana Pro | gemini-3-pro-image-preview | 14 | 1K, 2K, 4K | 42 |
Two numbers fall out. Pro accepts 42 combinations against Nano Banana 2’s 56, and the 14 it is missing are exactly the fourteen ratios at 512px — Pro is the only one of the three that cannot render the smallest size, the size the two cheaper models both offer. And Pro overlaps with Lite in only 10 combinations: the ten ratios all three models share, at 1K and nowhere else.
The size you never measured
This tool reads your picture on a 192 × 192 grid — SAMPLE_SIZE = 192 in src/browser.js, a square canvas that every file is stretched onto, so 36,864 pixels is the entire evidence base for every word in the prompt. Set that against the one size tier the cookbook gives pixel dimensions for.
| Ratio | 1K frame | Pixels | × the 192 grid | What the tool measured |
|---|---|---|---|---|
| 1:1 | 1024 × 1024 | 1,048,576 | 28.44 | 3.516% |
| 2:3 | 832 × 1248 | 1,038,336 | 28.17 | 3.55% |
| 3:2 | 1248 × 832 | 1,038,336 | 28.17 | 3.55% |
| 3:4 | 864 × 1184 | 1,022,976 | 27.75 | 3.604% |
| 4:3 | 1184 × 864 | 1,022,976 | 27.75 | 3.604% |
| 4:5 | 896 × 1152 | 1,032,192 | 28 | 3.571% |
| 5:4 | 1152 × 896 | 1,032,192 | 28 | 3.571% |
| 9:16 | 768 × 1344 | 1,032,192 | 28 | 3.571% |
| 16:9 | 1344 × 768 | 1,032,192 | 28 | 3.571% |
| 21:9 | 1536 × 672 | 1,032,192 | 28 | 3.571% |
Every published 1K frame is between 27.75 and 28.44 times the pixels this tool read. The shortest edge the cookbook prints is 672px, which is 3.5 times the 192px the measurement grid uses; the longest is 1536px, 8 times it. And the four ratios with no published dimensions at all — 1:4, 4:1, 1:8, 8:1 — are precisely the four that only Nano Banana 2 and Pro can render.
The shape, for twelve real picture sizes
The ratio this tool computes comes from the file’s real width and height, reduced by their greatest common divisor and capped at 60. Below, twelve common camera, phone and social sizes, each run through that function.
| Picture size | Tool’s --ar | Official hit | Models | Framing phrase written |
|---|---|---|---|---|
| 1080 × 1080 | 1:1 | 1:1 | all three | square 1:1 |
| 1080 × 1350 | 4:5 | 4:5 | all three | portrait 3:4 |
| 1350 × 1080 | 5:4 | 5:4 | all three | near-square 4:3 |
| 1600 × 900 | 16:9 | 16:9 | all three | widescreen 16:9 |
| 3840 × 2160 | 16:9 | 16:9 | all three | widescreen 16:9 |
| 2160 × 3840 | 9:16 | 9:16 | all three | portrait 2:3 |
| 1440 × 2560 | 9:16 | 9:16 | all three | portrait 2:3 |
| 828 × 1792 | 28:60 | none | — | tall vertical 9:16 |
| 750 × 1334 | 34:60 | none | — | portrait 2:3 |
| 2732 × 2048 | 60:45 | none | — | near-square 4:3 |
| 4000 × 3000 | 4:3 | 4:3 | all three | near-square 4:3 |
| 3440 × 1440 | 43:18 | none | — | ultra-wide panoramic |
Eight of the twelve land exactly on an official string, and all eight sit in the set every model renders, so Pro is no harder to please than the others here. Four miss entirely: 28:60, 34:60, 60:45 and 43:18. Two of those four are ordinary phone screenshots, and one of them — 2732 × 2048 at 60:45 — is arithmetically almost exactly 4:3 but not quite, which is the sort of near miss that survives every sanity check you would do by eye. For those four you pick the nearest of the fourteen yourself.
One more mismatch worth knowing: the framing phrase is chosen by thresholds in src/describe.js, not by the ratio vocabulary. A 1080 × 1350 picture is written as “portrait 3:4” while its actual ratio is 4:5, and a 2160 × 3840 picture is written as “portrait 2:3” while its ratio is 9:16. Take the ratio from the --ar tail, not from the phrase.
The one ratio the tool writes under a different name
Sweeping every width and height from 200 to 4000 produces 2,188 distinct ratio strings from this tool. Of those 14.4 million pairs, 12,804 have a real ratio that is exactly one of the fourteen official ones. In 12,299 of those cases the tool writes the official string itself. In the remaining 505 it does not — and every one of the 505 is 21:9, written as 7:3, because the greatest common divisor of 21 and 9 is 3.
So a picture that really is 21:9 — 469 × 201, 476 × 204, 483 × 207 and 502 others — comes out of this tool as 7:3, which is not a string the request accepts. If the tail says 7:3, send 21:9.
What the finished request looks like
Put a generated line into the smallest correct Pro request — model, input and a generation_config holding aspect_ratio and image_size — and measure the two halves. The three pictures are the ones this site uses throughout: a night sky, a strongly back-lit field, and a text screenshot.
| Picture | Shape | Prompt | Whole request | Settings | Settings share | Supplies |
|---|---|---|---|---|---|---|
| night sky | Midjourney | 319 chars | 458 | 128 | 27.9% | 1 of 3 |
| night sky | Stable Diffusion | 336 chars | 474 | 127 | 26.8% | 0 of 3 |
| night sky | Flux | 273 chars | 411 | 127 | 30.9% | 0 of 3 |
| night sky | DALL·E | 219 chars | 357 | 127 | 35.6% | 0 of 3 |
| back-lit field | Midjourney | 291 chars | 430 | 128 | 29.8% | 1 of 3 |
| back-lit field | Stable Diffusion | 308 chars | 446 | 127 | 28.5% | 0 of 3 |
| back-lit field | Flux | 247 chars | 385 | 127 | 33% | 0 of 3 |
| back-lit field | DALL·E | 203 chars | 341 | 127 | 37.2% | 0 of 3 |
| text screenshot | Midjourney | 266 chars | 405 | 128 | 31.6% | 1 of 3 |
| text screenshot | Stable Diffusion | 283 chars | 421 | 127 | 30.2% | 0 of 3 |
| text screenshot | Flux | 238 chars | 376 | 127 | 33.8% | 0 of 3 |
| text screenshot | DALL·E | 219 chars | 357 | 127 | 35.6% | 0 of 3 |
The hand-written part is 127 or 128 characters of a 341 to 474 character request: between 26.8% and 37.2%, mean 31.7%. It is a third of the request, it never changes with the picture, and it is the third that decides the frame.
The same exercise against a model whose request has seven fields instead of five gives a different count entirely — see what a Grok image request asks for that a generated prompt cannot supply.
Six things to do about it
- Name the model yourself. No output shape mentions one, so there is nothing to copy.
gemini-3-pro-image-previewis the id. - Take the ratio from the Midjourney output only. It is the one shape that carries a
--artail; the other three never write one, and even that tail is text inside the prompt rather than a field. - Check the tail against the fourteen before sending it. Four of twelve common sizes miss. If yours is one of them, pick the nearest knowingly — do not let the rounding happen silently.
- If the tail says
7:3, send21:9. Those 505 sizes are genuinely 21:9; the tool reduces the fraction and the request wants the unreduced string. - Pick 1K, 2K or 4K — never 512px. Pro is the only one of the three models that does not render it, and no output shape writes a size for you to copy.
- Remember what the model is filling in. Whatever size you choose, the frame is between 27.75 and 28.44 times the pixels this tool read. Roughly 96.4% of the picture you get back was not measured by anything here.
How these numbers were produced
Both sides were read, not guessed. The right-hand side is Google’s own cookbook notebook for these three models: the per-ratio support column, the per-size support lines, the 1K dimension table, and the model ids. Public documentation is the comparison, not the claim. The left-hand side is this repository run on this machine: src/palette.js for the ratio arithmetic, src/browser.js for the 192 grid, src/compose.js for the four shapes, src/describe.js for the framing thresholds, with the three pictures sampled to 192 × 192 in the same way the live tool does. The ratio sweep covered 14.4 million width/height pairs; the request sizes were measured as JSON built from each real output.
For the fourteen buckets this tool has to round into, see the twelve things that do not line up between this tool and a nano banana request; for the two sentence-shaped outputs, see the Flux prompt and the ChatGPT image prompt; for the shape whose tail carries the ratio at all, see the Midjourney prompt; and for what gets lost before any of this, see where your image goes when it is measured.