visualtoprompt.com

A nano banana prompt from an image: twelve things that do not line up

The request has eight fields, seven of them switches and one that carries content. This tool writes twelve measurement slots into a single string. Twelve of thirteen dimensions do not line up — and the one that needs arithmetic is the aspect ratio.

Two stacks of squares set against each other, deliberately out of step, with a single pair lining up in blue.
Two stacks of squares set against each other, deliberately out of step, with a single pair lining up in blue.

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 is not one of them, and this page does not pretend otherwise. Nothing below is a nano banana prompt that the tool writes; it cannot write one. What follows is a field-by-field comparison between the four shapes it does write and the request the nano banana models actually accept.

Put those two side by side and twelve of thirteen dimensions do not line up. The shape of the text is different, the weighting is different, where the aspect ratio lives is different, how the aspect ratio is expressed is different, whether there is a session at all is different, and the direction of the whole pipeline is reversed — this tool reads a picture and writes words, while the model takes words and writes a picture. The only dimension that lines up is the negative prompt: neither side has one.

One of the twelve needs arithmetic rather than a footnote. The ratio this tool computes is a number, taken from the file’s real width and height. The ratio the models accept is one of fourteen fixed strings. Sweeping every width and height from 200 to 4000 produces 2,188 distinct ratios from this tool, of which 13 appear in that list of 14.

How the twelve were found

Both sides were read, not guessed. The official side is the field list in Google’s own cookbook notebook for the nano banana models: the request goes through client.interactions.create(...) and takes model, input, response_modalities, previous_interaction_id, tools, and a generation_config holding image_generation_config.aspect_ratio, image_generation_config.image_size and thinking_level. That is eight fields, and only one of them carries content.

This side is the repository’s own code: src/compose.js for the four shapes, src/describe.js for the measurement slots, src/palette.js for the ratio, src/browser.js for the sampling grid. Every number in the tables below was produced by running that code, and the ratio sweep was run over 14.4 million width/height pairs.

The twelve

Thirteen dimensions, both sides. The right column is the only place the official field list appears; everything in the left column is read out of this repository.
DimensionThis tool’s four shapesNano banana request
Shape of the textcomma tag list (Midjourney, Stable Diffusion) or short sentence run (Flux, DALL·E)one natural-language instruction sentencediffers
Weightingtwo of the four shapes parse brackets and :weightno weight field anywhere in the requestdiffers
Where the ratio livesMidjourney writes --ar 16:9 into the prompt tailnever in the promptdiffers
How the ratio is expressedcomputed from the file, capped at 6014 enumerated bucketsdiffers
Resolutionnot in the prompt at allimage_size, four bucketsdiffers
Sessionsone shot, one string, no sessionprevious_interaction_id carries character and style across editsdiffers
Image inputthe picture is the inputinput may carry up to 3 or 14 images alongside the textdiffers
Search groundingnonetools=[{"type":"google_search"}]differs
Reasoning budgetnonethinking_leveldiffers
Where the result comes backa string in a textareaoutput_image.data, base64differs
How many content fields12 named measurement fields, 11 of which reach a prompt1 content fielddiffers
Fixed textStable Diffusion pins 27 characters at the frontnothing fixeddiffers
Negative promptno shape emits oneno negative fieldsame

Two of these are worth stating more precisely than a table row allows. Eight fields on the request, and only one of them has a counterpart here — aspect_ratio, and only partially, because it is present in just one of the four shapes and only as a tail string rather than a field. model has no counterpart because this tool has no model selector; it has four output shapes instead. image_size has no counterpart because the generated prompt never mentions a pixel dimension — measured across the four shapes, none of them writes a number like 1024×1024.

Pro narrows that gap rather than widening it. It is the only one of the three nano banana models that will not render the 512px size, and a prompt generated here supplies at most one of the three names its request asks for: see the three names a Nano Banana Pro request still needs you to type yourself.

