home / skills / intellectronica / agent-skills / nano-banana-pro

nano-banana-pro skill

/skills/nano-banana-pro

This skill generates or edits images using Google's Nano Banana Pro API, preserving user intent and saving results to the current working directory.

npx playbooks add skill intellectronica/agent-skills --skill nano-banana-pro

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
4.2 KB
---
name: nano-banana-pro
description: Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
---

# Nano Banana Pro Image Generation & Editing

Generate new images or edit existing ones using Google's Nano Banana Pro API (Gemini 3 Pro Image).

## Usage

Run the script using absolute path (do NOT cd to skill directory first):

**Generate new image:**
```bash
uv run ~/.claude/skills/nano-banana-pro/scripts/generate_image.py --prompt "your image description" --filename "output-name.png" [--resolution 1K|2K|4K] [--api-key KEY]
```

**Edit existing image:**
```bash
uv run ~/.claude/skills/nano-banana-pro/scripts/generate_image.py --prompt "editing instructions" --filename "output-name.png" --input-image "path/to/input.png" [--resolution 1K|2K|4K] [--api-key KEY]
```

**Important:** Always run from the user's current working directory so images are saved where the user is working, not in the skill directory.

## Resolution Options

The Gemini 3 Pro Image API supports three resolutions (uppercase K required):

- **1K** (default) - ~1024px resolution
- **2K** - ~2048px resolution
- **4K** - ~4096px resolution

Map user requests to API parameters:
- No mention of resolution → `1K`
- "low resolution", "1080", "1080p", "1K" → `1K`
- "2K", "2048", "normal", "medium resolution" → `2K`
- "high resolution", "high-res", "hi-res", "4K", "ultra" → `4K`

## API Key

The script checks for API key in this order:
1. `--api-key` argument (use if user provided key in chat)
2. `GEMINI_API_KEY` environment variable

If neither is available, the script exits with an error message.

## Filename Generation

Generate filenames with the pattern: `yyyy-mm-dd-hh-mm-ss-name.png`

**Format:** `{timestamp}-{descriptive-name}.png`
- Timestamp: Current date/time in format `yyyy-mm-dd-hh-mm-ss` (24-hour format)
- Name: Descriptive lowercase text with hyphens
- Keep the descriptive part concise (1-5 words typically)
- Use context from user's prompt or conversation
- If unclear, use random identifier (e.g., `x9k2`, `a7b3`)

Examples:
- Prompt "A serene Japanese garden" → `2025-11-23-14-23-05-japanese-garden.png`
- Prompt "sunset over mountains" → `2025-11-23-15-30-12-sunset-mountains.png`
- Prompt "create an image of a robot" → `2025-11-23-16-45-33-robot.png`
- Unclear context → `2025-11-23-17-12-48-x9k2.png`

## Image Editing

When the user wants to modify an existing image:
1. Check if they provide an image path or reference an image in the current directory
2. Use `--input-image` parameter with the path to the image
3. The prompt should contain editing instructions (e.g., "make the sky more dramatic", "remove the person", "change to cartoon style")
4. Common editing tasks: add/remove elements, change style, adjust colors, blur background, etc.

## Prompt Handling

**For generation:** Pass user's image description as-is to `--prompt`. Only rework if clearly insufficient.

**For editing:** Pass editing instructions in `--prompt` (e.g., "add a rainbow in the sky", "make it look like a watercolor painting")

Preserve user's creative intent in both cases.

## Output

- Saves PNG to current directory (or specified path if filename includes directory)
- Script outputs the full path to the generated image
- **Do not read the image back** - just inform the user of the saved path

## Examples

**Generate new image:**
```bash
uv run ~/.claude/skills/nano-banana-pro/scripts/generate_image.py --prompt "A serene Japanese garden with cherry blossoms" --filename "2025-11-23-14-23-05-japanese-garden.png" --resolution 4K
```

**Edit existing image:**
```bash
uv run ~/.claude/skills/nano-banana-pro/scripts/generate_image.py --prompt "make the sky more dramatic with storm clouds" --filename "2025-11-23-14-25-30-dramatic-sky.png" --input-image "original-photo.jpg" --resolution 2K
```

Overview

This skill integrates with Google's Nano Banana Pro (Gemini 3 Pro Image) API to generate and edit images from text prompts or existing image files. It supports configurable resolutions (1K default, 2K, 4K) and produces timestamped, descriptive PNG filenames saved to the user's current working directory. Use this skill whenever you ask to create, modify, or update an image file.

How this skill works

The script accepts a text prompt for text-to-image generation or a prompt plus --input-image to perform image-to-image edits. It maps user language about resolution to the API parameter (1K/2K/4K), requires an API key passed via --api-key or the GEMINI_API_KEY environment variable, and saves a PNG with a timestamped descriptive filename. It prints the full path to the saved file but does not open or read the image back.

When to use it

  • Create a new image from a descriptive prompt (text-to-image).
  • Edit or retouch an existing file by supplying an input image and editing instructions.
  • Change background, remove or replace elements, or convert styles (e.g., watercolor, cartoon).
  • Request higher detail by asking for 2K or 4K resolution.
  • When you need a timestamped, shareable PNG saved to your current working directory.

Best practices

  • Run the script from your current working directory so outputs save where you expect.
  • Provide clear, actionable prompts; keep generation descriptions concise and editing instructions specific.
  • Specify resolution terms explicitly (1K, 2K, 4K) or use mapped phrases like “high-res” → 4K.
  • Supply an API key via --api-key or set GEMINI_API_KEY before running to avoid errors.
  • Use short, descriptive names (1–5 words) for filenames; the script prefixes a timestamp automatically.

Example use cases

  • Generate a 4K cover image: prompt + --resolution 4K -> save 2026-01-30-12-00-00-cover-art.png.
  • Change background of photo.jpg: --input-image photo.jpg --prompt "replace background with a sunset" --resolution 2K.
  • Make a portrait look like a watercolor: --input-image portrait.png --prompt "convert to soft watercolor style".
  • Quick low-res mockup: simple prompt with no resolution → defaults to 1K and saves output in current folder.

FAQ

What if I don’t provide an API key?

The script checks --api-key first, then GEMINI_API_KEY. If neither is present it exits with an error—set the environment variable or pass --api-key.

How do I request higher quality images?

Use explicit resolution flags or phrases. Use 4K or phrases like “high-res” for 4096px, 2K or “2048” for medium, and default 1K for standard output.