live
MODEL IDgoogle:nano-banana@2.1

Nano Banana 2.1

Google
by

Nano Banana 2.1 is Google's updated image generation and editing model in the Nano Banana 2 family. It improves graphic composition and subject consistency, and it follows complex prompts and edit instructions more accurately. It works from text alone or from as many as fourteen reference images plus one reference video, and it can ground a generation in live web and image search so the result reflects current facts and real visual references. It generates at 1K, 2K and 4K, with three levels of thinking that trade speed for reasoning depth, which suits layout-heavy design work, recurring characters and products, and precise multi-step edits.

Nano Banana 2.1

Editing images

How to edit an image with Nano Banana 2.1: one reference and a written instruction, keep lists, removals and additions, numbered changes, and chained edits.

Introduction

Pass one image in inputs.referenceImages with an instruction in positivePrompt, and Nano Banana 2.1 returns the same image with that change applied. The instruction is the whole interface: it says what changes, and the model works out where.

A three-story alpine hotel with dark timber balconies and red geraniums seen across a calm lake in summer, with green meadows, a wooden jetty with a rowboat, and a rocky peak behind

A tourism photograph of a three-story alpine lakeside hotel with dark timber balconies and red geraniums in window boxes, seen from across a small calm lake on a clear summer afternoon. Green meadow on both sides, a wooden jetty with a rowboat in the foreground on the left, forested slopes and a rocky peak behind the hotel. Photoreal travel photography, wide shot, no people, no text.

SummerWinter

Drag the slider across the hotel. The building and the ridge line stay registered while every surface changes season, because the instruction, shown in the request below, listed them as fixed. A tourism board gets its winter campaign out of the summer shoot.

This guide covers the request, scoping an instruction, removing and adding objects, putting several changes in one request, and chaining edits.

The request

An edit is a generation with one reference attached:

Try in Playground
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:nano-banana@2.1',
  positivePrompt: 'Turn this summer scene into midwinter. Cover the meadow, the roofs, the balconies, the jetty, and the forest in deep fresh snow, freeze the lake surface with a dusting of snow on the ice, replace the geraniums with snow on the window boxes, and change the light to a low cold sun with long blue shadows. Keep the hotel\'s architecture, the jetty, the rowboat, the mountains, and the camera position exactly as they are.',
  resolution: '2K',
  inputs: {
    referenceImages: [
      'https://im.runware.ai/image/os/a14d18/ws/2/ii/8e3b5c70-2d94-4a6f-b1e8-05c7a9d3f612.jpg'
    ]
  }
})
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:nano-banana@2.1",
            "positivePrompt": "Turn this summer scene into midwinter. Cover the meadow, the roofs, the balconies, the jetty, and the forest in deep fresh snow, freeze the lake surface with a dusting of snow on the ice, replace the geraniums with snow on the window boxes, and change the light to a low cold sun with long blue shadows. Keep the hotel's architecture, the jetty, the rowboat, the mountains, and the camera position exactly as they are.",
            "resolution": "2K",
            "inputs": {
                "referenceImages": [
                    "https://im.runware.ai/image/os/a14d18/ws/2/ii/8e3b5c70-2d94-4a6f-b1e8-05c7a9d3f612.jpg"
                ]
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "imageInference",
      "taskUUID": "4d9f2a61-c3b8-4e07-9a15-8b6e0d7c2f43",
      "model": "google:nano-banana@2.1",
      "positivePrompt": "Turn this summer scene into midwinter. Cover the meadow, the roofs, the balconies, the jetty, and the forest in deep fresh snow, freeze the lake surface with a dusting of snow on the ice, replace the geraniums with snow on the window boxes, and change the light to a low cold sun with long blue shadows. Keep the hotel's architecture, the jetty, the rowboat, the mountains, and the camera position exactly as they are.",
      "resolution": "2K",
      "inputs": {
        "referenceImages": [
          "https://im.runware.ai/image/os/a14d18/ws/2/ii/8e3b5c70-2d94-4a6f-b1e8-05c7a9d3f612.jpg"
        ]
      }
    }
  ]'