Twelve named fields against one. describe() writes twelve: subject, framing, exposure, contrast, sat, temp, detail, dist, vert, paletteWords, mood, hint. Eleven of them are read by the composer; hint is computed and then never used. On the other side, seven of the eight request fields are switches and settings — modality, session id, tools, thinking level, ratio, size — and exactly one, input, carries the content. The measurement work this tool does has nowhere to go in that request except into that one string.

The one that needs arithmetic: the ratio

The ratio here is derived, not chosen. aspectParam() takes the file’s real width and height, divides both by their greatest common divisor, and if the larger side still exceeds 60 it scales both down to fit. The ratio the models accept is a string from a fixed list of fourteen: 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.

So moving a ratio from one side to the other is not a translation, it is a rounding. Fifteen real-world dimensions, the ratio this tool produces for each, and the closest bucket the model will accept:

Real dimensions through aspectParam(), then matched to the nearest accepted bucket. The error column is how far the nearest bucket is from the ratio the tool computed.
File sizeReal ratioThis tool: --arIn the 14?Nearest bucketErrorFraming phrase this tool writes
640×360 (the three sample pictures)1.777816:9yes16:90%widescreen 16:9
1920×10801.777816:9yes16:90%widescreen 16:9
1080×19200.56259:16yes9:160%portrait 2:3
1024×10241.00001:1yes1:10%square 1:1
4032×3024 (phone)1.33334:3yes4:30%near-square 4:3
3024×40320.75003:4yes3:40%portrait 3:4
6000×4000 (camera)1.50003:2yes3:20%landscape 3:2
4000×60000.66672:3yes2:30%portrait 2:3
1280×10241.25005:4yes5:40%near-square 4:3
2560×1080 (ultrawide)2.370460:25no21:9−1.56%ultra-wide panoramic
1179×2556 (tall phone)0.461328:60no9:16+21.95%tall vertical 9:16
1258×5662.222660:27no21:9+4.98%ultra-wide panoramic
1500×10011.498560:40no3:2+0.10%landscape 3:2
1913×9771.958060:31no16:9−9.21%widescreen 16:9
1000×9991.001060:60no1:1−0.10%square 1:1

Nine of the fifteen land on a bucket exactly. The six that do not are where the arithmetic bites, and the spread is wide: a 1258×566 crop is 4.98% away from the nearest bucket it is allowed to use, a 1913×977 screenshot is 9.21% away, and a 1179×2556 phone photo is 21.95% away. Nothing errors. The ratio simply has to become a different ratio, and the amount it changes by is not something the prompt tells you.

The full sweep behind that figure, and the pixel dimensions each accepted ratio produces at 1K, are both on the Nano Banana Pro page. This page keeps the ratio table and adds the one model whose ratio list is shorter.

The ten ratios that fit in 512px

Nano Banana 2 Lite is the cheapest of the three names and the only one with a short ratio list. It accepts ten of the fourteen — everything except 1:4, 4:1, 1:8 and 8:1 — and it renders two sizes, 512px and 1K. Ten ratios times two sizes is twenty combinations, ten of which are at 512px:

Nano Banana 2 Lite’s ten ratios and its two sizes. The ratio list, the size list and the 1K frames are the cookbook’s own per-model tables, not measurements taken here — this tool has no nano banana output shape.
Ratio512px1K1K frame
1:1yesyes1024 × 1024
2:3yesyes832 × 1248
3:2yesyes1248 × 832
3:4yesyes864 × 1184
4:3yesyes1184 × 864
4:5yesyes896 × 1152
5:4yesyes1152 × 896
9:16yesyes768 × 1344
16:9yesyes1344 × 768
21:9yesyes1536 × 672

Three things follow. None of those ten 512px combinations can be rendered by Pro, because Pro has no 512px tier at all — that is where the two model lines stop overlapping. The four ratios Lite cannot take are the same four the cookbook lists without a frame, marked “Ultrawide / Panoramic” and “Extreme panoramic” instead of a pixel count. And the cookbook prints dimensions for one size tier only: 512px, 2K and 4K are named without a frame anywhere, so on the smallest tier the ratio you choose tells you nothing about the pixel count you will get.

