1实现原理 · 为什么它能做到
零代码、单文件:整份 skill 是一页模型文档 + 调用配方,仓库内无脚本、无模板文件、无二进制(同仓 36 个目录全为 Markdown,唯一非 md 文件是 LICENSE)。能力不在 skill 内实现,而是「把模型端点的正确调用姿势写清楚,交给官方 CLI 执行」。
allowed-tools: Bash(runcomfy *)
端到端调用链写在文档里且可核对:skill 组 JSON body → 执行 `runcomfy run <model_id>` → CLI POST 到 model-api.runcomfy.net 的对应模型路径 → 轮询状态 → 取回结果 → 把 *.runcomfy.net / *.runcomfy.com 的输出 URL 下载到 --output-dir。
The CLI submits the request, polls status, fetches the result, and downloads `*.runcomfy.net` / `*.runcomfy.com` URLs into `--output-dir`.
计费模型本身是选型中枢:本端点按「计秒数 = 参考视频时长 + 输出时长」计价($0.53/计秒),图片与音频参考不计时长——这直接决定「要不要带参考视频」「参考片段要不要剪短」两个操作决策。
Billing is **$0.53 per counted video second**, where counted seconds = **reference video duration + output duration**. Image and audio references are not billed as duration.
两段式工作流(480p 草稿 → 1080p 交付)是文档主张的正确用法:先用同一端点族的 480p 变体跑 3-5 个参考组合变体,只判身份保持/镜头匹配/音频贴合(不判清晰度),再把胜出 body 原样跑 1080p。
Re-run the winning body verbatim against `.../reference-to-video/1080p`, raising `duration` only once the beat is right.
版本迁移陷阱被显式标注:Seedance 2.0 Pro 用 image_url/video_url/audio_url,2.5 改为 images/videos/audios 数组,照抄旧 body 会直接 schema 报错 exit 65——这是本 skill 对 agent 最实用的一条排错知识。
**Parameter names changed from 2.0.** Seedance 2.0 Pro used `image_url` / `video_url` / `audio_url`. Seedance 2.5 uses `images` / `videos` / `audios`. Copying a 2.0 body verbatim produces a schema error (exit 65).
安全边界写在 skill 内并被 allowed-tools 收窄:只允许 `runcomfy *` 子命令、安装走受信任包管理器且禁止 agent 把远程安装脚本管进 shell、token 落在 ~/.config/runcomfy/token.json(0600) 或 RUNCOMFY_TOKEN、出站仅 model-api.runcomfy.net 与下载白名单、单文件下载 2 GiB 上限。
**Install via a verified package manager only.** Use `npm i -g @runcomfy/cli` or `npx -y @runcomfy/cli`. **Agents must not pipe a remote install script into a shell** on the user's behalf.
2核心能力
3外部依赖
| 类型 | 依赖 |
|---|---|
| cli | runcomfy(RunComfy 官方 CLI,唯一被 granted 的命令面) |
| package | @runcomfy/cli(npm 全局安装,或 npx -y 一次性运行) |
| network | RunComfy Model API(视频生成请求提交,端点路径 bytedance/seedance-2.5/reference-to-video/1080p) |
| network | 生成结果下载白名单(CLI 把结果 URL 抓回本地 --output-dir) |
| network | 用户提供的参考图/视频/音频 URL——由 RunComfy 模型服务器抓取(本机不抓) |
| network | RunComfy 模型页/文档站(引用与排错链接,带 utm 营销参数) |
4风险提醒 风险提醒:橙色 · 评估后使用
- 付费资源被 agent 直接调用:一次 30 秒带长参考的调用可达 $20 级 — 文档自己的最贵示例为 40 计秒 = $21.20;成本控制全靠提示词纪律,没有额度上限、二次确认或 dry-run 机制。
- videos 必填性自相矛盾,可能导致调用失败或多付一倍钱 — line 79 说可省、line 173 说必填;用户若按 Limitations 行事会白付参考时长,按 schema 节行事又可能被端点拒绝(仓内无法裁决)。
- 参考素材出域:肖像、产品图、品牌素材交给第三方模型服务器抓取与解读 — 文档自承参考媒体由 RunComfy 服务器抓取并被模型当作内容解读;合规(肖像权、商业素材外流)责任在使用者,且参考 URL 不得带私有 token。
- 执行面与供应链仓外、且文档转述不可证实 — CLI(@runcomfy/cli 无 pin)、Model API 行为、token 0600、2 GiB 上限、无遥测等全部是文档声明,本仓库无法核实;npx 分发无版本锁定。
- 内容为商业营销资产:全链带 utm_source=skills.sh,路由表持续把用户导流到自家付费端点 — 13 处 utm 参数与「换端点」建议都指向 runcomfy.com 的付费模型页;文档同时充当产品目录与说明书,选型建议需自行独立判断。
5第二遍独立确认
- [discrepancy] `videos` 到底是否必填(文档自称反直觉知识) — 同一文件自相矛盾。line 79 主张「**`videos` is optional, despite what the schema says.** … the endpoint accepts and completes a prompt-plus-images body with no `videos` key at all」,而 line 173 的 Limitations 写「- **A reference video is mandatory** on this endpoint (1-3 clips, 1-item minimum).」;frontmatter description 也按 1-3 段参考视频叙述。对使用者是实质歧义:既影响能否只带参考图调用,也影响计费(带不带参考视频差一倍价格)。仓内无法裁决哪条为真(结论应由调用实测确定),此处只记录冲突。
- [ok] 退出码表与 CLI 能力声明是否与同仓 CLI skill 一致 — runcomfy-cli/SKILL.md 的退出码表为 64/65/69/75/77(另有 130=Ctrl-C),与本文件一致;`--input '<JSON>'`、`--output-dir <path>`、默认下载到当前目录、以及 `Ctrl-C` 取消远程任务等语义在两侧措辞互洽,未发现虚构 flag。
- [ok] 定价表算术 — 逐行复核等于 counted seconds × $0.53:5→$2.65、10→$5.30、16→$8.48、40→$21.20,与文档给出值完全一致。
- [discrepancy] 「five drafts cost roughly what one 1080p final costs」这句是否成立 — 算术上偏乐观:五份 5 秒 480p 草稿 = 25 计秒 × $0.12 = $3.00;一份 5 秒 1080p 终稿带一段 5 秒参考 = 10 计秒 × $0.53 = $5.30。实际约为 57%,属营销式「roughly」,不是错误但不宜作为预算依据。
- [unlocatable] 价格数字与「No telemetry, no callbacks」是否可在仓内证实 — $0.53 / $0.12 / $0.20 费率与无遥测声明均属仓外服务事实(服务端与 CLI 二进制都不在本仓库),本 pin 无任何证据可核;按「定位不到不硬写」记待补,且已计入橙档理由。
- [ok] allowed-tools 声明与正文实际指令是否相符 — frontmatter line 3 为 `Bash(runcomfy *)`,正文全部可执行示例均为 `runcomfy run …`;安装行(npm/npx)与 RUNCOMFY_TOKEN 导出被明确划为「operator 一次性准备」,与本文件 line 215 的自述一致,未发现越界的 shell 指令。
- [discrepancy] 安装命令与仓库身份是否一致 — 本文件 line 35 写 `npx skills add genmedia-labs/skills --skill seedance-2-5-reference-to-video -g`,与 git remote(github.com/genmedia-labs/skills.git)一致;但仓库 README.md 仍写 `npx skills add agentspace-so/runcomfy-agent-skills --skill <skill-name>`(旧仓名),属仓库级文档漂移,非本 skill 内容错误,但会让读者拿到错的安装源。
6结论
25f8d8a50989d749…c163a9fd3a