runware run google:nano-banana@2.1 \
  positivePrompt="Turn this summer scene into midwinter. Cover the meadow, the roofs, the balconies, the jetty, and the forest in deep fresh snow, freeze the lake surface with a dusting of snow on the ice, replace the geraniums with snow on the window boxes, and change the light to a low cold sun with long blue shadows. Keep the hotel's architecture, the jetty, the rowboat, the mountains, and the camera position exactly as they are." \
  resolution=2K \
  inputs.referenceImages.0=https://im.runware.ai/image/os/a14d18/ws/2/ii/8e3b5c70-2d94-4a6f-b1e8-05c7a9d3f612.jpg
{
  "taskType": "imageInference",
  "taskUUID": "4d9f2a61-c3b8-4e07-9a15-8b6e0d7c2f43",
  "model": "google:nano-banana@2.1",
  "positivePrompt": "Turn this summer scene into midwinter. Cover the meadow, the roofs, the balconies, the jetty, and the forest in deep fresh snow, freeze the lake surface with a dusting of snow on the ice, replace the geraniums with snow on the window boxes, and change the light to a low cold sun with long blue shadows. Keep the hotel's architecture, the jetty, the rowboat, the mountains, and the camera position exactly as they are.",
  "resolution": "2K",
  "inputs": {
    "referenceImages": [
      "https://im.runware.ai/image/os/a14d18/ws/2/ii/8e3b5c70-2d94-4a6f-b1e8-05c7a9d3f612.jpg"
    ]
  }
}
Response
[
  {
    "taskType": "imageInference",
    "taskUUID": "4d9f2a61-c3b8-4e07-9a15-8b6e0d7c2f43",
    "imageUUID": "a27c6e19-80d5-4b3a-9f64-3e1d8b05c7a2",
    "imageURL": "https://im.runware.ai/image/os/a14d18/ws/2/ii/a27c6e19-80d5-4b3a-9f64-3e1d8b05c7a2.jpg"
  }
]

With a reference in the request, resolution becomes available. It picks the tier, 1K, 2K, or 4K, and the output takes the aspect ratio of the reference. That is the setting for an edit, since the result has to fit where the original was. To reframe into a different shape, send a width and height pair instead. A request carries one or the other, never both.

Naming what changes and what holds

Write an edit as two sentences. The first names one change, with its before and its after. The second is a keep list drawn from what is in the frame:

Change the armchair's upholstery from light gray boucle to rust orange velvet. Keep the walnut frame, the legs, the shape of the cushions, the chair's position and angle, the floor, the wall, the shadow, and the lighting unchanged.
A mid-century armchair with a curved walnut frame and light gray boucle upholstery, angled to the left on a pale oak floor against a white wall

A furniture catalog photograph of a mid-century armchair with a curved walnut frame, tapered legs, and light gray boucle upholstery, angled three-quarters to the left on a pale oak floor against a warm white wall. A soft shadow falls to the right. Even daylight from a window on the left, photoreal, centered, no text.

Gray boucleRust velvet

The keep list is specific on purpose. "Keep everything else the same" names nothing, while "the walnut frame, the legs, the shape of the cushions" gives the model parts to check against. For a furniture store, every fabric in the range becomes a product image from one photographed chair.

Removing and adding

A removal needs the object and what takes its place. Name each thing to remove by what it is and where it sits, then say what the cleared area shows:

Remove the yellow wet-floor sign near the pool steps and the crumpled striped towel on the nearest lounger. Fill the space with the same stone tiles and the lounger's clean white cushion. Keep the pool, the other loungers and their rolled towels, the balustrade, the skyline, and the lighting unchanged.
A rooftop pool deck with a turquoise pool on the right, a row of white loungers on the left, a city skyline behind a glass balustrade, a yellow wet-floor sign by the pool steps, and a crumpled striped towel on the nearest lounger

