ComfyUI ProPainter Nodes 插件完全教程
1. 插件简介
插件地址: https://github.com/daniabib/ComfyUI_ProPainter_Nodes
ComfyUI ProPainter Nodes 是一个专门用来处理视频的神奇插件,就像给你的 ComfyUI 装了一个"视频魔法橡皮擦"和"视频扩展器"。想象一下,你有一段视频,里面有你不想要的东西(比如路人、电线杆、水印等),或者你想让视频画面变得更大,这个插件就能帮你实现!
这个插件能给你带来什么效果:
- 🎭 物体移除:就像用魔法橡皮擦一样,把视频中不想要的东西完全擦掉,而且擦掉的地方会自动"长出"合理的背景
- 🖼️ 视频修补:如果视频某些地方有破损、遮挡或者不完整,可以智能地把这些地方补全
- 📏 画面扩展:让视频画面变得更大,就像把一张小照片放大成大海报,但不会变糊
- 🎬 无缝处理:处理后的视频看起来非常自然,就像原本就是这样拍的
简单来说,这就是一个让你的视频"起死回生"和"完美无缺"的超级工具!
2. 如何安装
方法一:使用 ComfyUI-Manager(推荐)
- 先安装 ComfyUI-Manager(如果还没装的话)
- 在 ComfyUI-Manager 菜单中点击"Install Custom Nodes"
- 搜索"ComfyUI ProPainter Nodes",作者是"daniabib"
- 点击安装即可
方法二:手动安装
- 打开终端,进入你的 ComfyUI 根目录下的 custom_nodes 文件夹
- 运行以下命令:
git clone https://github.com/daniabib/ComfyUI_ProPainter_Nodes pip install -r requirements.txt - 重启 ComfyUI
注意: 插件会自动下载所需的模型文件到 weights 文件夹,第一次使用时可能需要等待一段时间。
3. 节点详细解析
3.1 ProPainter Inpainting(视频修补大师)
这个节点就像一个"智能修补匠",你告诉它哪些地方需要修补(用遮罩),它就会智能地把这些地方填补得天衣无缝。比如你想去掉视频中的路人、广告牌、水印等,这个节点就是你的最佳选择。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | 图像序列 | 视频帧序列 | 这是你要"修补"的视频,就像一本需要修复的相册 | 输入的视频帧序列,每一帧都是一张图片 | 连接视频加载节点的输出,比如从VideoHelperSuite加载的视频 |
| mask | mask | 遮罩图像 | 黑白遮罩 | 这是"修补指南",白色部分表示要修补的地方,黑色部分保持不变 | 二值化遮罩,指示需要修复的区域 | 用画笔工具画出要去除的物体,或者用AI生成遮罩 |
| width | width | 整数 | 640 | 这是处理时的"画布宽度",就像选择画纸的宽度 | 输出图像的宽度像素值 | 根据你的显卡性能调整,越大越清晰但越慢 |
| height | height | 整数 | 360 | 这是处理时的"画布高度",就像选择画纸的高度 | 输出图像的高度像素值 | 通常保持16:9或4:3的比例,比如640x360或640x480 |
| mask_dilates | mask_dilates | 整数 | 5 | 这是"修补范围扩大器",数值越大修补的边缘越宽 | 遮罩膨胀的像素数,扩大修复区域 | 如果修补边缘不够自然,可以增加这个值到8-10 |
| flow_mask_dilates | flow_mask_dilates | 整数 | 8 | 这是"运动追踪范围扩大器",帮助更好地理解物体运动 | 光流遮罩的膨胀像素数,用于运动估计 | 对于运动较快的物体,可以增加到10-15 |
| ref_stride | ref_stride | 整数 | 10 | 这是"参考帧间隔",决定每隔多少帧作为参考来修补 | 参考帧的采样间隔 | 视频变化快用小值(5-8),变化慢用大值(15-20) |
| neighbor_length | neighbor_length | 整数 | 10 | 这是"邻居帧数量",决定用前后多少帧来帮助修补当前帧 | 用于修复的邻近帧数量 | 场景复杂用大值(15-20),简单场景用小值(5-8) |
| subvideo_length | subvideo_length | 整数 | 80 | 这是"分段处理长度",把长视频分成小段来处理,避免内存不够 | 子视频片段的最大长度 | 显卡内存小用小值(40-60),内存大可以用大值(100-150) |
| raft_iter | raft_iter | 整数 | 20 | 这是"运动分析精度",数值越大对运动的理解越准确但越慢 | RAFT光流算法的迭代次数 | 运动复杂的视频用大值(25-30),简单运动用小值(15-20) |
| fp16 | fp16 | enable/disable | enable | 这是"省内存模式",开启后占用内存更少但可能略微影响质量 | 是否使用半精度浮点数以节省显存 | 显卡内存不足时选enable,内存充足且追求质量选disable |
3.2 ProPainter Outpainting(视频扩展大师)
这个节点就像一个"画面扩展器",能够把你的视频画面向外扩展,让原本的小画面变成大画面。就像把一张小照片的边缘智能地"长出"更多内容,让画面变得更宽广。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | 图像序列 | 视频帧序列 | 这是你要"扩展"的视频,就像一幅要放大画框的画 | 输入的视频帧序列 | 连接视频加载节点,准备进行画面扩展 |
| width | width | 整数 | 640 | 这是处理时的"基础宽度",作为扩展的参考尺寸 | 处理时的基准宽度 | 通常设置为原视频宽度或稍小一些 |
| height | height | 整数 | 360 | 这是处理时的"基础高度",作为扩展的参考尺寸 | 处理时的基准高度 | 通常设置为原视频高度或稍小一些 |
| width_scale | width_scale | 小数 | 1.2 | 这是"宽度扩展倍数",1.2表示宽度变成原来的1.2倍 | 宽度扩展的比例系数 | 想要宽屏效果用1.3-1.5,轻微扩展用1.1-1.2 |
| height_scale | height_scale | 小数 | 1.0 | 这是"高度扩展倍数",1.0表示高度不变 | 高度扩展的比例系数 | 通常保持1.0,如需要可以设置1.1-1.3 |
| mask_dilates | mask_dilates | 整数 | 5 | 这是"扩展边缘处理范围",让扩展的边缘更自然 | 遮罩膨胀像素数 | 扩展效果不自然时可以增加到8-12 |
| flow_mask_dilates | flow_mask_dilates | 整数 | 8 | 这是"运动边缘处理范围",处理扩展区域的运动连续性 | 光流遮罩膨胀像素数 | 运动场景可以增加到10-15 |
| ref_stride | ref_stride | 整数 | 10 | 这是"参考帧间隔",决定扩展时参考帧的选择间隔 | 参考帧采样间隔 | 场景变化快用小值(5-8),变化慢用大值(12-15) |
| neighbor_length | neighbor_length | 整数 | 10 | 这是"邻居帧数量",用于扩展时的帧间一致性 | 邻近帧数量 | 需要更好一致性时增加到15-20 |
| subvideo_length | subvideo_length | 整数 | 80 | 这是"分段处理长度",避免长视频处理时内存不足 | 子视频片段长度 | 根据显卡内存调整,内存小用40-60 |
| raft_iter | raft_iter | 整数 | 20 | 这是"运动分析精度",影响扩展区域的运动自然度 | RAFT算法迭代次数 | 追求质量用25-30,速度优先用15-20 |
| fp16 | fp16 | enable/disable | disable | 这是"省内存模式",扩展任务建议关闭以保证质量 | 半精度浮点数模式 | 内存充足时选disable,内存不足时选enable |
4. 使用技巧和建议
4.1 修补效果优化技巧
- 遮罩制作:遮罩边缘要平滑,避免锯齿状边缘
- 参数调优:复杂场景增加 neighbor_length,简单场景减少以提高速度
- 分辨率选择:先用低分辨率测试效果,满意后再用高分辨率处理
- 内存管理:长视频建议减少 subvideo_length 避免内存溢出
4.2 扩展效果优化技巧
- 比例控制:不要一次性扩展太多,建议分步进行
- 边缘处理:增加 mask_dilates 可以让扩展边缘更自然
- 质量优先:扩展任务建议关闭 fp16 以获得最佳质量
- 场景适配:静态场景效果更好,动态场景需要调整参数
4.3 性能优化建议
- 显卡内存:8GB以下建议降低分辨率和 subvideo_length
- 处理速度:减少 raft_iter 和 neighbor_length 可以提高速度
- 批量处理:多个短视频比一个长视频处理效率更高
4.4 工作流程建议
- 预处理:使用 VideoHelperSuite 加载视频
- 遮罩制作:使用 YoloWorld-EfficientSAM 自动生成遮罩
- 参数测试:先用小分辨率测试参数效果
- 正式处理:确定参数后进行高质量处理
- 后处理:使用 VideoHelperSuite 保存结果
5. 常见问题解答
Q1: 为什么处理后的视频有闪烁现象?
A: 这通常是因为 neighbor_length 设置太小。增加到15-20可以改善帧间一致性。
Q2: 显卡内存不足怎么办?
A: 可以尝试以下方法:
- 开启 fp16 模式
- 减少 subvideo_length 到40-60
- 降低处理分辨率
- 分段处理长视频
Q3: 修补效果不自然怎么办?
A: 检查以下设置:
- 增加 mask_dilates 到8-12
- 提高 raft_iter 到25-30
- 确保遮罩边缘平滑
- 增加 neighbor_length
Q4: 扩展后的画面有明显接缝?
A: 尝试以下调整:
- 增加 mask_dilates 和 flow_mask_dilates
- 降低扩展比例,分多次进行
- 关闭 fp16 模式
- 增加 neighbor_length
Q5: 处理速度太慢怎么办?
A: 可以通过以下方式加速:
- 减少 raft_iter 到15
- 降低 neighbor_length 到5-8
- 开启 fp16 模式
- 降低处理分辨率
Q6: 遮罩应该怎么制作?
A: 遮罩制作要点:
- 白色区域表示要修补的地方
- 黑色区域表示保持不变的地方
- 边缘要平滑,避免锯齿
- 可以使用AI工具自动生成
6. 实用示例
示例1:去除视频中的路人
- 加载包含路人的视频
- 制作遮罩,白色覆盖路人区域
- 设置参数:width=640, height=360, neighbor_length=15
- 运行 ProPainter Inpainting 节点
示例2:移除视频水印
- 加载带水印的视频
- 精确制作水印区域的遮罩
- 设置较高的 mask_dilates=8 确保完全覆盖
- 使用较高的 raft_iter=25 保证质量
示例3:视频画面扩展
- 加载需要扩展的视频
- 设置 width_scale=1.3 进行宽度扩展
- 保持 height_scale=1.0 不改变高度
- 关闭 fp16 确保扩展质量
7. 高级应用
7.1 创意视频制作
- 移除不想要的背景元素
- 扩展画面创造电影感
- 修复老旧视频的损坏部分
- 创造"消失魔术"效果
7.2 专业视频后期
- 清理拍摄现场的杂物
- 扩展画面适配不同比例
- 修复拍摄失误
- 创造无缝循环视频
7.3 与其他节点配合
- VideoHelperSuite:视频加载和保存
- YoloWorld-EfficientSAM:智能遮罩生成
- ControlNet:精确控制修补内容
- Upscaler:提升最终视频质量
总结: ComfyUI ProPainter Nodes 插件是一个功能强大的视频处理工具,通过2个专业节点,可以实现视频修补和扩展的高级功能。无论是去除不想要的物体,还是扩展视频画面,都能获得专业级的效果。掌握好参数调节,你就能创造出令人惊叹的视频作品!