← 返回 Skills 市场
tclxhai-lv

nano-banana-v2-openrouter

作者 tclxhai-lv · GitHub ↗ · v0.0.1 · MIT-0
cross-platform ✓ 安全检测通过
104
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install nano-banana-v2-openrouter
功能描述
Generate/edit images with Gemini 3.1 Flash Image Preview via OpenRouter. Use for image create/modify requests incl. edits. Supports text-to-image + image-to-...
使用说明 (SKILL.md)

Nano Banana Pro 2 Image Generation & Editing (OpenRouter)

Generate new images or edit existing ones using Gemini 3.1 Flash Image Preview via OpenRouter.

Usage

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

Generate new image:

uv run {baseDir}/scripts/generate_image.py --prompt "your image description" --filename "output-name.png" [--resolution 0.5K|1K|2K|4K] [--api-key KEY]

Edit existing image:

uv run {baseDir}/scripts/generate_image.py --prompt "editing instructions" --filename "output-name.png" --input-image "path/to/input.png" [--resolution 0.5K|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.

Default Workflow (draft → iterate → final)

Goal: fast iteration without burning time on 4K until the prompt is correct.

  • Draft (1K): quick feedback loop
    • uv run {baseDir}/scripts/generate_image.py --prompt "\x3Cdraft prompt>" --filename "yyyy-mm-dd-hh-mm-ss-draft.png" --resolution 1K
  • Iterate: adjust prompt in small diffs; keep filename new per run
    • If editing: keep the same --input-image for every iteration until you're happy.
  • Final (4K): only when prompt is locked
    • uv run {baseDir}/scripts/generate_image.py --prompt "\x3Cfinal prompt>" --filename "yyyy-mm-dd-hh-mm-ss-final.png" --resolution 4K

Resolution Options

Supported resolutions (uppercase K required):

  • 0.5K - ~512px resolution (fast drafts, OpenRouter/Gemini 3.1 Flash exclusive)
  • 1K (default) - ~1024px resolution
  • 2K - ~2048px resolution
  • 4K - ~4096px resolution

Map user requests to API parameters:

  • No mention of resolution → 1K
  • "quick draft", "thumbnail", "0.5K" → 0.5K
  • "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. OPENROUTER_API_KEY environment variable

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

Preflight + Common Failures (fast fixes)

  • Preflight:

    • command -v uv (must exist)
    • test -n "$OPENROUTER_API_KEY" (or pass --api-key)
    • If editing: test -f "path/to/input.png"
  • Common failures:

    • Error: No API key provided. → set OPENROUTER_API_KEY or pass --api-key
    • Error loading input image: → wrong path / unreadable file; verify --input-image points to a real image
    • "quota/permission/403" style API errors → wrong key, no access, or quota exceeded; try a different key/account
    • Error: API request timed out → simplify the prompt or reduce resolution

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" → 2026-03-19-14-23-05-japanese-garden.png
  • Prompt "sunset over mountains" → 2026-03-19-15-30-12-sunset-mountains.png
  • Prompt "create an image of a robot" → 2026-03-19-16-45-33-robot.png
  • Unclear context → 2026-03-19-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.

Prompt Templates (high hit-rate)

Use templates when the user is vague or when edits must be precise.

  • Generation template:

    • "Create an image of: \x3Csubject>. Style: \x3Cstyle>. Composition: \x3Ccamera/shot>. Lighting: \x3Clighting>. Background: \x3Cbackground>. Color palette: \x3Cpalette>. Avoid: \x3Clist>."
  • Editing template (preserve everything else):

    • "Change ONLY: \x3Csingle change>. Keep identical: subject, composition/crop, pose, lighting, color palette, background, text, and overall style. Do not add new objects. If text exists, keep it unchanged."

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:

uv run {baseDir}/scripts/generate_image.py --prompt "A serene Japanese garden with cherry blossoms" --filename "2026-03-19-14-23-05-japanese-garden.png" --resolution 4K

Edit existing image:

uv run {baseDir}/scripts/generate_image.py --prompt "make the sky more dramatic with storm clouds" --filename "2026-03-19-14-25-30-dramatic-sky.png" --input-image "original-photo.jpg" --resolution 2K

Quick draft:

uv run {baseDir}/scripts/generate_image.py --prompt "A futuristic cityscape at night" --filename "2026-03-19-16-00-00-draft-city.png" --resolution 0.5K
安全使用建议
This skill appears to do exactly what it says: send prompts (and optional input images) to OpenRouter's Gemini image model and save the returned PNG locally. Before installing/running: 1) Ensure you trust OpenRouter and understand that images and prompts will be sent to their API (usage may incur cost or be subject to account permissions). 2) Keep your OPENROUTER_API_KEY secret (prefer setting it in the environment rather than pasting it into chat). 3) Make sure you have the 'uv' runner and Python with requests+pillow available. 4) Be aware of two small mismatches: the SKILL.md suggests auto-generating filenames from prompt/context but the script requires an explicit --filename, and the resolution strings ('0.5K','1K','2K','4K') are passed as-is — verify they match the upstream API's expected parameters if you get errors. If you want higher assurance, review OpenRouter request/response behavior (and any account logs) before using sensitive images or private data.
功能分析
Type: OpenClaw Skill Name: nano-banana-v2-openrouter Version: 0.0.1 The skill is a legitimate tool for generating and editing images using the Gemini 3.1 Flash model via the OpenRouter API. The Python script (scripts/generate_image.py) correctly handles API requests, image encoding/decoding, and file I/O without any signs of malicious intent, data exfiltration, or unauthorized execution. The instructions in SKILL.md are well-structured and align perfectly with the script's functionality.
能力评估
Purpose & Capability
Name/description (image generation/editing via OpenRouter) match the requested artifact: a single Python script that posts to openrouter.ai using an OpenRouter API key. The required binary 'uv' is consistent with the documented execution method (uv run). No unrelated services, credentials, or binaries are requested.
Instruction Scope
SKILL.md and the script stay within the stated scope: they only read an optional input image, the provided filename, and the OPENROUTER_API_KEY (or --api-key). The instructions explicitly avoid reading images back into the agent. Minor documentation mismatches: SKILL.md discusses generating filenames from prompt/context, but the script requires an explicit --filename; and resolution strings (e.g., '1K') are passed through as-is — this mapping may or may not match OpenRouter's expected parameter format (functional risk, not a data-exfiltration risk).
Install Mechanism
No install spec; skill is instruction + small script. That reduces disk install risk. The script lists Python dependencies in comments (requests, pillow) but doesn't auto-install them; running it requires a Python environment with those packages. No external arbitrary download URLs or installers are used.
Credentials
Only one credential is required: OPENROUTER_API_KEY (primaryEnv). That is proportional and required for the stated purpose. The script accepts an override via --api-key. It does not reference other environment variables or config paths.
Persistence & Privilege
always is false and the skill does not request persistent/privileged system presence or modify other skills. It only writes output images to the current working directory (as documented).
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install nano-banana-v2-openrouter
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /nano-banana-v2-openrouter 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v0.0.1
- Initial release of Nano Banana Pro 2 image generation and editing with Gemini 3.1 Flash via OpenRouter. - Supports text-to-image and image-to-image creation with 0.5K, 1K, 2K, and 4K resolutions. - Script-based workflow for both new image generation and editing existing images with descriptive prompts. - API key can be provided via CLI or OPENROUTER_API_KEY environment variable. - Automatic, timestamped filename generation based on prompt content. - Includes preflight checks, common error handling, and prompt templates for both image creation and editing.
元数据
Slug nano-banana-v2-openrouter
版本 0.0.1
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

nano-banana-v2-openrouter 是什么?

Generate/edit images with Gemini 3.1 Flash Image Preview via OpenRouter. Use for image create/modify requests incl. edits. Supports text-to-image + image-to-... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 104 次。

如何安装 nano-banana-v2-openrouter?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install nano-banana-v2-openrouter」即可一键安装,无需额外配置。

nano-banana-v2-openrouter 是免费的吗?

是的,nano-banana-v2-openrouter 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

nano-banana-v2-openrouter 支持哪些平台?

nano-banana-v2-openrouter 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 nano-banana-v2-openrouter?

由 tclxhai-lv(@tclxhai-lv)开发并维护,当前版本 v0.0.1。

💬 留言讨论