ComfyUI-WarperNodes 插件完整教程
1. 插件简介
ComfyUI-WarperNodes 是一个功能丰富的 ComfyUI 自定义节点合集,专门为视频处理和图像批量操作而设计。这个插件就像是给你的 ComfyUI 添加了一套专业的视频剪辑和图像处理工具箱。
插件地址: https://github.com/AIWarper/ComfyUI-WarperNodes
主要功能:
- 帮你处理视频帧序列,让视频生成更流畅
- 智能分割图像批次,避免显存不够用
- 创建各种脸部遮罩,精确控制脸部编辑
- 计算图像之间的动作流,让动画更自然
- 调整姿态检测点,让人物姿态更准确
2. 如何安装
第一步:下载插件
- 打开你的 ComfyUI 安装文件夹
- 进入
custom_nodes文件夹(这就像是插件的专用停车场) - 在这里打开命令行窗口,输入:
git clone https://github.com/AIWarper/ComfyUI-WarperNodes
第二步:安装依赖文件
- 进入刚下载的插件文件夹
- 如果有
requirements.txt文件,运行:pip install -r requirements.txt
第三步:下载 RAFT 模型(重要!)
这是光流可视化节点必需的"大脑"文件:
- 从 Google Drive 链接 下载
Tartan-C-T-TSKH-spring540x960-M.pth文件 - 在你的 ComfyUI 文件夹下创建
models/raft/文件夹 - 把下载的文件放到这个文件夹里
第四步:重启 ComfyUI
重新启动 ComfyUI,你就能在"添加节点"菜单的"Warper Tools"分类下找到所有新节点了。
3. 节点详细解析
3.1 DWPose Scaler (Warper) - 姿态点缩放器
这个节点就像是一个"姿态调整器",能够调整人物姿态检测点的大小和位置,让姿态更符合你的需求。
3.1.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 姿态数据 | pose_data | 输入连接 | - | 接收姿态检测的结果数据 | DWPose 关键点数据输入 | 连接 DWPose 节点的输出 |
| 缩放比例 | scale_factor | 0.1-10.0 | 1.0 | 控制姿态大小,就像调节照片缩放 | 关键点坐标的缩放倍数 | 设置 1.5 让姿态放大 50% |
| X轴偏移 | offset_x | -1000到1000 | 0 | 左右移动姿态位置 | X轴坐标偏移量 | 设置 100 向右移动姿态 |
| Y轴偏移 | offset_y | -1000到1000 | 0 | 上下移动姿态位置 | Y轴坐标偏移量 | 设置 -50 向上移动姿态 |
3.2 Flow Visualizer (Warper) - 光流可视化器
这个节点像是一个"动作侦探",能够分析连续图像之间的运动变化,并用彩色图像显示出来。
3.2.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 图像序列 | images | 输入连接 | - | 需要分析动作的图像组 | 输入图像批次数据 | 连接你的视频帧序列 |
| 模型路径 | model_path | 文件路径 | 自动检测 | RAFT模型文件的位置 | RAFT模型检查点路径 | 通常会自动找到下载的模型 |
| 显示前向流 | show_forward_flow | True/False | True | 显示从第一帧到第二帧的动作 | 是否输出前向光流可视化 | 开启后能看到物体往哪个方向运动 |
| 显示后向流 | show_backward_flow | True/False | False | 显示从第二帧到第一帧的动作 | 是否输出后向光流可视化 | 开启后能看到反向运动轨迹 |
| 流动强度 | flow_scale | 0.1-10.0 | 1.0 | 控制动作显示的强度 | 光流可视化的缩放因子 | 设置 2.0 让运动轨迹更明显 |
3.3 Smart Video Batcher (Warper) - 智能视频分批器
这个节点就像是一个"智能打包机",能够把长视频分成小段处理,避免显存不够用的问题。
3.3.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 图像序列 | images | 输入连接 | - | 需要分批的图像组 | 输入图像批次数据 | 连接你的视频帧序列 |
| 批次大小 | batch_size | 1-100 | 8 | 每批处理多少张图片 | 每个批次包含的图像数量 | 设置 16 表示每次处理 16 帧 |
| 填充模式 | padding_mode | 选择列表 | repeat | 最后一批不够时如何处理 | 最后批次的填充策略 | repeat会重复最后一帧来填满 |
| 重叠帧数 | overlap_frames | 0-10 | 0 | 批次之间重叠多少帧 | 相邻批次的重叠帧数 | 设置 2 让批次间有 2 帧重叠 |
3.4 Get Batch By Index (Warper) - 按索引获取批次
这个节点像是一个"智能选择器",能够从多个批次中精确选择你想要的那一批。
3.4.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 批次列表 | batch_list | 输入连接 | - | 包含多个批次的列表 | 输入批次列表数据 | 连接分批器的输出 |
| 索引号 | index | 0-999 | 0 | 选择第几个批次(从0开始) | 批次在列表中的索引位置 | 设置 2 选择第3个批次 |
| 循环模式 | wrap_around | True/False | False | 超出范围时是否循环选择 | 是否启用索引循环 | 开启后索引超出会从头开始 |
3.5 Smart Overlapping Batcher (Warper) - 智能重叠分批器
这个节点就像是一个"无缝拼接机",创建有重叠的批次,让视频处理更连贯。
3.5.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 图像序列 | images | 输入连接 | - | 需要分批的图像组 | 输入图像批次数据 | 连接你的视频帧序列 |
| 批次大小 | batch_size | 1-100 | 8 | 每批处理多少张图片 | 每个批次包含的图像数量 | 设置 12 表示每次处理 12 帧 |
| 重叠大小 | overlap_size | 1-50 | 2 | 批次之间重叠多少帧 | 相邻批次的重叠帧数 | 设置 4 让批次间有 4 帧重叠 |
| 步长 | step_size | 1-50 | 6 | 每次向前移动多少帧 | 批次起始位置的步进量 | 设置 8 表示每批向前移动 8 帧 |
3.6 Mouth Mask from Pose (Warper) - 嘴部遮罩生成器
这个节点就像是一个"嘴部定位器",能够根据人脸姿态点自动创建嘴部的圆形遮罩。
3.6.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 姿态数据 | pose_data | 输入连接 | - | 人脸姿态检测的结果 | DWPose 关键点数据输入 | 连接 DWPose 节点的输出 |
| 图像尺寸 | image_size | 输入连接 | - | 遮罩图像的尺寸 | 目标图像的宽高信息 | 连接原图像或手动设置尺寸 |
| 遮罩半径 | mask_radius | 5-200 | 30 | 嘴部遮罩的圆形大小 | 圆形遮罩的半径像素值 | 设置 50 创建更大的嘴部遮罩 |
| 羽化程度 | feather_amount | 0-50 | 5 | 遮罩边缘的柔化程度 | 遮罩边缘的模糊像素数 | 设置 10 让遮罩边缘更柔和 |
| 遮罩强度 | mask_strength | 0.0-1.0 | 1.0 | 遮罩的不透明度 | 遮罩的透明度值 | 设置 0.8 让遮罩稍微透明 |
3.7 Facial Part Mask from Pose (Warper) - 面部部位遮罩生成器
这个节点就像是一个"精密面部雕刻师",能够为脸部不同部位创建各种形状的遮罩。
3.7.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 姿态数据 | pose_data | 输入连接 | - | 人脸姿态检测的结果 | DWPose 关键点数据输入 | 连接 DWPose 节点的输出 |
| 图像尺寸 | image_size | 输入连接 | - | 遮罩图像的尺寸 | 目标图像的宽高信息 | 连接原图像或手动设置尺寸 |
| 面部部位 | facial_part | 下拉选择 | face | 选择要遮罩的面部区域 | 面部关键点区域类型 | 选择 mouth 只遮罩嘴部 |
| 遮罩形状 | mask_shape | 下拉选择 | convex_hull | 遮罩的几何形状 | 遮罩生成的几何算法 | 选择 ellipse 创建椭圆遮罩 |
| 扩展像素 | expand_pixels | 0-100 | 10 | 向外扩展遮罩的像素数 | 遮罩边界的外扩像素值 | 设置 20 让遮罩范围更大 |
| 羽化程度 | feather_amount | 0-50 | 5 | 遮罩边缘的柔化程度 | 遮罩边缘的模糊像素数 | 设置 15 让遮罩边缘非常柔和 |
| 遮罩强度 | mask_strength | 0.0-1.0 | 1.0 | 遮罩的不透明度 | 遮罩的透明度值 | 设置 0.7 让遮罩半透明 |
4. 使用技巧和建议
4.1 显存优化技巧
- 处理长视频时,建议使用 Smart Video Batcher 节点,将批次大小设置为 4-8 帧
- 如果显存充足,可以适当增加批次大小到 12-16 帧以提高处理效率
- 使用重叠分批器时,重叠帧数不要超过批次大小的 1/3
4.2 遮罩创建技巧
- 创建面部遮罩时,先用小的扩展像素值(5-10)测试效果
- 对于精细的面部编辑,建议使用椭圆形遮罩
- 羽化程度建议设置为 5-15,太高会让遮罩边缘过于模糊
4.3 光流可视化技巧
- 首次使用前确保 RAFT 模型文件正确安装
- 分析快速运动场景时,可以适当降低流动强度到 0.5-0.8
- 处理静态场景时,可以提高流动强度到 1.5-2.0 以显示细微变化
4.4 工作流程建议
- 视频预处理:使用智能分批器分割长视频
- 姿态调整:使用 DWPose Scaler 调整人物姿态
- 遮罩生成:根据需要创建面部遮罩
- 运动分析:使用光流可视化分析运动轨迹
- 批次处理:使用批次选择器处理特定片段
5. 常见问题解答
Q1: 光流可视化节点报错"找不到 RAFT 模型"
答: 确保已经下载了 Tartan-C-T-TSKH-spring540x960-M.pth 文件,并将其放在 ComfyUI/models/raft/ 文件夹中。
Q2: 分批处理时出现显存不足错误
答: 减少批次大小,从 16 降到 8 或 4。同时关闭其他占用显存的程序。
Q3: 面部遮罩位置不准确
答: 检查输入的 DWPose 数据是否正确。可以尝试调整姿态缩放比例或偏移参数。
Q4: 重叠分批器创建的批次数量过多
答: 增加步长值,或减少重叠大小。步长应该小于批次大小但大于重叠大小。
Q5: 遮罩边缘过于锐利
答: 增加羽化程度参数,建议设置为 10-20。同时可以降低遮罩强度到 0.8-0.9。
6. 高级应用场景
6.1 人物换脸工作流
- 使用 DWPose 检测人脸关键点
- 用 Facial Part Mask 创建精确的面部遮罩
- 使用 Smart Video Batcher 分批处理视频
- 结合其他 AI 模型进行面部替换
6.2 视频插帧工作流
- 使用 Flow Visualizer 分析帧间运动
- 根据光流信息指导插帧算法
- 使用重叠分批器确保时序一致性
6.3 动作分析工作流
- 使用 Smart Video Batcher 分割动作序列
- 逐批分析光流信息
- 使用 Get Batch By Index 选择特定动作片段
这个插件为 ComfyUI 用户提供了强大的视频处理和面部编辑能力,特别适合需要精确控制和批量处理的场景。记住要根据你的硬件配置调整参数,从小参数开始测试,逐步优化到最佳效果。