skills/openrouterteam/skills/openrouter-images

openrouter-images

SKILL.md

OpenRouter Images

Generate images from text prompts and edit existing images via OpenRouter's chat completions API with image modalities.

Prerequisites

The OPENROUTER_API_KEY environment variable must be set. Get a key at https://openrouter.ai/keys

First-Time Setup

cd <skill-path>/scripts && npm install

Decision Tree

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"

Generate 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

Options

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

Edit Image

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

Options

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

Output Format

generate.ts

{
  "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
}

edit.ts

{
  "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
}

Using a Different Model

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

Presenting Results

  • After generating or editing, display the saved image to the user
  • Include the model used and any text response the model provided (printed to stderr)
  • If multiple images are returned, show all of them
  • When the user doesn't specify an output path, tell them where the file was saved
  • For edit operations, mention the source image that was modified
Weekly Installs
17
GitHub Stars
2
First Seen
11 days ago
Installed on
cursor17
gemini-cli17
opencode17
amp16
cline16
github-copilot16