MikeWang

Nano Banana 2 Image Generation&Editing

设计创意v1.0.9
作者:MikeWang更新于 2026-05-11共 10 个版本 · 最新版本发布于 2026-03-18nano-banana-2-skill@clawhub_xixihhhh/nano-banana-2-skill
图片生成图片编辑#Image Editing#Image Generation

据 AlphaMoat 统计,截至 2026-09,Nano Banana 2 Image Generation&Editing 累计下载 2,015 次、获 2 个星标,在全部 5,078 个 AI 技能中排名第 4,419 位,在「设计创意」分类(512 个)中排名第 446 位。

累计安装
146
累计下载
2,015
星标
2
全站排名
#4,419
全站前 88% · 「设计创意」前 88%
平台累计安装累计下载星标评论
ClawHub ↗481,6242-
SkillHub ↗1462,0152—

各平台的计数口径不同,统计时间不一致。

这个技能是做什么的

提示词和选定图片会发送给第三方 API。通过 Atlas Cloud 编辑本地图片时,上传前必须取得用户明确确认,且仅上传用户明确批准的文件。避免使用未经批准的机密、受监管或高度个人化图片;密钥通过环境变量提供,不要写入提示词或文件。 至少需所选服务商的一种密钥;两者均配置时需先选择服务商。

资料发布于 2026-10-29

可以用来做什么

  • 依据文字提示生成视觉素材
  • 基于用户批准的图片进行编辑或转换
  • 准备缩略图、横幅、插画或产品视觉方案

什么时候用

  • 已确认所选服务商及提示词/图片可以发送至该服务时
  • 上传任何本地图片前已取得用户明确确认时
  • API key 已通过环境变量安全提供时

示例提示词

以下是根据技能文档生成的示例,不代表实际运行结果。

为一张公开用途的插画拟定图片生成提示,并标明若使用本地参考图必须先获得用户明确批准;不要调用图像服务或上传文件。

月度数据趋势

累计下载2,015
6641,3902,1152026-03 · 累计下载 7642026-05 · 累计下载 1,1082026-06 · 累计下载 1,2332026-07 · 累计下载 1,4702026-08 · 累计下载 1,6622026-09 · 累计下载 2,01526-0326-09
星标2
1232026-03 · 星标 22026-05 · 星标 22026-06 · 星标 22026-07 · 星标 22026-08 · 星标 22026-09 · 星标 226-0326-09

2026-09 起统计方法调整:同名技能按作者分别统计,并覆盖全部技能。图中虚线为调整前的月份,与之后的数据不直接比较,也不计算跨越调整的增长。

月份累计下载环比星标
2026-092,015—2
2026-081,662+13.1%2
2026-071,470+19.2%2
2026-061,233+11.3%2
2026-051,108—2
2026-03764—2

SKILL.md 原文

以下是作者发布的原始文件,按纯文本显示,本站未做修改或审核;其中的链接不可点击,命令请核实后再运行。抓取于 2026-10-23。

12 KB · ClawHub v1.0.9
---
name: nano-banana-2
description: "Generate and edit images using Google's Nano Banana 2 (Imagen) model — the latest high-quality image generation AI. Supports text-to-image generation and image editing with up to 14 reference images. Two provider modes: Atlas Cloud and Google AI Studio. Use this skill whenever the user wants to generate images, create AI art, edit photos with AI, do image-to-image transformation, create illustrations, make visual content, or mentions Nano Banana, Imagen, Gemini image, or Google image generation. Also trigger when users ask to create sprites, thumbnails, banners, logos, product photos, concept art, or any visual asset using AI."
source: "https://github.com/AtlasCloudAI/nano-banana-2-skill"
homepage: "https://github.com/AtlasCloudAI/nano-banana-2-skill"
metadata:
  openclaw:
    requires:
      env:
        - ATLASCLOUD_API_KEY
展开全部(共 343 行)
        - GEMINI_API_KEY
    primaryEnv: ATLASCLOUD_API_KEY
---

# Nano Banana 2 Image Generation

Generate and edit images using Google's Nano Banana 2 (Imagen) model via two provider options.

> **Privacy & data note**: This skill sends text prompts and image data to third-party APIs (Atlas Cloud at `api.atlascloud.ai` or Google AI Studio at `generativelanguage.googleapis.com`) for image generation. For image editing via Atlas Cloud, local files are uploaded to Atlas Cloud's temporary storage to obtain a URL — the agent MUST ask the user for explicit confirmation before uploading any local file. Uploaded files are temporary and may be cleaned up periodically. No data is stored locally beyond the downloaded output files.

## Required Environment Variables

| Variable | Required | Description |
|----------|:--------:|-------------|
| `ATLASCLOUD_API_KEY` | If using Atlas Cloud | Atlas Cloud API key for image generation |
| `GEMINI_API_KEY` | If using Google AI Studio | Google AI Studio API key |

At least one of the above must be set. If both are set, ask the user which provider to use.

## Provider Selection

