--- name: vsb-nano-banana renamed_from: nano-banana description: > Prompt the Nano Banana family (Google's Gemini Image — `image/nano-banana-2-lite`, `image/nano-banana`, `image/nano-banana-2`, `image/nano-banana-pro`) well. Trigger whenever the user is about to call `vsb run image/nano-banana*` or asks how to phrase a prompt for these models — covers the variant picker, edit-mode rules, text rendering, multi-reference blending, and the things this family gets wrong. For the universal prompt-anatomy rules and reference-image subject-anchor pattern, read [`vsb-image-prompting`](../vsb-image-prompting/SKILL.md) first — this skill only adds nano-banana-specific quirks on top. license: Proprietary. See LICENSE for the terms. --- # Prompting Nano Banana **Read [`vsb-image-prompting`](../vsb-image-prompting/SKILL.md) first.** It covers the four universal rules, the full prompt-anatomy slot list, the reference-image keep/ignore pattern, and the vocabulary banks — those apply to every image model. This skill only adds Nano Banana–specific behavior that diverges from the trunk. Nano Banana is built on Gemini 3 — it reasons over the prompt before drawing, so the natural-language scene-description approach in [`vsb-image-prompting`](../vsb-image-prompting/SKILL.md) works especially well here. The same endpoint handles text-to-image AND edits: pass `image_input` (an array) to switch into edit mode. Verify the live schema first: `vsb schema image/nano-banana --json`. ## Picking a variant | Slug | When to use | |------|-------------| | `image/nano-banana-2-lite` | **Default.** Lightweight Nano Banana 2 — same low cost as the original (~$0.05/image, ~5s) but on the newer NB2 architecture. Great for iterating and everyday text-to-image + image edits. No `resolution` or web-search knobs. | | `image/nano-banana` | The original Gemini 3 model. Same ~$0.05/image. Fall back here if a `nano-banana-2-lite` result looks off. Best with 1–3 reference images. | | `image/nano-banana-2` | Full NB2 — adds `resolution` (up to 4K) and web-search grounding. Use when stills aren't crisp enough or you need higher fidelity. | | `image/nano-banana-pro` | 4K-capable, sharpest text + typography, best for posters, infographics, packaging mockups, editorial work, and multi-reference character blending (up to 14 refs). Slowest + priciest of the three. | All three share the same `image_input` array, `aspect_ratio` enum, and `output_format` enum. Confirm with `vsb schema` before assuming. ## Image edits (`image_input` set) > ⚠️ **Editing the same picture a second time degrades it.** The model never > edits — it redraws the whole image from scratch on every pass, so error > compounds. Before a second edit on one image, read > [`vsb-image-iteration`](../vsb-image-iteration/SKILL.md). Also pass > `--output_format png` on any output you may feed back in; the default is > `jpg` and its compression stacks on every pass. When `image_input` is non-empty, the model is editing — the prompt should lead with the change and be explicit about what stays the same. The universal subject-anchor pattern (in [`vsb-image-prompting`](../vsb-image-prompting/SKILL.md)) is the floor; Nano Banana takes especially well to plain-English edit instructions on top. **Good:** `"Change the man's tie to dark green. Keep the rest of the photo, lighting, and composition exactly as they are."` **Bad:** `"man with green tie"` (loses every other detail). Edit patterns Nano Banana handles cleanly: - **Add / remove / swap:** `"Remove the car in the background."` `"Replace the coffee mug with a vintage typewriter."` - **Restyle:** `"Restyle as a 1990s film photograph — kodak gold, slight grain, warm cast."` `"Convert to ink-on-paper line art."` - **Reframe / re-angle:** `"Re-render this scene from a low angle, keeping the same subject and lighting."` - **Weather / time-of-day:** `"Same scene but at golden hour with backlit rim light."` - **Product extraction:** `"Extract the mug and place it on a clean white studio backdrop with a soft shadow."` For the `aspect_ratio` field, `match_input_image` only makes sense in edit mode — it keeps the first reference's dimensions. ## Text rendering (Nano Banana's standout strength) Nano Banana is one of the few image models that renders legible text. Pro is the sharpest of the three. - **Quote the exact words.** `"The headline 'URBAN EXPLORER' rendered in bold, white, sans-serif font at the top of the poster."` - **Describe the font.** Style words work (`bold`, `cursive`, `serif`, `monospace`, `neon signage`), and named fonts work surprisingly often (`Century Gothic`, `Helvetica`-style). - **Localize.** Write the prompt in any language and pass the target text in quotes. For exotic scripts give the model the literal characters — don't ask it to translate. - **Text-first hack for tricky layouts.** Two-step: first ask Nano Banana (chat-style) for the literal text content, then run a generation request that quotes that text. Improves accuracy on long strings. ## Multi-reference character consistency The universal subject-anchor pattern (in [`vsb-image-prompting`](../vsb-image-prompting/SKILL.md)) tells you *how* to phrase "keep the subject, ignore the rest". Nano Banana adds two specifics on top: - **Name each character / object in the prompt.** The model uses the name as an anchor across edits. `"Marigold the calico cat"` survives across follow-up edits better than `"the cat"`. - **Use a reference pack.** Multiple angles of the same subject (front, profile, three-quarter) help the model triangulate identity. Pro takes up to **14 references** per prompt; standard nano-banana is best with **1–3**. For more than 3 references, switch to Pro. ## Multi-subject anatomy lock Multi-person scenes hallucinate extra hands/arms when limb count is left implicit. Budget every visible limb: state the exact total ("visible hands: 2"), name whose and where each is, then declare the remaining arms out of frame or hidden behind a torso. Same rule applies to feet on full-body shots. ## What this family gets wrong (known limits) Adds to the model-agnostic failure modes in [`vsb-image-prompting`](../vsb-image-prompting/SKILL.md): - **Tiny / dense text.** Long paragraphs at small size will hallucinate glyphs. Pro is best; even Pro isn't perfect. - **Factual diagrams.** Anatomy, scientific cross-sections, and infographics may be confidently wrong. Verify any data-driven visual yourself. - **Multilingual grammar.** Non-English text may have small grammatical slips or cultural mismatches. Provide the literal target string in quotes when accuracy matters. ## Worked examples ### Photoreal portrait (text-to-image) ```bash vsb run image/nano-banana \ --prompt "A 28-year-old florist standing in her shop doorway at golden hour. She wears a denim apron over a cream linen shirt. Shot on Fujifilm X-T5, 35mm, f/1.8 shallow depth of field. Warm rim light from the right, soft fill from the open window. Photoreal, cinematic muted teal-and-orange grading, slight sensor grain." \ --aspect_ratio 4:5 \ --output_format jpg \ --download "./out/{request_id}.jpg" \ --json ``` ### Edit with reference (`image_input`) ```bash URL=$(vsb upload ./product.jpg --json | jq -r '.url') vsb run image/nano-banana \ --prompt "Use the reference image as the PRODUCT source only. Keep the mug's pattern, colour, handle shape, and reflections exactly as they are. Ignore everything else from the reference — including any watermarks, text overlays, original background, and original lighting. Now place this mug on a sunny tropical beach with sand and ocean waves in the background. Photoreal, natural midday daylight, soft shadow on the sand. No logos, no captions, no watermarks." \ --image_input "[\"$URL\"]" \ --aspect_ratio match_input_image \ --download "./out/" \ --json ``` ### Poster with crisp typography (Pro) ```bash vsb run image/nano-banana-pro \ --prompt "A minimal travel poster. Composition: 9:16 vertical, full-bleed. Background: silhouette of a mountain range at dusk, indigo-to-magenta sky. Foreground typography: the word 'PATAGONIA' rendered in bold, white, condensed sans-serif font, baseline aligned at the bottom third. Subline reads 'Edge of the World' in a smaller serif italic directly underneath. Cinematic, slight film grain." \ --aspect_ratio 9:16 \ --output_format png \ --download "./out/poster.png" \ --json ``` ### Multi-reference character blend (Pro shines here) ```bash A=$(vsb upload ./pose.jpg --json | jq -r '.url') B=$(vsb upload ./style.jpg --json | jq -r '.url') C=$(vsb upload ./background.jpg --json | jq -r '.url') vsb run image/nano-banana-pro \ --prompt "Render a single image. Use Image A as the IDENTITY source — keep the subject's face, hair, skin tone, and body proportions exactly. Use Image B as the STYLE source — match its color grade, grain, and lighting feel, but ignore its subject. Use Image C as the BACKGROUND source — match the environment, but ignore any people or text in it. Cinematic, high-detail, no watermarks, no captions." \ --image_input "[\"$A\",\"$B\",\"$C\"]" \ --aspect_ratio match_input_image \ --json ``` ## Sources - Google DeepMind — Gemini Image prompt guide: - Google Cloud — Ultimate prompting guide for Nano Banana (2026-03): - Google blog — 7 tips for Nano Banana Pro: