ComfyUI-Mask-Util 插件超详细保姆级教程
1. 插件简介
ComfyUI-Mask-Util 是一个专门用来处理图片遮罩(就是那些黑白图片,用来告诉电脑哪些地方要处理哪些地方不要动)的超实用工具包。这个插件包含了14个不同的节点,主要功能包括拆分遮罩、智能裁剪图片、改变设备类型等。
插件原地址: https://github.com/longgui0318/comfyui-mask-util
简单来说,这个插件就像是一个专业的图片处理工具箱,里面装满了各种"小工具",每个工具都有特定的作用:
- 有的能把一张遮罩图拆分成好几张小的遮罩图
- 有的能根据遮罩自动裁剪图片,去掉多余的部分
- 有的能改变图片的存储格式和运行设备
- 有的能让你更方便地选择和处理多个遮罩
2. 如何安装
方法一:通过ComfyUI管理器安装(推荐)
- 打开ComfyUI界面
- 点击右侧的"Manager"按钮
- 选择"Install Custom Nodes"
- 搜索"comfyui-mask-util"或"longgui0318"
- 点击"Install"按钮
- 重启ComfyUI
方法二:手动安装
- 打开ComfyUI的安装文件夹
- 进入
custom_nodes文件夹 - 在这里打开命令行窗口
- 输入命令:
git clone https://github.com/longgui0318/comfyui-mask-util.git - 重启ComfyUI
3. 节点逐一详解
基于插件包含的14个节点,我来逐一为大家解释每个节点的作用和参数:
3.1 Split Masks 节点 - 遮罩分割器
这个节点就像一个"切蛋糕"工具,能把一张包含多个区域的遮罩图片,自动分割成多张单独的遮罩图片。比如你有一张图片上有3个人,这个节点就能帮你把每个人的遮罩分别提取出来。
3.2 Mask Selection Of Masks 节点 - 遮罩选择器
这个节点就像一个"遮罩选择器",当你有很多张遮罩图片时,它能帮你从中选择出你需要的那一张或几张。
3.3 Image Adaptive Crop With Mask 节点 - 智能裁剪图片
这个节点就像一个"智能剪刀",它会根据你提供的遮罩图片,自动找到图片中的重要区域,然后把这个区域裁剪出来,去掉周围不需要的部分。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入图片 | image | 图片数据 | - | 要裁剪的原始图片 | 输入的图像张量 | 连接一张你想要裁剪的图片 |
| 遮罩 | mask | 遮罩数据 | - | 用来指定裁剪区域的黑白图片 | 二值化遮罩张量 | 连接一个标记了重要区域的遮罩 |
| 目标宽度 | target_width | 数字 | 512 | 裁剪后图片的宽度(像素) | 输出图像的宽度分辨率 | 想要512像素宽就填512 |
| 目标高度 | target_height | 数字 | 512 | 裁剪后图片的高度(像素) | 输出图像的高度分辨率 | 想要512像素高就填512 |
3.4 Image Adaptive Crop MASK&Resolution 节点 - 智能裁剪遮罩和分辨率
这个节点就像一个"双重剪刀",不仅能裁剪图片,还能同时调整图片的分辨率大小。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入图片 | image | 图片数据 | - | 要处理的原始图片 | 输入的图像张量 | 连接原始图片 |
| 遮罩 | mask | 遮罩数据 | - | 用来指定区域的黑白图片 | 二值化遮罩张量 | 连接遮罩图片 |
| 分辨率调整 | resolution | 数字 | 1024 | 调整后的图片分辨率 | 输出图像的分辨率 | 想要高清就填1024或更高 |
3.5 Image Change Device 节点 - 图片设备转换器
这个节点就像一个"搬运工",能把图片从一个设备(比如显卡)转移到另一个设备(比如内存)。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入图片 | image | 图片数据 | - | 要转移的图片 | 输入的图像张量 | 连接需要转移的图片 |
| 目标设备 | device | 文本 | "cpu"或"cuda" | 要转移到的设备 | 计算设备类型 | 显卡内存不够时选"cpu" |
3.6 Image Change DType 节点 - 图片数据类型转换器
这个节点就像一个"格式转换器",能改变图片数据的存储格式,就像把Word文档转成PDF一样。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入图片 | image | 图片数据 | - | 要转换的图片 | 输入的图像张量 | 连接需要转换格式的图片 |
| 数据类型 | dtype | 选择项 | "float32" | 图片数据的存储格式 | 数据类型精度 | 需要更高精度时选择float32 |
3.7 Image Resolution Adaptive With X 节点 - 图片分辨率智能调整
这个节点就像一个"尺寸调节器",能根据你设定的某个尺寸(比如宽度),自动调整图片的整体大小,保持图片不变形。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入图片 | image | 图片数据 | - | 要调整的图片 | 输入的图像张量 | 连接原始图片 |
| 目标X值 | target_x | 数字 | 1024 | 想要的宽度或高度 | 目标分辨率尺寸 | 想要宽度是1024就填1024 |
| 调整模式 | mode | 选择项 | "width" | 是按宽度还是高度调整 | 分辨率调整的基准维度 | 按宽度调整选"width" |
3.8 Image Resolution Limit With 8K 节点 - 图片分辨率8K限制器
这个节点就像一个"限速器",确保图片不会超过8K分辨率,防止图片太大导致电脑卡死。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入图片 | image | 图片数据 | - | 要限制的图片 | 输入的图像张量 | 连接可能过大的图片 |
| 最大分辨率 | max_resolution | 数字 | 7680 | 允许的最大分辨率 | 分辨率上限约束 | 8K是7680像素 |
3.9 Load Image With Name 节点 - 带名称的图片加载器
这个节点就像一个"智能图片夹",不仅能加载图片,还能记住图片的名称,方便后续处理。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 图片路径 | image_path | 文本 | - | 图片文件的位置 | 图像文件路径 | 选择你要加载的图片文件 |
| 输出名称 | output_name | 文本 | "image_1" | 给图片起个名字 | 图像标识符 | 给图片起个容易记住的名字 |
3.10 Mask Change Device 节点 - 遮罩设备转换器
这个节点就像一个"遮罩搬运工",能把遮罩从一个设备转移到另一个设备。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入遮罩 | mask | 遮罩数据 | - | 要转移的遮罩 | 输入的遮罩张量 | 连接需要转移的遮罩 |
| 目标设备 | device | 文本 | "cpu"或"cuda" | 要转移到的设备 | 计算设备类型 | 内存不够时选"cpu" |
3.11 Mask Change DType 节点 - 遮罩数据类型转换器
这个节点就像一个"遮罩格式转换器",能改变遮罩的数据存储格式。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入遮罩 | mask | 遮罩数据 | - | 要转换的遮罩 | 输入的遮罩张量 | 连接需要转换的遮罩 |
| 数据类型 | dtype | 选择项 | "float32" | 遮罩数据的存储格式 | 数据类型精度 | 需要更高精度时选择float32 |
3.12 Model Change Device 节点 - 模型设备转换器
这个节点就像一个"模型搬运工",能把AI模型从一个设备转移到另一个设备。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入模型 | model | 模型数据 | - | 要转移的AI模型 | 输入的模型对象 | 连接需要转移的模型 |
| 目标设备 | device | 文本 | "cpu"或"cuda" | 要转移到的设备 | 计算设备类型 | 显卡内存不够时选"cpu" |
3.13 Model Change Device & Repeaters 节点 - 模型设备转换器增强版
这个节点就像一个"升级版模型搬运工",不仅能转移模型,还能处理重复的转移任务。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入模型 | model | 模型数据 | - | 要转移的AI模型 | 输入的模型对象 | 连接需要转移的模型 |
| 目标设备 | device | 文本 | "cpu"或"cuda" | 要转移到的设备 | 计算设备类型 | 显卡内存不够时选"cpu" |
| 重复次数 | repeaters | 数字 | 1 | 重复转移的次数 | 重复执行次数 | 需要多次转移时增加数值 |
3.14 Output Image To Input 节点 - 输出图片转输入
这个节点就像一个"循环器",能把一个步骤的输出图片,重新作为输入图片使用,形成循环处理。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入图片 | image | 图片数据 | - | 要循环使用的图片 | 输入的图像张量 | 连接上一步的输出图片 |
| 循环模式 | loop_mode | 选择项 | "single" | 循环处理的方式 | 循环处理模式 | 单次循环选"single" |
4. 使用技巧和建议
4.1 设备管理技巧
当你的电脑显卡内存不够时,可以使用"Change Device"系列节点把图片、遮罩或模型转移到CPU上处理,虽然速度会慢一些,但能避免内存不足的问题。
4.2 分辨率处理技巧
- 使用"Image Resolution Limit With 8K"节点可以防止图片过大导致系统崩溃
- "Image Resolution Adaptive With X"节点能帮你保持图片比例的同时调整大小
- 处理高分辨率图片时,建议先用限制节点控制大小
4.3 遮罩处理技巧
- "Split Masks"节点特别适合处理包含多个对象的遮罩
- "Mask Selection Of Masks"节点能让你从多个遮罩中选择最合适的那个
- 智能裁剪功能能自动找到遮罩中的重要区域
4.4 工作流优化技巧
- 合理使用"Output Image To Input"节点可以创建迭代处理流程
- 数据类型转换节点能帮你在精度和速度之间找到平衡
- 带名称的图片加载器方便管理多个图片文件
5. 常见问题解答
Q1: 安装后找不到节点怎么办?
A: 确保重启了ComfyUI,如果还是找不到,检查custom_nodes文件夹中是否有comfyui-mask-util文件夹。
Q2: 使用时出现内存不足错误怎么办?
A: 使用"Change Device"系列节点把处理转移到CPU上,或者使用分辨率限制节点减小图片大小。
Q3: 智能裁剪效果不理想怎么办?
A: 检查遮罩质量,确保遮罩清晰地标记了要裁剪的区域。必要时可以手动调整遮罩。
Q4: 分割遮罩没有效果怎么办?
A: 确保输入的遮罩确实包含多个独立的区域,每个区域之间要有明显的分隔。
Q5: 处理速度很慢怎么办?
A: 检查是否在使用CPU处理,如果显卡内存足够,尽量使用CUDA设备。同时可以适当降低分辨率。
6. 进阶应用场景
6.1 批量图片处理
结合"Load Image With Name"和"Output Image To Input"节点,可以创建自动化的批量处理流程。
6.2 多对象分离处理
使用"Split Masks"节点可以自动分离图片中的多个对象,然后对每个对象进行不同的处理。
6.3 内存优化工作流
在处理大量图片时,合理使用设备转换节点可以有效管理内存使用,避免系统崩溃。
6.4 高精度图片处理
通过数据类型转换节点,可以在需要高精度处理的场景中使用更高精度的数据格式。
这个插件真的是ComfyUI用户的福音,特别是那些经常需要处理遮罩和进行图片裁剪的朋友。每个节点都有其独特的用途,组合使用能发挥更大的威力。记住,多实践多尝试,你会发现更多有趣的用法!