Files
my-vault/自动语义分割系统/安装步骤.md

165 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: ComfyUI 视频分割系统 - 安装与搭建步骤
date: 2026-04-22
tags:
- comfyUI
- 安装步骤
- SAM2
- 工作流搭建
---
# ComfyUI 视频分割系统 - 安装与搭建步骤
## 前置要求
在 ComfyUI 界面中操作前,请确保已通过 **ComfyUI Manager管理扩展功能** 安装以下节点包:
| 节点包 | 作用 |
|-------|------|
| `ComfyUI-VideoHelperSuite` | 视频加载、帧提取、视频合成 |
| `ComfyUI-SAM2`(推荐 kijai 版) | SAM2 模型加载、图像/视频预测 |
| `ComfyUI-Impact-Pack` | Grounding DINO 语义检测 |
| `rgthree-comfy` | Fast Muter / Bypass 节点 |
安装后**重启 ComfyUI**。
---
## 搭建步骤(共 10 步)
以下所有节点均通过 **双击画布空白处****右键 → 添加节点** 创建。
### 第 1 步:选择加载节点
1. 右键/双击空白处打开节点菜单
2. 在第二级菜单中找到 **Video Helper Suite**(带有紫色摄像机图标的那一项)
3. 在右侧弹出的第三级菜单中,根据你的需求选择以下任意一个节点:
- **Load Video (Upload)**:如果你想从电脑本地上传一个视频文件
- **Load Video (Path)**:如果你想通过输入电脑上的文件夹路径来读取视频
4. 点击创建节点
5. 节点出现在画布上,把它拖到左上角区域
### 第 2 步:提取第一帧(关键帧)
1. 回到 **Video Helper Suite**(紫色摄像机图标)的第三级菜单
2. 找到 `图像` 分类下的 **`Select Images`**
- 在较新版本的 Video Helper Suite 中,它取代了旧版的 `VHS_SelectFrames` 名称功能完全一致都是通过索引Index从视频流中挑选特定帧
3. (可选抽帧)如果你不想逐帧处理,也可以使用它上方的 **`Select Every Nth Image`**,每隔几帧取一张
4. 连接:`Load Video``IMAGE` 输出 → `Select Images``image` 输入
5. 设置参数:`index = 0`(表示取第一帧)
> 这就是你的关键帧,后续所有分割以此为基础。
### 第 3 步SAM2 模型加载器
- 搜索:`SAM2``SAM2 Model Loader`
- 拖到画布**中上方**,作为公共模型源
- 参数设置:
- `model_name`: `sam2_hiera_base_plus.pt`
- `precision`: `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)``image`
- `SAM2 Model Loader``sam2_model`
- `Point Prompt` / `Box Prompt``prompt`
- 再加一个 `image``Preview Image`,连到 Image Predictor 的输出
- **点击右上角「运行」**,先确认第一帧分割正确
### 第 6 步:视频追踪器
- 搜索:`SAM2``SAM2 Video Predictor`
- 连接:
- `SAM2 Model Loader``sam2_model`
- `Load Video` 的完整 `IMAGE`(批次,不是单帧)→ `images``video_frames`
- `SAM2 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`
- 在主线旁创建第二条「修正流」:
1. 再建一个 `Get Image From Batch``index` 填问题帧号(如 45
2. 再建一个 `SAM2 Point Prompt`,填修正坐标
3. 再建一个 `SAM2 Image Predictor`(修正版)
4. 修正 Image Predictor 的 `mask`**`Fast Muter`** → `SAM2 Video Predictor``correction_mask`(或额外提示输入)
- **默认点击 Fast Muter 使其变红**(关闭,不参与运算)
- 需要修正时,**点击变绿**(启用),修改帧号和坐标,重新运行
### 第 10 步:总连线检查
确保以下三点:
- Video Predictor 吃的是**完整视频**,不是单帧
- Image Predictor第一帧只吃了 `index=0` 的单帧
- Fast Muter 当前状态符合预期
---
## 建议的执行顺序
不要一次性连完所有节点再运行!按以下顺序验证:
1. **只连第 1~5 步**(到 Preview Image→ 运行 → 确认第一帧分割正确
2. **接入第 6~8 步**Video Predictor + 输出)→ 运行 → 确认整段视频能跑通
3. **最后加第 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 参数 |