agentleFS
OpenMinisOpenMinis/MinisSkills/nano-banana/SKILL.md

nano-banana

Skill584 starsChanged 59 days agoMITView on GitHub

Generate or edit images using Google Nano Banana (Gemini image generation API). Trigger this skill whenever the user asks to generate an image, draw something, create artwork, edit a photo, or mentions "nano banana", "nanobanana", or any AI image generation/editing need — even if they don't explicitly mention Nano Banana. Proactively use this skill for any image creation or transformation request.

  • Reads credentials
  • Installs packages

We split this skill into the rules it gives an agent

5 rules. 0 are common, 4 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 35 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Check environment (API key + dependencies)

    line 12
  2. Very specific:

    Run the script and save output to /var/minis/attachments/

    line 16
  3. Distinctive:

    If not set, direct the user to Google AI Studio to obtain a key, then:

    line 30
  4. Distinctive:

    Run any script with:

    line 93
  5. Distinctive:

    When the user makes an image generation request:

    line 126

“Common” is measured: kept by at least 6 in 10 of the 35 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Nano Banana — Image Generation Skill

Generate or edit images locally using the Google Gemini image generation API (a.k.a. Nano Banana).

Quick Workflow

  1. Check environment (API key + dependencies)
  2. Identify the mode: text-to-image / image editing / batch generation
  3. Choose the right model
  4. Use the bundled scripts directly — no need to rewrite them
  5. Run the script and save output to /var/minis/attachments/
  6. Display the result inline in the conversation

Environment Setup

Check API Key

source /etc/profile && echo $GEMINI_API_KEY | head -c 10

⚠️ Always run source /etc/profile first — environment variables are stored there and won't be available otherwise.

If not set, direct the user to Google AI Studio to obtain a key, then:

echo 'export GEMINI_API_KEY="your_key_here"' >> /etc/profile

Check Dependencies

pip show google-genai pillow 2>&1 | grep -E "^Name|not found"

If missing:

pip install google-genai pillow

Model Selection

ModelModel IDBest For
Nano Banana 2 (recommended)gemini-3.1-flash-image-previewFast, high quality, 2K support — default choice
Nano Banana Progemini-3-pro-image-previewComplex prompts, professional assets, precise text rendering
Nano Banana (original)gemini-2.5-flash-imageUltra-low latency, simple tasks

Default to gemini-3.1-flash-image-preview unless the user explicitly requests another version.


⚠️ Known API Pitfalls

1. Aspect ratio / resolution config

❌ Wrong (old API, throws AttributeError):

# types.ImageGenerationConfig does not exist!
image_generation_config=types.ImageGenerationConfig(aspect_ratio="16:9")

✅ Correct:

config=types.GenerateContentConfig(
    response_modalities=["IMAGE"],
    image_config=types.ImageConfig(
        aspect_ratio="16:9",  # options: 1:1, 4:3, 3:4, 16:9, 9:16
        image_size="2K",      # options: 1K, 2K (default: 1K)
    ),
)

2. Environment variable loading

❌ Running python3 script.py directly may not have the API key
✅ Always prefix with source /etc/profile && python3 script.py

3. Saving images

part.as_image() returns a PIL Image object — call .save(path) directly. No need to handle base64 manually.


Bundled Scripts

Run any script with:

source /etc/profile && python3 <skill-path>/nano-banana/scripts/<script>.py [args]

📄 gen.py — Text to Image

Usage:  gen.py "prompt" [output_path] [aspect_ratio] [resolution]
Example: gen.py "a panda drinking tea in a bamboo forest" /var/minis/attachments/out.png 1:1 2K

📄 edit.py — Image Editing (image + prompt → image)

Usage:   edit.py <input_image> "edit instruction" [output_path]
Example: edit.py /var/minis/attachments/photo.jpg "add a wizard hat to the cat" /var/minis/attachments/edited.png

📄 batch.py — Batch Generation (multiple prompts → multiple images)

Edit the TASKS list at the top of the script, then run it.


Step-by-Step

When the user makes an image generation request:

  1. Understand the request — text-to-image, image editing, or batch?
  2. Check API key — source /etc/profile && echo $GEMINI_API_KEY | head -c 10
  3. Verify scripts exist — ls <skill-path>/nano-banana/scripts/
  4. If scripts are missing, use file_write to recreate them from the source in this skill
  5. Run the appropriate script:
    • Text-to-image: source /etc/profile && python3 <skill-path>/nano-banana/scripts/gen.py "prompt" /var/minis/attachments/out.png 16:9 2K
    • Image editing: source /etc/profile && python3 <skill-path>/nano-banana/scripts/edit.py <image_path> "instruction" /var/minis/attachments/out.png
    • Batch: edit TASKS in scripts/batch.py, then run it
  6. Display the result — ![description](minis://attachments/out.png)

Prompt Tips

  • Describe a scene, don't just stack keywords — "An elderly Japanese potter focused at the wheel, soft afternoon light through a studio window, photorealistic" beats "Japan pottery old man realistic"
  • Specify style explicitly — for photography add camera details ("50mm lens, shallow depth of field"); for illustration name the style ("Ghibli-style watercolor")
  • Text in images — spell out exactly what text should appear; the model renders it more accurately when it's explicit
  • Iterate with edit.py — make small adjustments on an existing image rather than regenerating from scratch
  • Aspect ratio guide — 16:9 for banners/social media, 1:1 for avatars/covers, 9:16 for phone wallpapers, 3:4 for portrait cards

Troubleshooting

IssueCause & Fix
AttributeError: ImageGenerationConfigDeprecated API — use image_config=types.ImageConfig(...) instead
KeyError: GEMINI_API_KEYRun source /etc/profile before executing the script
Only text returned, no imageEnsure response_modalities includes "IMAGE"
Poor image qualitySwitch to gemini-3-pro-image-preview or refine the prompt
Rate limit errorFree tier has limits — wait a moment and retry
Save failsConfirm /var/minis/attachments/ directory exists

References

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.