{"id":"b0701e47-42cb-4cd8-b0fc-5fe3eb87417d","shortId":"4CSb2Z","kind":"skill","title":"nano-banana-pro-openrouter","tagline":"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.","description":"# Nano Banana Pro OpenRouter\n\n## Overview\n\nGenerate 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.\n\n### Prompt-only generation\n\n```\nuv run {baseDir}/scripts/generate_image.py \\\n  --prompt \"A cinematic sunset over snow-capped mountains\" \\\n  --filename sunset.png\n```\n\n### Edit a single image\n\n```\nuv run {baseDir}/scripts/generate_image.py \\\n  --prompt \"Replace the sky with a dramatic aurora\" \\\n  --input-image input.jpg \\\n  --filename aurora.png\n```\n\n### Compose multiple images\n\n```\nuv run {baseDir}/scripts/generate_image.py \\\n  --prompt \"Combine the subjects into a single studio portrait\" \\\n  --input-image face1.jpg \\\n  --input-image face2.jpg \\\n  --filename composite.png\n```\n\n## Resolution\n\n- Use `--resolution` with `1K`, `2K`, or `4K`.\n- Default is `1K` if not specified.\n\n## System prompt customization\n\nThe skill reads an optional system prompt from `assets/SYSTEM_TEMPLATE`. This allows you to customize the image generation behavior without modifying code.\n\n## Behavior and constraints\n\n- Accept up to 3 input images via repeated `--input-image`.\n- `--filename` accepts relative paths (saves to current directory) or absolute paths.\n- If multiple images are returned, append `-1`, `-2`, etc. to the filename.\n- Print `MEDIA: <path>` for each saved image. Do not read images back into the response.\n\n## Troubleshooting\n\nIf the script exits non-zero, check stderr against these common blockers:\n\n| Symptom | Resolution |\n|---------|------------|\n| `OPENROUTER_API_KEY is not set` | Ask the user to set it. PowerShell: `$env:OPENROUTER_API_KEY = \"sk-or-...\"` / bash: `export OPENROUTER_API_KEY=\"sk-or-...\"` |\n| `uv: command not found` or not recognized | macOS/Linux: <code>curl -LsSf https://astral.sh/uv/install.sh &#124; sh</code>. Windows: <code>powershell -ExecutionPolicy ByPass -c \"irm https://astral.sh/uv/install.ps1 &#124; iex\"</code>. Then restart the terminal. |\n| `AuthenticationError` / HTTP 401 | Key is invalid or has no credits. Verify at <https://openrouter.ai/settings/keys>. |\n\nFor 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.","tags":["nano","banana","pro","openrouter","awesome","copilot","github","agent-skills","agents","custom-agents","github-copilot","hacktoberfest"],"capabilities":["skill","source-github","skill-nano-banana-pro-openrouter","topic-agent-skills","topic-agents","topic-awesome","topic-custom-agents","topic-github-copilot","topic-hacktoberfest","topic-prompt-engineering"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/nano-banana-pro-openrouter","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add github/awesome-copilot","source_repo":"https://github.com/github/awesome-copilot","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 33270 github stars · SKILL.md body (2,291 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:52:18.376Z","embedding":null,"createdAt":"2026-04-18T20:25:31.173Z","updatedAt":"2026-05-18T18:52:18.376Z","lastSeenAt":"2026-05-18T18:52:18.376Z","tsv":"'-1':201 '-2':202 '/scripts/generate_image.py':72,91,112 '/settings/keys':307 '/uv/install.ps1':287 '/uv/install.sh':277 '1k':136,142 '1k/2k/4k':34 '2k':137 '3':15,176 '30':318 '401':295 '429':312 '4k':139 'absolut':193 'accept':173,185 'allow':159 'api':238,252,260 'append':200 'ask':243 'assets/system_template':157 'astral.sh':276,286 'astral.sh/uv/install.ps1':285 'astral.sh/uv/install.sh':275 'aurora':99 'aurora.png':105 'authenticationerror':293 'back':217 'banana':3,37 'basedir':71,90,111 'bash':257 'behavior':166,170 'blocker':234 'bypass':282 'c':283 'cap':80 'check':229 'cinemat':75 'code':169 'combin':114 'command':266 'common':233 'compos':106 'composit':32,64 'composite.png':131 'constraint':172 'credit':302 'curl':273 'current':190 'custom':148,162 'default':140 'directori':191 'dramat':98 'edit':8,27,43,59,84 'env':250 'error':310,325 'etc':203 'executionpolici':281 'exit':225 'export':258 'face1.jpg':125 'face2.jpg':129 'filenam':82,104,130,184,206 'found':268 'gemini':14 'generat':6,25,41,55,68,165 'google/gemini-3-pro-image-preview':49 'http':294,311 'iex':288 'imag':9,17,24,26,31,44,58,63,87,102,108,124,128,164,178,183,197,212,216 'input':101,123,127,177,182 'input-imag':100,122,126,181 'input.jpg':103 'instead':335 'invalid':298 'irm':284 'issu':331 'key':239,253,261,296 'lssf':274 'macos/linux':272 'media':208 'model':18,50 'modifi':168 'mountain':81 'multi':30,62 'multi-imag':29,61 'multipl':107,196 'nano':2,36 'nano-banana-pro-openrout':1 'network':313 'non':227 'non-zero':226 'openrout':5,11,39,46,237,251,259 'openrouter.ai':306 'openrouter.ai/settings/keys':305 'option':153 'output':35 'overview':40 'path':187,194 'portrait':121 'powershel':249,280 'print':207 'pro':4,16,38 'prompt':22,53,66,73,92,113,147,155 'prompt-on':21,52,65 'read':151,215 'recogn':271 'relat':186 'repeat':180 'replac':93 'resolut':132,134,236 'respons':220 'restart':290 'retri':315,322 'return':199 'run':70,89,110 'save':188,211 'script':224 'second':319 'set':242,247 'sh':278 'singl':57,86,119 'single-imag':56 'sk':255,263 'sk-or':254,262 'skill':150 'skill-nano-banana-pro-openrouter' 'sky':95 'snow':79 'snow-cap':78 'source-github' 'specifi':145 'stderr':230 'studio':120 'subject':116 'sunset':76 'sunset.png':83 'support':33,51 'surfac':329 'symptom':235 'system':146,154 'termin':292 'timeout':314 'topic-agent-skills' 'topic-agents' 'topic-awesome' 'topic-custom-agents' 'topic-github-copilot' 'topic-hacktoberfest' 'topic-prompt-engineering' 'transient':309 'troubleshoot':221 'twice':328 'use':19,47,133 'user':245,334 'uv':69,88,109,265 'verifi':303 'via':10,179 'window':279 'without':167 'zero':228","prices":[{"id":"8881a396-e493-4cf2-9241-5d4cd02b222b","listingId":"b0701e47-42cb-4cd8-b0fc-5fe3eb87417d","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T20:25:31.173Z"}],"sources":[{"listingId":"b0701e47-42cb-4cd8-b0fc-5fe3eb87417d","source":"github","sourceId":"github/awesome-copilot/nano-banana-pro-openrouter","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/nano-banana-pro-openrouter","isPrimary":false,"firstSeenAt":"2026-04-18T21:50:19.873Z","lastSeenAt":"2026-05-18T18:52:18.376Z"},{"listingId":"b0701e47-42cb-4cd8-b0fc-5fe3eb87417d","source":"skills_sh","sourceId":"github/awesome-copilot/nano-banana-pro-openrouter","sourceUrl":"https://skills.sh/github/awesome-copilot/nano-banana-pro-openrouter","isPrimary":true,"firstSeenAt":"2026-04-18T20:25:31.173Z","lastSeenAt":"2026-05-07T22:40:17.385Z"}],"details":{"listingId":"b0701e47-42cb-4cd8-b0fc-5fe3eb87417d","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"nano-banana-pro-openrouter","github":{"repo":"github/awesome-copilot","stars":33270,"topics":["agent-skills","agents","ai","awesome","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"license":"mit","html_url":"https://github.com/github/awesome-copilot","pushed_at":"2026-05-18T01:26:59Z","description":"Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.","skill_md_sha":"7eee2b41b7374a8cdf83ebd409c034d5eb660cd3","skill_md_path":"skills/nano-banana-pro-openrouter/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/github/awesome-copilot/tree/main/skills/nano-banana-pro-openrouter"},"layout":"multi","source":"github","category":"awesome-copilot","frontmatter":{"name":"nano-banana-pro-openrouter","description":"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."},"skills_sh_url":"https://skills.sh/github/awesome-copilot/nano-banana-pro-openrouter"},"updatedAt":"2026-05-18T18:52:18.376Z"}}