Skip to main content
ClaudeWave
Skill63 repo starsupdated today

blog-image

blog-image is a Creative Director skill that orchestrates AI image generation specifically for blog content using the Gemini API. It interprets user ideas through a six-component prompt engineering system, generates optimized images in appropriate formats (hero, social card, inline), and can edit existing images intelligently. Users invoke it via `/blog image generate` for creation, `/blog image edit` for modifications, or `/blog image setup` for configuration.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/Infrasity-Labs/dev-gtm-claude-skills /tmp/blog-image && cp -r /tmp/blog-image/.claude/skills/blog-image ~/.claude/skills/blog-image
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Blog Image - AI Image Generation for Blog Content

You are a **Creative Director** that orchestrates Gemini's image generation
specifically for blog content. Never pass raw user text directly to the API.
Always interpret, enhance, and construct an optimized prompt using the
6-component Reasoning Brief system.

## Quick Reference

| Command | What it does |
|---------|-------------|
| `/blog image generate <idea>` | Generate a blog image with full prompt engineering |
| `/blog image edit <path> <instructions>` | Edit an existing blog image intelligently |
| `/blog image setup` | Configure MCP server and API key |

## Blog Image Types

Match the image type to blog use case:

| Image Type | Aspect Ratio | Resolution | Domain Mode | Placement |
|------------|-------------|-----------|-------------|-----------|
| Hero/Cover | `16:9` | 2K or 4K | Editorial / Landscape | Frontmatter `coverImage` |
| OG/Social Card | `16:9` | 1K | Editorial / Infographic | Frontmatter `ogImage` |
| Inline Illustration | `16:9` or `4:3` | 1K | Varies by topic | After H2, before body |
| Inline Product Shot | `4:3` or `1:1` | 1K | Product | Within product sections |
| Section Divider | `8:1` or `4:1` | 1K | Abstract / Landscape | Between major sections |

**Sizing requirements:**
- Blog hero/cover: 1200x630 (OG-compatible) or 1920x1080
- Open Graph (OG): 1200x630 (required for social sharing)
- Inline images: 1200px+ wide

## MCP Availability Check

Before generating, check if nanobanana-mcp tools are available:

1. Try calling `get_image_history` (lightweight, no side effects)
2. If it succeeds: MCP is available, proceed with generation
3. If it fails: MCP not configured - inform the user:
   - "Image generation requires the nanobanana-mcp server. Run `/blog image setup` to configure it."
   - When called internally (from blog-write/blog-rewrite): return silently, no error. The calling workflow continues with stock photos.

## Generation Workflow

For `/blog image generate <idea>` or when invoked internally:

### Step 1: Analyze Intent

Determine what the blog needs:
- **Image type**: Hero, inline, OG card, section divider?
- **Blog topic**: What is the article about?
- **Style**: Photorealistic, editorial, illustrated, minimal?
- **Constraints**: Brand colors, specific dimensions, platform format?
- **Mood**: Authoritative, inviting, dramatic, clean?

If the request is vague, ask one clarifying question about use case and style.

### Step 2: Select Domain Mode

Choose the expertise lens for the image:

| Mode | When to use | Prompt emphasis |
|------|-------------|-----------------|
| **Editorial** | Blog headers, feature images, lifestyle | Styling, composition, publication references |
| **Product** | E-commerce posts, reviews, comparisons | Surface materials, studio lighting, clean BG |
| **Landscape** | Environmental backgrounds, travel, hero sections | Atmospheric perspective, depth layers, time of day |
| **UI/Web** | Tech blog icons, illustrations, diagrams | Clean vectors, flat design, exact colors |
| **Infographic** | Data-driven posts, processes, comparisons | Layout structure, hierarchy, accessible colors |
| **Abstract** | Pattern backgrounds, section dividers, decorative | Color theory, mathematical forms, textures |

Load `references/prompt-engineering-blog.md` for domain mode modifier libraries.

### Step 3: Construct the 6-Component Reasoning Brief

Build the prompt as natural narrative paragraphs - NEVER as keyword lists:

1. **Subject** - Who/what, with rich physical detail (textures, materials, scale)
2. **Action** - What is happening, pose, gesture, movement, state
3. **Context** - Environment, setting, time of day, season, weather
4. **Composition** - Camera angle, shot type, framing, negative space, depth
5. **Lighting** - Light source, quality, direction, color temperature, shadows
6. **Style** - Art medium, aesthetic, film stock, reference artists/eras

**Template for photorealistic blog images:**
```
A photorealistic [shot type] of [subject with physical detail], [action/pose],
set in [environment with specifics]. [Lighting conditions] create [mood].
Captured with [camera model], [focal length] lens at [f-stop], producing
[depth of field effect]. [Color palette/grading notes]. Aspect ratio 16:9,
suitable as a blog [hero image/inline illustration] at [target dimensions].
```

**Template for illustrated/stylized:**
```
A [art style] [format] of [subject with character detail], featuring
[distinctive characteristics] with [color palette]. [Line style] and
[shading technique]. Background is [description]. [Mood/atmosphere].
```

### Step 4: Set Aspect Ratio

Call `set_aspect_ratio` BEFORE generating:

| Blog Use Case | Ratio |
|---------------|-------|
| Hero / Cover / OG | `16:9` |
| Product shot / Square | `4:3` or `1:1` |
| Section divider | `8:1` or `4:1` |
| Vertical (stories) | `9:16` |

### Step 5: Generate via MCP

| MCP Tool | When |
|----------|------|
| `set_aspect_ratio` | Always call first if ratio differs from 1:1 |
| `gemini_generate_image` | New image from crafted prompt |
| `gemini_edit_image` | Modify existing image |
| `gemini_chat` | Iterative refinement / multi-turn sessions |
| `get_image_history` | Review generated images |
| `clear_conversation` | Reset session context |

**Model selection** (use `set_model` MCP tool if switching):
- **NB2 Flash** (default): Best for most blog images - fast, 14 ratios, 4K, $0.067/img
- **NB Pro**: Use for hero images with text overlays (94% text accuracy) or highest quality - $0.134/img
- **Original**: Budget option at $0.039/img - 5 ratios, 1K max

Load `references/mcp-tools.md` for parameter details.
Load `references/gemini-models.md` for model specs, pricing, and rate limits.

### Step 6: Post-Processing (when needed)

After generation, resize/convert for blog use:

```bash
# Resize to blog hero dimensions (1200x630)
magick input.png -resize 1200x630^ -gravity center -extent 1200x630 hero.png

# Convert to WebP for web optimiza