Generate production-ready images for SEO use cases using Gemini's image generation via the banana Creative Director pipeline. Maps SEO needs to optimized domain modes, aspect ratios, and resolution defaults.
This extension is built on Claude Banana, the standalone AI image generation skill for Claude Code.
This skill has two components with distinct roles:
/seo image-gen commands for generating imagesagents/seo-image-gen.md): Audit-only analyst spawned during /seo audit to assess existing OG/social images and produce a generation plan (never auto-generates)This skill requires the banana extension to be installed:
./extensions/banana/install.sh
Check availability: Before using any image generation tool, verify the MCP server
is connected by checking if gemini_generate_image or set_aspect_ratio tools are
available. If tools are not available, inform the user the extension is not installed
and provide install instructions.
| Command | What it does |
|---|---|
/seo image-gen og <description> |
Generate OG/social preview image (1200x630 feel) |
/seo image-gen hero <description> |
Blog hero image (widescreen, dramatic) |
/seo image-gen product <description> |
Product photography (clean, white BG) |
/seo image-gen infographic <description> |
Infographic visual (vertical, data-heavy) |
/seo image-gen custom <description> |
Custom image with full Creative Director pipeline |
/seo image-gen batch <description> [N] |
Generate N variations (default: 3) |
Each use case maps to pre-configured banana parameters:
| Use Case | Aspect Ratio | Resolution | Domain Mode | Notes |
|---|---|---|---|---|
| OG/Social Preview | 16:9 |
1K |
Product or UI/Web | Clean, professional, text-friendly |
| Blog Hero | 16:9 |
2K |
Cinema or Editorial | Dramatic, atmospheric, editorial quality |
| Schema Image | 4:3 |
1K |
Product | Clean, descriptive, schema ImageObject |
| Social Square | 1:1 |
1K |
UI/Web | Platform-optimized square |
| Product Photo | 4:3 |
2K |
Product | White background, studio lighting |
| Infographic | 2:3 |
4K |
Infographic | Data-heavy, vertical layout |
| Favicon/Icon | 1:1 |
512 |
Logo | Minimal, scalable, recognizable |
| Pinterest Pin | 2:3 |
2K |
Editorial | Tall vertical card |
For every generation request:
set_aspect_ratio MCP tool${CLAUDE_SKILL_DIR} as the installed skill root${CLAUDE_SKILL_DIR}/references/prompt-engineering.md for the 6-component systemgemini_generate_image MCP toolIf the user mentions a brand or has SEO presets configured:
claude-seo run --extension banana presets.py list
Load matching preset and apply as defaults. Also check ${CLAUDE_SKILL_DIR}/references/seo-image-presets.md
for SEO-specific preset templates.
After every successful generation, guide the user on:
keyword-description-widthxheight.webp
magick output.png -quality 85 output.webp
ImageObject schema for the generated image:
{
"@type": "ImageObject",
"url": "https://example.com/images/keyword-description.webp",
"width": 1200,
"height": 630,
"caption": "Descriptive caption with target keyword"
}
<meta property="og:image" content="https://example.com/images/og-image.webp" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="Descriptive alt text" />
Image generation costs money. Be transparent:
claude-seo run --extension banana cost_tracker.py log --model MODEL --resolution RES --prompt "brief"
cost_tracker.py summary if user asks about usagePricing is not hard-coded. Check current Google pricing at
https://ai.google.dev/gemini-api/docs/pricing, store dated values in
~/.banana/pricing.json, and treat estimates as approximate.
| Scenario | Model | Why |
|---|---|---|
| OG images, social previews | Verified NANOBANANA_MODEL @ 1K |
Fast, cost-aware |
| Hero images, product photos | Verified NANOBANANA_MODEL @ 2K if supported |
Quality + detail |
| Infographics with text | Verified NANOBANANA_MODEL @ 2K if supported, thinking: high |
Better text rendering |
| Quick drafts | Verified NANOBANANA_MODEL @ 512 if supported |
Rapid iteration |
| Error | Resolution |
|---|---|
| MCP not configured | Run ./extensions/banana/install.sh or claude-seo run --extension banana setup_mcp.py --key YOUR_KEY |
| API key invalid | New key at https://aistudio.google.com/apikey |
| Rate limited (429) | Wait 60s, retry. Check current free-tier limits before batch operations |
IMAGE_SAFETY |
Rephrase prompt - see references/prompt-engineering.md Safety section |
| MCP unavailable | Fall back: claude-seo run --extension banana generate.py --prompt "..." --aspect-ratio "16:9" --model "$NANOBANANA_MODEL" |
| CSV batch input | Plan first: claude-seo run --extension banana batch.py --csv requests.csv --model "$NANOBANANA_MODEL" |
| Extension not installed | Show install instructions: ./extensions/banana/install.sh |
/seo images identify missing or low-quality images; use those findings to drive /seo image-gen commandsImageObject schema markup pointing to the new assetsLoad on-demand. Do NOT load all at startup:
${CLAUDE_SKILL_DIR}/references/prompt-engineering.md:6-component system, domain modes, templates${CLAUDE_SKILL_DIR}/references/gemini-models.md:Model specs, rate limits, capabilities${CLAUDE_SKILL_DIR}/references/mcp-tools.md:MCP tool parameters and responses${CLAUDE_SKILL_DIR}/references/post-processing.md:ImageMagick/FFmpeg pipeline recipes${CLAUDE_SKILL_DIR}/references/cost-tracking.md:Pricing, usage tracking${CLAUDE_SKILL_DIR}/references/presets.md:Brand preset management${CLAUDE_SKILL_DIR}/references/seo-image-presets.md:SEO-specific preset templatesAfter generating, always provide: