seo-image-gen
Technical SEOagricidaniel/claude-seoskills.sh ↗
Installs
4,446
deduplicated, at the last sync
Since we started
+2.4%
36 readings, about 2 hours apart. Not a live curve.
Our category
Technical SEO
ours
Last read
Sep 3, 2026
from the directory
Our brief
oursThe seo-image-gen skill creates AI‑generated images for SEO purposes such as Open Graph previews, blog hero banners, product photos, infographics, favicons and other web assets. It uses Gemini image models via the @ycse/nanobanana-mcp tools, applies preset‑based defaults, and runs optional post‑processing with ImageMagick. After generation it returns the image path together with a prompt summary, generation settings and an SEO checklist (alt text, file naming, WebP conversion, schema markup).
- image file path
- prompt sent to Gemini
- model, aspect ratio and resolution used
- SEO checklist (alt text, naming, WebP conversion)
- ImageObject or og:image markup snippet
- text prompt describing the image
- Google API key via GOOGLE_AI_API_KEY env var
- optional preset JSON file (~/.banana/presets/NAME.json)
- optional aspect‑ratio setting (set_aspect_ratio tool)
- ImageMagick installed for post‑processing
optional
Evidence shows a pricing table and free‑tier limits (~10 RPM, ~500 RPD) but does not require a paid plan for any specific route.
optional
References mention the GOOGLE_AI_API_KEY environment variable needed for Gemini API access, indicating an account/key may be required.
The skill cannot guarantee that generated images will pass all safety filters or be free of policy violations. It also cannot ensure that the images will achieve specific SEO ranking results or that cost estimates will be exact without checking the current Google pricing page.
Evidencestatic findingsskills/seo-image-gen/references/cost-tracking.md:1-42skills/seo-image-gen/references/gemini-models.md:1-55skills/seo-image-gen/references/mcp-tools.md:1-81+5
[{"code":"api_key_mention","match":"API key","path":"SKILL.md"},{"code":"api_key_mention","match":"apikey","path":"SKILL.md"},{"code":"payment","match":"pricing","path":"SKILL.md"},{"code":"payment","match":"Pricing","path":"SKILL.md"},{"code":"payment","match":"Pricing","path":"references/cost-tracking.md"},{"code":"payment","match":"pricing","path":"references/cost-tracking.md"},{"code":"payment","match":"Pricing","path":"references/gemini-models.md"},{"code":"payment","match":"pricing","path":"references/gemini-models.md"},{"code":"env_var","match":"GOOGLE_AI_API_KEY","path":"references/mcp-tools.md"},{"code":"api_key_mention","match":"API key","path":"references/mcp-tools.md"},{"code":"api_key_mention","match":"apikey","path":"references/mcp-tools.md"},{"code":"install_cmd","match":"brew install imagemagick","path":"references/post-processing.md"}]# Cost Tracking Reference > Load this on-demand when the user asks about costs or before batch operations. ## Pricing Table | Model | Resolution | Cost/Image | Notes | |-------|-----------|-----------|-------| | Installed MCP model | Any | Verify before use | Check https://ai.google.dev/gemini-api/docs/pricing and installed MCP config | | Batch API | Any | Verify before use | Confirm availability and discount before quoting | Do not quote fixed package prices unless they have been verified at https://ai.google.dev/gemini-api/docs/pricing. ## Free Tier Limits - ~10 requests per minute (RPM) - ~500 requests per day (RPD) - Per Google Cloud project, resets midnight Pacific ## Cost Tracker Commands ```bash # Log a generation cost_tracker.py log --model gemini-3.1-flash-image-preview --resolution 1K --prompt "coffee shop hero" # View summary (total + last 7 days) cost_tracker.py summary # Today's usage cost_tracker.py today # Estimate before batch cost_tracker.py estimate --model gemini-3.1-flash-image-preview --resolution 1K --count 10 # Reset ledger cost_tracker.py reset --confirm ``` ## Storage Ledger stored at `~/.banana/costs.json`. Created automatically on first use.
# Gemini Image Generation Models > Package alias notes. Verify current Google model IDs before use. > Do not treat these as Google-confirmed current model IDs. ## Package Model Aliases ### gemini-3.1-flash-image-preview (Unverified package-specific alias) | Property | Value | |----------|-------| | **Model ID** | `gemini-3.1-flash-image-preview` (verify in installed MCP/tool config) | | **Tier** | Package label: Nano Banana 2 (Flash) | | **Speed** | Fast - optimized for high-volume use | | **Aspect Ratios** | All 14 ratios (see table below) | | **Max Resolution** | Up to 4096×4096 (4K tier) | | **Features** | Google Search grounding (web + image), thinking levels, image-only output, extreme aspect ratios | | **Rate Limits (Free)** | ~10 RPM / ~500 RPD (per Google Cloud project, resets midnight Pacific) | | **Output Tokens** | ~1,290 output tokens per image | | **Best For** | Most use cases, rapid iteration, batch generation | ### gemini-2.5-flash-image | Property | Value | |----------|-------| | **Model ID** | `gemini-2.5-flash-image` | | **Tier** | Nano Banana 2 (Flash, previous gen) | | **Speed** | Fast | | **Aspect Ratios** | 1:1, 16:9, 9:16, 4:3, 3:4 | | **Max Resolution**
# MCP Tools Reference: @ycse/nanobanana-mcp > Package: `@ycse/nanobanana-mcp` > GitHub: https://github.com/YCSE/nanobanana-mcp ## Tools ### gemini_generate_image Generate an image from a text prompt. **Parameters:** | Param | Type | Required | Description | |-------|------|----------|-------------| | `prompt` | string | Yes | Text description of the image to generate | **Returns:** Image data + file path (saved to `~/Documents/nanobanana_generated/`) **Example usage in Claude Code:** ``` User: "Generate a sunset over mountains in watercolor style" → Claude calls gemini_generate_image with prompt → Returns image path and description ``` ### gemini_edit_image Edit an existing image with text instructions. **Parameters:** | Param | Type | Required | Description | |-------|------|----------|-------------| | `imagePath` | string | Yes | Path to the image file to edit | | `prompt` | string | Yes | Edit instructions | **Returns:** Modified image data + file path **Example:** ``` User: "Remove the background from ~/Documents/photo.png" → Claude calls gemini_edit_image with path and instruction ``` ### gemini_chat Multi-turn visual conversation maintaining session context. **Par
# Post-Processing Pipeline Reference > Load this on-demand when the user needs image manipulation after generation. ## Prerequisites Check availability before using: ```bash which magick # ImageMagick 7 (preferred) which convert # ImageMagick 6 (fallback) which ffmpeg # For video/animation ``` Install ImageMagick if not present: `sudo apt install imagemagick` (Debian/Ubuntu) or `brew install imagemagick` (macOS). ## Common Operations ### Resize for Platforms ```bash # Instagram post (1080x1080) magick input.png -resize 1080x1080^ -gravity center -extent 1080x1080 instagram.png # Twitter/X header (1500x500) magick input.png -resize 1500x500^ -gravity center -extent 1500x500 twitter-header.png # YouTube thumbnail (1280x720) magick input.png -resize 1280x720^ -gravity center -extent 1280x720 youtube-thumb.png # LinkedIn banner (1584x396) magick input.png -resize 1584x396^ -gravity center -extent 1584x396 linkedin-banner.png # Favicon (multi-size ICO) magick input.png -resize 32x32 favicon.ico ``` ### Background Removal (Transparency) ```bash # Remove solid white background magick input.png -fuzz 10% -transparent white output.png # Remove solid color background (s
# Brand/Style Presets Reference
> Load this on-demand when the user asks about presets or brand consistency.
## Preset Schema
Each preset is stored as `~/.banana/presets/NAME.json`:
```json
{
"name": "tech-saas",
"description": "Clean tech SaaS brand",
"colors": ["#2563EB", "#1E40AF", "#F8FAFC"],
"style": "clean minimal tech illustration, flat vectors, soft shadows",
"typography": "bold geometric sans-serif",
"lighting": "bright diffused studio, no harsh shadows",
"mood": "professional, trustworthy, modern",
"default_ratio": "16:9",
"default_resolution": "2K"
}
```
## Example Presets
### tech-saas
- **Colors:** #2563EB, #1E40AF, #F8FAFC (blue + white)
- **Style:** Clean minimal tech illustration, flat vectors, soft shadows
- **Typography:** Bold geometric sans-serif
- **Mood:** Professional, trustworthy, modern
### luxury-brand
- **Colors:** #1A1A1A, #C9A96E, #FAFAF5 (black + gold + cream)
- **Style:** Elegant high-end photography, rich textures, deep contrast
- **Typography:** Thin elegant serif, generous letter-spacing
- **Mood:** Exclusive, sophisticated, aspirational
### editorial-magazine
- **Colors:** #000000, #FFFFFF, #FF3B30 (black + white + accent# Prompt Engineering Reference: Claude Banana > Load this on-demand when constructing complex prompts or when the user > asks about prompt techniques. Do NOT load at startup. > > Package prompt guidance. Do not cite this as aligned with a Google-owned prompting guide unless a current source is verified. ## Table of Contents - [The 6-Component Reasoning Brief](#the-6-component-reasoning-brief) -- Subject, Action, Context, Composition, Style, Technical - [Domain Mode Modifier Libraries](#domain-mode-modifier-libraries) -- Photography, product, editorial, infographic modifiers - [Advanced Techniques](#advanced-techniques) -- Negative prompting, iterative refinement, batch variation - [Prompt Adaptation Rules](#prompt-adaptation-rules) -- Model-specific adjustments - [Common Prompt Mistakes](#common-prompt-mistakes) -- Anti-patterns to avoid - [Proven Prompt Templates](#proven-prompt-templates) -- Ready-to-use templates by use case - [Safety Filter Rephrase Strategies](#safety-filter-rephrase-strategies) -- Workarounds for blocked prompts ## The 6-Component Reasoning Brief Every image prompt should contain these components, written as natural narrative paragraphs, NEVER as comma-s
# SEO Image Presets
Pre-configured presets for common SEO image use cases. These map to banana's
preset format (see `references/presets.md` for schema details).
## Preset Templates
### og-default:Standard OG/Social Preview
```json
{
"name": "og-default",
"description": "Clean, professional OG image for social sharing",
"aspect_ratio": "16:9",
"resolution": "1K",
"domain_mode": "Product",
"style": {
"colors": ["#FFFFFF", "#F5F5F5"],
"mood": "Professional, clean, trustworthy",
"lighting": "Bright, even studio lighting with soft shadows",
"typography": "Modern sans-serif if text needed"
},
"post_processing": "magick output.png -resize 1200x630^ -gravity center -extent 1200x630 output-og.webp"
}
```
### blog-hero:Widescreen Blog Hero Image
```json
{
"name": "blog-hero",
"description": "Dramatic widescreen hero for blog posts",
"aspect_ratio": "16:9",
"resolution": "2K",
"domain_mode": "Cinema",
"style": {
"colors": ["contextual"],
"mood": "Dramatic, atmospheric, editorial",
"lighting": "Golden hour or moody blue hour, directional",
"typography": "None:image only"
},
"post_processing": "magick output.png -quality 85 o--- name: seo-image-gen description: "AI image generation for SEO assets: OG/social preview images, blog hero images, schema images, product photography, infographics. Powered by Gemini via nanobanana-mcp. Requires banana extension installed. Use when user says \"generate image\", \"OG image\", \"social preview\", \"hero image\", \"blog image\", \"product photo\", \"infographic\", \"seo image\", \"create visual\", \"image-gen\", \"favicon\", \"schema image\", \"pinterest pin\", \"generate visual\", \"banner\", or \"thumbnail\"." argument-hint: "[og|hero|product|infographic|custom|batch] <description>" user-invocable: true license: MIT compatibility: "Requires nanobanana MCP server" metadata: author: AgriciDaniel version: "2.2.5" category: seo --- # SEO Image Gen: AI Image Generation for SEO Assets (Extension) 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. ## Architecture Note This extension is built on [Claude Banana](https://github.com/AgriciDaniel/banana-claude), the standalone AI image generation skill for Clau
Read 9 of 9 text files in the skill.
Installfrom the directory
npx skills add https://github.com/agricidaniel/claude-seoInstalling happens there, not here. We are an index with an opinion, not a mirror.
What is inside itfrom the directory
9 files — names only. The directory does not report sizes.
What the auditors foundfrom the directory
A skill is instructions your agent will follow and scripts it may run, so who checked it matters as much as how many people installed it.
Installs, reading by readingours
Axis starts at 4.3k, not zero — the range is 4.3k to 4.4k.