Eight phrases against fourteen buckets

The ratio is not the only place the tool expresses shape. It also writes an English framing phrase, chosen by thresholds on the real ratio — eight phrases in all, from ultra-wide panoramic above 2.2 down to tall vertical 9:16 below 0.55. Those eight phrases and the fourteen buckets are two different partitions of the same axis, and they do not nest:

Each framing phrase, the ratio range it covers, and which of the 14 accepted buckets fall inside that range.
Phrase this tool writesRatio rangeAccepted buckets insideCount
ultra-wide panoramic2.2 and up4:1, 8:1, 21:93
widescreen 16:91.7 – 2.216:91
landscape 3:21.4 – 1.73:21
near-square 4:31.15 – 1.44:3, 5:42
square 1:10.9 – 1.151:11
portrait 3:40.7 – 0.93:4, 4:52
portrait 2:30.55 – 0.72:3, 9:162
tall vertical 9:16below 0.551:4, 1:82

Eight phrases cover fourteen buckets, and five of the eight cover more than one. The last row is the one to look at twice: the phrase is called tall vertical 9:16, yet the range it owns contains 1:4 and 1:8 — and not 9:16, which sits just above the boundary at 0.5625 and is therefore labelled portrait 2:3. The phrase is a description of a band, not a name for a bucket, and reading it as a bucket name is the easiest mistake to make on this axis.

The grid is always square

There is a second, quieter mismatch underneath the ratio. This tool never sees the picture in its own shape. The browser adapter creates a canvas whose width and height are both 192, then draws the image into it at 192 by 192 — so every file, portrait or panoramic, is stretched into the same 1:1 grid of 36,864 pixels before anything is measured. The original width and height survive only as two numbers passed alongside, and every ratio in this article is computed from those two numbers, not from the pixels.

The model works the other way round. Its ratio decides the shape of the output pixels: at the 1K setting the accepted buckets produce outputs from 768×1344 through 1024×1024 to 1536×672. So on this side the shape is a number that never touches the pixels, and on that side the shape is the pixels. That is the cleanest way to see why the ratio is the one dimension that needs arithmetic rather than a footnote: it is the only dimension where the two sides are describing the same property with different kinds of thing.

What crosses over and what has to be decided

Three questions about the mismatch

Three “People also ask” boxes, captured on 2026-10-02. The answers draw on two sources only: field names from Google’s cookbook notebook, and counts from the twelve dimensions in the table above.

What is the prompt for nano bananas?

For these models the prompt is a sentence, not a tag list. The request takes one input string plus seven fields that are switches rather than content, so there is no slot list to fill and no place to put a weight. From a picture, the useful half of what this tool measures is the descriptive half — exposure, contrast, saturation, temperature, detail, mood — which reads as ordinary English inside a sentence.

What are the best nano banana prompts?

Not a fixed list, because the content here is arithmetic on the file rather than a house style. What is worth knowing is where the two sides refuse to meet. The ratio is the clearest: this tool computes one from the real width and height and can produce 2,188 distinct values, while the request accepts 14, so a 1913×977 screenshot has to become 16:9 and move 9.21% to do it. Decide that rounding deliberately instead of letting it happen.

How to write a prompt for nano banana pro?

Pro is the one where the extra fields change the most: it accepts the long ratios from 1:4 and 1:8 up to 4:1 and 8:1 that the smaller model does not, it takes the 2K and 4K sizes, and it is one of the two models that accept the search-grounding tool and a reasoning level. None of that has a counterpart in a generated prompt — all four of the shapes this tool writes are a single unweighted string, and the size and ratio have to be set on the request, not written into the text.

Three places to go next: what a ComfyUI prompt does with the same line for the parser that reads brackets on the node side; where the weights go in a Stable Diffusion prompt for the shape most checkpoints were trained on; and the Flux prompt or the ChatGPT image prompt for the two shapes that end in sentences. The arithmetic behind the band this tool works in is on how to weight a prompt and write a negative.