AI image generation for SEO assets: OG/social preview images, blog hero images, schema images, product photography, infographics. Powered by Gemini via nanobanana-mcp.
Library skill — the default version is maintained in GitHub; edits you make live in your own clone.
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:
- SKILL.md (this file): Handles interactive /seo image-gen commands for generating images
- Agent (agents/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 toolreferences/prompt-engineering.md for the 6-component system
- Apply domain mode emphasis (Subject 30%, Style 25%, Context 15%, etc.)
- Be SPECIFIC and VISCERAL: describe what the camera seesgemini_generate_image MCP toolIf the user mentions a brand or has SEO presets configured:
# Use the installed Banana MCP/tool configuration to list presets.
Load matching preset and apply as defaults. Also check references/seo-image-presets.md
for SEO-specific preset templates.
After every successful generation, guide the user on:
keyword-description-widthxheight.webpbash
magick output.png -quality 85 output.webpImageObject schema for the generated image:
json
{
"@type": "ImageObject",
"url": "https://example.com/images/keyword-description.webp",
"width": 1200,
"height": 630,
"caption": "Descriptive caption with target keyword"
}html
<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: - Show estimated cost before generating (especially for batch) - Log every generation in the installed Banana MCP/tool ledger when available - Use the installed Banana MCP/tool usage summary if user asks about usage
Approximate costs: - Verify current pricing in the installed MCP/tool configuration before quoting
| Scenario | Model | Why |
|---|---|---|
| OG images, social previews | Installed MCP/tool default @ 1K | Fast, cost-effective |
| Hero images, product photos | Installed MCP/tool quality model @ 2K | Quality + detail |
| Infographics with text | Installed MCP/tool text-capable model @ 2K, thinking: high if supported | Better text rendering |
| Quick drafts | Installed MCP/tool draft model @ 512 | Rapid iteration |
| Error | Resolution |
|---|---|
| MCP not configured | Run ./extensions/banana/install.sh |
| API key invalid | New key at https://aistudio.google.com/apikey |
| Rate limited (429) | Wait 60s, retry. Free tier: ~10 RPM / ~500 RPD |
IMAGE_SAFETY |
Rephrase prompt - see references/prompt-engineering.md Safety section |
| MCP unavailable | Configure MCP with ./extensions/banana/install.sh; claude-seo does not vendor a local generation fallback script |
| 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:
- references/prompt-engineering.md:6-component system, domain modes, templates
- references/gemini-models.md:Model specs, rate limits, capabilities
- references/mcp-tools.md:MCP tool parameters and responses
- references/post-processing.md:ImageMagick/FFmpeg pipeline recipes
- references/cost-tracking.md:Pricing, usage tracking
- references/presets.md:Brand preset management
- references/seo-image-presets.md:SEO-specific preset templates
After generating, always provide: 1. Image path:where it was saved 2. Crafted prompt:show what was sent to the API (educational) 3. Settings:model, aspect ratio, resolution 4. SEO checklist:alt text suggestion, file naming, WebP conversion 5. Schema snippet:ImageObject or og:image markup if applicable