1. If `ATLASCLOUD_API_KEY` is set → use Atlas Cloud
2. If `GEMINI_API_KEY` is set → use Google AI Studio
3. If both are set → ask the user which provider to use
4. If neither is set → ask the user to configure one:
   - **Atlas Cloud**: Sign up at https://www.atlascloud.ai, Console → API Keys → Create key, then `export ATLASCLOUD_API_KEY="your-key"`
   - **Google AI Studio**: Get key from https://aistudio.google.com/apikey, then `export GEMINI_API_KEY="your-key"`

**Atlas Cloud**
- Async API with polling workflow
- Flat-rate pricing regardless of resolution
- Supports 300+ models through one API key

**Google AI Studio**
- Direct access via Google's Gemini API
- Synchronous response with base64 image output

## Pricing Comparison

| Resolution | Google AI Studio | Atlas Cloud | Savings |
|:----------:|:----------------:|:-----------:|:-------:|
| **1K** (default) | $0.080/image | **$0.072/image** | 10% off |
| **2K** | $0.080/image | **$0.072/image** | 10% off |
| **4K** | $0.080/image | **$0.072/image** | 10% off |

Atlas Cloud is 10% cheaper than Google AI Studio across all resolutions, with flat-rate pricing regardless of resolution.

## Available Models

### Text-to-Image Models
| Model ID (Atlas Cloud) | Price | Description |
|------------------------|-------|-------------|
| `google/nano-banana-2/text-to-image` | $0.072/image | Stable, production-ready |

### Image Editing Models
| Model ID (Atlas Cloud) | Price | Description |
|------------------------|-------|-------------|
| `google/nano-banana-2/edit` | $0.072/image | Stable image editing |

Google AI Studio model: `gemini-3.1-flash-image-preview` (handles both generation and editing)

---

## Mode 1: Atlas Cloud API

### Setup
The user needs an Atlas Cloud API key. Guide them to:
1. Sign up at https://www.atlascloud.ai
2. Go to Console → API Keys → Create new key
3. Set environment variable: `export ATLASCLOUD_API_KEY="your-key"`

### Script Usage

This skill includes a Python script for image generation. Zero external dependencies required.

#### List available image models

```bash
python scripts/generate_image.py list-models
```

#### Generate an image

```bash
python scripts/generate_image.py generate \
  --model "MODEL_ID" \
  --prompt "Your prompt here" \
  --output ./output
```

#### Upload a local image (for editing)

```bash
python scripts/generate_image.py upload ./local-image.jpg
```

#### Edit an image

```bash
python scripts/generate_image.py generate \
  --model "MODEL_ID" \
  --prompt "Edit instruction" \
  --image "https://...uploaded-url..."
```

Run `python scripts/generate_image.py generate --help` for all options. Extra model params can be passed as key=value (e.g. `aspect_ratio=16:9 resolution=2k`).

---

### Text-to-Image Generation

**Parameters:**

| Parameter | Type | Required | Default | Options |
|-----------|------|----------|---------|---------|
| `prompt` | string | Yes | - | Text description of the image |
| `aspect_ratio` | string | No | 1:1 | 1:1, 3:2, 2:3, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 |
| `resolution` | string | No | 1k | 1k, 2k, 4k |
| `output_format` | string | No | png | png, jpeg |
| `seed` | integer | No | random | For reproducible results |

**Workflow — submit, poll, download:**

```bash
# Step 1: Submit generation request
curl -s -X POST "https://api.atlascloud.ai/api/v1/model/generateImage" \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "google/nano-banana-2/text-to-image",
    "prompt": "A serene Japanese garden with cherry blossoms",
    "aspect_ratio": "16:9",
    "resolution": "2k"
  }'
# Response: { "code": 0, "data": { "id": "prediction-id" } }

# Step 2: Poll for result (repeat until status is "completed" or "succeeded")
curl -s "https://api.atlascloud.ai/api/v1/model/prediction/{prediction-id}" \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY"
# Response when done: { "code": 0, "data": { "status": "completed", "outputs": ["https://...image-url..."] } }

# Step 3: Download the image
curl -o output.png "IMAGE_URL_FROM_OUTPUTS"
```

When implementing this workflow programmatically:
- Poll every 2-3 seconds
- Check for status: "completed" or "succeeded" means done
- Check for status: "failed" means error — read the `error` field
- Image URLs are in `data.outputs[]` array

### Uploading Local Images

To use local images for editing, first upload them to get a URL. The agent MUST confirm with the user before uploading any local file (e.g., "I'll upload `/path/to/image.jpg` to Atlas Cloud for editing. Proceed?").

```bash
curl -s -X POST "https://api.atlascloud.ai/api/v1/model/uploadMedia" \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
  -F "file=@/path/to/local/image.jpg"
# Returns: { "code": 200, "data": { "download_url": "https://...url...", "filename": "image.jpg", "size": 123456 } }
```

Use the returned `download_url` as the image URL in the `images` array for editing requests.

> **Note**: Uploaded files are for temporary use with Atlas Cloud generation tasks only. URLs may expire after a period of time.

### Image Editing

Same workflow as text-to-image, but with additional `images` parameter:

| Parameter | Type | Required | Default | Options |
|-----------|------|----------|---------|---------|
| `prompt` | string | Yes | - | Editing instruction |
| `images` | array of strings | Yes | - | 1-14 image URLs to edit |
| `aspect_ratio` | string | No | - | Same options as above |
| `resolution` | string | No | 1k | 1k, 2k, 4k |

```bash
curl -s -X POST "https://api.atlascloud.ai/api/v1/model/generateImage" \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "google/nano-banana-2/edit",
    "prompt": "Change the sky to a dramatic sunset",
    "images": ["https://example.com/photo.jpg"],
    "resolution": "2k"
  }'
```

### Using Atlas Cloud MCP Tools (if available)

If the user has the Atlas Cloud MCP server configured, use the built-in tools directly:

```
# Quick generate
atlas_quick_generate(model_keyword="nano banana 2", type="Image", prompt="...")

# Or with specific model
atlas_generate_image(model="google/nano-banana-2/text-to-image", params={...})

# Check result
atlas_get_prediction(prediction_id="...")
```

---

## Mode 2: Google AI Studio (Official)

### Setup
1. Get API key from https://aistudio.google.com/apikey
2. Set environment variable: `export GEMINI_API_KEY="your-key"`

### Text-to-Image Generation

```bash
curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [{"text": "A serene Japanese garden with cherry blossoms"}]
    }],
    "generationConfig": {
      "responseModalities": ["TEXT", "IMAGE"],
      "imageConfig": {
        "aspectRatio": "16:9",
        "imageSize": "2K"
      }
    }
  }'
```

**Parameters for Google AI Studio:**

| Parameter | Location | Options |
|-----------|----------|---------|
| `aspectRatio` | `generationConfig.imageConfig` | 1:1, 1:4, 1:8, 2:3, 3:2, 3:4, 4:1, 4:3, 4:5, 5:4, 8:1, 9:16, 16:9, 21:9 |
| `imageSize` | `generationConfig.imageConfig` | 512px, 1K, 2K, 4K (uppercase K required) |
| `responseModalities` | `generationConfig` | ["TEXT", "IMAGE"] for image output |

**Response handling:**
The response contains base64-encoded image data in `candidates[0].content.parts[]`. Loop through parts — text parts have `.text`, image parts have `.inline_data.mime_type` and `.inline_data.data` (base64).

### Image Editing (Google AI Studio)

Include the source image as base64 inline_data alongside the text prompt:

```bash
curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [
        {"text": "Change the sky to a dramatic sunset"},
        {"inline_data": {
          "mime_type": "image/png",
          "data": "BASE64_ENCODED_IMAGE"
        }}
      ]
    }],
    "generationConfig": {
      "responseModalities": ["TEXT", "IMAGE"]
    }
  }'
```

### Python Example (Google AI Studio)

```python
from google import genai
from google.genai import types
import base64

client = genai.Client()

# Text-to-Image
response = client.models.generate_content(
    model="gemini-3.1-flash-image-preview",
    contents="A serene Japanese garden with cherry blossoms",
    config=types.GenerateContentConfig(
        response_modalities=['TEXT', 'IMAGE'],
        image_config=types.ImageConfig(
            aspect_ratio="16:9",
            image_size="2K"
        ),
    )
)

for part in response.parts:
    if part.text:
        print(part.text)
    elif image := part.as_image():
        image.save("output.png")
```

---

## Implementation Guide

When the user asks to generate an image, follow this workflow:

1. **Determine provider**: Check which API key is available (see Provider Selection above).

2. **Extract parameters from user request**:
   - Prompt: the image description
   - Aspect ratio: infer from context (banner→16:9, portrait→9:16, square→1:1, phone wallpaper→9:16, desktop wallpaper→16:9)
   - Resolution: default 1k unless user wants high quality (then 2k or 4k)
   - For editing: identify source image(s)

3. **Choose model** (Atlas Cloud only):
   - Use `google/nano-banana-2/text-to-image` for generation
   - Use `google/nano-banana-2/edit` for editing tasks

4. **Execute the API call** using bash with curl

5. **For Atlas Cloud**: Poll the prediction endpoint every 3 seconds until complete, then download the image

6. **For Google AI Studio**: Parse the response, extract base64 image data, save to file

7. **Present the result**: Show the saved file path and offer to open it

## Prompt Engineering Tips

Share these with users to get better results:
- Be specific about style: "oil painting", "photorealistic", "anime style", "watercolor"
- Describe lighting: "golden hour", "studio lighting", "neon glow"
- Mention composition: "close-up", "wide angle", "bird's eye view"
- Include mood: "serene", "dramatic", "whimsical"
- For text in images: Nano Banana 2 handles text rendering well — just include the text in quotes in your prompt

「设计创意」分类下的热门技能

数据月份:2026-09 · 下载/星标/安装数聚合自公开技能注册库(ClawHub、SkillHub),按月更新。口径说明见数据方法。