9Router 图像生成技能
通过 9Router 统一端点调用 OpenAI、Gemini、FLUX、Stability 等 40+ 提供商的文生图模型,让 AI 编程助手可以直接生成图片。
技能仅为只读API调用文档:通过环境变量传递URL与密钥,无文件写入、无破坏性默认行为、无隐蔽数据流;提示词会发送到用户自配置的9Router实例及上游供应商,数据流向基本透明。扣分项:未说明提示词/图像会经过哪些第三方服务器、无敏感数据处理指引、无回滚或确认机制、发布者未经验证导致来源归因不完整。
文档内部自洽:端点、字段表、响应示例、供应商差异表相互一致,且仓库内ping.js可佐证/v1/images/generations路径与data数组结构。扣分项:纯静态阅读,无测试或可复现执行证据(上限10);未覆盖错误响应形态、超时、异步轮询细节;对异常输入的失败反馈依赖上游,文档未说明。
触发描述清晰(create/generate/draw/txt2img),场景明确,列出各供应商能力边界与不支持字段(如gemini忽略size/n),受众明确。扣分项:依赖的免费供应商可用性多变、部分核心功能依赖海外服务,中国大陆可达性未声明;对9Router本体安装的前置依赖指向另一个SKILL文件,环境前提不够自足。
结构清晰(Discover/Endpoint/Examples/Response/Quirks),渐进披露合理,仓库为MIT许可、有版本号与Docker发布CI。扣分项:技能文件本身无版本/变更记录,安装说明外包给另一路径,无FAQ/已知限制清单(仅简短quirks表),维护责任仅隐含于仓库。
若9Router已部署,curl/JS示例格式完整、可直接套用,具备真实边际价值。扣分项:静态评审无法验证输出质量,价值完全依赖外部服务正常运行;响应示例中的模型名(如gemini-3-pro-image-preview、gpt-5.4-image)真实性无法核实,可能需要用户自行调整。
响应结构可由仓库内ping.js的image分支部分交叉印证,属有限的一手材料。扣分项:无测试套件覆盖技能关键路径、无第三方执行证据、无用户可独立复现的验证记录,宣称的40+供应商行为仅有文档自述。
- 提示词与生成图像会经用户配置的9Router及上游供应商传输,敏感内容请自行评估。
- 技能依赖环境变量NINEROUTER_URL/KEY及已部署的9Router实例,且部分供应商在大陆网络可能不可达。
- 文档中的模型名与供应商quirks未经执行验证,使用前请先通过/v1/models/image确认可用模型。
- 发布者未经验证,仓库内无针对该技能的测试覆盖。
这个 Skill 能做什么,适合哪些场景?
9router-image 是 9Router 仓库(decolua/9router,MIT 许可)中 9 个技能之一,教 AI 代理调用 9Router 的 /v1/images/generations 端点生成图片。它覆盖了模型发现(/v1/models/image)、请求字段、响应格式(URL、base64、二进制字节流)以及各提供商的特殊行为差异。使用前需要先运行 9Router 服务并配置 NINEROUTER_URL 环境变量。它本身只是指令文档,不含脚本,任何能执行 shell 命令的 Agent Skills 客户端都可使用。
读取 NINEROUTER_URL(及可选的 NINEROUTER_KEY)环境变量;通过 GET /v1/models/image 列出可用图像模型,通过 /v1/models/info 查询单模型的尺寸、质量等参数;向 POST /v1/images/generations 发送含 model、prompt 及可选 n、size、quality、response_format 的 JSON 请求;支持追加 ?response_format=binary 直接保存原始 PNG/JPEG 字节到文件;输出 JSON 响应(data[].url 或 data[].b64_)或二进制图片。SKILL.md 还按提供商(openai、gemini、codex、huggingface、fal-ai、stability-ai、black-forest-labs、runwayml、sdwebui、comfyui 等)列出字段差异,例如 Gemini 忽略 size/n、部分提供商支持 img2img 或异步轮询。
- 前端开发者在 AI 编程会话中需要为占位设计生成示意图或图标时,让代理直接调用图像模型并保存 PNG。
- 内容创作者用 Claude Code 等工具批量生成配图,通过 ?response_format=binary 一步落盘文件。
- 已部署 9Router 的用户想在同一网关下切换 DALL-E 3、Gemini 图像或本地 ComfyUI/SDWebUI,无需改动客户端代码。
- 需要根据不同提供商微调参数(如 OpenAI 的 quality/style、FLUX 的精确宽高)的集成开发者。
- 使用本地 Stable Diffusion WebUI(:7860)或 ComfyUI(:8188)且无鉴权的用户,把本地出图接入代理工作流。
这个 Skill 有哪些优点和局限?
- 一个端点统一访问 OpenAI、Gemini、FLUX、MiniMax、Stability、本地 ComfyUI 等多家图像提供商。
- 文档详细列出各提供商的字段差异与限制,减少试错成本。
- 支持 URL、base64 和原始二进制三种响应格式,方便直接保存文件。
- 纯文档型技能,无额外脚本依赖,可移植性好。
- 必须先部署并运行 9Router 服务,无法独立使用。
- 部分提供商有硬性限制:codex 图像模型要求 ChatGPT Plus/Pro 订阅;gemini/nano-banana 忽略 size 和 n 参数。
- fal-ai、nanobanana、black-forest-labs 等提供商为异步轮询模式,交互流程更复杂。
- README 描述的是整个 9Router 项目(RTK 省 token、自动回退等),这些能力不归属于本图像技能本身;仓库也未展示针对该技能的测试。
如何安装这个 Skill?
该技能属于 9Router 仓库的技能集合,文件位于 skills/9router-image/SKILL.md。将仓库克隆后,把 skills/9router-image 文件夹放入你的 Agent Skills 目录(如 Claude Code 的技能目录)。SKILL.md 未提供专门的安装脚本;实际使用前提是先安装并运行 9Router(npm install -g 9router 后执行 9router,仪表盘在 http://localhost:20128),并设置 NINEROUTER_URL(若开启鉴权还需 NINEROUTER_KEY),具体 setup 步骤见 skills/9router/SKILL.md。
如何使用这个 Skill?
触发方式:对代理说“帮我生成一张日出水彩山景图片”之类的请求,代理会按 SKILL.md 调用端点。示例:curl -X POST "$NINEROUTER_URL/v1/images/generations?response_format=binary" -H "Authorization: Bearer $NINEROUTER_KEY" -H "Content-Type: application/" -d '{"model":"gemini/gemini-3-pro-image-preview","prompt":"watercolor mountains at sunrise","size":"1024x1024"}' --output out.png。也可先用 curl $NINEROUTER_URL/v1/models/image 查看可选模型。