Generate or edit images via Nano Banana image models. Triggers on "generate image", "image generation", "nano banana", "edit image", "nano banana pro", "nano banana 2"
73
92%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Image generation script supporting three models. Requires sharp for input image compression (auto-installed on first run).
| Flag | Notes |
|---|---|
--model nano-banana | Default. Fast, good quality. |
--model nano-banana-pro | Highest quality, slower. |
--model nano-banana-2 | Legacy model. |
node {baseDir}/scripts/generate-image.js --prompt "a cat sitting on mars" --filename "cat-on-mars.png"node {baseDir}/scripts/generate-image.js \
--prompt "make the sky purple" \
--filename "edited.png" \
-i "/path/to/input.png" \
--model nano-banana-pronode {baseDir}/scripts/generate-image.js \
--prompt "combine these into a collage" \
--filename "collage.png" \
-i img1.png -i img2.png -i img3.png| Flag | Short | Default | Description |
|---|---|---|---|
--prompt | -p | required | Image description or editing instruction |
--filename | -f | required | Output filename |
--input-image | -i | — | Input image(s), repeatable, max 14 |
--model | — | nano-banana | nano-banana, nano-banana-pro, or nano-banana-2 |
--resolution | -r | 1K | 1K, 2K, or 4K |
--aspect-ratio | — | — | e.g. 1:1, 16:9, 4:3, 3:4, 9:16 |
The API key is pre-configured on this machine. No flags or environment variables needed.
All input images are sent as inline base64. Images over 500 KB are automatically compressed to JPEG and resized to fit under the limit. This keeps requests fast and avoids File API auth issues with the enterprise endpoint.
Relative filenames are saved to $OPENCLAW_STATE_DIR/media/outbound/{slugid}/nano-banana/{filename}. Absolute paths are used as-is. Absolute paths are used as-is. Use timestamps in filenames to avoid overwrites: cat-on-mars-20260304-165000.png.
The script prints a MEDIA: <absolute-path> line on stdout. You MUST include this exact MEDIA: line in your reply text so the image is delivered as an attachment in Discord/Slack/chat.
Example reply:
Here's your image!
MEDIA: /Users/alche/.openclaw/media/outbound/my-bot/nano-banana/cat-on-mars.pngRules:
MEDIA: line from the script output into your reply verbatim — this is how images get sentMEDIA: line must be on its own line in your responsedadfb1c
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.