6.3 KiB
6.3 KiB
title, date, tags
| title | date | tags | ||||
|---|---|---|---|---|---|---|
| ComfyUI 视频分割系统 - 安装与搭建步骤 | 2026-04-22 |
|
ComfyUI 视频分割系统 - 安装与搭建步骤
前置要求
在 ComfyUI 界面中操作前,请确保已通过 ComfyUI Manager(管理扩展功能) 安装以下节点包:
| 节点包 | 作用 |
|---|---|
ComfyUI-VideoHelperSuite |
视频加载、帧提取、视频合成 |
ComfyUI-SAM2(推荐 kijai 版) |
SAM2 模型加载、图像/视频预测 |
ComfyUI-Impact-Pack |
Grounding DINO 语义检测 |
rgthree-comfy |
Fast Muter / Bypass 节点 |
安装后重启 ComfyUI。
搭建步骤(共 10 步)
以下所有节点均通过 双击画布空白处 或 右键 → 添加节点 创建。
第 1 步:选择加载节点
- 右键/双击空白处打开节点菜单
- 在第二级菜单中找到 Video Helper Suite(带有紫色摄像机图标的那一项)
- 在右侧弹出的第三级菜单中,根据你的需求选择以下任意一个节点:
- Load Video (Upload):如果你想从电脑本地上传一个视频文件
- Load Video (Path):如果你想通过输入电脑上的文件夹路径来读取视频
- 点击创建节点
- 节点出现在画布上,把它拖到左上角区域
第 2 步:提取第一帧(关键帧)
- 回到 Video Helper Suite(紫色摄像机图标)的第三级菜单
- 找到
图像分类下的Select Images:- 在较新版本的 Video Helper Suite 中,它取代了旧版的
VHS_SelectFrames名称,功能完全一致,都是通过索引(Index)从视频流中挑选特定帧
- 在较新版本的 Video Helper Suite 中,它取代了旧版的
- (可选抽帧)如果你不想逐帧处理,也可以使用它上方的
Select Every Nth Image,每隔几帧取一张 - 连接:
Load Video的IMAGE输出 →Select Images的image输入 - 设置参数:
index = 0(表示取第一帧)
这就是你的关键帧,后续所有分割以此为基础。
第 3 步:SAM2 模型加载器
- 搜索:
SAM2→SAM2 Model Loader - 拖到画布中上方,作为公共模型源
- 参数设置:
model_name:sam2_hiera_base_plus.ptprecision:fp16(省显存)
第 4 步:创建提示节点(建议三种都建)
| 节点路径 | 参数示例 | 用途 |
|---|---|---|
SAM2 → SAM2 Point Prompt |
points=[[0.5,0.5]], labels=[1] |
点选目标(1=正选,0=反选) |
SAM2 → SAM2 Box Prompt |
box=[0.3,0.3,0.7,0.8] |
框选目标 |
Impact → Grounding DINO → 连到 Box Prompt |
prompt="a person" |
语义提示转检测框 |
连线方式:从节点的圆形输出端拖拽到另一个节点的圆形输入端。
第 5 步:单帧分割测试
- 搜索:
SAM2→SAM2 Image Predictor - 连接:
Get Image From Batch(0)→imageSAM2 Model Loader→sam2_modelPoint Prompt/Box Prompt→prompt
- 再加一个
image→Preview Image,连到 Image Predictor 的输出 - 点击右上角「运行」,先确认第一帧分割正确
第 6 步:视频追踪器
- 搜索:
SAM2→SAM2 Video Predictor - 连接:
SAM2 Model Loader→sam2_modelLoad Video的完整IMAGE(批次,不是单帧)→images或video_framesSAM2 Image Predictor的mask→initial_mask- 设置
frame_index = 0
第 7 步:追踪输出
- 若 SAM2 包有
SAM2 Track Forward/Backward,将 Video Predictor 的state连入 - 若 Video Predictor 直接输出
mask_sequence,跳过此步
第 8 步:可视化与保存
| 节点 | 路径 | 用途 |
|---|---|---|
MaskToImage |
image → MaskToImage |
将 mask 转为可视图像 |
Preview Image |
image → Preview Image |
预览效果 |
Save Image |
image → Save Image |
保存 mask 序列 |
VHS_VideoCombine |
video → VHS_VideoCombine |
合成带遮罩的视频 |
第 9 步:人工纠正分支(RGThree Fast Muter)
- 搜索:
rgthree→Fast Muter - 在主线旁创建第二条「修正流」:
- 再建一个
Get Image From Batch,index填问题帧号(如 45) - 再建一个
SAM2 Point Prompt,填修正坐标 - 再建一个
SAM2 Image Predictor(修正版) - 修正 Image Predictor 的
mask→Fast Muter→SAM2 Video Predictor的correction_mask(或额外提示输入)
- 再建一个
- 默认点击 Fast Muter 使其变红(关闭,不参与运算)
- 需要修正时,点击变绿(启用),修改帧号和坐标,重新运行
第 10 步:总连线检查
确保以下三点:
- Video Predictor 吃的是完整视频,不是单帧
- Image Predictor(第一帧)只吃了
index=0的单帧 - Fast Muter 当前状态符合预期
建议的执行顺序
不要一次性连完所有节点再运行!按以下顺序验证:
- 只连第 1~5 步(到 Preview Image)→ 运行 → 确认第一帧分割正确
- 接入第 6~8 步(Video Predictor + 输出)→ 运行 → 确认整段视频能跑通
- 最后加第 9 步(Fast Muter 修正分支)→ 测试一次纠正流程
Fast Muter 实际操作流程
首次运行:
Fast Muter = 红色(关闭)
→ 点击「运行」→ 检查 Preview Image
发现第 N 帧错了:
1. 修改修正 Frame Picker 的 index = N
2. 修改修正 Point Prompt 的坐标
3. Fast Muter = 绿色(打开)
4. 再次点击「运行」
5. 系统从第 N 帧重新追踪
修好了:
Fast Muter = 红色(关闭)
→ 保存最终工作流模板
常见问题速查
| 问题 | 排查方向 |
|---|---|
| 节点呈红色/无法创建 | 节点包未安装或加载失败,检查 ComfyUI 启动日志 |
| SAM2 节点报错显存不足 | 换 sam2_hiera_tiny.pt,或降低视频分辨率,或启用 fp16 |
| 追踪结果全黑/全白 | 检查 initial_mask 是否正确传入;检查坐标格式(0~1 vs 像素) |
| Grounding DINO 无检测结果 | 降低 threshold,或简化 prompt(如只写 "person") |
| 修正后重新追踪无变化 | 确认 Fast Muter 已启用(绿色),且修正 mask 正确连入 Video Predictor |
| 视频输出帧率不对 | 在 Load Video 和 VideoCombine 中统一设置 fps 参数 |