---
title: Prompting Nano Banana 2 — Nano Banana 2 | Runware Docs
url: https://runware.ai/docs/models/google-nano-banana-2/guides/prompting
description: "How to write prompts for Nano Banana 2: detailed scene descriptions, structured layering, legible text rendering, and thinking-level control."
---
### [Introduction](https://runware.ai/docs/models/google-nano-banana-2/guides/prompting#introduction)

Nano Banana 2 reads a prompt as a set of instructions to satisfy rather than a mood to approximate. It tracks which objects appear and where they sit, and it renders **legible text** inside the image, which most diffusion models can't do reliably. Both behaviors reward prompts that are specific about content rather than vague about vibe.

![A detailed cyberpunk ramen bar at night with neon signs, a chef in steam, patrons at the counter, and a holographic menu](https://runware.ai/docs/assets/hero.DDXfuB2w_Z1iBdhH.jpg)

> **Prompt**: A bustling cyberpunk ramen bar at night, neon signs in Japanese and English reflecting on wet surfaces, a chef working in rising steam behind the counter, two patrons on stools, a glowing holographic menu above the bar, rain falling outside, cinematic, highly detailed, photorealistic.

Every element named in that prompt is in the frame: the neon signs, the chef in steam, the two patrons, the holographic menu, the rain. This guide covers how to write prompts that get that result, how to structure them, how to put **readable text** in an image, and how the `thinking` setting changes the model's effort on hard prompts.

### [Describing the whole scene](https://runware.ai/docs/models/google-nano-banana-2/guides/prompting#describing-the-whole-scene)

Nano Banana 2 holds a long list of details at once, so a prompt that names every object and its position usually lands more accurately than a short, suggestive one. Describe the scene the way you'd brief a set designer: what's on the bench, what's to the left, what frames the edges.

![A cluttered greenhouse potting bench with terracotta pots, a brass watering can, an open journal, string lights, and ferns](https://runware.ai/docs/assets/detail.CjlGXsoA_2tgBWn.jpg)

> **Prompt**: A botanist's cluttered greenhouse workshop: a wooden potting bench with terracotta pots, a brass watering can on the left, an open leather field journal in the center, hanging string lights overhead, ferns and monstera leaves framing the edges, afternoon sun through fogged glass, warm and richly detailed.

The watering can lands on the left, the journal in the center, the lights overhead. **Naming positions, not just objects**, is what gives you that control. When a detail's placement matters, say where it goes.

### [Structuring a prompt](https://runware.ai/docs/models/google-nano-banana-2/guides/prompting#structuring-a-prompt)

For complex scenes, organizing the prompt in layers keeps the model from dropping details. Move from the subject outward to the environment, then the technical and atmospheric cues.

**[Subject]** A white-and-red striped lighthouse on a rocky cliff edge, **[Environment]** stormy ocean below with waves crashing against the rocks, **[Framing]** viewed from a low angle looking up, **[Details]** weathered stone base and a glowing lamp room at the top, **[Lighting]** dramatic overcast light breaking through the clouds, **[Camera]** shot wide at 24mm, **[Mood]** lonely and dramatic atmosphere

![A red-and-white striped lighthouse on a cliff above a stormy sea, shot from a low angle under breaking clouds](https://runware.ai/docs/assets/structured.DgKDKF6e_Z113qQW.jpg)

> **Prompt**: A white-and-red striped lighthouse on a rocky cliff edge, stormy ocean below with waves crashing against the rocks, viewed from a low angle looking up, weathered stone base and a glowing lamp room at the top, dramatic overcast light breaking through the clouds, shot wide at 24mm, lonely and dramatic atmosphere.

You don't need every layer on every prompt. A portrait might only need subject, lighting, and camera. The layers are a checklist for what you *could* specify, not a template you have to fill.

### [Camera and lens language](https://runware.ai/docs/models/google-nano-banana-2/guides/prompting#camera-and-lens-language)

Nano Banana 2 responds to the **vocabulary of photography**. Naming a lens or a camera angle controls framing and depth in a way plain adjectives like "close-up" can't. Here is one subject shot two ways, changing only the lens:

![A barista at a cafe counter in tight head-and-shoulders framing with a blurred background](https://runware.ai/docs/assets/camera-tele.BdCWD48O_Z1piz3O.jpg)

*85mm, tight framing*

> **Prompt**: A barista preparing a pour-over coffee at a wooden cafe counter, shot on an 85mm lens, tight head-and-shoulders framing with a softly blurred background, warm window light.

![The same barista and cafe counter shown wide, the whole interior visible with deep focus](https://runware.ai/docs/assets/camera-wide.B9mmgYGh_ZRunUS.jpg)

*24mm wide-angle*

> **Prompt**: A barista preparing a pour-over coffee at a wooden cafe counter, shot on a 24mm wide-angle lens, the full cafe interior visible around them with deep focus and exaggerated depth, warm window light.

Same barista, same counter. The `85mm` lens compresses the scene and throws the background out of focus, isolating the subject. The `24mm` lens pulls the whole room in with deep focus and stretched perspective. The words did the work, not a different setup.

Terms worth keeping in your vocabulary:

- **Focal length:** `24mm` (wide), `50mm` (natural), `85mm` (portrait), `200mm` (telephoto).
- **Shot distance:** `wide shot`, `medium shot`, `close-up`, `macro`.
- **Angle:** `low-angle`, `eye-level`, `overhead`, `Dutch angle`.
- **Depth:** `shallow depth of field`, `deep focus`, `bokeh`.

### [Negative prompts](https://runware.ai/docs/models/google-nano-banana-2/guides/prompting#negative-prompts)

Nano Banana 2 has no `negativePrompt` parameter, but it follows plain-language instructions, so you can write the negative **directly into the prompt** as a "Negative prompt:" clause and the model obeys it. Here is the same scene with and without that clause:

![The Trevi Fountain in Rome busy with tourists on a sunny afternoon](https://runware.ai/docs/assets/negative-default.DSAKwG09_5Kuzy.jpg)

*Plain prompt*

> **Prompt**: A photograph of the Trevi Fountain in Rome on a sunny afternoon.

![The Trevi Fountain in Rome with no people on a sunny afternoon](https://runware.ai/docs/assets/negative-excluded.B0W0mMNU_Z6rfn6.jpg)

*With a negative prompt clause*

> **Prompt**: A photograph of the Trevi Fountain in Rome on a sunny afternoon. Negative prompt: people, crowds, tourists

The only difference between the two prompts is the trailing **Negative prompt: people, crowds, tourists**. The model reads it as an instruction and clears the crowd, even though there's no `negativePrompt` field to put it in. List what you don't want after the clause, the same way you would in a model that has a dedicated field.

### [Rendering text in images](https://runware.ai/docs/models/google-nano-banana-2/guides/prompting#rendering-text-in-images)

Most image models treat text as texture and produce garbled lettering. Nano Banana 2 renders **readable text**, which makes it usable for signage, posters, and packaging. The rule is simple: **put the exact words in quotation marks** so the model treats them as literal content instead of scene description.

![A bakery storefront with a wooden hanging sign reading GOLDEN CRUST and a window decal reading FRESH DAILY](https://runware.ai/docs/assets/text-bakery.Cqz3aN8y_loJFp.jpg)

*Storefront signage*

> **Prompt**: A charming bakery storefront in the morning, a wooden hanging sign that reads "GOLDEN CRUST" in elegant gold serif lettering, a smaller window decal reading "FRESH DAILY", baskets of bread in the window, warm light, photorealistic.

![A vintage travel poster reading WANDER NORTH over a stylized mountain range and aurora in indigo and gold](https://runware.ai/docs/assets/text-poster.C6ZGdU5N_1iuFX3.jpg)

*Poster title*

> **Prompt**: A vintage travel poster, bold title text reading "WANDER NORTH" across the top in condensed sans-serif, a stylized mountain range with an aurora below, limited indigo and gold palette, screen-print texture, flat graphic style.

![A sidewalk chalkboard reading TODAY'S SPECIAL and Maple Latte $5 with chalk coffee-cup doodles](https://runware.ai/docs/assets/text-chalkboard.DHrPi3UA_Z1VLGAF.jpg)

*Handwritten chalk*

> **Prompt**: A cafe A-frame chalkboard sign on a sidewalk, handwritten chalk lettering reading "TODAY'S SPECIAL" at the top and "Maple Latte $5" below, small chalk doodles of coffee cups, photorealistic.

The quoted strings come through across three different treatments: engraved gold serif, condensed poster type, and handwritten chalk. **Keep the text short.** A few words on a sign render reliably. Long paragraphs are where accuracy starts to slip, so for dense copy, generate the text elements separately and compose them.

### [Controlling reasoning with thinking levels](https://runware.ai/docs/models/google-nano-banana-2/guides/prompting#controlling-reasoning-with-thinking-levels)

The `settings.thinking` parameter sets how much the model reasons before it renders, with two levels. `MINIMAL` is the fast default. `HIGH` spends more compute reconciling a prompt's requirements before it draws, which pays off when a prompt piles on **many simultaneous constraints** that a single fast pass tends to drop or misplace.

The prompt below is deliberately dense: a three-floor cutaway with specific rooms, colors, objects, and counts, each in a set place. The same prompt, run at each level:

![An isometric cutaway of a three-floor dollhouse with furnished rooms](https://runware.ai/docs/assets/thinking-minimal.DK4OVNFY_Z2kqpyr.jpg)

*thinking: MINIMAL*

> **Prompt**: A detailed isometric cutaway illustration of a three-story dollhouse, clean flat vector style, warm consistent lighting. Ground floor: a kitchen on the left with a red refrigerator, a round wooden table, and three yellow chairs, and a living room on the right with a green sofa, a tall bookshelf, and a sleeping orange cat on a striped rug. Middle floor: a child's bedroom on the left with a blue bunk bed and a globe, and a bathroom on the right with a white clawfoot bathtub and a round mirror. Top floor: an attic art studio with an easel, three framed canvases on the wall, and a round skylight.

![An isometric cutaway of a three-floor dollhouse with furnished rooms](https://runware.ai/docs/assets/thinking-high.BbF43dGk_wcQgv.jpg)

*thinking: HIGH*

> **Prompt**: A detailed isometric cutaway illustration of a three-story dollhouse, clean flat vector style, warm consistent lighting. Ground floor: a kitchen on the left with a red refrigerator, a round wooden table, and three yellow chairs, and a living room on the right with a green sofa, a tall bookshelf, and a sleeping orange cat on a striped rug. Middle floor: a child's bedroom on the left with a blue bunk bed and a globe, and a bathroom on the right with a white clawfoot bathtub and a round mirror. Top floor: an attic art studio with an easel, three framed canvases on the wall, and a round skylight.

Compare how many of the listed elements land in each. `HIGH` puts the extra time into reconciling every constraint before it draws, so it's the level to reach for when a prompt is this dense, at the cost of slower generation.

TypeScriptPythoncURLCLIJSON

```typescript
import { createClient } from '@runware/sdk'

const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()

const [result] = await client.run({
  model: 'google:4@3',
  positivePrompt: 'A detailed isometric cutaway of a three-story dollhouse with specific furniture, colors, and counts in each room',
  width: 1024,
  height: 1024,
  settings: {
    thinking: 'HIGH'
  }
})
```

```python
import asyncio
import os

from runware import Runware

async def main():
    async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
        results = await client.run({
            "model": "google:4@3",
            "positivePrompt": "A detailed isometric cutaway of a three-story dollhouse with specific furniture, colors, and counts in each room",
            "width": 1024,
            "height": 1024,
            "settings": {
                "thinking": "HIGH"
            }
        })

asyncio.run(main())
```

```bash
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "imageInference",
      "taskUUID": "d4e5f6a7-b8c9-0123-def0-456789012345",
      "model": "google:4@3",
      "positivePrompt": "A detailed isometric cutaway of a three-story dollhouse with specific furniture, colors, and counts in each room",
      "width": 1024,
      "height": 1024,
      "settings": {
        "thinking": "HIGH"
      }
    }
  ]'
```

```bash
runware run google:4@3 \
  positivePrompt="A detailed isometric cutaway of a three-story dollhouse with specific furniture, colors, and counts in each room" \
  width=1024 \
  height=1024 \
  settings.thinking=HIGH
```

```json
{
  "taskType": "imageInference",
  "taskUUID": "d4e5f6a7-b8c9-0123-def0-456789012345",
  "model": "google:4@3",
  "positivePrompt": "A detailed isometric cutaway of a three-story dollhouse with specific furniture, colors, and counts in each room",
  "width": 1024,
  "height": 1024,
  "settings": {
    "thinking": "HIGH"
  }
}
```

### [Tips](https://runware.ai/docs/models/google-nano-banana-2/guides/prompting#tips)

1. **Name positions, not just objects.** "A watering can on the left, a journal in the center" gives the model a layout to follow. A list of objects with no placement leaves the arrangement to chance.
    
2. **Quote text you want rendered.** Wrap exact words in quotation marks so the model treats them as literal content. Everything outside the quotes is read as scene description.
    
3. **Keep rendered text short.** A few words on a sign or poster render reliably. For long copy, generate the text element on its own and compose it into the layout afterward.
    
4. **Layer complex prompts.** Work from subject to environment to lighting and camera. A structured prompt drops fewer details than the same information in one run-on sentence.
    
5. **Raise thinking only for genuinely complex prompts.** Most prompts, including everyday counts and layouts, are fine at `MINIMAL`. Reach for `HIGH` when a prompt stacks many constraints at once, and accept the extra latency.