skills/openrouter-images/SKILL.md
Generate images from text prompts and edit existing images using OpenRouter's image generation models. Use when the user asks to create, generate, or make an image, picture, or illustration from a description, or wants to edit, modify, transform, or alter an existing image with a text prompt.
npx skillsauth add openrouterteam/skills openrouter-imagesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate images from text prompts and edit existing images via OpenRouter's chat completions API with image modalities.
The OPENROUTER_API_KEY environment variable must be set. Get a key at https://openrouter.ai/keys
cd <skill-path>/scripts && npm install
Pick the right script based on what the user is asking:
| User wants to... | Script | Example |
|---|---|---|
| Generate an image from a text description | generate.ts "prompt" | "Create an image of a sunset over mountains" |
| Generate with specific aspect ratio | generate.ts "prompt" --aspect-ratio 16:9 | "Make a wide landscape image of a forest" |
| Generate with a different model | generate.ts "prompt" --model <id> | "Generate using gemini-2.5-flash-image" |
| Edit or modify an existing image | edit.ts path "prompt" | "Make the sky purple in photo.png" |
| Transform an image with instructions | edit.ts path "prompt" | "Add a party hat to the animal in this image" |
Create a new image from a text prompt:
cd <skill-path>/scripts && npx tsx generate.ts "a red panda wearing sunglasses"
cd <skill-path>/scripts && npx tsx generate.ts "a futuristic cityscape at night" --aspect-ratio 16:9
cd <skill-path>/scripts && npx tsx generate.ts "pixel art of a dragon" --output dragon.png
cd <skill-path>/scripts && npx tsx generate.ts "a watercolor painting" --model google/gemini-2.5-flash-image
| Flag | Description | Default |
|---|---|---|
| --model <id> | OpenRouter model ID | google/gemini-3.1-flash-image-preview |
| --output <path> | Output file path | image-YYYYMMDD-HHmmss.png |
| --aspect-ratio <r> | Aspect ratio (e.g. 16:9, 1:1, 4:3) | Model default |
| --image-size <s> | Image size (e.g. 1K, 2K) | Model default |
Modify an existing image with a text prompt:
cd <skill-path>/scripts && npx tsx edit.ts photo.png "make the sky purple"
cd <skill-path>/scripts && npx tsx edit.ts avatar.jpg "add a party hat" --output avatar-hat.png
cd <skill-path>/scripts && npx tsx edit.ts scene.png "convert to watercolor style" --model google/gemini-2.5-flash-image
| Flag | Description | Default |
|---|---|---|
| --model <id> | OpenRouter model ID | google/gemini-3.1-flash-image-preview |
| --output <path> | Output file path | image-YYYYMMDD-HHmmss.png |
| --aspect-ratio <r> | Aspect ratio (e.g. 16:9, 1:1, 4:3) | Model default |
| --image-size <s> | Image size (e.g. 1K, 2K) | Model default |
Supported input formats: .png, .jpg, .jpeg, .webp, .gif
{
"model": "google/gemini-3.1-flash-image-preview",
"prompt": "a red panda wearing sunglasses",
"images_saved": ["/absolute/path/to/image-20260305-143022.png"],
"count": 1
}
{
"model": "google/gemini-3.1-flash-image-preview",
"source_image": "photo.png",
"prompt": "make the sky purple",
"images_saved": ["/absolute/path/to/image-20260305-143055.png"],
"count": 1
}
Image generation uses POST /api/v1/responses with modalities: ["image", "text"]. See the Responses API reference and image generation guide for full request details.
The image-specific output item type is image_generation_call — this is not obvious from the general Responses API docs:
{
"type": "image_generation_call",
"id": "imagegen-abc123",
"status": "completed",
"result": "<base64-encoded image data>"
}
This appears alongside standard message output items in the output array. Text and image outputs may each be absent depending on the model and prompt.
The default model is google/gemini-3.1-flash-image-preview (Nano Banana 2). To use a different model, pass --model <id> with any OpenRouter model ID that supports image output modalities.
Use the openrouter-models skill to discover image-capable models:
cd <openrouter-models-skill-path>/scripts && npx tsx search-models.ts --modality image
development
Answer natural-language questions about a user's OpenRouter usage data — spend, request volume, model breakdown, latency, token usage, and cost optimization. Use when the user asks about their API usage, billing, costs, top models, traffic patterns, or wants to optimize their OpenRouter spend.
data-ai
Discover the OpenRouter analytics schema — available metrics, dimensions, filter operators, and granularities. Use when you need to know what analytics data is queryable, what dimensions you can break down by, or how to map a user's question to the right metric/dimension combination.
development
Construct and execute analytics queries against the OpenRouter API — full parameter reference for metrics, dimensions, filters, time ranges, ordering, and pagination. Use when building or debugging an analytics query, understanding the request/response shape, or handling query errors.
development
Retrieve detailed metadata and stored content for individual OpenRouter generations. Use when the user wants to inspect a specific request — its cost, latency, token usage, provider routing, or the actual prompt/completion text — or is debugging a failed or unexpected generation.