generate-image
Verifiedby davila7 · Updated Apr 16, 2026
Generate or edit images using AI models (FLUX, Gemini). Use for general-purpose image generation including photos, illustrations, artwork, visual assets, concept art, and any image that isn't a technical diagram or schematic. For flowcharts, circuits, pathways, and technical diagrams, use the scientific-schematics skill instead.
See It In Action
Let me start by exploring the project structure to understand the codebase and find the relevant files.
I can see the existing header art — it's a smooth, colorful gradient blend (blue, teal, purple, coral). I'll now use the image editing script to transform it into a polished widescreen hero illustration for the homepage, keeping the color palette and elevating it into something launch-ready.
There's a small bug in the script when the response content is None. Let me fix that and retry.
The Gemini model didn't return an image. Let me try with FLUX.2 Pro which is more reliable for edits.
The FLUX model returns images in a different location (message.images[]). Let me fix the script to handle this response format.
The debug output is truncated. Let me temporarily increase it to see the full image object structure.
Now I can see the structure. The images are nested as message.images[].image_url.url. My handler for dicts was checking for img_data.get("url") but the actual structure has img_data.get("image_url", {}).get("url"). Let me fix this.
Image generated successfully. Let me verify the result:
The hero image is looking great — it keeps the original blue/teal/purple/coral color palette and adds layered geometric shapes, glowing orbs, flowing curves, and fine grid lines. Here's a summary of what was done:
What's ready for the 3pm review:
- File:
assets/hero-homepage.png(~1 MB, high resolution) - Source: Edited from the existing
assets/header-abstract.pngheader art - Style: Polished illustration with layered translucent shapes, soft glowing light points, sweeping curves, and subtle grid-line details — modern, premium, tech-forward
- Color palette: Preserved from the original (blue → teal → purple → coral gradient)
- Composition: Widescreen with open space on the center-left, ready for headline text overlay
Script fix applied: I also fixed a bug in scripts/generate_image.py where the FLUX model's message.images[] response format (nested image_url.url objects) wasn't being parsed correctly, and a NoneType iteration error when content was null. Both are fixed now.
External Tools
| Tool | Type |
|---|---|
| python3 | binary |
Permissions
| Scope | Description |
|---|---|
| filesystem:read | |
| filesystem:write | |
| network:outbound | |
| process:spawn | |
| env:read |
SKILL.md
Generate Image
Generate and edit high-quality images using OpenRouter's image generation models including FLUX.2 Pro and Gemini 3 Pro.
When to Use This Skill
Use generate-image for:
- Photos and photorealistic images
- Artistic illustrations and artwork
- Concept art and visual concepts
- Visual assets for presentations or documents
- Image editing and modifications
- Any general-purpose image generation needs
Use scientific-schematics instead for:
- Flowcharts and process diagrams
- Circuit diagrams and electrical schematics
- Biological pathways and signaling cascades
- System architecture diagrams
- CONSORT diagrams and methodology flowcharts
- Any technical/schematic diagrams
Quick Start
Use the scripts/generate_image.py script to generate or edit images:
# Generate a new image
python scripts/generate_image.py "A beautiful sunset over mountains"
# Edit an existing image
python scripts/generate_image.py "Make the sky purple" --input photo.jpg
This generates/edits an image and saves it as generated_image.png in the current directory.
API Key Setup
CRITICAL: The script requires an OpenRouter API key. Before running, check if the user has configured their API key:
- Look for a
.envfile in the project directory or parent directories - Check for
OPENROUTER_API_KEY=<key>in the.envfile - If not found, inform the user they need to:
- Create a
.envfile withOPENROUTER_API_KEY=your-api-key-here - Or set the environment variable:
export OPENROUTER_API_KEY=your-api-key-here - Get an API key from: https://openrouter.ai/keys
- Create a
The script will automatically detect the .env file and provide clear error messages if the API key is missing.
Model Selection
Default model: google/gemini-3-pro-image-preview (high quality, recommended)
Available models for generation and editing:
google/gemini-3-pro-image-preview- High quality, supports generation + editingblack-forest-labs/flux.2-pro- Fast, high quality, supports generation + editing
Generation only:
black-forest-labs/flux.2-flex- Fast and cheap, but not as high quality as pro
Select based on:
- Quality: Use gemini-3-pro or flux.2-pro
- Editing: Use gemini-3-pro or flux.2-pro (both support image editing)
- Cost: Use flux.2-flex for generation only
Common Usage Patterns
Basic generation
python scripts/generate_image.py "Your prompt here"
Specify model
python scripts/generate_image.py "A cat in space" --model "black-forest-labs/flux.2-pro"
Custom output path
python scripts/generate_image.py "Abstract art" --output artwork.png
Edit an existing image
python scripts/generate_image.py "Make the background blue" --input photo.jpg
Edit with a specific model
python scripts/generate_image.py "Add sunglasses to the person" --input portrait.png --model "black-forest-labs/flux.2-pro"
Edit with custom output
python scripts/generate_image.py "Remove the text from the image" --input screenshot.png --output cleaned.png
Multiple images
Run the script multiple times with different prompts or output paths:
python scripts/generate_image.py "Image 1 description" --output image1.png
python scripts/generate_image.py "Image 2 description" --output image2.png
Script Parameters
prompt(required): Text description of the image to generate, or editing instructions--inputor-i: Input image path for editing (enables edit mode)--modelor-m: OpenRouter model ID (default: google/gemini-3-pro-image-preview)--outputor-o: Output file path (default: generated_image.png)--api-key: OpenRouter API key (overrides .env file)
Example Use Cases
For Scientific Documents
# Generate a conceptual illustration for a paper
python scripts/generate_image.py "Microscopic view of cancer cells being attacked by immunotherapy agents, scientific illustration style" --output figures/immunotherapy_concept.png
# Create a visual for a presentation
python scripts/generate_image.py "DNA double helix structure with highlighted mutation site, modern scientific visualization" --output slides/dna_mutation.png
For Presentations and Posters
# Title slide background
python scripts/generate_image.py "Abstract blue and white background with subtle molecular patterns, professional presentation style" --output slides/background.png
# Poster hero image
python scripts/generate_image.py "Laboratory setting with modern equipment, photorealistic, well-lit" --output poster/hero.png
For General Visual Content
# Website or documentation images
python scripts/generate_image.py "Professional team collaboration around a digital whiteboard, modern office" --output docs/team_collaboration.png
# Marketing materials
python scripts/generate_image.py "Futuristic AI brain concept with glowing neural networks" --output marketing/ai_concept.png
Error Handling
The script provides clear error messages for:
- Missing API key (with setup instructions)
- API errors (with status codes)
- Unexpected response formats
- Missing dependencies (requests library)
If the script fails, read the error message and address the issue before retrying.
Notes
- Images are returned as base64-encoded data URLs and automatically saved as PNG files
- The script supports both
imagesandcontentresponse formats from different OpenRouter models - Generation time varies by model (typically 5-30 seconds)
- For image editing, the input image is encoded as base64 and sent to the model
- Supported input image formats: PNG, JPEG, GIF, WebP
- Check OpenRouter pricing for cost information: https://openrouter.ai/models
Image Editing Tips
- Be specific about what changes you want (e.g., "change the sky to sunset colors" vs "edit the sky")
- Reference specific elements in the image when possible
- For best results, use clear and detailed editing instructions
- Both Gemini 3 Pro and FLUX.2 Pro support image editing through OpenRouter
Integration with Other Skills
- scientific-schematics: Use for technical diagrams, flowcharts, circuits, pathways
- generate-image: Use for photos, illustrations, artwork, visual concepts
- scientific-slides: Combine with generate-image for visually rich presentations
- latex-posters: Use generate-image for poster visuals and hero images
FAQ
What does generate-image do?
Generate or edit images using AI models (FLUX, Gemini). Use for general-purpose image generation including photos, illustrations, artwork, visual assets, concept art, and any image that isn't a technical diagram or schematic. For flowcharts, circuits, pathways, and technical diagrams, use the scientific-schematics skill instead.
When should I use generate-image?
Use it when you need a repeatable workflow that produces image output, code diff.
What does generate-image output?
In the evaluated run it produced image output, code diff.
How do I install or invoke generate-image?
npx skills add https://github.com/davila7/claude-code-templates --skill generate-image
Which agents does generate-image support?
Claude Code
What tools, channels, or permissions does generate-image need?
It uses python3; channels commonly include image, diff; permissions include filesystem:read, filesystem:write, network:outbound, process:spawn, env:read.
Is generate-image safe to install?
Static analysis marked this skill as medium risk; review side effects and permissions before enabling it.
How is generate-image different from an MCP or plugin?
A skill packages instructions and workflow conventions; tools, MCP servers, and plugins are dependencies the skill may call during execution.
Does generate-image outperform not using a skill?
About generate-image
When to use generate-image
When you need to create a new illustration, photo-like image, or visual asset from a prompt. When you want to edit an existing image by describing the desired changes. When producing visuals for slides, posters, docs, or marketing materials.
When generate-image is not the right choice
When the task is to create technical diagrams, schematics, flowcharts, or scientific pathways. When no OpenRouter API key is available or outbound API access is not allowed.
What it produces
Produces image output and code diff.
Install
npx skills add https://github.com/davila7/claude-code-templates --skill generate-imageInvoke: Ask Claude Code to use generate-image for the task.
