1实现原理 · 为什么它能做到
实现方式是「零代码 + 外部 CLI 委托」:flux-kontext/ 目录只有一份 SKILL.md,不含任何脚本;唯一动作是让宿主 agent 用 Bash 调 `runcomfy run blackforestlabs/flux-1-kontext/pro/edit`,把提示与源图打成 JSON 经 `--input` 交给仓外 CLI。skill 的增量价值不是代码,而是把模型的 schema、提示法与路由边界固化成 agent 可直接照抄的文档。
The skill invokes `runcomfy run blackforestlabs/flux-1-kontext/pro/edit` with a JSON body matching the schema.
能力完全由远端模型兑现:CLI 把 JSON POST 到 RunComfy Model API,轮询请求状态,再把 `.runcomfy.net` / `.runcomfy.com` 白名单 URL 的产物下载进 `--output-dir`;`Ctrl-C` 在退出前取消远端请求。
The CLI POSTs to `https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-1-kontext/pro/edit`, polls the request, fetches the result, and downloads any `.runcomfy.net`/`.runcomfy.com` URL into `--output-dir`. `Ctrl-C` cancels the remote request before exit.
输入 schema 刻意最小:只有 prompt(必填)、image(必填、单张公开可抓取的 HTTPS URL)、aspect_ratio、seed 四个字段——「单参考局部编辑」的模型定位被直接编码成输入形状,多图/多参考需求被显式排除。
| `image` | string | yes | — | Single source image URL (publicly fetchable HTTPS). |
文档主体是提示法而非 API 参数:要求 preservation-first(先声明保持不变,再给改动)、单条陈述式指令、复合编辑拆成连续多趟。
**Preservation first.** Lead with `"Keep [identity / pose / framing / brand] unchanged."` Then the change. Models honor what's stated up front.
路由表把「何时不该用它」也写进 skill:多图批量 → Nano Banana Edit,图内多语言/嵌入文字 → GPT Image 2 edit,无源图从零生成 → Flux 2 Klein;并规定用户显式点名时无条件路由到本技能。
| Batch edits across 1–20 images | Nano Banana Edit |
失败面用 sysexits 风格退出码表定义,把重试决策交给 agent:75 = 可重试(timeout/429),77 = 未登录或 token 被拒,65 = 输入 JSON/schema 不匹配。
| 75 | retryable: timeout / 429 | | 77 | not signed in or token rejected |
限制自陈:单源图上限、公开文档 schema 可能不全、复合提示会漂移、多语言嵌入文字应换模型。
- **Single source image only.** For multi-image flows, use Nano Banana Edit (1–20).
2核心能力
3外部依赖
| 类型 | 依赖 |
|---|---|
| cli | runcomfy(RunComfy 官方 CLI) |
| package | @runcomfy/cli(npm 全局包) |
| package | npx skills(skills.sh 安装器) |
| api | RunComfy Model API(Flux 1 Kontext Pro /edit) |
| network | RunComfy 产物下载白名单 |
| network | 用户传入的源图 URL(由 RunComfy 服务器抓取,非本机) |
| network | RunComfy 站点/文档(文档引用,非运行时调用) |
| network | GitHub(技能源码链接) |
4风险提醒 风险提醒:橙色 · 评估后使用
- 执行面完全在仓库外,无法审计 — 真正的动作由 npm 全局安装的 @runcomfy/cli 完成;安装无版本 pin(`npm i -g @runcomfy/cli`),CLI 内部实现、是否读写凭证、下载上限等断言都无法在本 pin 证实(second_pass 记为 unlocatable)。供应链风险落在 npm 与 RunComfy 两方。
- 凭证与计费 — CLI 以用户 RunComfy 账号 token(token.json 或 RUNCOMFY_TOKEN)提交请求;每次调用按次计费,若 agent 依 75 退出码进入重试循环,会在不知情下重复消耗额度。
- 素材外发与肖像/版权 — 源图 URL 由 RunComfy 服务器抓取并进入第三方图像编辑模型,未发布素材/人脸/品牌资产的保密性不由本地控制;生成图可能改写字样(如把 ALPHA 改成 AURA),用于商业素材需自行把关授权。
- 图像提示注入与身份误导 — 文档自认 image-based prompt injection 是图像编辑类模型的已知风险;若源图来自不可信来源,画面内文字可能影响输出;同时『AI 生成』结果可能被误当摄影原片使用(本 skill 不产出任何来源标注或水印说明)。
- 文档漂移 — 文档自认 schema 字段可能比真实 API 少('schema fields beyond prompt + image + aspect_ratio + seed may exist'),且 aspect_ratio 未给枚举;照文档写死的参数可能被 422 拒绝。另安装一行指向旧仓名,可能装到与 pin 不一致的版本。
5第二遍独立确认
- [ok] skill 目录内容 = 仅 SKILL.md(无脚本/引用/模板) — git ls-tree HEAD 与 ls -a 双向核实:flux-kontext/ 下仅 SKILL.md;仓库根为 LICENSE + README.md + 31 个技能目录,无 plugins/、.claude/、scripts/。
- [ok] 外部依赖条目逐个回查调用点 — runcomfy CLI 调用点 2 处(How to invoke 两个示例)、npm 安装 1 处(Prerequisites)、npx skills 1 处(安装行)、model-api 端点 1 处(How it works)、白名单与第三方 URL 抓取各 1 处(Security & Privacy)、文档/模型页/GitHub/skills.sh 链接多处——均实读命中。
- [unlocatable] Security & Privacy 的技术断言可在本仓证实 — token.json 权限 0600、2 GiB 下载上限、CLI 不做 shell 展开、下载白名单、退出码语义,描述的都是仓外 @runcomfy/cli 的行为;仓库内既无 CLI 源码也无版本 pin 引用,只能作为文档自述引用,不能坐实。同仓 runcomfy-cli/SKILL.md 有同一套自述,属同源转述而非独立证据。
- [discrepancy] 安装一行与 GitHub 链接指向旧仓 agentspace-so/runcomfy-skills — SKILL.md 写 `npx skills add agentspace-so/runcomfy-skills --skill flux-kontext -g` 与 github.com/agentspace-so/runcomfy-skills,而本仓储物 pin 在 prime-skills/runcomfy-agent-skills(README 也用 runcomfy-agent-skills)。gh api 核实:agentspace-so/runcomfy-skills 仍存在(5★、最后推送 2026-04-29、同样含 flux-kontext 等目录),是另一份较旧的仓;prime-skills/runcomfy-agent-skills 与 agentspace-so/runcomfy-agent-skills 返回相同 stats、full_name 均为 prime-skills/runcomfy-agent-skills(同一仓的新名)。结论:按文档安装可能装到旧版内容。
- [discrepancy] aspect_ratio 未给枚举值(与同族其他技能不一致) — 本技能写 'Pick from supported W:H options on the model page.'——同仓 happyhorse-1-0/wan-2-7/seedance-v2/gpt-image-edit 都列全了枚举。属于文档详略不一致(未到『错误』程度,但 agent 无法据此校验取值)。
- [ok] prompt 注入面 vs 文档自述 — 正文 'The CLI does NOT shell-expand the prompt' 与 'No shell injection surface from prompt content' 一致陈述;图像侧注入风险在 Limitations/Security 段有自认,未见淡化。
- [ok] 被点名的兄弟技能目录是否真实存在 — nano-banana-edit/、gpt-image-2/、flux-2-klein/ 三个目录经 ls 与 git ls-tree 核实均存在,路由建议不是死链。
- [ok] 无凭证/写入代码路径 — SKILL.md 中 RUNCOMFY_TOKEN 与 token.json 仅出现在 Prerequisites 第 3 条与 Security & Privacy 的 token storage 说明里,均是对 CLI 行为的转述;文件内无 write/save/append 指令指向本地路径,除 --output-dir 产物落地外无写入动作。
6结论
8c2a39b4f92f3d82…fca19ae084