---
title: Nano Banana 2 | Runware Docs
url: https://runware.ai/docs/models/google-nano-banana-2
description: Gemini 3.1 Flash Image fast high quality AI image generation and editing
---
# Nano Banana 2

Nano Banana 2 (officially known as Gemini 3.1 Flash Image) is Google’s upgraded AI image generation and editing model that brings advanced visual creation capabilities to a broad audience. It generates detailed, expressive images from text and image prompts with sharp details, richer lighting, and improved adherence to complex instructions. Nano Banana 2 also supports multi-object and multi-character consistency, accurate text rendering within images, and flexible resolution control up to 4K. It is now integrated across Google’s AI platforms including the Gemini app, Search AI Mode, and other Gemini-powered services.

- **ID**: `google:4@3`
- **Status**: live
- **Creator**: Google
- **Release Date**: February 26, 2026
- **Capabilities**: Text to Image, Image to Image, Image Editing

## Pricing

Pricing starts at $0.04657 for 512x512. For every input image used, it's an additional $0.00028. When using grounded search, $0.14 will be added on top.

- **512x512**: `$0.04657`
- **1K**: `$0.06895`
- **2K**: `$0.10255`
- **4K**: `$0.15295`

## Compatibility & Validation

Either provide `inputs.referenceImages`, or specify `width/height` or `resolution`.

---

`resolution` cannot be used with `width/height`.

---

`width` and `height` must be used together.

---

The following dimension combinations are supported:

| Configuration | Dimensions |
| --- | --- |
| `0.5K (1:1)` | `512x512` |
| `0.5K (3:2)` | `632x424` |
| `0.5K (2:3)` | `424x632` |
| `0.5K (4:3)` | `600x448` |
| `0.5K (3:4)` | `448x600` |
| `0.5K (4:5)` | `464x576` |
| `0.5K (5:4)` | `576x464` |
| `0.5K (9:16)` | `384x688` |
| `0.5K (16:9)` | `688x384` |
| `0.5K (21:9)` | `792x168` |
| `0.5K (4:1)` | `1024x256` |
| `0.5K (1:4)` | `256x1024` |
| `0.5K (8:1)` | `1536x192` |
| `0.5K (1:8)` | `192x1536` |
| `1K (1:1)` | `1024x1024` |
| `1K (3:2)` | `1264x848` |
| `1K (2:3)` | `848x1264` |
| `1K (4:3)` | `1200x896` |
| `1K (3:4)` | `896x1200` |
| `1K (4:5)` | `928x1152` |
| `1K (5:4)` | `1152x928` |
| `1K (9:16)` | `768x1376` |
| `1K (16:9)` | `1376x768` |
| `1K (21:9)` | `1584x672` |
| `1K (4:1)` | `2048x512` |
| `1K (1:4)` | `512x2048` |
| `1K (8:1)` | `3072x384` |
| `1K (1:8)` | `384x3072` |
| `2K (1:1)` | `2048x2048` |
| `2K (3:2)` | `2528x1696` |
| `2K (2:3)` | `1696x2528` |
| `2K (4:3)` | `2400x1792` |
| `2K (3:4)` | `1792x2400` |
| `2K (4:5)` | `1856x2304` |
| `2K (5:4)` | `2304x1856` |
| `2K (9:16)` | `1536x2752` |
| `2K (16:9)` | `2752x1536` |
| `2K (21:9)` | `3168x1344` |
| `2K (4:1)` | `4096x1024` |
| `2K (1:4)` | `1024x4096` |
| `2K (8:1)` | `6144x768` |
| `2K (1:8)` | `768x6144` |
| `4K (1:1)` | `4096x4096` |
| `4K (3:2)` | `5056x3392` |
| `4K (2:3)` | `3392x5056` |
| `4K (4:3)` | `4800x3584` |
| `4K (3:4)` | `3584x4800` |
| `4K (4:5)` | `3712x4608` |
| `4K (5:4)` | `4608x3712` |
| `4K (9:16)` | `3072x5504` |
| `4K (16:9)` | `5504x3072` |
| `4K (21:9)` | `6336x2688` |
| `4K (4:1)` | `8192x2048` |
| `4K (1:4)` | `2048x8192` |
| `4K (8:1)` | `12288x1536` |
| `4K (1:8)` | `1536x12288` |

