Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Nano Banana Skill

Nano Banana, Nano Banana Pro, Nano Banana 2 - Google AI image generation models for AI agents. Ultra-high character consistency, 1K-4K resolution, up to 14 r...

MIT-0 · Free to use, modify, and redistribute. No attribution required.
1 · 351 · 0 current installs · 0 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The name/description claim this exposes Monet AI 'Nano Banana' models and the only required secret is MONET_API_KEY — this is proportionate to an API client. One minor inconsistency: marketing text repeatedly mentions 'Google' and 'Gemini' which may be a branding claim; you should verify monet.vision is the intended official provider and that those model attributions are accurate.
Instruction Scope
SKILL.md contains only explicit examples for calling https://monet.vision endpoints (task creation, polling, file upload). It instructs use of MONET_API_KEY and example file paths for uploads; it does not tell the agent to read unrelated files, environment variables, or to send data to unexpected endpoints.
Install Mechanism
There is no install spec and no code files to install — the skill is instruction-only (lowest install risk).
Credentials
Only a single environment variable (MONET_API_KEY) is required, which is appropriate for an API-key-based image-generation service. No additional unrelated secrets, config paths, or credentials are requested.
Persistence & Privilege
always is false and the skill does not request system-level persistence or modify other skills. The skill can be invoked autonomously by the agent (platform default); this is expected for skills and not flagged by itself.
Assessment
This skill is essentially documentation and curl/JS examples for the monet.vision image API and only needs your MONET_API_KEY. Before installing: (1) Verify monet.vision is the legitimate service you expect and that the 'Google/Gemini' branding is accurate for your use-case. (2) Only provide a MONET_API_KEY that you are comfortable giving to this skill (treat it like any API secret); consider creating a scoped/test key if possible. (3) Be aware uploaded reference images may be sent to the service — check Monet's privacy/retention and copyright policies (README states uploaded files are stored 24 hours). (4) Confirm billing/costs for high-resolution outputs and idempotent task behavior. If you need higher assurance, ask the skill author/owner for an official homepage or documentation URL and confirm the relationship to Monet AI.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.0
Download zip
latestvk97dxg734v2m5j777vdfyn42w18230v8

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

EnvMONET_API_KEY

SKILL.md

Nano Banana Skill

Nano Banana is Google's cutting-edge AI image generation model series designed for AI agents. Part of the Monet AI unified API platform.

When to Use

Use this skill when:

  • Character Consistent Image Series: Create images with consistent characters using reference images
    • nano-banana-1: Up to 5 reference images for character consistency
    • nano-banana-1-pro: Up to 14 reference images with 1K-4K resolution
    • nano-banana-2: Latest Gemini model with extreme aspect ratio support
  • High-Resolution Output: Generate professional-grade images with 1K, 2K, or 4K resolution
  • Ultra-Wide Formats: Create panoramic images with extreme aspect ratios (21:9, 8:1)
  • Style Transfer: Use multiple reference images to guide style and character

Getting API Key

  1. Visit https://monet.vision to register an account
  2. After login, go to https://monet.vision/skills/keys to create an API Key
  3. Configure the API Key in environment variables or code

If you don't have an API Key, ask your owner to apply at monet.vision.

Quick Start

Create an Image Generation Task

curl -X POST https://monet.vision/api/v1/tasks/async \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $MONET_API_KEY" \
  -d '{
    "type": "image",
    "input": {
      "model": "nano-banana-1",
      "prompt": "A cute cat in a garden",
      "aspect_ratio": "16:9"
    },
    "idempotency_key": "unique-key-123"
  }'

⚠️ Important: idempotency_key is required. Use a unique value (e.g., UUID) to prevent duplicate task creation if the request is retried.

Response:

{
  "id": "task_abc123",
  "status": "pending",
  "type": "image",
  "created_at": "2026-02-27T10:00:00Z"
}

Get Task Status and Result

Task processing is asynchronous. You need to poll the task status until it becomes success or failed. Recommended polling interval: 5 seconds.

curl https://monet.vision/api/v1/tasks/task_abc123 \
  -H "Authorization: Bearer $MONET_API_KEY"

Response when completed:

{
  "id": "task_abc123",
  "status": "success",
  "type": "image",
  "outputs": [
    {
      "model": "nano-banana-1",
      "status": "success",
      "progress": 100,
      "url": "https://files.monet.vision/..."
    }
  ],
  "created_at": "2026-02-27T10:00:00Z",
  "updated_at": "2026-02-27T10:01:30Z"
}

Example: Poll until completion

const TASK_ID = "task_abc123";
const MONET_API_KEY = process.env.MONET_API_KEY;

async function pollTask() {
  while (true) {
    const response = await fetch(
      `https://monet.vision/api/v1/tasks/${TASK_ID}`,
      {
        headers: {
          Authorization: `Bearer ${MONET_API_KEY}`,
        },
      },
    );

    const data = await response.json();
    const status = data.status;

    if (status === "success") {
      console.log("Task completed successfully!");
      console.log(JSON.stringify(data, null, 2));
      break;
    } else if (status === "failed") {
      console.log("Task failed!");
      console.log(JSON.stringify(data, null, 2));
      break;
    } else {
      console.log(`Task status: ${status}, waiting...`);
      await new Promise((resolve) => setTimeout(resolve, 5000));
    }
  }
}

