Skip to content
Google logo

Nano Banana

Text-to-Image • Google

View as MarkdownAgent setup

Model ID

Use with the Workers AI binding, the AI Gateway REST API, or the Unified API.

Calling the provider directly? Use the provider's model name instead, including with provider-native endpoints or the provider's own SDK. For example, Anthropic's name for anthropic/claude-opus-4.8 is claude-opus-4-8.

  • Third-party
  • Zero data retention

Google's fast image generation model producing high-quality images from text prompts.

Model Info
Terms and Licenselink ↗
More informationlink ↗
Zero data retentionYes
Pricing
  • Input (per 1M tokens)$0.30
  • Output (per 1M tokens)$30.00
  • Cached input (per 1M tokens)$0.03
  • Cache creation (per 1M tokens)$0.083333

Usage

const response = await env.AI.run(
  'google/nano-banana',
  {
    prompt:
      'A cozy coffee shop interior with warm lighting, plants hanging from the ceiling, and a cat sleeping on a velvet armchair by the window',
    aspect_ratio: '16:9',
  },
)
console.log(response)
curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
  --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
  "model": "google/nano-banana",
  "input": {
    "prompt": "A cozy coffee shop interior with warm lighting, plants hanging from the ceiling, and a cat sleeping on a velvet armchair by the window",
    "aspect_ratio": "16:9"
  }
}'
Cozy Coffee Shop
{
  "gatewayMetadata": {
    "keySource": "Unified"
  },
  "result": {
    "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana/cozy-coffee-shop.png"
  },
  "state": "Completed"
}

Examples

Vintage Tokyo Poster — Retro travel poster style illustration
const response = await env.AI.run(
  'google/nano-banana',
  {
    prompt:
      'A vintage travel poster for Tokyo, Japan in the style of 1960s airline advertisements, with Mount Fuji in the background and cherry blossoms framing the scene',
    aspect_ratio: '9:16',
  },
)
console.log(response)
curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
  --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
  "model": "google/nano-banana",
  "input": {
    "prompt": "A vintage travel poster for Tokyo, Japan in the style of 1960s airline advertisements, with Mount Fuji in the background and cherry blossoms framing the scene",
    "aspect_ratio": "9:16"
  }
}'
Vintage Tokyo Poster
{
  "gatewayMetadata": {
    "keySource": "Unified"
  },
  "result": {
    "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana/vintage-tokyo-poster.png"
  },
  "state": "Completed"
}
Dewdrops Macro — Photorealistic macro photography
const response = await env.AI.run(
  'google/nano-banana',
  {
    prompt:
      'A photorealistic macro shot of dewdrops on a spider web at sunrise, with rainbow light refracting through each droplet',
    aspect_ratio: '1:1',
  },
)
console.log(response)
curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
  --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
  "model": "google/nano-banana",
  "input": {
    "prompt": "A photorealistic macro shot of dewdrops on a spider web at sunrise, with rainbow light refracting through each droplet",
    "aspect_ratio": "1:1"
  }
}'
Dewdrops Macro
{
  "gatewayMetadata": {
    "keySource": "Unified"
  },
  "result": {
    "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana/dewdrops-macro.png"
  },
  "state": "Completed"
}
Pixel Art Marketplace — Isometric pixel art scene
const response = await env.AI.run(
  'google/nano-banana',
  {
    prompt:
      'An isometric pixel art scene of a bustling medieval marketplace with merchants, knights, and a dragon perched on the town hall roof',
    aspect_ratio: '1:1',
  },
)
console.log(response)
curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
  --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
  "model": "google/nano-banana",
  "input": {
    "prompt": "An isometric pixel art scene of a bustling medieval marketplace with merchants, knights, and a dragon perched on the town hall roof",
    "aspect_ratio": "1:1"
  }
}'
Pixel Art Marketplace
{
  "gatewayMetadata": {
    "keySource": "Unified"
  },
  "result": {
    "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana/pixel-art-marketplace.png"
  },
  "state": "Completed"
}
High Resolution Landscape — Generate a high-resolution 4K landscape image
const response = await env.AI.run(
  'google/nano-banana',
  {
    prompt:
      'A dramatic mountain landscape at golden hour with snow-capped peaks and a crystal clear alpine lake',
    aspect_ratio: '16:9',
    image_size: '4K',
    output_format: 'png',
  },
)
console.log(response)
curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
  --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
  "model": "google/nano-banana",
  "input": {
    "prompt": "A dramatic mountain landscape at golden hour with snow-capped peaks and a crystal clear alpine lake",
    "aspect_ratio": "16:9",
    "image_size": "4K",
    "output_format": "png"
  }
}'
High Resolution Landscape
{
  "gatewayMetadata": {
    "keySource": "Unified"
  },
  "result": {
    "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana/high-resolution-landscape.png"
  },
  "state": "Completed"
}

Parameters

prompt
stringrequired
aspect_ratio
stringenum: 1:1, 3:2, 2:3, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9
output_format
stringenum: jpg, png, webp
image_size
stringenum: 1K, 2K, 4K
image
stringformat: uri

API Schemas (Raw)

Input
Output

Was this helpful?