[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EDYSK1ACTHKXBCKXB70GE5":3,"skill-same:01M6EDYSK1ACTHKXBCKXB70GE5":51},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":20,"frontMatter":21,"refName":22,"commitSha":23,"skillDirectory":24,"forksCount":25,"repositoryHtmlUrl":26,"repositoryHomepageUrl":27,"ownerHtmlUrl":28,"ownerBlogUrl":6,"ownerDescription":29,"updatedAt":30,"install":31,"resources":44},"01M6EDYSK1ACTHKXBCKXB70GE5","nanobanana",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FReScienceLab\u002Fopc-skills\u002Fnanobanana\u002FSKILL.md",[],[5],"2026-11-10 10:12:30",false,"# 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:\u002F\u002Faistudio.google.com\u002Fapikey)\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 \u003Cskill_dir>\u002Fscripts\u002Fgenerate.py \"a cute robot mascot, pixel art style\" -o robot.png\n```\n\n### Edit an existing image:\n```bash\npython3 \u003Cskill_dir>\u002Fscripts\u002Fgenerate.py \"make the background blue\" -i input.jpg -o output.png\n```\n\n### Generate with specific aspect ratio:\n```bash\npython3 \u003Cskill_dir>\u002Fscripts\u002Fgenerate.py \"cinematic landscape\" --ratio 21:9 -o landscape.png\n```\n\n### Generate high-resolution 4K image:\n```bash\npython3 \u003Cskill_dir>\u002Fscripts\u002Fgenerate.py \"professional product photo\" --size 4K -o product.png\n```\n\n## Script Reference\n\n### `scripts\u002Fgenerate.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\u002FLandscape\n- `3:4`, `4:3` - Standard\n- `4:5`, `5:4` - Photo\n- `9:16`, `16:9` - Widescreen\n- `21:9` - Ultra-wide\u002FCinematic\n\n### `scripts\u002Fbatch_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\u002F4K)\n  --delay SECONDS     Delay between generations (default: 3)\n```\n\n**Example:**\n```bash\npython3 \u003Cskill_dir>\u002Fscripts\u002Fbatch_generate.py \"pixel art logo\" -n 20 -d .\u002Flogos -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 | `.\u002Fnanobanana-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\u002Fremoval\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\u002Faesthetic\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:\u002F\u002Faistudio.google.com\u002F)\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\u002Fprompts.md](.\u002Freferences\u002Fprompts.md) - Prompt examples by category\n- [examples\u002F](.\u002Fexamples\u002F) - Example usage scripts\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002FReScienceLab\u002Fopc-skills\u002Fnanobanana",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill nanobanana",{"tool":37,"command":38},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill nanobanana",{"tool":40,"command":41},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill nanobanana","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FReScienceLab\u002Fopc-skills\u002Fnanobanana\u002FSKILL.md",true,[45],{"path":46,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":49,"sourceHtmlUrl":50},"scripts\u002Fred.py","SCRIPT","脚本",12311,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fred\u002Fscripts\u002Fred.py",[52,66,76,85,91,98],{"skillNo":53,"name":54,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":55,"categories":56,"keywords":62,"publishedAt":18},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[57],{"categoryNo":58,"categoryName":59,"taxonomyType":60,"taxonomyTypeDesc":61},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[63,64,65],"model","model hierarchy","model hierarchy skill",{"skillNo":67,"name":68,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":72,"publishedAt":18},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[71],{"categoryNo":58,"categoryName":59,"taxonomyType":60,"taxonomyTypeDesc":61},[73,74,75],"MCP","zoom","zoom mcp",{"skillNo":77,"name":78,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":18},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[82,83,84,74],"sdk","zoom apps sdk","apps",{"skillNo":86,"name":87,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":18},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[87],{"skillNo":92,"name":93,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":97,"publishedAt":18},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[96],{"categoryNo":58,"categoryName":59,"taxonomyType":60,"taxonomyTypeDesc":61},[93],{"skillNo":99,"name":100,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":18},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[100]]