pollTask();

Supported Models

nano-banana-1

nano-banana-1 - Google Nano Banana

Ultra-high character consistency

  • 🎯 Use Cases: Image series requiring consistent character appearance
  • 📐 Max Reference Images: 5
{
  model: "nano-banana-1",
  prompt: string,                // Required
  images?: string[],             // Optional: Up to 5 reference images
  aspect_ratio?: "1:1" | "2:3" | "3:2" | "4:3" | "3:4" | "16:9" | "9:16"
}

nano-banana-1-pro

nano-banana-1-pro - Nano Banana Pro

Google flagship generation model

  • 🎯 Use Cases: Professional-grade high-quality image generation
  • 📐 Max Reference Images: 14
  • 🖥️ Resolution: 1K, 2K, 4K
{
  model: "nano-banana-1-pro",
  prompt: string,                // Required
  images?: string[],             // Optional: Up to 14 reference images
  aspect_ratio?: "1:1" | "2:3" | "3:2" | "4:3" | "3:4" | "4:5" | "5:4" | "16:9" | "9:16" | "21:9",
  resolution?: "1K" | "2K" | "4K"
}

nano-banana-2

nano-banana-2 - Nano Banana 2

Google Gemini latest model

  • 🎯 Use Cases: Latest technology for high-quality image generation
  • 📐 Max Reference Images: 14
  • 🖥️ Resolution: 1K, 2K, 4K
  • 🌍 Special: Ultra-wide aspect ratios including 8:1
{
  model: "nano-banana-2",
  prompt: string,                // Required
  images?: string[],             // Optional: Up to 14 reference images
  aspect_ratio?: "1:1" | "2:3" | "3:2" | "4:3" | "3:4" | "4:5" | "5:4" | "16:9" | "9:16" | "21:9" | "4:1" | "1:4" | "8:1" | "1:8",
  resolution?: "1K" | "2K" | "4K"
}

API Reference

Create Task (Async)

POST /api/v1/tasks/async - Create an async task. Returns immediately with task ID.

Request:

curl -X POST https://monet.vision/api/v1/tasks/async \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $MONET_API_KEY" \
  -d '{
    "type": "image",
    "input": {
      "model": "nano-banana-1",
      "prompt": "A cute cat"
    },
    "idempotency_key": "unique-key-123"
  }'

⚠️ Important: idempotency_key is required. Use a unique value (e.g., UUID) to prevent duplicate task creation if the request is retried.

Response:

{
  "id": "task_abc123",
  "status": "pending",
  "type": "image",
  "created_at": "2026-02-27T10:00:00Z"
}

Create Task (Streaming)

POST /api/v1/tasks/sync - Create a task with SSE streaming. Waits for completion and streams progress.

Request:

curl -X POST https://monet.vision/api/v1/tasks/sync \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $MONET_API_KEY" \
  -N \
  -d '{
    "type": "image",
    "input": {
      "model": "nano-banana-1",
      "prompt": "A cute cat"
    },
    "idempotency_key": "unique-key-123"
  }'

Get Task

GET /api/v1/tasks/{taskId} - Get task status and result.

Request:

curl https://monet.vision/api/v1/tasks/task_abc123 \
  -H "Authorization: Bearer $MONET_API_KEY"

Response:

{
  "id": "task_abc123",
  "status": "success",
  "type": "image",
  "outputs": [
    {
      "model": "nano-banana-1",
      "status": "success",
      "progress": 100,
      "url": "https://files.monet.vision/..."
    }
  ],
  "created_at": "2026-02-27T10:00:00Z",
  "updated_at": "2026-02-27T10:01:30Z"
}

List Tasks

GET /api/v1/tasks/list - List tasks with pagination.

Request:

curl "https://monet.vision/api/v1/tasks/list?page=1&pageSize=20" \
  -H "Authorization: Bearer $MONET_API_KEY"

Response:

{
  "tasks": [
    {
      "id": "task_abc123",
      "status": "success",
      "type": "image",
      "outputs": [
        {
          "model": "nano-banana-1",
          "status": "success",
          "progress": 100,
          "url": "https://files.monet.vision/..."
        }
      ],
      "created_at": "2026-02-27T10:00:00Z",
      "updated_at": "2026-02-27T10:01:30Z"
    }
  ],
  "page": 1,
  "pageSize": 20,
  "total": 100
}

Upload File

POST /api/v1/files - Upload a file to get an online access URL.

📁 File Storage: Uploaded files are stored for 24 hours and will be automatically deleted after expiration.

Request:

curl -X POST https://monet.vision/api/v1/files \
  -H "Authorization: Bearer $MONET_API_KEY" \
  -F "file=@/path/to/your/image.jpg" \
  -v

Response:

{
  "id": "file_xyz789",
  "url": "...",
  "filename": "image.jpg",
  "size": 1048576,
  "content_type": "image/jpeg",
  "created_at": "2026-02-27T10:00:00Z"
}

Configuration

Environment Variables

export MONET_API_KEY="monet_xxx"

Authentication

All API requests require authentication via the Authorization header:

Authorization: Bearer monet_xxx

Files

2 total
Select a file
Select a file to preview.

Comments

Loading comments…