{"id":"2adab44a-8f9a-4cef-993d-91884e38d394","shortId":"JazSFb","kind":"skill","title":"nanobanana","tagline":"Generate and edit images using Google Gemini 3 Pro Image (Nano Banana Pro). Supports text-to-image, image editing, various aspect ratios, and high-resolution output (2K/4K). Use when user wants to generate images, create images, use Gemini image generation, or do AI image generat","description":"# Nano Banana - AI Image Generation\n\nGenerate and edit images using Google's Gemini 3 Pro Image model (`gemini-3-pro-image-preview`, nicknamed \"Nano Banana Pro\" 🍌).\n\n## Prerequisites\n\n**Required:**\n- `GEMINI_API_KEY` - Get from [Google AI Studio](https://aistudio.google.com/apikey)\n- Python 3.10+ with `google-genai` package\n\n**Install dependencies:**\n```bash\npip install google-genai pillow\n```\n\n## Quick Start\n\n### Generate an image:\n```bash\npython3 <skill_dir>/scripts/generate.py \"a cute robot mascot, pixel art style\" -o robot.png\n```\n\n### Edit an existing image:\n```bash\npython3 <skill_dir>/scripts/generate.py \"make the background blue\" -i input.jpg -o output.png\n```\n\n### Generate with specific aspect ratio:\n```bash\npython3 <skill_dir>/scripts/generate.py \"cinematic landscape\" --ratio 21:9 -o landscape.png\n```\n\n### Generate high-resolution 4K image:\n```bash\npython3 <skill_dir>/scripts/generate.py \"professional product photo\" --size 4K -o product.png\n```\n\n## Script Reference\n\n### `scripts/generate.py`\n\nMain image generation script.\n\n```\nUsage: generate.py [OPTIONS] PROMPT\n\nArguments:\n  PROMPT              Text prompt for image generation\n\nOptions:\n  -o, --output PATH   Output file path (default: auto-generated)\n  -i, --input PATH    Input image for editing (optional)\n  -r, --ratio RATIO   Aspect ratio (1:1, 16:9, 9:16, 21:9, etc.)\n  -s, --size SIZE     Image size: 2K or 4K (default: standard)\n  --search            Enable Google Search grounding for accuracy\n  -v, --verbose       Show detailed output\n```\n\n**Supported aspect ratios:**\n- `1:1` - Square (default)\n- `2:3`, `3:2` - Portrait/Landscape\n- `3:4`, `4:3` - Standard\n- `4:5`, `5:4` - Photo\n- `9:16`, `16:9` - Widescreen\n- `21:9` - Ultra-wide/Cinematic\n\n### `scripts/batch_generate.py`\n\nGenerate multiple images with sequential naming.\n\n```\nUsage: batch_generate.py [OPTIONS] PROMPT\n\nArguments:\n  PROMPT              Text prompt for image generation\n\nOptions:\n  -n, --count N       Number of images to generate (default: 10)\n  -d, --dir PATH      Output directory\n  -p, --prefix STR    Filename prefix (default: \"image\")\n  -r, --ratio RATIO   Aspect ratio\n  -s, --size SIZE     Image size (2K/4K)\n  --delay SECONDS     Delay between generations (default: 3)\n```\n\n**Example:**\n```bash\npython3 <skill_dir>/scripts/batch_generate.py \"pixel art logo\" -n 20 -d ./logos -p logo\n```\n\n## Python API\n\nYou can also use the module directly:\n\n```python\nfrom generate import generate_image, edit_image\n\n# Generate image\nresult = generate_image(\n    prompt=\"a futuristic city at night\",\n    output_path=\"city.png\",\n    aspect_ratio=\"16:9\",\n    image_size=\"4K\"\n)\n\n# Edit existing image\nresult = edit_image(\n    prompt=\"add flying cars to the sky\",\n    input_path=\"city.png\",\n    output_path=\"city_edited.png\"\n)\n```\n\n## Environment Variables\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `GEMINI_API_KEY` | Google Gemini API key | Required |\n| `IMAGE_OUTPUT_DIR` | Default output directory | `./nanobanana-images` |\n\n## Features\n\n### Text-to-Image Generation\nCreate images from text descriptions. The model excels at:\n- Photorealistic images\n- Artistic styles (pixel art, illustration, etc.)\n- Product photography\n- Landscapes and scenes\n\n### Image Editing\nTransform existing images with natural language:\n- Style transfer\n- Object addition/removal\n- Background changes\n- Color adjustments\n\n### High-Resolution Output\n- **Standard**: Fast generation, good quality\n- **2K**: Enhanced detail (2048px)\n- **4K**: Maximum quality (3840px), best for text rendering\n\n### Google Search Grounding\nEnable `--search` for factually accurate images involving:\n- Real people, places, landmarks\n- Current events\n- Specific products or brands\n\n## Best Practices\n\n### Prompt Writing\n\n**Good prompts include:**\n- Subject description\n- Style/aesthetic\n- Lighting and mood\n- Composition details\n- Color palette\n\n**Example:**\n```\n\"A cozy coffee shop interior, warm lighting, vintage aesthetic, \nwooden furniture, plants on shelves, morning sunlight through windows, \nsoft focus background, 35mm film photography style\"\n```\n\n### Batch Generation Tips\n\n1. Generate 10-20 variations to explore options\n2. Use consistent prompts for style coherence\n3. Add 3-5 second delays to avoid rate limits\n4. Review results and iterate on best candidates\n\n## Rate Limits\n\n- Gemini API has usage quotas\n- Add delays between batch generations\n- Check your quota at [Google AI Studio](https://aistudio.google.com/)\n\n## Troubleshooting\n\n**\"API key not found\"**\n- Set `GEMINI_API_KEY` environment variable\n- Or pass via `--api-key` option\n\n**\"No image in response\"**\n- Prompt may have triggered safety filters\n- Try rephrasing to avoid sensitive content\n\n**\"Rate limit exceeded\"**\n- Wait a few seconds and retry\n- Reduce batch size or add longer delays\n\n## References\n\n- [references/prompts.md](./references/prompts.md) - Prompt examples by category\n- [examples/](./examples/) - Example usage scripts","tags":["nanobanana","opc","skills","resciencelab","agent-skills","ai-tools","claude-code","geo","llm-tools","seo"],"capabilities":["skill","source-resciencelab","skill-nanobanana","topic-agent-skills","topic-ai-tools","topic-claude-code","topic-geo","topic-llm-tools","topic-opc","topic-seo"],"categories":["opc-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/ReScienceLab/opc-skills/nanobanana","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add ReScienceLab/opc-skills","source_repo":"https://github.com/ReScienceLab/opc-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 829 github stars · SKILL.md body (4,954 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-02T18:52:57.137Z","embedding":null,"createdAt":"2026-04-18T21:56:35.041Z","updatedAt":"2026-05-02T18:52:57.137Z","lastSeenAt":"2026-05-02T18:52:57.137Z","tsv":"'-20':557 '-3':67 '-5':572 '/)':608 '/apikey)':88 '/cinematic':273 '/examples':667 '/logos':343 '/nanobanana-images':422 '/references/prompts.md':661 '/scripts/batch_generate.py':336 '/scripts/generate.py':112,128,144,160 '1':210,211,244,245,554 '10':302,556 '16':212,215,264,265,379 '2':248,251,562 '20':341 '2048px':479 '21':148,216,268 '2k':224,476 '2k/4k':30,325 '3':9,62,249,250,253,256,332,569,571 '3.10':90 '35mm':547 '3840px':483 '4':254,255,258,261,579 '4k':156,165,226,383,480 '5':259,260 '9':149,213,214,217,263,266,269,380 'accur':495 'accuraci':235 'add':391,570,594,656 'addition/removal':462 'adjust':466 'aesthet':534 'ai':46,51,84,604 'aistudio.google.com':87,607 'aistudio.google.com/)':606 'aistudio.google.com/apikey)':86 'also':350 'api':79,347,409,413,590,610,616,624 'api-key':623 'argument':179,285 'art':118,338,443 'artist':440 'aspect':23,140,208,242,318,377 'auto':195 'auto-gener':194 'avoid':576,640 'background':131,463,546 'banana':13,50,74 'bash':98,110,126,142,158,334 'batch':551,597,653 'batch_generate.py':282 'best':484,508,585 'blue':132 'brand':507 'candid':586 'car':393 'categori':665 'chang':464 'check':599 'cinemat':145 'citi':371 'city.png':376,399 'city_edited.png':402 'coffe':528 'coher':568 'color':465,523 'composit':521 'consist':564 'content':642 'count':294 'cozi':527 'creat':38,429 'current':502 'cute':114 'd':303,342 'default':193,227,247,301,313,331,407,419 'delay':326,328,574,595,658 'depend':97 'descript':406,433,516 'detail':239,478,522 'dir':304,418 'direct':354 'directori':307,421 'edit':4,21,56,122,203,361,384,388,452 'enabl':230,491 'enhanc':477 'environ':403,618 'etc':218,445 'event':503 'exampl':333,525,663,666,668 'exceed':645 'excel':436 'exist':124,385,454 'explor':560 'factual':494 'fast':472 'featur':423 'file':191 'filenam':311 'film':548 'filter':636 'fli':392 'focus':545 'found':613 'furnitur':536 'futurist':370 'gemini':8,41,61,66,78,408,412,589,615 'genai':94,103 'generat':2,36,43,48,53,54,107,137,152,173,185,196,275,291,300,330,357,359,363,366,428,473,552,555,598 'generate.py':176 'get':81 'good':474,512 'googl':7,59,83,93,102,231,411,488,603 'google-genai':92,101 'ground':233,490 'high':27,154,468 'high-resolut':26,153,467 'illustr':444 'imag':5,11,19,20,37,39,42,47,52,57,64,70,109,125,157,172,184,201,222,277,290,298,314,323,360,362,364,367,381,386,389,416,427,430,439,451,455,496,628 'import':358 'includ':514 'input':198,200,397 'input.jpg':134 'instal':96,100 'interior':530 'involv':497 'iter':583 'key':80,410,414,611,617,625 'landmark':501 'landscap':146,448 'landscape.png':151 'languag':458 'light':518,532 'limit':578,588,644 'logo':339,345 'longer':657 'main':171 'make':129 'mascot':116 'maximum':481 'may':632 'model':65,435 'modul':353 'mood':520 'morn':540 'multipl':276 'n':293,295,340 'name':280 'nano':12,49,73 'nanobanana':1 'natur':457 'nicknam':72 'night':373 'number':296 'o':120,135,150,166,187 'object':461 'option':177,186,204,283,292,561,626 'output':29,188,190,240,306,374,400,417,420,470 'output.png':136 'p':308,344 'packag':95 'palett':524 'pass':621 'path':189,192,199,305,375,398,401 'peopl':499 'photo':163,262 'photographi':447,549 'photorealist':438 'pillow':104 'pip':99 'pixel':117,337,442 'place':500 'plant':537 'portrait/landscape':252 'practic':509 'prefix':309,312 'prerequisit':76 'preview':71 'pro':10,14,63,69,75 'pro-image-preview':68 'product':162,446,505 'product.png':167 'profession':161 'prompt':178,180,182,284,286,288,368,390,510,513,565,631,662 'python':89,346,355 'python3':111,127,143,159,335 'qualiti':475,482 'quick':105 'quota':593,601 'r':205,315 'rate':577,587,643 'ratio':24,141,147,206,207,209,243,316,317,319,378 'real':498 'reduc':652 'refer':169,659 'references/prompts.md':660 'render':487 'rephras':638 'requir':77,415 'resolut':28,155,469 'respons':630 'result':365,387,581 'retri':651 'review':580 'robot':115 'robot.png':121 'safeti':635 'scene':450 'script':168,174,670 'scripts/batch_generate.py':274 'scripts/generate.py':170 'search':229,232,489,492 'second':327,573,649 'sensit':641 'sequenti':279 'set':614 'shelv':539 'shop':529 'show':238 'size':164,220,221,223,321,322,324,382,654 'skill' 'skill-nanobanana' 'sky':396 'soft':544 'source-resciencelab' 'specif':139,504 'squar':246 'standard':228,257,471 'start':106 'str':310 'studio':85,605 'style':119,441,459,550,567 'style/aesthetic':517 'subject':515 'sunlight':541 'support':15,241 'text':17,181,287,425,432,486 'text-to-imag':16,424 'tip':553 'topic-agent-skills' 'topic-ai-tools' 'topic-claude-code' 'topic-geo' 'topic-llm-tools' 'topic-opc' 'topic-seo' 'transfer':460 'transform':453 'tri':637 'trigger':634 'troubleshoot':609 'ultra':271 'ultra-wid':270 'usag':175,281,592,669 'use':6,31,40,58,351,563 'user':33 'v':236 'variabl':404,405,619 'variat':558 'various':22 'verbos':237 'via':622 'vintag':533 'wait':646 'want':34 'warm':531 'wide':272 'widescreen':267 'window':543 'wooden':535 'write':511","prices":[{"id":"f25ae6df-a644-4d3c-bb0b-850b26166dfd","listingId":"2adab44a-8f9a-4cef-993d-91884e38d394","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"ReScienceLab","category":"opc-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:56:35.041Z"}],"sources":[{"listingId":"2adab44a-8f9a-4cef-993d-91884e38d394","source":"github","sourceId":"ReScienceLab/opc-skills/nanobanana","sourceUrl":"https://github.com/ReScienceLab/opc-skills/tree/main/skills/nanobanana","isPrimary":false,"firstSeenAt":"2026-04-18T21:56:35.041Z","lastSeenAt":"2026-05-02T18:52:57.137Z"}],"details":{"listingId":"2adab44a-8f9a-4cef-993d-91884e38d394","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"ReScienceLab","slug":"nanobanana","github":{"repo":"ReScienceLab/opc-skills","stars":829,"topics":["agent-skills","ai-tools","claude-code","geo","llm-tools","opc","seo"],"license":"apache-2.0","html_url":"https://github.com/ReScienceLab/opc-skills","pushed_at":"2026-05-02T06:47:51Z","description":"Agent Skills for Solopreneurs","skill_md_sha":"c018af294dcd458f3eb6ad421dd1ecc9e71331f5","skill_md_path":"skills/nanobanana/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/ReScienceLab/opc-skills/tree/main/skills/nanobanana"},"layout":"multi","source":"github","category":"opc-skills","frontmatter":{"name":"nanobanana","description":"Generate and edit images using Google Gemini 3 Pro Image (Nano Banana Pro). Supports text-to-image, image editing, various aspect ratios, and high-resolution output (2K/4K). Use when user wants to generate images, create images, use Gemini image generation, or do AI image generation."},"skills_sh_url":"https://skills.sh/ReScienceLab/opc-skills/nanobanana"},"updatedAt":"2026-05-02T18:52:57.137Z"}}