| name | nano-banana-pro |
| description | Generate or edit a single image via OpenRouter (google/gemini-3.1-flash-image-preview by default). Accepts a text prompt and optional --input-image for image-to-image editing. Trigger when the user asks for an AI image, illustration, concept art, product render, or wants to modify an existing image. |
| description_zh | 通过OpenRouter(默认 google/gemini-3.1-flash-image-preview)生成或编辑单张图片。接受文本提示词及可选的 --input-image 进行图生图编辑。当用户需要AI图像、插画、概念图、产品渲染或修改现有图片时触发。 |
| provenance | {"origin":"clawhub-mit0","license":"MIT-0","upstream_url":"https://clawhub.ai/steipete/nano-banana-pro","upstream_version":"1.0.1","maintained_by":"OpenStarry Code","modifications":"Rewired from Google Gemini SDK to OpenRouter /v1/chat/completions; pure-stdlib HTTP client."} |
| metadata | {"openstarry-code":{"risk":"medium","capabilities":["network-read","filesystem-write"],"requires":{"anyBins":"[Truncated]","envAny":"[Truncated]"}}} |
| entrypoint | {"command":"python {baseDir}/scripts/generate_image.py","args":["--prompt","{{ with.prompt }}","--filename","{{ with.filename }}","--aspect-ratio","{{ with.aspect_ratio | default('1:1') }}","--image-size","{{ with.image_size | default('1K') }}","--model","{{ with.model | default('google/gemini-3.1-flash-image-preview') }}","--max-retries","{{ with.max_retries | default(0) }}","--fallback-model","{{ with.fallback_model | default('') }}","--placeholder-on-fail","{{ with.placeholder_on_fail | default('no') }}"],"parse":"text","timeout":600} |
nano-banana-pro — single-image generator via OpenRouter
Generates one PNG from a text prompt (optionally seeded with an input
image for editing). Used by meta-short-drama for per-shot first-frame
generation, but standalone for any single-image request.
Inputs (with:)
| key | required | default | notes |
|---|
prompt | yes | — | Plain English prompt. Append --ar 9:16 etc. as text. |
filename | yes | — | Output path. Relative resolves against process cwd. |
aspect_ratio | no | 1:1 | One of 1:1, 3:2, 2:3, 4:3, 3:4, 16:9, 9:16. |
image_size | no | 1K | 1K, 2K, 4K. Higher = slower + costlier. |
model | no | google/gemini-3.1-flash-image-preview | Any OpenRouter image-capable model. |
max_retries | no | 0 | Compatibility budget used only for a failure proven to occur before a paid submit. Provider responses and ambiguous transport failures always stop. |
fallback_model | no | "" | Compatibility fallback used only after a proven safe pre-submit failure. It is never selected in response to a provider result or ambiguous paid POST. |
placeholder_on_fail | no | no | yes / no. When every model refuses, write a 720x1280 solid-colour PNG with a "Scene placeholder" label so a downstream merge step still has a file in this slot. |
To pass an input image for edit mode, invoke the script directly with
--input-image PATH. The meta-skill engine does not route input images
through by convention; for edit workflows call the script.