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

nano-banana-pro-openrouter

GitHub

为Nano Banana Pro提供确定性的OpenRouter图像生成适配,用于meta-skill执行。支持JSON结构化槽位和纯文本模式,安全处理密钥并输出IMAGE_READY记录,避免非零退出错误。

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

Trigger Scenarios

需要本地图像文件且不想启动LLM代理时 通过stdin传入媒体槽位或提示词生成图像时

Install

npx skills add opensquilla/opensquilla --skill nano-banana-pro-openrouter -g -y
More Options

Non-standard path

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

Use without installing

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.",
    "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.

Version History

  • 7f72a32 Current 2026-07-05 18:39

Same Skill Collection

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
src/opensquilla/skills/bundled/voiceover-studio/SKILL.md
src/opensquilla/skills/bundled/weather/SKILL.md
src/opensquilla/skills/bundled/web-search/SKILL.md
src/opensquilla/skills/bundled/xlsx/SKILL.md
src/opensquilla/skills/exp/meta-arxiv-daily-digest-deck/SKILL.md
src/opensquilla/skills/exp/meta-codereview-current-diff/SKILL.md
src/opensquilla/skills/exp/meta-compliance-audit-bundle/SKILL.md
src/opensquilla/skills/exp/meta-diagram-triangulation/SKILL.md
src/opensquilla/skills/exp/meta-github-pr-watch-digest/SKILL.md
src/opensquilla/skills/exp/meta-issue-to-pr-autopilot/SKILL.md
src/opensquilla/skills/exp/meta-knowledge-base-bootstrap/SKILL.md
src/opensquilla/skills/exp/meta-migration-assistant/SKILL.md
src/opensquilla/skills/exp/meta-multi-format-export-pack/SKILL.md
src/opensquilla/skills/exp/meta-pdf-intelligence/SKILL.md
src/opensquilla/skills/exp/meta-pdf-reformat-pipeline/SKILL.md
src/opensquilla/skills/exp/meta-pre-commit-quality-gate/SKILL.md
src/opensquilla/skills/exp/meta-scheduled-morning-digest/SKILL.md
src/opensquilla/skills/exp/meta-security-review-bundle/SKILL.md
src/opensquilla/skills/exp/meta-spreadsheet-insight/SKILL.md
src/opensquilla/skills/exp/meta-stack-trace-investigator/SKILL.md
src/opensquilla/skills/exp/meta-travel-planner/SKILL.md
src/opensquilla/skills/exp/meta-web-to-pdf-briefing/SKILL.md
tests/_fixtures/meta-paper-write-handwritten.SKILL.md
src/opensquilla/skills/bundled/code-task/SKILL.md
src/opensquilla/skills/bundled/deep-research/SKILL.md
src/opensquilla/skills/bundled/meta-kid-project-planner/SKILL.md
src/opensquilla/skills/bundled/meta-paper-write/SKILL.md
src/opensquilla/skills/bundled/meta-short-drama/SKILL.md
src/opensquilla/skills/bundled/meta-skill-creator/SKILL.md
src/opensquilla/skills/bundled/multi-search-engine/SKILL.md
src/opensquilla/skills/bundled/pdf-toolkit/SKILL.md
src/opensquilla/skills/bundled/skill-creator/SKILL.md
src/opensquilla/skills/bundled/sub-agent/SKILL.md
src/opensquilla/skills/bundled/summarize/SKILL.md
src/opensquilla/skills/bundled/tmux/SKILL.md
src/opensquilla/skills/exp/meta-long-running-build-watchdog/SKILL.md
src/opensquilla/skills/bundled/paper-plot-stub/SKILL.md
src/opensquilla/skills/exp/meta-content-publish-pipeline/SKILL.md
src/opensquilla/skills/exp/meta-home-it-rescue/SKILL.md
src/opensquilla/skills/exp/meta-meeting-to-workflow/SKILL.md
src/opensquilla/skills/exp/meta-research-to-slide-deck/SKILL.md
src/opensquilla/skills/exp/meta-sales-lead-researcher/SKILL.md

Metadata

Files
0
Version
7f72a32
Hash
e8b28c3f
Indexed
2026-07-05 18:39

Главная - Вики-сайт
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-10 23:02
浙ICP备14020137号-1 $Гость$