## Request Parameters

**API Options**

Platform-level options for task execution and delivery.

### [taskType](https://runware.ai/docs/models/google-nano-banana-2#request-tasktype)

- **Type**: `string`
- **Required**: true
- **Value**: `imageInference`

Identifier for the type of task being performed

### [taskUUID](https://runware.ai/docs/models/google-nano-banana-2#request-taskuuid)

- **Type**: `string`
- **Required**: true
- **Format**: `UUID v4`

UUID v4 identifier for tracking tasks and matching async responses. Must be unique per task.

### [outputType](https://runware.ai/docs/models/google-nano-banana-2#request-outputtype)

- **Type**: `string`
- **Default**: `URL`

Image output type.

**Allowed values**: `URL` `base64Data` `dataURI`

### [outputFormat](https://runware.ai/docs/models/google-nano-banana-2#request-outputformat)

- **Type**: `string`
- **Default**: `JPG`

Specifies the file format of the generated output. The available values depend on the task type and the specific model's capabilities.

- \`JPG\`: Best for photorealistic images with smaller file sizes (no transparency).
- \`PNG\`: Lossless compression, supports high quality and transparency (alpha channel).
- \`WEBP\`: Modern format providing superior compression and transparency support.

> [!NOTE]
> \*\*Transparency\*\*: If you are using features like background removal or LayerDiffuse that require transparency, you must select a format that supports an alpha channel (e.g., \`PNG\`, \`WEBP\`, \`TIFF\`). \`JPG\` does not support transparency.

**Allowed values**: `JPG` `PNG` `WEBP`

### [outputQuality](https://runware.ai/docs/models/google-nano-banana-2#request-outputquality)

- **Type**: `integer`
- **Min**: `20`
- **Max**: `99`
- **Default**: `95`

Compression quality of the output. Higher values preserve quality but increase file size.

### [webhookURL](https://runware.ai/docs/models/google-nano-banana-2#request-webhookurl)

- **Type**: `string`
- **Format**: `URI`

Specifies a webhook URL where JSON responses will be sent via HTTP POST when generation tasks complete. For batch requests with multiple results, each completed item triggers a separate webhook call as it becomes available.

**Learn more** (1 resource):

- [Webhooks](https://runware.ai/docs/platform/webhooks) (platform)

### [deliveryMethod](https://runware.ai/docs/models/google-nano-banana-2#request-deliverymethod)

- **Type**: `string`
- **Default**: `sync`

Determines how the API delivers task results.

**Allowed values**:

- `sync` Returns complete results directly in the API response.
- `async` Returns an immediate acknowledgment with the task UUID. Poll for results using getResponse.

**Learn more** (1 resource):

- [Task Polling](https://runware.ai/docs/platform/task-polling) (platform)

### [uploadEndpoint](https://runware.ai/docs/models/google-nano-banana-2#request-uploadendpoint)

- **Type**: `string`
- **Format**: `URI`

Specifies a URL where the generated content will be automatically uploaded using the HTTP PUT method. The raw binary data of the media file is sent directly as the request body. For secure uploads to cloud storage, use presigned URLs that include temporary authentication credentials.

**Common use cases:**

- **Cloud storage**: Upload directly to S3 buckets, Google Cloud Storage, or Azure Blob Storage using presigned URLs.
- **CDN integration**: Upload to content delivery networks for immediate distribution.

```text
// S3 presigned URL for secure upload
https://your-bucket.s3.amazonaws.com/generated/content.mp4?X-Amz-Signature=abc123&X-Amz-Expires=3600

// Google Cloud Storage presigned URL
https://storage.googleapis.com/your-bucket/content.jpg?X-Goog-Signature=xyz789

