1实现原理 · 为什么它能做到
实现方式是「零代码 + 外部 CLI 委托」:happyhorse-1-0/ 只有一份 SKILL.md,无脚本;运行时由宿主 agent 用 Bash 执行 `runcomfy run happyhorse/happyhorse-1-0/text-to-video --input '<JSON>' --output-dir <path>`。视频与音频都在 RunComfy 云上生成,skill 只负责把意图翻成正确 JSON 与提示词。
1. The skill invokes `runcomfy run happyhorse/happyhorse-1-0/text-to-video` with a JSON body matching the schema.
完整生命周期协议(5 步):CLI 带 bearer token POST 到 Model API → 拿到 request_id → 每 2 秒轮询 GET .../requests/<id>/status → 终态后 GET .../requests/<id>/result → 只下载 host 以 .runcomfy.net / .runcomfy.com 结尾的 URL,其它 URL 只列出不抓取。
4. On terminal status, the CLI fetches `GET .../requests/<id>/result` and downloads any URL whose host ends with `.runcomfy.net` or `.runcomfy.com` into `--output-dir`. Other URLs are listed but not fetched.
输入 schema 共 7 个字段,覆盖文本/画幅/分辨率/时长/复现/水印:prompt(≤2500 字符,6 语言)、aspect_ratio(5 值,默认 16:9)、resolution(720P/1080P,默认 1080P)、duration(3–15 秒,默认 5)、seed(默认 0)、watermark(默认 true)。
| `watermark` | bool | no | true | Provider watermark. |
提示法针对时间维度:写动作演进而非静帧(多个时间性动词串联)、镜头与机位前置、迭代时一条视觉节拍一个片段。
**Describe motion over time, not a still.** "A woman turns from the window, walks two paces to the desk, picks up the cup, lifts it to her face, takes a sip" beats "a woman drinking coffee".
多镜头一致性靠『每镜重申锚点』实现:写两个节拍时必须在每个 Shot 里重述同一服装/道具(red wool coat / blue scarf),模型才能保持跨镜身份。
**Multi-shot consistency** — when describing two beats, restate the anchor at each: `"Shot 1: tall woman in red wool coat, blue scarf, in a rainy alley. Shot 2: same woman in red coat / blue scarf, now ducking under an awning."` HappyHorse holds the look but needs the anchor.
音频在同趟生成(对白/环境/Foley),但不接受外部音轨驱动口型;要音轨驱动应换 Wan 2.7(audio_url)或 Seedance 2.0 Pro——这条边界写在 Limitations 里。
- **Audio is in-pass only** — you can't pass external audio to drive lip-sync. For audio-driven lip-sync, use Wan 2.7 (which accepts an `audio_url`) or Seedance 2.0 Pro.
自我限界段(本族唯一):明确『不是自托管视频运行器』『不是能力授予,依赖可用的 RunComfy 账号』,把 skill 的定位说死。
Not a self-hosted video runner. Not a capability grant — depends on a working RunComfy account.
路由表把家族其它视频模型分工列全(音轨口型 → Wan 2.7、参考视频 + 精细对白口型 → Seedance 2.0 Pro、运动编辑 → Kling、快迭代 → LTX 2),并声明用户显式点名时无条件路由回本技能。
| Detailed lip-synced dialogue + reference video | Seedance 2.0 Pro |
2核心能力
3外部依赖
| 类型 | 依赖 |
|---|---|
| cli | runcomfy(RunComfy 官方 CLI) |
| package | @runcomfy/cli(npm 全局包) |
| package | npx skills(skills.sh 安装器) |
| api | RunComfy Model API(HappyHorse 1.0 text-to-video) |
| api | RunComfy 请求状态/结果/取消端点(轮询与中断) |
| network | RunComfy 产物下载白名单 |
| network | RunComfy 站点/模型页/文档(文档引用,非运行时调用) |
| network | GitHub(技能源码链接) |
4风险提醒 风险提醒:橙色 · 评估后使用
- 质量主张无来源(#1 榜单) — 『#1 on Artificial Analysis Video Arena(Elo 1333/1392)』在文档三处出现但无链接与数据出处;榜单为外部第三方且随时间变动,本 pin 内无法核实。使用者据此选型需自行复核当前榜单。
- 水印可关 + 同步音频 = 深度伪造类滥用面 — watermark 默认 true 但文档示例直接展示 `"watermark": false`,产物为带同步对白的 1080p 视频;文档对此无任何合规/伦理提示,责任完全落在使用者与宿主。
- 执行面在仓外且无版本 pin — 真实动作由 npm 全局安装的 @runcomfy/cli 完成(安装行不含版本);CLI 内部实现与安全断言无法在本 pin 证实,供应链风险落在 npm 与 RunComfy 两方。
- 凭证与高单价计费 — CLI 以用户 RunComfy token 提交;1080p 视频为高单价推理、按次计费;agent 依 75 退出码自动重试会重复消耗(文档给了 Ctrl-C 取消,但未给重试上限建议)。
- 路由表含悬空引用 — 建议换用『Kling Video O1』『LTX 2』,二者在仓库内没有对应技能目录(仓内 Kling 技能自称 Kling 3.0),agent 照表跳转会找不到落点。
5第二遍独立确认
- [ok] skill 目录内容 = 仅 SKILL.md — git ls-tree HEAD 与 ls -a 双向核实;仓库根仅 LICENSE + README.md + 31 个技能目录,无 scripts/、plugins/、.claude/。
- [ok] 全部外部依赖条目回查调用点真实存在 — runcomfy CLI 调用点 3 处(默认/竖屏/720p 试跑)、npm 安装 1 处、npx skills 1 处、model-api POST 1 处、status/result/cancel 三个端点各 1 处、白名单 1 处、文档/模型页/GitHub 链接多处,均实读命中。
- [discrepancy] Ctrl-C 取消的 HTTP 语义与同仓 CLI 说明书一致 — 本技能写『Ctrl-C 时发送 POST .../requests/<id>/cancel』,同仓 runcomfy-cli/SKILL.md 写『Ctrl-C sends DELETE to the request endpoint』,其余四份兄弟技能只写 '`Ctrl-C` cancels the remote request before exit.'(不含动词)。同一个 CLI 在两份文档里被描述成两种 HTTP 动词,至少一处不准确;CLI 源码不在仓内,无法在本仓判定孰是。
- [unlocatable] #1 on Artificial Analysis Video Arena(Elo 1333 t2v / 1392 i2v)主张 — 该排名出现在 description、正文首段与 Where it shines 三处,但本技能未给任何链接或数据来源;同仓 ai-video-generation/SKILL.md 与 image-to-video/SKILL.md 复述同一主张(后者写 Elo 1392)。榜单本身在仓外(artificialanalysis.ai),本次未做独立核实,记为源码内无法定位的证据。
- [discrepancy] 路由建议的目标模型在本仓有对应技能 — 'Cinematic motion editing on existing footage | Kling Video O1' 与 'Ultra-fast iteration (sub-second per frame) | LTX 2' 在仓库内没有同名技能目录(全仓无 ltx-* 目录;kling-3-0/SKILL.md 自称 'Kling 3.0 (also called Kling V3.0)')。Wan 2.7 / Seedance 2.0 Pro 两条有同名目录,属有效引用。
- [unlocatable] Security & Privacy 的技术断言可在本仓证实 — 0600 token 权限、2 GiB 下载上限、无 shell 展开、下载白名单、退出码语义、轮询间隔 2s 与取消动词均为仓外 @runcomfy/cli 行为;仓内无 CLI 源码或版本 pin,只能作为文档自述引用。
- [discrepancy] 安装一行与 GitHub 链接指向旧仓 agentspace-so/runcomfy-skills — 安装行 `npx skills add agentspace-so/runcomfy-skills --skill happyhorse-1-0 -g` 与 GitHub 链接 github.com/agentspace-so/runcomfy-skills 指向旧仓;本仓 pin 在 prime-skills/runcomfy-agent-skills(README 用 runcomfy-agent-skills)。gh api:旧仓仍存在(5★、pushed 2026-04-29、含 happyhorse-1-0 目录);prime-skills/runcomfy-agent-skills 与 agentspace-so/runcomfy-agent-skills 为同一仓(相同 stats)。按文档安装可能装到旧版。
- [discrepancy] 『watermark 可关』的安全含义是否被文档提示 — schema 给出 `watermark` 默认 true、可设 false(示例小节标题即 '**Vertical short (9:16, 8s, no watermark):**' 并把 watermark 设为 false),但 Security & Privacy 段完全未提『关闭供应方水印后产物无来源标识』这一滥用面(本族其它技能不提供该开关,无同类提示可比)。属安全提示覆盖不全,非代码风险。
6结论
ed6d01d2aaa14890…fca19ae084