mcpbeat

Openrouter Text2image

qinghonglin/data2story-openrouter-text2image

Generate images via OpenRouter. Default model openai/gpt-5.4-image-2; any image-modality model can be passed via --model.

This is a copy. The original lives at qinghonglin/openrouter-text2image.

1k tokens
context cost
the whole folder, loaded on every use
3
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
149
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/QinghongLin/data2story-skill --skill openrouter-text2image

The instruction itself

4 sections, as written by the author

openrouter-text2image

Text → image via OpenRouter. Default model: openai/gpt-5.4-image-2.

Other supported models (override with --model):

  • google/gemini-3.1-flash-image-preview (Nano Banana 2)
  • any other OpenRouter image-modality model

Usage

Resolve TOOL_DIR = the directory containing this SKILL.md. Commands below use TOOL_DIR as a symbolic placeholder; replace it with the resolved, quoted path before running Bash.

export OPENROUTER_API_KEY=sk-or-v1-...

python3 TOOL_DIR/scripts/generate_image.py \
  --prompt "Editorial illustration: a neon-lit skateboard at dusk, dramatic shadows" \
  --download PROJECT_DIR/assets/teaser.png

Flags

| Flag | Default | Description |

|---|---|---|

| --prompt | required | Text prompt |

| --download | required | Output file path (PNG) |

| --model | openai/gpt-5.4-image-2 | Override with any OpenRouter image-modality model |

Notes

  • Request uses POST /api/v1/chat/completions with modalities: ["image","text"].
  • Images are returned as base64 data URLs in the assistant message; the script decodes and writes to disk.
  • For edits/inpainting, include messages with both text and image-URL content parts — the script currently supports text-only prompts.

How to use it

Copy the folder

Take qinghonglin/data2story-openrouter-text2image from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.