// Custom storage endpoint
https://storage.example.com/uploads/generated-image.jpg
```

The content data will be sent as the request body to the specified URL when generation is complete.

### [safety](https://runware.ai/docs/models/google-nano-banana-2#request-safety)

- **Path**: `safety.checkContent`
- **Type**: `object (2 properties)`

Content safety checking configuration for image generation.

#### [checkContent](https://runware.ai/docs/models/google-nano-banana-2#request-safety-checkcontent)

- **Path**: `safety.checkContent`
- **Type**: `boolean`
- **Default**: `false`

Enable or disable content safety checking. When enabled, defaults to `fast` mode.

#### [mode](https://runware.ai/docs/models/google-nano-banana-2#request-safety-mode)

- **Path**: `safety.mode`
- **Type**: `string`
- **Default**: `none`

Safety checking mode for image generation.

**Allowed values**:

- `none` Disables checking.
- `fast` Performs a single check.

### [ttl](https://runware.ai/docs/models/google-nano-banana-2#request-ttl)

- **Type**: `integer`
- **Min**: `60`

Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.

### [includeCost](https://runware.ai/docs/models/google-nano-banana-2#request-includecost)

- **Type**: `boolean`
- **Default**: `false`

Include task cost in the response.

### [numberResults](https://runware.ai/docs/models/google-nano-banana-2#request-numberresults)

- **Type**: `integer`
- **Min**: `1`
- **Max**: `20`
- **Default**: `1`

Number of results to generate. Each result uses a different seed, producing variations of the same parameters.

**Inputs**

Input resources for the task (images, audio, etc). These must be nested inside the \`inputs\` object.

### [referenceImages](https://runware.ai/docs/models/google-nano-banana-2#request-inputs-referenceimages)

- **Path**: `inputs.referenceImages`
- **Type**: `array of strings`

List of reference images (UUID, URL, Data URI, or Base64).

**Generation Parameters**

Core parameters for controlling the generated content.

### [model](https://runware.ai/docs/models/google-nano-banana-2#request-model)

- **Type**: `string`
- **Required**: true
- **Value**: `google:4@3`

Identifier of the model to use for generation.

**Learn more** (3 resources):

- [Text To Image: Model Selection The Foundation Of Generation](https://runware.ai/docs/guides/text-to-image#model-selection-the-foundation-of-generation) (guide)
- [Image Inpainting: Model Specialized Inpainting Models](https://runware.ai/docs/guides/image-inpainting#model-specialized-inpainting-models) (guide)
- [Image Outpainting: Other Critical Parameters](https://runware.ai/docs/guides/image-outpainting#other-critical-parameters) (guide)

### [positivePrompt](https://runware.ai/docs/models/google-nano-banana-2#request-positiveprompt)

- **Type**: `string`
- **Required**: true
- **Min**: `3`
- **Max**: `45000`

Text prompt describing elements to include in the generated output.

**Learn more** (2 resources):

- [Text To Image: Prompts Guiding The Generation](https://runware.ai/docs/guides/text-to-image#prompts-guiding-the-generation) (guide)
- [Image Outpainting: Other Critical Parameters](https://runware.ai/docs/guides/image-outpainting#other-critical-parameters) (guide)

### [width](https://runware.ai/docs/models/google-nano-banana-2#request-width)

- **Type**: `integer`
- **Paired with**: height

Width of the generated media in pixels.

**Learn more** (2 resources):

- [Image To Image: Dimensions Changing Aspect Ratio](https://runware.ai/docs/guides/image-to-image#dimensions-changing-aspect-ratio) (guide)
- [Image Outpainting: Dimensions Critical For Outpainting](https://runware.ai/docs/guides/image-outpainting#dimensions-critical-for-outpainting) (guide)

### [height](https://runware.ai/docs/models/google-nano-banana-2#request-height)

- **Type**: `integer`
- **Paired with**: width

Height of the generated media in pixels.

**Learn more** (2 resources):

- [Image To Image: Dimensions Changing Aspect Ratio](https://runware.ai/docs/guides/image-to-image#dimensions-changing-aspect-ratio) (guide)
- [Image Outpainting: Dimensions Critical For Outpainting](https://runware.ai/docs/guides/image-outpainting#dimensions-critical-for-outpainting) (guide)

### [resolution](https://runware.ai/docs/models/google-nano-banana-2#request-resolution)

- **Type**: `string`

Resolution preset for the output. When used with input media, automatically matches the aspect ratio from the input.

**Allowed values**: `0.5K` `1K` `2K` `4K`

### [seed](https://runware.ai/docs/models/google-nano-banana-2#request-seed)

- **Type**: `integer`
- **Min**: `0`
- **Max**: `9223372036854776000`

Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range.

**Learn more** (1 resource):

- [Text To Image: Seed Controlling Randomness Deterministically](https://runware.ai/docs/guides/text-to-image#seed-controlling-randomness-deterministically) (guide)

**Settings**

Technical parameters to fine-tune the inference process. These must be nested inside the \`settings\` object.

### [systemPrompt](https://runware.ai/docs/models/google-nano-banana-2#request-settings-systemprompt)

- **Path**: `settings.systemPrompt`
- **Type**: `string`
- **Min**: `1`
- **Max**: `50000`

System-level instruction that guides the model's behavior and output style across the entire generation.

### [temperature](https://runware.ai/docs/models/google-nano-banana-2#request-settings-temperature)

- **Path**: `settings.temperature`
- **Type**: `float`
- **Min**: `0`
- **Max**: `1`
- **Step**: `0.01`

Controls randomness in generation. Lower values produce more deterministic outputs, higher values increase variation and creativity.

### [topP](https://runware.ai/docs/models/google-nano-banana-2#request-settings-topp)

- **Path**: `settings.topP`
- **Type**: `float`
- **Min**: `0`
- **Max**: `1`
- **Step**: `0.01`

Nucleus sampling parameter that controls diversity by limiting the probability mass. Lower values make outputs more focused, higher values increase diversity.

### [thinking](https://runware.ai/docs/models/google-nano-banana-2#request-settings-thinking)

- **Path**: `settings.thinking`
- **Type**: `string`

Controls the depth of internal reasoning the model performs before generating a response.

**Allowed values**: `MINIMAL` `HIGH`

**Provider Settings**

Parameters specific to this model provider. These must be nested inside the \`providerSettings.google\` object.

### [imageSearch](https://runware.ai/docs/models/google-nano-banana-2#request-providersettings-google-imagesearch)

- **Path**: `providerSettings.google.imageSearch`
- **Type**: `boolean`
- **Default**: `false`

Enable image search grounding to incorporate visual references from the web into image generation.

### [safetyTolerance](https://runware.ai/docs/models/google-nano-banana-2#request-providersettings-google-safetytolerance)

- **Path**: `providerSettings.google.safetyTolerance`
- **Type**: `string`
- **Default**: `none`

Safety filter tolerance level. Use `off` to use Google's defaults.

**Allowed values**: `high` `medium` `low` `none` `off`

### [webSearch](https://runware.ai/docs/models/google-nano-banana-2#request-providersettings-google-websearch)

- **Path**: `providerSettings.google.webSearch`
- **Type**: `boolean`
- **Default**: `false`

Enable live web search grounding to incorporate real-world, up-to-date information into image generation.

## Response Parameters

### [taskType](https://runware.ai/docs/models/google-nano-banana-2#response-tasktype)

- **Type**: `string`
- **Required**: true
- **Value**: `imageInference`

Type of the task.

### [taskUUID](https://runware.ai/docs/models/google-nano-banana-2#response-taskuuid)

- **Type**: `string`
- **Required**: true
- **Format**: `UUID v4`

UUID of the task.

### [imageUUID](https://runware.ai/docs/models/google-nano-banana-2#response-imageuuid)

- **Type**: `string`
- **Required**: true
- **Format**: `UUID v4`

UUID of the output image.

### [imageURL](https://runware.ai/docs/models/google-nano-banana-2#response-imageurl)

- **Type**: `string`
- **Format**: `URI`

URL of the output image.

### [imageBase64Data](https://runware.ai/docs/models/google-nano-banana-2#response-imagebase64data)

- **Type**: `string`

Base64-encoded image data.

### [imageDataURI](https://runware.ai/docs/models/google-nano-banana-2#response-imagedatauri)

- **Type**: `string`
- **Format**: `URI`

Data URI of the output image.

### [seed](https://runware.ai/docs/models/google-nano-banana-2#response-seed)

- **Type**: `integer`

The seed used for generation. If none was provided, shows the randomly generated seed.

### [NSFWContent](https://runware.ai/docs/models/google-nano-banana-2#response-nsfwcontent)

- **Type**: `boolean`

Flag indicating if NSFW content was detected.

### [cost](https://runware.ai/docs/models/google-nano-banana-2#response-cost)

- **Type**: `float`

Task cost in USD. Present when `includeCost` is set to `true` in the request.

## Examples

### Neon Food-Truck Poster (Text to Image)

![Neon Food-Truck Poster](https://assets.runware.ai/examples/google-nano-banana-2/2cc9597c-6370-4762-b7cc-8e72cbcd7709.jpg)

**Request**:

```json
{
  "taskType": "imageInference",
  "taskUUID": "16830039-18a1-48fc-b10a-3f40efdf519a",
  "model": "google:4@3",
  "positivePrompt": "A premium commercial poster for a futuristic night market food truck parked under glowing neon signs in a rainy street, cinematic composition, ultra-detailed stainless steel truck, colorful steam rising from gourmet ramen bowls, diverse crowd in stylish streetwear, reflections on wet pavement, vibrant magenta and cyan lighting, crisp depth, dramatic perspective. Include a large illuminated menu board on the truck with clearly readable text: 'MIDNIGHT RAMEN', 'OPEN LATE', 'TONKOTSU', 'SPICY MISO', 'VEGAN SHOYU'. Add a small hanging sign that reads 'TOKYO LANE'. High-end food photography styling mixed with cyberpunk atmosphere, sharp details, expressive lighting, clean typography, no gibberish text.",
  "width": 1264,
  "height": 848,
  "settings": {
    "temperature": 0.72,
    "topP": 0.9,
    "thinking": "HIGH"
  },
  "providerSettings": {
    "google": {
      "safetyTolerance": "off"
    }
  }
}
```

**Response**:

```json
{
  "taskType": "imageInference",
  "taskUUID": "16830039-18a1-48fc-b10a-3f40efdf519a",
  "imageUUID": "a92e81cb-5e64-4bda-b378-0028ca847637",
  "imageURL": "https://im.runware.ai/image/os/a13d12/ws/2/ii/a92e81cb-5e64-4bda-b378-0028ca847637.jpg",
  "seed": 1465087545,
  "cost": 0.06895
}
```

---

### Grounded Travel Poster (Text to Image)

![Grounded Travel Poster](https://assets.runware.ai/examples/google-nano-banana-2/5733e79d-18d4-4cbd-a511-78496689418c.jpg)

**Request**:

```json
{
  "taskType": "imageInference",
  "taskUUID": "9b064579-dc1a-4667-8c05-3da9bbf98d89",
  "model": "google:4@3",
  "positivePrompt": "A premium editorial travel poster for Kyoto, Japan in peak spring season, featuring a serene canal lined with cherry blossoms, traditional wooden machiya houses, warm lantern light, distant temple rooftops, and stylish contemporary typography reading 'KYOTO' with smaller subtitle text 'Spring City Guide'. Elegant magazine-cover composition, ultra-detailed petals, cinematic golden-hour lighting, realistic water reflections, balanced negative space for layout, refined color grading, crisp legible text, sophisticated tourism campaign aesthetic.",
  "width": 1264,
  "height": 848,
  "settings": {
    "temperature": 0.72,
    "topP": 0.95,
    "thinking": "HIGH"
  },
  "providerSettings": {
    "google": {
      "webSearch": true,
      "safetyTolerance": "off"
    }
  }
}
```

**Response**:

```json
{
  "taskType": "imageInference",
  "taskUUID": "9b064579-dc1a-4667-8c05-3da9bbf98d89",
  "imageUUID": "2d578240-50ca-4bc2-9f48-d6027c04b30f",
  "imageURL": "https://im.runware.ai/image/os/a22d05/ws/2/ii/2d578240-50ca-4bc2-9f48-d6027c04b30f.jpg",
  "seed": 538258016,
  "cost": 0.06895
}
```

---

### Tri-Reference Fashion Collage (Image to Image)

![Tri-Reference Fashion Collage](https://assets.runware.ai/examples/google-nano-banana-2/777e2724-1793-425a-90de-597c2cae99bc.jpg)

**Request**:

```json
{
  "taskType": "imageInference",
  "taskUUID": "ad37991f-9336-4899-96d1-a1ce6584843b",
  "model": "google:4@3",
  "positivePrompt": "Create a luxury fashion editorial composition that merges the subject from reference image 1, the jewelry styling motifs from reference image 2, and the architectural environment from reference image 3. Show the model standing confidently in the modern interior, wearing an elegant ivory tailored outfit accented with bold layered gold jewelry. Preserve a premium magazine aesthetic, refined pose, cinematic sunlight, crisp textile detail, realistic skin texture, balanced shadows, and sophisticated color harmony. Add a subtle high-end cover-shoot feeling with strong composition and excellent material realism.",
  "width": 1264,
  "height": 848,
  "settings": {
    "temperature": 0.72,
    "topP": 0.95,
    "thinking": "HIGH"
  },
  "providerSettings": {
    "google": {
      "safetyTolerance": "off"
    }
  },
  "inputs": {
    "referenceImages": [
      "https://assets.runware.ai/assets/inputs/75aefcce-72ed-4724-938d-5ee8e4aa7135.jpg",
      "https://assets.runware.ai/assets/inputs/126c9bf9-6190-448a-a23b-d454ca664c45.jpg",
      "https://assets.runware.ai/assets/inputs/63051915-2949-4583-abd2-03d7d59312ce.jpg"
    ]
  }
}
```

**Response**:

```json
{
  "taskType": "imageInference",
  "taskUUID": "ad37991f-9336-4899-96d1-a1ce6584843b",
  "imageUUID": "0cd975bc-cc0f-4b35-acaf-4af962f6451e",
  "imageURL": "https://im.runware.ai/image/os/a23d05/ws/2/ii/0cd975bc-cc0f-4b35-acaf-4af962f6451e.jpg",
  "seed": 705629215,
  "cost": 0.06979
}
```

---

### Retro Arcade Poster (Text to Image)

![Retro Arcade Poster](https://assets.runware.ai/examples/google-nano-banana-2/1e1b5f0b-f7a6-4424-886e-028e0d9e031b.jpg)

**Request**:

```json
{
  "taskType": "imageInference",
  "taskUUID": "f61cb15d-3d7f-40d8-a5ab-bdc8ad3361a5",
  "model": "google:4@3",
  "positivePrompt": "A bold retro-futurist arcade poster for a fictional game called 'NEON DRIFT'. A chrome magenta sports hovercar races through a glowing synthwave city at night, giant holographic billboards, electric rain, teal and pink reflections on the street, dramatic cinematic perspective, dense atmosphere, razor-sharp details, expressive lighting, polished poster composition. Include crisp readable title text at the top: 'NEON DRIFT'. Include smaller subtitle text at the bottom: 'MIDNIGHT CIRCUIT CHAMPIONSHIP'. High contrast, premium graphic design, vibrant colors, clean typography, ultra-detailed, visually striking.",
  "width": 1264,
  "height": 848,
  "settings": {
    "thinking": "HIGH",
    "temperature": 0.82,
    "topP": 0.95,
    "systemPrompt": "Generate a highly polished image that prioritizes instruction following, coherent composition, accurate embedded text rendering, and rich cinematic lighting."
  },
  "providerSettings": {
    "google": {
      "imageSearch": false,
      "webSearch": false,
      "safetyTolerance": "off"
    }
  }
}
```

**Response**:

```json
{
  "taskType": "imageInference",
  "taskUUID": "f61cb15d-3d7f-40d8-a5ab-bdc8ad3361a5",
  "imageUUID": "360d09c1-6934-42dc-a7bd-b5b0ccbd0858",
  "imageURL": "https://im.runware.ai/image/os/a24d12/ws/2/ii/360d09c1-6934-42dc-a7bd-b5b0ccbd0858.jpg",
  "seed": 1466209441,
  "cost": 0.06895
}
```