A hotel listing photograph of a rooftop pool deck on a sunny morning. A rectangular pool with turquoise water runs along the right side, a row of four white sun loungers with rolled gray towels lines the left side, and a glass balustrade at the far end overlooks a city skyline. A yellow wet-floor sign stands on the deck near the pool steps in the foreground, and a crumpled striped towel is left on the nearest lounger. Pale stone tiles, clear blue sky, photoreal, wide shot, no people, no text.

SourceCleaned

The fill sentence matters when the removed object covered something specific. Without it, the model decides what was behind the sign.

An addition needs a place and a reason to belong there: where the object sits and how the scene's light meets it.

Add a matte black desk lamp with a slim arched arm on the left side of the desk, switched on, with its head angled toward the laptop. Let it cast a warm pool of light on the desk surface and a soft glow on the wall behind it. Keep the desk, the laptop, the pen cup, the fern, the chair, the wall color, and the camera position unchanged.
A birch desk against a sage green wall in dim evening light with no lamp, holding a silver laptop with a plain lid, a notebook, a phone, a ceramic pen cup, and a small fern, with a black mesh chair behind it

A product lifestyle photograph of a home office desk in the early evening. A light birch desk against a sage green wall holds a closed plain silver laptop with no logo in the center, a ceramic pen cup on the right, and a small potted fern at the far right. A black mesh office chair is pushed in. There is no lamp anywhere in the room, and the only light is dim cool daylight from a window out of frame on the right. Photoreal, straight-on view, no logos, no people, no text.

SourceLamp added

The instruction describes the lamp together with the light it throws: the pool on the desk and the glow on the wall. An added object that changes nothing around it reads as pasted in.

Several changes in one instruction

One request can carry several changes. Number them, give each its own sentence, and close with a single keep list:

Make four changes. 1. Change the blazer from cream to emerald green, keeping its cut. 2. Replace the blue jeans with black tailored trousers. 3. Add a pair of slim gold-rimmed sunglasses. 4. Change the backdrop from light gray to a warm terracotta. Keep her face, her hair, her stride, the white T-shirt, the white sneakers, the framing, and the lighting unchanged.
A woman with shoulder-length black hair walking toward the camera in a cream blazer, white T-shirt, blue jeans, and white sneakers against a light gray studio backdrop

A fashion lookbook photograph of a woman in her late twenties with shoulder-length black hair, walking toward the camera mid-stride against a plain light gray studio backdrop. She wears a cream blazer over a white T-shirt, straight blue jeans, and white leather sneakers. Soft even studio lighting with a faint floor shadow, full length, photoreal, no text.

SourceRestyled

Four changes in one request cost one pass over the image. Sent as four requests, the same changes would redraw the whole frame four times. Fold in every change you already know, and keep chaining for the ones that depend on seeing a result.

Chaining edits

Each edit returns an ordinary image, so one result can be the reference for the next request. Chaining fits work that is decided one step at a time, like staging an empty room for a listing:

Step through the rounds, and go back to Original to compare. Every instruction restates the full keep list, including what the earlier rounds added. An edit only sees its reference image and its own prompt, so nothing carries over from the previous request.

When a chain grows past a few rounds, go back to the original and replay the approved changes as one numbered instruction.

Tips

  1. Let the reference set the frame. Send resolution on an edit, and the result keeps the aspect ratio of the source.

  2. Name the before and the after. "From light gray boucle to rust orange velvet" tells the model which part of the image the change applies to.

  3. Write the keep list from the frame. Name the objects that are in the image. A generic "keep everything else" gives the model nothing to hold.

  4. Say what fills a removal. Describe the surface that the removed object was covering.

  5. Describe an added object with its light. A lamp comes with a pool of light, and a vase comes with a contact shadow.

  6. Number several changes in one instruction. One pass redraws the frame once.

  7. Restate the keep list in every round of a chain. Each request starts from its reference and its own prompt.