vault backup: 2026-04-24 10:16:23

This commit is contained in:
2026-04-24 10:16:23 +08:00
parent 824a220d9b
commit a25c1985b7
4 changed files with 189 additions and 21 deletions

View File

@@ -4,8 +4,8 @@
"title": "Design ComfyUI video segmentation and tracking",
"titleGenerationStatus": "success",
"createdAt": 1776871296744,
"updatedAt": 1776872591468,
"lastResponseAt": 1776872300286,
"updatedAt": 1776995136544,
"lastResponseAt": 1776995136544,
"sessionId": "50e1c568-9493-4c86-8ca1-1f50b0f2e724",
"providerState": {
"providerSessionId": "50e1c568-9493-4c86-8ca1-1f50b0f2e724"
@@ -15,12 +15,12 @@
],
"usage": {
"model": "kimi-for-coding",
"inputTokens": 35379,
"inputTokens": 46448,
"cacheCreationInputTokens": 0,
"cacheReadInputTokens": 0,
"contextWindow": 200000,
"contextTokens": 35379,
"percentage": 18,
"contextTokens": 46448,
"percentage": 23,
"contextWindowIsAuthoritative": true
}
}

View File

@@ -195,11 +195,11 @@
"obsidian-excalidraw-plugin:新建绘图文件": false
}
},
"active": "cf6ed9a83174d6d5",
"active": "98c4d568edb73698",
"lastOpenFiles": [
"自动语义分割系统/安装步骤.md",
"自动语义分割系统/系统设计.md",
"自动语义分割系统/ComfyUI 搭建操作指南.md",
"自动语义分割系统/安装步骤.md",
"Excalidraw/Drawing 2026-04-22 22.49.48.excalidraw.md",
"Excalidraw/Drawing 2026-04-22 22.49.50.excalidraw.md",
"Excalidraw/Drawing 2026-04-22 22.40.08.excalidraw.md",

View File

@@ -13,7 +13,7 @@ tags:
> 前置假设:你已安装以下节点包。如未安装,请先通过 ComfyUI Manager 安装:
> - `ComfyUI-Manager`(管理器本身)
> - `ComfyUI-VideoHelperSuite`(视频加载/保存)
> - `ComfyUI-SAM2`SAM2 分割,推荐 kijai 版)
> - `ComfyUl-segment-anything-2`SAM2 分割,推荐 kijai 版)
> - `ComfyUI-Impact-Pack`Grounding DINO / 检测器)
> - `rgthree-comfy`Fast Muter / Bypass 节点)
@@ -31,18 +31,22 @@ tags:
### 2.1 加载视频
1. 右键/双击空白处
2. 依次找到:`video``Load Video (Upload)``Load Video (Path)`
- 如果你用 VideoHelperSuite路径通常是 `video``VHS_LoadVideo`
3. 点击创建节点
4. 节点出现在画布上,把它拖到左上角区域
1. 右键/双击空白处打开节点菜单
2. 在第二级菜单中找到 **Video Helper Suite**(带有紫色摄像机图标的那一项)
3. 在右侧弹出的第三级菜单中,根据你的需求选择以下任意一个节点:
- **Load Video (Upload)**:如果你想从电脑本地上传一个视频文件
- **Load Video (Path)**:如果你想通过输入电脑上的文件夹路径来读取视频
4. 点击创建节点
5. 节点出现在画布上,把它拖到左上角区域
### 2.2 提取第一帧(关键帧选择器)
1. 添加节点:`video``VHS_SelectFrames``Get Image From Batch`
- 如果没有专用选帧节点,可用原生 `ImageBatch` 配合索引拆分
2. 连接:`Load Video``IMAGE` 输出 → `SelectFrames``image` 输入
3. 设置参数:`frame_index = 0`(表示取第一帧)
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`(表示取第一帧)
> **操作技巧**ComfyUI 中,鼠标从一个节点的**圆形输出端**拖拽到另一个节点的**圆形输入端**即可完成连线。
@@ -53,10 +57,10 @@ tags:
这是整个系统的核心引擎。
1. 右键/双击空白处
2. 找到分类:`SAM2` `segment_anything`
3. 选择节点:`SAM2 Model Loader`(名称可能为 `SAM2ModelLoader``SAM2::Model Loader`
2. 找到分类:`SAM2` ,别选 `segment_anything2 `
3. 选择节点:`(Down)Load SAM2Model`(名称可能为 `SAM2ModelLoader``SAM2::Model Loader`
4. 参数设置:
- `model_name`: 选择 `sam2_hiera_base_plus.pt`(精度与速度平衡)
- `model_name`: 选择 `sam2.1 hiera_base_plus.safetensors`(精度与速度平衡)
- `device`: `cuda`(若显存不足可选 `cpu`,但极慢)
- `precision`: `fp16`(推荐,省显存)
@@ -70,7 +74,7 @@ tags:
### 4.1 点标注(正选/反选)
1. 添加节点:`SAM2``SAM2 Point Prompt``Point Prompt`
1. 添加节点:`SAM2 → `SAM2 Point Prompt` 或 `Point Prompt`
2. 参数设置:
- `points`: `[[0.5, 0.5]]`(归一化坐标,格式为 JSON 列表)
- `labels`: `[1]``1` = 正选前景,`0` = 反选背景)

View File

@@ -0,0 +1,164 @@
---
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 参数 |