Skip to content
Content
Skill

/image-generation

Generates professional AI images using Google Gemini. ALWAYS invoke this skill when building websites, landing pages, slide decks, presentations, or any task needing visual content. Invoke IMMEDIATELY when you detect image needs - don't wait for the user to ask. This skill

From plugin
media-pipeline
641 skill1 MCP
Install
$ npx -y skills add guinacio/claude-image-gen --skill image-generation --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/image-generation

Context preview

The summary Claude sees to decide when to auto-load this skill.

Generates professional AI images using Google Gemini. ALWAYS invoke this skill when building websites, landing pages, slide decks, presentations, or any task needing visual content. Invoke IMMEDIATELY when you detect image needs - don't wait for the user to ask. This skill

SKILL.md

image-generation.SKILL.md
name: image-generation
description: Generates professional AI images using Google Gemini. ALWAYS invoke this skill when building websites, landing pages, slide decks, presentations, or any task needing visual content. Invoke IMMEDIATELY when you detect image needs - don't wait for the user to ask. This skill handles prompt optimization and aspect ratio selection.

Image Generation Skill

Generate professional AI images using Google Gemini via the bundled CLI script.

When to Invoke This Skill

Invoke immediately when:

**Web Development**

  • Hero sections without images
  • Feature illustrations needed
  • Placeholder images in code (`placeholder.jpg`, `stock-photo.png`)
  • Empty visual sections (`<section class="hero">` without images)
  • Landing pages and marketing sites

**Presentations & Documents**

  • Cover images and headers
  • Conceptual diagrams
  • Section dividers

**Applications**

  • Onboarding illustrations
  • Empty state graphics
  • Error page visuals

Using the CLI

Run the bundled CLI script via bash:

node "${CLAUDE_PLUGIN_ROOT}/mcp-server/build/cli.bundle.js" \
  --prompt "Your detailed image description" \
  --output "./path/to/output.png" \
  --aspect-ratio "16:9"

Parameters

| Flag | Required | Default | Description | |------|----------|---------|-------------| | --prompt, -p | Yes | - | Detailed image description | | --output, -o | No | auto-generated | Output file path | | --aspect-ratio, -a | No | 1:1 | 1:1, 16:9, 9:16, 4:3, 3:4, 2:3, 3:2 | | --model, -m | No | provider default | Model to use; routes the provider (gpt-image*/dall-e* → OpenAI, others → Gemini) | | --reference-images, -r | No | - | Reference image paths (PNG/JPEG/WebP, repeatable or comma-separated, max 5) | | --mask | No | - | PNG mask marking the region to repaint; OpenAI only, requires --reference-images | | --background, -b | No | provider default | auto, transparent or opaque; OpenAI only. `gpt-image-2` refuses `transparent` and is rejected before the request is sent | | --output-format, -f | No | provider default | png, jpeg or webp; OpenAI only | | --output-dir, -d | No | current directory | Output directory |

Environment Variables

| Variable | Required | Description | |----------|----------|-------------| | GEMINI_API_KEY | At least one of GEMINI_API_KEY / OPENAI_API_KEY | Your Gemini API key | | OPENAI_API_KEY | At least one of GEMINI_API_KEY / OPENAI_API_KEY | Your OpenAI API key | | GEMINI_DEFAULT_MODEL | No | Preferred default Gemini model | | OPENAI_DEFAULT_MODEL | No | Preferred default OpenAI model (default: gpt-image-2) | | IMAGE_PROVIDER | No | gemini or openai — provider used when --model is omitted | | MEDIA_PIPELINE_LOG_LEVEL | No | Logging level for stderr diagnostics |

Output

The CLI outputs JSON:

{"success": true, "filePath": "/path/to/generated-image.png"}

Or on error:

{"success": false, "error": "Error message"}

Aspect Ratio Selection

  • **16:9** - Hero images, website headers, presentations
  • **1:1** - Social media, thumbnails, profile images
  • **9:16** - Mobile stories, vertical banners
  • **4:3** - Blog posts, general web content
  • **3:2** - Photography-style images

Prompt Crafting

Use this formula for effective prompts:

[Style] [Subject] [Composition] [Context/Atmosphere]

Examples

**Hero Image for Tech Startup**

Minimalist 3D illustration of abstract geometric shapes floating in space,
soft gradient background from deep purple to electric blue, subtle glow effects,
modern professional aesthetic, wide composition for website header

**E-commerce Product**

Clean product photography of modern wireless headphones on white marble surface,
soft studio lighting from left, subtle shadows, high-end minimalist aesthetic,
centered composition

**Blog Post Header**

Aerial photography of winding river through autumn forest, golden hour lighting,
warm color palette with oranges and reds, cinematic wide shot, serene atmosphere

**App Illustration**

Flat vector illustration of person organizing digital files on floating screens,
soft pastel colors, isometric perspective, clean lines, friendly approachable style

Pattern Detection

**Automatically invoke this skill** when you see:

<!-- Placeholder detection -->
<img src="placeholder.jpg" alt="Hero">
<!-- Action: Invoke skill and generate a custom hero image -->

<!-- Empty visual section -->
<section class="features">
  <h2>Our Features</h2>
  <!-- No images -->
</section>
<!-- Action: Invoke skill to create feature illustrations -->
/* Generic stock reference */
.banner { background: url('stock-image.jpg'); }
/* Action: Invoke skill to create a unique background */

Workflow

1. **Detect Need** - Identify visual content requirements (hero, illustrations, backgrounds) 2. **Invoke Skill** - Use the Skill tool with `skill: "image-generation"` immediately 3. **Analyze Context** - Understand project style and brand 4. **Craft Prompt** - Build detailed prompt using the formula above 5. **Generate** - Run the CLI script with optimized parameters 6. **Integrate** - Place image in project with proper references

Model Selection

The CLI is dual-provider: the `--model` value routes the request — model names starting with `gpt-image` or `dall-e` go to OpenAI, everything else goes to Gemini. When `--model` is omitted, `IMAGE_PROVIDER` picks which provider's default model is used.

  • **Gemini** (`GEMINI_DEFAULT_MODEL`, e.g. `gemini-3-pro-image-preview`) — models are fetched dynamically from the Gemini API; the CLI falls back to the first discovered image-capable model if no default is set. Prefer Gemini for iterative creative work and when relying on the dynamically discovered model catalog.
  • **OpenAI** (`OPENAI_DEFAULT_MODEL`, default `gpt-image-2`) — use when you specifically need OpenAI's `gpt-image-2` model, or when only an OpenAI API key is configured. Note OpenAI's image sizes are limited to `1024x10
Read more
Ships withmedia-pipeline

AI-powered image generation using Google Gemini or OpenAI (gpt-image-2), integrated with Claude Code.

Get the whole plugin
Stats
64
Stars
9
Forks
Active
Maintenance
JavaScript
Language
MIT
License
6d ago
Last commit
8mo ago
Created

Repo: guinacio/claude-image-gen