Nano banana
🐙 Accelerating Scientific Discovery — Turn your research into an always-on autonomous lab
npx -y skills add jimezsa/opencolab --skill nano-bananaAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 11 stars11 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Generate and edit images with Google Gemini Nano Banana Pro from prompts and optional reference images, using GEMINI_API_KEY from .env.local when available.
SKILL.md
5.9 KB, as published. Nobody here has run it
Nano Banana Pro Skill
Use this skill when the user wants image generation or image editing with Google Gemini, especially for:
- paper architecture diagrams,
- figure redraws and cleanups,
- annotated illustrations,
- posters, covers, assets, and product shots,
- edits to an existing image while preserving the important parts.
This skill defaults to Nano Banana Pro (gemini-3-pro-image-preview), which Google documents as the professional image model for complex instructions and high-fidelity asset production.
Mission
Given a prompt and zero or more reference images:
- Generate a new image or edit an existing one with Gemini.
- Save every returned image locally.
- Save any accompanying model text next to the image outputs.
- Keep the workflow deterministic and scriptable from the terminal.
Prerequisites
python3is installed and available inPATH.google-genaiis installed:
python3 -m pip install google-genai
- Network access is available when the Gemini request runs.
Hard Requirements
- Use
projects/SKILLS/nano-banana/scripts/nano_banana.pyfor the API call so key loading stays consistent with the repo. - Default to
gemini-3-pro-image-previewunless the user explicitly wants a cheaper or faster model. - Save generated images in the current project folder under
images/, not underartifacts/. - If the generated image should be sent back to Telegram, emit a raw
@telegram-file {"kind":"photo","file":"<path>","caption":"optional"}line on its own line after generation. Do not wrap it in backticks or code fences. Keep the JSON on one line, keepkindasphoto(neverimage/png/jpg), and on Windows write the path with forward slashes. - For edits, pass the existing image with
--inputand tell the model exactly what must stay unchanged. - For diagrams, specify the layout, labels, arrow directions, grouping, legend, and aspect ratio explicitly.
- When exact text matters, write the exact text in the prompt and keep it short.
- Do not assume the model inferred the paper structure correctly if the diagram is research-critical; inspect the generated image afterward.
Workflow
1. Write a concrete prompt
Good prompts for this skill are explicit about:
- subject,
- composition,
- style,
- required labels/text,
- what to preserve,
- what to change,
- output format or aspect ratio.
Useful prompt patterns:
- Paper architecture diagram:
Create a clean research-paper architecture diagram on a white background. Show the pipeline as five left-to-right blocks with arrows between them: Input Image, Feature Encoder, Multi-Scale Fusion, 3D Reconstruction Head, Rendered Output. Use concise academic figure styling, thin gray arrows, blue highlight for the main module, and exact labels in a modern sans-serif font. Add a small legend in the lower-right corner. - Edit an image:
Edit the provided image. Keep the framing, subject identity, and overall lighting unchanged. Replace the background with a clean studio backdrop, add a subtle shadow, and preserve the original object proportions. - Redraw a rough figure:
Use the provided sketch as structure reference only. Redraw it as a polished conference-paper figure with consistent spacing, aligned labels, clear arrows, and export-ready visual quality.
2. Run the script
Generate a new image:
python3 projects/SKILLS/nano-banana/scripts/nano_banana.py \
--prompt "Create a conference-paper style architecture diagram for a monocular 3D reconstruction pipeline with clearly labeled modules, arrows, and a small legend." \
--aspect-ratio 16:9 \
--image-size 2K \
--output-prefix images/mono3d-diagram
Edit an existing image:
python3 projects/SKILLS/nano-banana/scripts/nano_banana.py \
--prompt "Edit the provided figure into a polished academic diagram. Keep the layout and labels semantically equivalent, but clean the typography, spacing, arrow routing, and color hierarchy." \
--input assets/rough-diagram.png \
--aspect-ratio 16:9 \
--image-size 2K \
--output-prefix images/rough-diagram-polished
Use multiple references:
python3 projects/SKILLS/nano-banana/scripts/nano_banana.py \
--prompt "Create a product hero image using the bottle from the first reference and the packaging language from the second reference. Keep the bottle shape faithful to the original." \
--input references/bottle.png \
--input references/box.png \
--aspect-ratio 4:5 \
--image-size 2K \
--output-prefix images/product-hero
Use Google Search grounding when real-world accuracy matters:
python3 projects/SKILLS/nano-banana/scripts/nano_banana.py \
--prompt "Create an editorial-style travel poster for Berlin using accurate landmark details and current visual references." \
--google-search \
--aspect-ratio 3:4 \
--image-size 2K \
--output-prefix images/berlin-poster
3. Review outputs
- The script saves generated images as
<output-prefix>_01.<ext>,<output-prefix>_02.<ext>, and so on. - Any model text is saved as
<output-prefix>.txt. - A machine-readable run summary is saved as
<output-prefix>.json. - If the first result is close but not correct, rerun with the previous output as a new
--inputand tighten the prompt.
Output Contract
- One or more local image files.
- Optional accompanying text file if Gemini returns text alongside the image.
- One JSON summary describing the model, prompt source, inputs, and saved outputs.
Canonical Assets
- Skill doc:
projects/SKILLS/nano-banana/SKILL.md - Python runner:
projects/SKILLS/nano-banana/scripts/nano_banana.py