seo-image-gen

Technical SEO

agricidaniel/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

ours

The 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).

What it produces
  • 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
What it needs
  • 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
Paid services

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.

Registration

optional

References mention the GOOGLE_AI_API_KEY environment variable needed for Gemini API access, indicating an account/key may be required.

Limits and human review

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
static findingsstatic_finding
[{"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"}]
skills/seo-image-gen/references/cost-tracking.md1–42
# 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.
skills/seo-image-gen/references/gemini-models.md1–55 · excerpt truncated
# 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** 
skills/seo-image-gen/references/mcp-tools.md1–81 · excerpt truncated
# 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
skills/seo-image-gen/references/post-processing.md1–95 · excerpt truncated
# 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
skills/seo-image-gen/references/presets.md1–70
# 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
skills/seo-image-gen/references/prompt-engineering.md1–62 · excerpt truncated
# 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
skills/seo-image-gen/references/seo-image-presets.md1–91 · excerpt truncated
# 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
skills/seo-image-gen/SKILL.md1–174
---
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.

Checked September 2026 · GPTWritten from the skill's published files. Check the source before relying on access or cost details.

Installfrom the directory

npx skills add https://github.com/agricidaniel/claude-seo

Installing happens there, not here. We are an index with an opinion, not a mirror.

What is inside itfrom the directory

LICENSE.txt
references/cost-tracking.md
references/gemini-models.md
references/mcp-tools.md
references/post-processing.md
references/presets.md
references/prompt-engineering.md
references/seo-image-presets.md
SKILL.md

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.

Gen Agent Trust HubThis skill provides a specialized toolkit for generating SEO-optimized images using Gemini. It includes integrated cost tracking, brand preset management, and post-processing workflows using ImageMagick and FFmpeg. The skill relies on local scripts and a well-known MCP server for its core functionality.May 11, 2026 · SAFEpass
Socket2 alerts: gptAnomalyMay 11, 2026warn
SnykRisk: LOW · No issuesMay 11, 2026 · LOWpass
ZeroLeaksScore: 93/100 · 2 sections analyzedApr 16, 2026 · NONEpass

Installs, reading by readingours

4.3k
4.4k
Aug 30, 202636 readings over 5 days, drawn as the last reading of each day.Sep 3, 2026

Axis starts at 4.3k, not zero — the range is 4.3k to 4.4k.

Filed alongside itours