Skillshub nano-banana-pro-openrouter
Generate or edit images via OpenRouter with the Gemini 3 Pro Image model. Use for prompt-only image generation, image edits, and multi-image compositing; supports 1K/2K/4K output.
install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/github/awesome-copilot/nano-banana-pro-openrouter" ~/.claude/skills/comeonoliver-skillshub-nano-banana-pro-openrouter && rm -rf "$T"
manifest:
skills/github/awesome-copilot/nano-banana-pro-openrouter/SKILL.mdsource content
Nano Banana Pro OpenRouter
Overview
Generate or edit images with OpenRouter using the
google/gemini-3-pro-image-preview model. Support prompt-only generation, single-image edits, and multi-image composition.
Prompt-only generation
uv run {baseDir}/scripts/generate_image.py \ --prompt "A cinematic sunset over snow-capped mountains" \ --filename sunset.png
Edit a single image
uv run {baseDir}/scripts/generate_image.py \ --prompt "Replace the sky with a dramatic aurora" \ --input-image input.jpg \ --filename aurora.png
Compose multiple images
uv run {baseDir}/scripts/generate_image.py \ --prompt "Combine the subjects into a single studio portrait" \ --input-image face1.jpg \ --input-image face2.jpg \ --filename composite.png
Resolution
- Use
with--resolution
,1K
, or2K
.4K - Default is
if not specified.1K
System prompt customization
The skill reads an optional system prompt from
assets/SYSTEM_TEMPLATE. This allows you to customize the image generation behavior without modifying code.
Behavior and constraints
- Accept up to 3 input images via repeated
.--input-image
accepts relative paths (saves to current directory) or absolute paths.--filename- If multiple images are returned, append
,-1
, etc. to the filename.-2 - Print
for each saved image. Do not read images back into the response.MEDIA: <path>
Troubleshooting
If the script exits non-zero, check stderr against these common blockers:
| Symptom | Resolution |
|---|---|
| Ask the user to set it. PowerShell: / bash: |
or not recognized | macOS/Linux: <code>curl -LsSf https://astral.sh/uv/install.sh | sh</code>. Windows: <code>powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"</code>. Then restart the terminal. |
/ HTTP 401 | Key is invalid or has no credits. Verify at https://openrouter.ai/settings/keys. |
For transient errors (HTTP 429, network timeouts), retry once after 30 seconds. Do not retry the same error more than twice — surface the issue to the user instead.