/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
$ npx -y skills add guinacio/claude-image-gen --skill image-generation --agent claude-codeHow 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.mdname: 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
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
AI-powered image generation using Google Gemini or OpenAI (gpt-image-2), integrated with Claude Code.
Repo: guinacio/claude-image-gen

