Agent Skillsopensquilla/opensquilla › nano-banana-pro-openrouter

nano-banana-pro-openrouter

GitHub

提供确定性的 OpenRouter 图像生成适配功能,专为元技能执行设计。支持结构化槽位和纯文本模式,安全注入密钥并输出 IMAGE_READY 记录,避免非零退出错误。

src/opensquilla/skills/bundled/nano-banana-pro-openrouter/SKILL.md opensquilla/opensquilla

触发场景

需要本地生成图像文件 需要获取结构化的 IMAGE_READY 记录

安装

npx skills add opensquilla/opensquilla --skill nano-banana-pro-openrouter -g -y
更多选项

非标准路径

npx skills add https://github.com/opensquilla/opensquilla/tree/main/src/opensquilla/skills/bundled/nano-banana-pro-openrouter -g -y

不安装直接使用

npx skills use opensquilla/opensquilla@nano-banana-pro-openrouter

指定 Agent (Claude Code)

npx skills add opensquilla/opensquilla --skill nano-banana-pro-openrouter -a claude-code -g -y

安装 repo 全部 skill

npx skills add opensquilla/opensquilla --all -g -y

预览 repo 内 skill

npx skills add opensquilla/opensquilla --list

SKILL.md

Frontmatter
{
    "name": "nano-banana-pro-openrouter",
    "homepage": "https:\/\/clawhub.ai\/skills\/nano-banana-pro-openrouter",
    "metadata": {
        "opensquilla": {
            "risk": "high",
            "requires": {
                "env": [],
                "bins": [
                    "python3"
                ],
                "config": [
                    "awesome_webpage.openrouter.api_key_env",
                    "awesome_webpage.openrouter.base_url",
                    "awesome_webpage.openrouter.models.image_generation",
                    "awesome_webpage.output_dir"
                ]
            },
            "capabilities": [
                "network-write",
                "filesystem-write"
            ]
        }
    },
    "entrypoint": {
        "env": {
            "{{ with.api_key_env | default('OPENROUTER_API_KEY') }}": "{{ with.api_key | default('') }}"
        },
        "args": [
            "--model",
            "{{ with.model | default('google\/gemini-3-pro-image-preview') }}",
            "--base-url",
            "{{ with.base_url | default('https:\/\/openrouter.ai\/api\/v1') }}",
            "--api-key-env",
            "{{ with.api_key_env | default('OPENROUTER_API_KEY') }}",
            "--output-dir",
            "{{ with.output_dir }}",
            "--filename",
            "{{ with.filename | default('image.png') }}",
            "--resolution",
            "{{ with.resolution | default('1K') }}",
            "--max-images",
            "{{ with.max_images | default('6') }}",
            "--local-path-prefix",
            "{{ with.local_path_prefix | default('project\/assets\/images') }}"
        ],
        "parse": "text",
        "stdin": "{{ with.payload | default(with.prompt | default(inputs.user_message)) }}",
        "command": "python {baseDir}\/scripts\/openrouter_image.py",
        "timeout": 300
    },
    "provenance": {
        "origin": "clawhub-mit0",
        "license": "MIT-0",
        "upstream_url": "https:\/\/clawhub.ai\/skills\/nano-banana-pro-openrouter",
        "maintained_by": "OpenSquilla"
    },
    "description": "Deterministic OpenRouter image generation adapter for Nano Banana Pro \/ Gemini image models. Use as skill_exec when a meta-skill needs local image files and structured IMAGE_READY records without spawning an LLM agent.",
    "description_zh": "针对Nano Banana Pro \/ Gemini图像模型的确定性OpenRouter图像生成适配器。当元技能需要本地图片文件和结构化的IMAGE_READY记录且不想启动LLM代理时,作为skill_exec使用。",
    "user-invocable": false,
    "disable-model-invocation": true
}

Nano Banana Pro OpenRouter Adapter

This skill is a deterministic adapter around OpenRouter image generation. It is intended for meta-skill skill_exec use, not as an open-ended agent surface.

Contract

  • Uses an explicit with.api_key value by injecting it into the configured with.api_key_env child process environment variable; it never renders the key into argv.
  • Does not read .env files, prompt for credentials, print credentials, or write credentials to disk.
  • Uses only the model, base URL, output directory, and local path prefix passed by the caller.
  • Saves generated image bytes under the supplied output directory.
  • Emits one IMAGE_READY: JSON line per saved image.
  • On missing config or provider failure, emits IMAGE_CONFIG_NEEDED or IMAGE_GENERATION_FAILED instead of raising non-zero process errors.

Meta-Skill Payload Mode

When stdin is JSON containing media_slots, image_slots, slots, or page_outline, the adapter generates image slots and preserves already downloaded images. Structured slots are preferred over free-form outline text:

{
  "requirement_framing": "...",
  "media_slots": {"slots": [{"slot_id": "hero-visual", "modality": "image"}]},
  "page_outline": "...",
  "image_download": "...",
  "include_images": "YES",
  "visual_style": "..."
}

Existing IMAGE_READY: records in image_download are preserved. If IMAGE_DOWNLOAD_INCOMPLETE: lists unfilled_slot_ids, only those slots are generated. If the caller requested images but both structured slots and outline slot parsing are empty, the adapter synthesizes minimal webpage-safe image slots from the brief instead of emitting no_image_slots_to_generate.

Plain Prompt Mode

When stdin is plain text, the adapter generates one image using that text as the prompt and the --filename stem as the slot_id.

版本历史

  • f662be3 当前 2026-07-31 11:48
  • 7f72a32 2026-07-05 18:39

同 Skill 集合

src/opensquilla/skills/bundled/advanced-dubbing-studio/SKILL.md
src/opensquilla/skills/bundled/ai-video-script/SKILL.md
src/opensquilla/skills/bundled/audio-cog/SKILL.md
src/opensquilla/skills/bundled/awesome-webpage-image-download/SKILL.md
src/opensquilla/skills/bundled/awesome-webpage-research/SKILL.md
src/opensquilla/skills/bundled/AwesomeWebpageMetaSkill/SKILL.md
src/opensquilla/skills/bundled/cron/SKILL.md
src/opensquilla/skills/bundled/docx/SKILL.md
src/opensquilla/skills/bundled/filesystem/SKILL.md
src/opensquilla/skills/bundled/git-diff/SKILL.md
src/opensquilla/skills/bundled/github/SKILL.md
src/opensquilla/skills/bundled/history-explorer/SKILL.md
src/opensquilla/skills/bundled/html-coder/SKILL.md
src/opensquilla/skills/bundled/html-to-pdf/SKILL.md
src/opensquilla/skills/bundled/http-fetch/SKILL.md
src/opensquilla/skills/bundled/latex-compile/SKILL.md
src/opensquilla/skills/bundled/memory/SKILL.md
src/opensquilla/skills/bundled/music-and-singing-studio/SKILL.md
src/opensquilla/skills/bundled/nano-banana-pro/SKILL.md
src/opensquilla/skills/bundled/nano-pdf/SKILL.md
src/opensquilla/skills/bundled/openrouter-video-generator/SKILL.md
src/opensquilla/skills/bundled/paper-abstract-author/SKILL.md
src/opensquilla/skills/bundled/paper-citation-planner/SKILL.md
src/opensquilla/skills/bundled/paper-experiment-stub/SKILL.md
src/opensquilla/skills/bundled/paper-outline-author/SKILL.md
src/opensquilla/skills/bundled/paper-preference-planner/SKILL.md
src/opensquilla/skills/bundled/paper-refbib-stub/SKILL.md
src/opensquilla/skills/bundled/paper-revision-author/SKILL.md
src/opensquilla/skills/bundled/paper-section-author/SKILL.md
src/opensquilla/skills/bundled/paper-source-curator/SKILL.md
src/opensquilla/skills/bundled/pptx/SKILL.md
src/opensquilla/skills/bundled/seedance-2-prompt/SKILL.md
src/opensquilla/skills/bundled/skill-creator-linter/SKILL.md
src/opensquilla/skills/bundled/skill-creator-proposals/SKILL.md
src/opensquilla/skills/bundled/skill-creator-smoke-test/SKILL.md
src/opensquilla/skills/bundled/srt-from-script/SKILL.md
src/opensquilla/skills/bundled/stack-trace-generic-probe/SKILL.md
src/opensquilla/skills/bundled/stack-trace-go-probe/SKILL.md
src/opensquilla/skills/bundled/stack-trace-js-probe/SKILL.md
src/opensquilla/skills/bundled/stack-trace-python-probe/SKILL.md
src/opensquilla/skills/bundled/stack-trace-rust-probe/SKILL.md
src/opensquilla/skills/bundled/subtitle-burner/SKILL.md
src/opensquilla/skills/bundled/swe-bench/SKILL.md
src/opensquilla/skills/bundled/text-file-read/SKILL.md
src/opensquilla/skills/bundled/title-card-image/SKILL.md
src/opensquilla/skills/bundled/video-merger/SKILL.md
src/opensquilla/skills/bundled/video-still-animator/SKILL.md
src/opensquilla/skills/bundled/voice-clone-lab/SKILL.md
src/opensquilla/skills/bundled/voice-conversion-studio/SKILL.md

元信息

文件数
0
版本
186b3c1
Hash
7ec6019a
收录时间
2026-07-05 18:39

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-05 02:17
浙ICP备14020137号-1 $访客地图$