feat: 新增角色图→八方向行走动画一体化工作流(打通 VIDEO→IMAGE)

把原来分开的两个工作流合并成一条链:角色图 → 八方向静态图 →
Seedance 循环视频 → 抽帧 → 抠图 → 八方向拆分 → 8 个透明 webm + 8 组序列帧。

断点在于 Seedance 输出的是 ComfyUI 的 VIDEO 类型,而八方向拆分要 IMAGE
帧序列,VHS「Load Video」只能从文件读、接不上 VIDEO。

桥梁用 ComfyUI 原生的 GetVideoComponents(comfy_extras/nodes_video.py,
image/video 分类):输入 VIDEO,输出 images/audio/fps。Holopix 插件的
README 也明确写了可直接连接原生 Get Video Components,且它内部先把视频
下载到本地再包装成 VIDEO,解码没问题。因此没有为此新写任何节点。

帧率处理:Seedance 出 720p/4s/24fps≈97 帧,游戏行走循环 8~12 帧即够,
中间加 VHS Select Every Nth Image 抽帧(间隔 3 → 8fps ≈32 帧),
输出帧率同步设 8。这两个值必须匹配否则播放速度不对,已写进 Note。

另外保留一份 SaveVideo 留存 Seedance 原始视频:生成是付费的,后半段
调参时可用另一个工作流单独重跑,不必重复花钱。⑤ 生成静态图后有预览节点,
布局/朝向不对可在此止损。

抠图沿用用户原有的 LayerMask BiRefNetUltraV2,拆分节点 bg_mode 相应设为
「已带透明通道」——这套提示词要求纯黑背景,颜色阈值法本就不适用。

工作流由脚本循环生成(8 路重复),结构自洽性已逐项校验:
links 与节点 inputs/outputs 双向一致、无越界、无悬空引用、
拆分节点 widget 数 13 与定义相符、8 方向各连出 2 条。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
rui40000
2026-07-30 19:04:22 +08:00
co-authored by Claude Opus 4.8
parent cc6a6e3400
commit 5e9e1e6a84
2 changed files with 2157 additions and 3 deletions
+14 -3
View File
@@ -1036,15 +1036,26 @@ WAS Node Suite 的「Text Multiline」会把 `#` 开头的行**当注释删除**
| 步骤 | 由谁完成 | | 步骤 | 由谁完成 |
|:-----|:---------| |:-----|:---------|
| 角色图 → 八方向静态图 | GPTimage2 等外部工具 | | 角色图 → 八方向静态图 | GPTimage2 / Holopix Universal Edit 等 |
| 静态图 → 循环行走视频 | Seedance 首尾帧等外部工具 | | 静态图 → 循环行走视频 | Seedance 首尾帧等 |
| 视频 → 序列帧(可选帧率)| VHS「Load Video」的 `force_rate` | | 视频 → 序列帧 | 从文件读用 VHS「Load Video」;**接在视频生成节点后面用原生「Get Video Components」** |
| 抽帧(降帧率)| VHS「Select Every Nth Image」|
| 抠图(提供语义级 alpha)| Lucida / BiRefNet 等 |
| **拆分 + 编号 + 分组 + 8 队列输出** | **本节点** | | **拆分 + 编号 + 分组 + 8 队列输出** | **本节点** |
| 8 组透明 PNG 序列帧 | `SaveImage`(4 通道输入会自动存成 RGBA)| | 8 组透明 PNG 序列帧 | `SaveImage`(4 通道输入会自动存成 RGBA)|
| 8 个透明 webm | VHS「Video Combine」,`format=video/webm` + `pix_fmt=yuva420p` | | 8 个透明 webm | VHS「Video Combine」,`format=video/webm` + `pix_fmt=yuva420p` |
整条链路只有拆分环节是缺失的,其余全部复用成熟实现。 整条链路只有拆分环节是缺失的,其余全部复用成熟实现。
**两个示例工作流**:
- [八方向行走动画.json](example_workflow/八方向行走动画.json):从**已有视频文件**出发(VHS Load Video)
- [角色图到八方向行走动画(一体化).json](example_workflow/角色图到八方向行走动画(一体化).json):**从角色图一路到成品**,把生图、生视频、拆分、导出串成一条链
一体化工作流的关键是打通 `VIDEO → IMAGE`:视频生成节点输出的是 ComfyUI 的 `VIDEO` 类型,而 VHS「Load Video」只能从文件读、接不上。用 ComfyUI **原生的「Get Video Components」**(`image/video` 分类)即可,输入 VIDEO、输出 images/audio/fps,不需要装任何额外插件。
⚠️ **帧率两处必须匹配**:Seedance 出的是 24fps,抽帧间隔与输出帧率要对应,否则 webm 播放速度不对。
`select_every_nth=3` ↔ `frame_rate=8`;要 12fps 就用 `2` ↔ `12`;要全量 24fps 就用 `1` ↔ `24`。
**输入参数**: **输入参数**:
- `images` (IMAGE): 视频转出的序列帧 - `images` (IMAGE): 视频转出的序列帧
- `masks` (MASK, 可选): **上游抠图节点的遮罩,强烈建议接上**(见下方「透明通道怎么来」) - `masks` (MASK, 可选): **上游抠图节点的遮罩,强烈建议接上**(见下方「透明通道怎么来」)
File diff suppressed because it is too large Load Diff