Character Refs
eternityspring/shuohao-skills
给任何故事里的角色真出参考图(小说改编、自己原创的故事、单独设计一个角色都行,不需要小说原文): 一段话描述角色,拆成分层字段、补全后确认, 先出一张正面全身锚点,其余视图(大头照、90° 侧面、背面、细节、45° 大头照)都只参考这张锚点, 按需分档出图。每张图带标识、可单独重出,重出后自动标出哪些图过期。
Generates images through a 9Router gateway's image endpoint, with model discovery, the request fields and per-provider quirks for OpenAI, Gemini, MiniMax and others.
$ npx skills add decolua/9router --skill 9router-image -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install decolua/9router 9router-image --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/decolua/9router.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/9router-image .claude/skills/9router-image && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "9router-image" agent skill from https://github.com/decolua/9router/tree/master/skills/9router-image into .claude/skills/9router-image/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "9router-image", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/decolua/9router/tree/master/skills/9router-imageType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add decolua/9router --skill 9router-image -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install decolua/9router 9router-image --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/decolua/9router.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/9router-image .agents/skills/9router-image && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "9router-image" agent skill from https://github.com/decolua/9router/tree/master/skills/9router-image into .agents/skills/9router-image/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "9router-image", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add decolua/9router --skill 9router-image -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install decolua/9router 9router-image --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/decolua/9router.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/9router-image .cursor/skills/9router-image && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "9router-image" agent skill from https://github.com/decolua/9router/tree/master/skills/9router-image into .cursor/skills/9router-image/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "9router-image", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/decolua/9router.git --path skills/9router-image--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add decolua/9router --skill 9router-image -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install decolua/9router 9router-image --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/decolua/9router.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/9router-image .gemini/skills/9router-image && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "9router-image" agent skill from https://github.com/decolua/9router/tree/master/skills/9router-image into .gemini/skills/9router-image/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "9router-image", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install decolua/9router 9router-imageInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add decolua/9router --skill 9router-image -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/decolua/9router.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/9router-image .github/skills/9router-image && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "9router-image" agent skill from https://github.com/decolua/9router/tree/master/skills/9router-image into .github/skills/9router-image/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "9router-image", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add decolua/9router --skill 9router-image -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install decolua/9router 9router-image --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/decolua/9router.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/9router-image .opencode/skills/9router-image && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "9router-image" agent skill from https://github.com/decolua/9router/tree/master/skills/9router-image into .opencode/skills/9router-image/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "9router-image", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
9router-imageGenerates images through a 9Router gateway's image endpoint, with model discovery, the request fields and per-provider quirks for OpenAI, Gemini, MiniMax and others.
The skill calls the `/v1/images/generations` endpoint of a 9Router instance, which fronts models from OpenAI, Gemini Imagen, DALL-E, FLUX, MiniMax, SDWebUI, ComfyUI and Codex. It starts by listing available models from `/v1/models/image` and reading per-model options from `/v1/models/info`. A request carries a model and prompt, plus optional count, size, quality and response format.
Responses come back as a URL by default, as base64 JSON, or as raw image bytes when `?response_format=binary` is added, which suits saving a file. A provider table lists the quirks: some models take only a prompt and ignore size and count, the Codex route needs a ChatGPT Plus or Pro plan and streams its result, and edit or image-to-image modes exist for some providers, with asynchronous polling for a few. The skill needs `NINEROUTER_URL`, and `NINEROUTER_KEY` when authentication is on.
Read from SKILL.md and the folder at commit ce4460e. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curljqFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
NINEROUTER_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
9Router Image Generation loads about 830 tokens when it runs. Until then it costs about 66 tokens; SKILL.md has 178 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from decolua/9router at commit ce4460e, republished under its MIT licence (© decolua). 178 words, ~830 tokens.
.claude/skills/9router-image/SKILL.md (or your agent's skills folder).Requires NINEROUTER_URL (and NINEROUTER_KEY if auth enabled). See https://raw.githubusercontent.com/decolua/9router/refs/heads/master/skills/9router/SKILL.md for setup.
curl $NINEROUTER_URL/v1/models/image | jq '.data[].id'
# Per-model params/options (size enum, quality enum, capabilities like edit)
curl "$NINEROUTER_URL/v1/models/info?id=openai/dall-e-3"POST $NINEROUTER_URL/v1/images/generations
| Field | Required | Notes |
|---|---|---|
model | yes | from /v1/models/image |
prompt | yes | image description |
n | no | count (provider-dependent) |
size | no | 1024x1024, 1792x1024, ... |
quality | no | standard / hd (OpenAI) |
response_format | no | url (default) or b64_json |
Add query ?response_format=binary to receive raw image bytes (handy for saving file).
Save to file (binary):
curl -X POST "$NINEROUTER_URL/v1/images/generations?response_format=binary" \
-H "Authorization: Bearer $NINEROUTER_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gemini/gemini-3-pro-image-preview","prompt":"watercolor mountains at sunrise","size":"1024x1024"}' \
--output out.pngJS (URL response):
const r = await fetch(`${process.env.NINEROUTER_URL}/v1/images/generations`, {
method: "POST",
headers: { "Authorization": `Bearer ${process.env.NINEROUTER_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({ model: "gemini/gemini-3-pro-image-preview", prompt: "neon city", size: "1024x1024" }),
});
const { data } = await r.json();
console.log(data[0].url || data[0].b64_json.slice(0, 40));JSON (default response_format=url):
{ "created": 1735000000, "data": [{ "url": "https://..." }] }response_format=b64_json:
{ "created": 1735000000, "data": [{ "b64_json": "iVBORw0KGgo..." }] }Query ?response_format=binary returns raw image bytes (Content-Type image/png or image/jpeg).
Common fields above work everywhere. These add/override:
| Provider | Extra/changed fields | Notes |
|---|---|---|
openai, minimax, openrouter, recraft | quality, style, response_format | Standard OpenAI shape |
gemini (nano-banana) | — | Only prompt; ignores size/n |
codex (gpt-5.4-image) | image, images[], image_detail, output_format, background | SSE stream; ChatGPT Plus/Pro required |
huggingface | — | Only prompt; returns single image |
nanobanana | image, images[] (edit mode) | size → aspect ratio; async polling |
fal-ai | image (img2img) | n → num_images; size → ratio; async |
stability-ai | style (preset), output_format | size → aspect_ratio |
black-forest-labs (FLUX) | image (ref) | size → exact width/height; async |
runwayml | image (ref) | size → ratio; async; video models exist |
sdwebui, comfyui | — | Localhost noAuth (:7860 / :8188) |
© decolua, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/9router-image of decolua/9router.
Open the folder on GitHubat commit ce4460e
9Router Image Generation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| 9Router Image Generation this skilldecolua/9router | 30k | — | ~830 | Automated safety check: Pass | MIT | |
| Character Refseternityspring/shuohao-skills | 4.3k | — | ~1.7k | Automated safety check: Warn | Apache-2.0 | |
| Image Genopen-octo/octo-agent | 125 | — | ~3.1k | Automated safety check: Notes | MIT | |
| AI Image Creatorevolution-foundation/evo-nexus | 545 | — | ~5.1k | Automated safety check: Notes | Custom licence | |
| ComfyUI Local DriverSlavaSexton/ComfyUI-Agent-Kit | 105 | — | ~12k | Automated safety check: Pass | Apache-2.0 | |
| Minimax H3calesthio/OpenMontage | 66k | — | ~580 | Automated safety check: Pass | AGPL-3.0 |
eternityspring/shuohao-skills
给任何故事里的角色真出参考图(小说改编、自己原创的故事、单独设计一个角色都行,不需要小说原文): 一段话描述角色,拆成分层字段、补全后确认, 先出一张正面全身锚点,其余视图(大头照、90° 侧面、背面、细节、45° 大头照)都只参考这张锚点, 按需分档出图。每张图带标识、可单独重出,重出后自动标出哪些图过期。
open-octo/octo-agent
Acquire images as files — generate them with an AI image model (14 providers: OpenAI/gpt-image, Gemini, Qwen, Zhipu, Volcengine, Stability, FLUX, Ideogram, MiniMax, and more), search openly-licensed…
evolution-foundation/evo-nexus
Generates PNG images through OpenRouter models, with transparent backgrounds and reference-image edits, and describes existing images with multimodal vision.
SlavaSexton/ComfyUI-Agent-Kit
Drives a local ComfyUI install over its HTTP API to generate and edit images, video and audio, with per-model prompt recipes and workflow guidance.
calesthio/OpenMontage
Generate MiniMax H3 (Hailuo 3.0) video through the official MiniMax v2 API, fal.ai, Runway, ComfyUI Partner Nodes, or local open weights in ComfyUI.
fal-ai-community/skills
Choose default fal.ai endpoint IDs for genmedia production skills.
decolua/9router
Sets up access to the 9Router AI gateway, an OpenAI-compatible REST endpoint for chat, images, speech, embeddings, web search and web fetch, and indexes its capability skills.
decolua/9router
Sends chat and code-generation requests through a 9Router gateway using OpenAI or Anthropic message formats, with streaming and auto-fallback combos.
decolua/9router
Generates vector embeddings through the 9Router /v1/embeddings endpoint, using models from providers such as OpenAI, Gemini, Mistral and Voyage for RAG and semantic search.
decolua/9router
Transcribes audio files into text or subtitles through 9Router's Whisper-compatible endpoint, using models from OpenAI, Groq, Gemini, Deepgram and others.
decolua/9router
Turns text into spoken audio through a 9Router server, choosing among voices from OpenAI, ElevenLabs, Deepgram, Edge TTS and other providers.
decolua/9router
Submits text-to-video or image-to-video jobs to xAI Grok Imagine through 9Router, then polls the job and downloads the finished MP4.
Categories
Generates images through a 9Router gateway's image endpoint, with model discovery, the request fields and per-provider quirks for OpenAI, Gemini, MiniMax and others. The skill calls the `/v1/images/generations` endpoint of a 9Router instance, which fronts models from OpenAI, Gemini Imagen, DALL-E, FLUX, MiniMax, SDWebUI, ComfyUI and Codex. It starts by listing available models from `/v1/models/image` and reading per-model options from `/v1/models/info`.
9Router Image Generation fits situations like: generating an image from a text prompt through 9Router; listing which image models a 9Router instance offers; saving a generated image straight to a file; choosing size and quality options for a particular provider's model.
Run `npx skills add decolua/9router --skill 9router-image -a claude-code`. Or copy the skill folder (skills/9router-image in decolua/9router) into .claude/skills/9router-image in your project. Claude Code loads it when a task matches its description.
Run `npx skills add decolua/9router --skill 9router-image -a codex`. Or copy the skill folder (skills/9router-image in decolua/9router) into .agents/skills/9router-image in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add decolua/9router --skill 9router-image -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/9router-image, .gemini/skills/9router-image, .github/skills/9router-image and .opencode/skills/9router-image in your project.
Going by SKILL.md and its folder, 9Router Image Generation needs the command-line tools its instructions call (curl and jq) and credentials named NINEROUTER_KEY. Our summary lists: A reachable 9Router instance with `NINEROUTER_URL` set; `NINEROUTER_KEY` when authentication is enabled; curl or a JavaScript runtime to call the endpoint.
SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
9Router Image Generation is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 830 tokens (SKILL.md is roughly 3.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with 9Router Image Generation: Character Refs (eternityspring/shuohao-skills, 4.3k stars), Image Gen (open-octo/octo-agent, 125 stars), AI Image Creator (evolution-foundation/evo-nexus, 545 stars) and ComfyUI Local Driver (SlavaSexton/ComfyUI-Agent-Kit, 105 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
decolua (a GitHub user) maintains it in decolua/9router, which has 30,491 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 8, 2026.
Source: decolua/9router on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.