ComfyUI Masquerade Nodes 插件完全教程
1. 插件简介
插件地址: https://github.com/BadCafeCode/masquerade-nodes-comfyui
Masquerade Nodes 是一个专门处理图片遮罩(蒙版)的 ComfyUI 插件包。简单来说,遮罩就像是一个模板,告诉电脑哪些地方要处理,哪些地方不要动。这个插件就像是一个超级强大的"抠图工具箱",可以帮你:
- 智能抠图:只要输入文字描述,就能自动识别并抠出图片中的特定物体
- 精细修图:可以只对图片的某个部分进行处理,比如只给人脸美颜,不动背景
- 批量处理:一次性处理多张图片,提高工作效率
- 创意合成:把不同图片的部分组合在一起,创造新的效果
2. 如何安装
方法一:通过 ComfyUI Manager 安装(推荐)
- 在 ComfyUI 界面中点击 "Manager" 按钮
- 搜索 "masquerade" 或 "mask"
- 找到 "Masquerade Nodes" 并点击安装
方法二:手动安装
- 打开你的 ComfyUI 安装目录
- 进入
custom_nodes文件夹 - 在命令行中运行:
git clone https://github.com/BadCafeCode/masquerade-nodes-comfyui.git - 重启 ComfyUI
3. 节点详细解析
3.1 Mask By Text(文字生成遮罩)
这是插件的核心节点,就像一个"智能识别器",你告诉它要找什么,它就能在图片中找出来并做成遮罩。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要处理的原始图片 | 输入的图像数据 | 连接你想要处理的图片 |
| prompt | prompt | 文本 | "cat|dog" | 要找的东西,用|分隔多个 | 正向提示词,用于识别目标对象 | 输入"人脸"就能找出所有人脸 |
| negative_prompt | negative_prompt | 文本 | "" | 不要的东西,用|分隔多个 | 负向提示词,排除不需要的对象 | 输入"背景"可以排除背景部分 |
| precision | precision | 0.0-1.0 | 0.5 | 识别的严格程度,越高越严格 | 阈值,控制遮罩的精确度 | 0.3比较宽松,0.7比较严格 |
| normalize | normalize | yes/no | no | 是否让结果更均匀 | 是否对结果进行归一化处理 | 当识别不稳定时选择yes |
3.2 Mask Morphology(遮罩形态处理)
这个节点就像"橡皮擦和画笔",可以让遮罩变大、变小、去掉小点点或填补小洞洞。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要处理的遮罩图片 | 输入的遮罩图像 | 连接遮罩 |
| distance | distance | 0-128 | 5 | 处理的强度,数字越大效果越明显 | 形态学操作的核大小 | 5是轻微调整,20是大幅调整 |
| op | op | dilate/erode/open/close | dilate | 处理方式:扩大/缩小/去白点/填黑洞 | 形态学操作类型 | dilate让遮罩变大,erode让遮罩变小 |
3.3 Combine Masks(遮罩组合)
这个节点就像"图层混合器",可以把两个遮罩按不同方式组合在一起。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image1 | image1 | IMAGE类型 | - | 第一个遮罩 | 第一个输入图像 | 连接第一个遮罩 |
| image2 | image2 | IMAGE类型 | - | 第二个遮罩 | 第二个输入图像 | 连接第二个遮罩 |
| op | op | 多种选项 | union (max) | 组合方式:合并/相交/相减等 | 布尔运算操作类型 | union合并两个遮罩,intersection取交集 |
| clamp_result | clamp_result | yes/no | yes | 是否限制结果在0-1之间 | 是否将结果值限制在有效范围内 | 通常选yes保证结果正常 |
| round_result | round_result | yes/no | no | 是否把结果变成纯黑白 | 是否将结果四舍五入为整数 | 需要纯黑白遮罩时选yes |
3.4 Unary Mask Op(单一遮罩操作)
这个节点就像"遮罩工具箱",可以对一个遮罩做各种简单处理。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要处理的遮罩 | 输入的遮罩图像 | 连接遮罩 |
| op | op | invert/average/round/clamp/abs | invert | 处理方式:反转/平均/四舍五入/限制/绝对值 | 一元操作类型 | invert把黑白颠倒,average变成统一灰色 |
3.5 Unary Image Op(单一图像操作)
这个节点和上面的类似,但是处理的是彩色图片,会对每个颜色通道分别处理。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要处理的彩色图片 | 输入的RGB图像 | 连接彩色图片 |
| op | op | invert/average/round/clamp/abs | invert | 处理方式:反转/平均/四舍五入/限制/绝对值 | 一元操作类型 | invert制作负片效果,average变成单色 |
3.6 Blur(模糊)
这个节点就像"模糊滤镜",可以让图片或遮罩变得柔和模糊。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要模糊的图片或遮罩 | 输入的图像数据 | 连接图片或遮罩 |
| radius | radius | 0-48 | 10 | 模糊程度,数字越大越模糊 | 高斯模糊的半径 | 5是轻微模糊,30是重度模糊 |
| sigma_factor | sigma_factor | 0.01-3.0 | 1.0 | 模糊的衰减速度 | 高斯核的标准差系数 | 通常保持1.0即可 |
3.7 Image To Mask(图片转遮罩)
这个节点就像"黑白转换器",把彩色图片变成黑白遮罩。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要转换的图片 | 输入的图像数据 | 连接彩色图片 |
| method | method | intensity/alpha | intensity | 转换方式:按亮度/按透明度 | 转换为遮罩的方法 | intensity按灰度转换,alpha按透明度转换 |
3.8 Mix Images By Mask(按遮罩混合图片)
这个节点就像"智能橡皮擦",可以把两张图片按照遮罩的形状混合在一起。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image1 | image1 | IMAGE类型 | - | 第一张图片(底图) | 第一个输入图像 | 连接背景图片 |
| image2 | image2 | IMAGE类型 | - | 第二张图片(要贴上去的) | 第二个输入图像 | 连接前景图片 |
| mask | mask | IMAGE类型 | - | 决定怎么混合的遮罩 | 混合权重遮罩 | 白色区域显示image2,黑色区域显示image1 |
3.9 Mix Color By Mask(按遮罩混合颜色)
这个节点就像"调色板",可以在图片的特定区域涂上指定的颜色。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要处理的图片 | 输入的图像数据 | 连接原始图片 |
| r | r | 0-255 | 0 | 红色分量 | RGB颜色的红色通道值 | 255是纯红,0是无红色 |
| g | g | 0-255 | 0 | 绿色分量 | RGB颜色的绿色通道值 | 255是纯绿,0是无绿色 |
| b | b | 0-255 | 0 | 蓝色分量 | RGB颜色的蓝色通道值 | 255是纯蓝,0是无蓝色 |
| mask | mask | IMAGE类型 | - | 决定在哪里涂色的遮罩 | 颜色混合的权重遮罩 | 白色区域会被涂上指定颜色 |
3.10 Mask To Region(遮罩转区域)
这个节点就像"智能裁剪框",可以根据遮罩自动计算出一个合适的矩形区域。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| mask | mask | IMAGE类型 | - | 要分析的遮罩 | 输入的遮罩图像 | 连接遮罩 |
| padding | padding | 0-大数 | 0 | 在遮罩周围加多少空白 | 边界填充像素数 | 10会在遮罩周围加10像素的边框 |
| constraints | constraints | 多种选项 | keep_ratio | 区域的形状限制 | 区域约束类型 | keep_ratio保持比例,ignore不限制 |
| constraint_x | constraint_x | 2-大数 | 64 | 宽度约束值 | X方向的约束参数 | 配合constraints使用 |
| constraint_y | constraint_y | 2-大数 | 64 | 高度约束值 | Y方向的约束参数 | 配合constraints使用 |
| min_width | min_width | 0-大数 | 0 | 最小宽度 | 区域的最小宽度限制 | 确保区域不会太小 |
| min_height | min_height | 0-大数 | 0 | 最小高度 | 区域的最小高度限制 | 确保区域不会太小 |
| batch_behavior | batch_behavior | match_ratio/match_size | match_ratio | 多个遮罩时的处理方式 | 批处理行为模式 | match_size让所有区域大小一致 |
3.11 Cut By Mask(按遮罩裁剪)
这个节点就像"智能剪刀",可以按照遮罩的形状把图片剪出来。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要裁剪的图片 | 输入的图像数据 | 连接原始图片 |
| mask | mask | IMAGE类型 | - | 裁剪的形状模板 | 裁剪区域遮罩 | 白色区域会被保留 |
| force_resize_width | force_resize_width | 0-大数 | 0 | 强制调整到指定宽度 | 强制输出宽度 | 0表示不强制,512表示调整到512像素宽 |
| force_resize_height | force_resize_height | 0-大数 | 0 | 强制调整到指定高度 | 强制输出高度 | 0表示不强制,512表示调整到512像素高 |
| mask_mapping_optional | mask_mapping_optional | MASK_MAPPING | - | 遮罩映射(高级功能) | 可选的遮罩映射关系 | 通常留空,配合分离遮罩组件使用 |
3.12 Paste By Mask(按遮罩粘贴)
这个节点就像"智能贴纸",可以把一张图片按照遮罩的形状贴到另一张图片上。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image_base | image_base | IMAGE类型 | - | 底图(被贴的图) | 基础图像 | 连接背景图片 |
| image_to_paste | image_to_paste | IMAGE类型 | - | 要贴上去的图片 | 要粘贴的图像 | 连接前景图片 |
| mask | mask | IMAGE类型 | - | 决定贴在哪里的遮罩 | 粘贴位置遮罩 | 白色区域是粘贴位置 |
| resize_behavior | resize_behavior | 多种选项 | resize | 图片大小不匹配时的处理方式 | 调整大小的行为模式 | resize直接拉伸,keep_ratio_fit保持比例 |
| mask_mapping_optional | mask_mapping_optional | MASK_MAPPING | - | 遮罩映射(高级功能) | 可选的遮罩映射关系 | 通常留空,配合分离遮罩组件使用 |
3.13 Get Image Size(获取图片尺寸)
这个节点就像"尺子",可以测量图片的宽度和高度。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要测量的图片 | 输入的图像数据 | 连接任意图片 |
3.14 Change Channel Count(改变通道数量)
这个节点就像"格式转换器",可以在黑白图、彩色图、带透明度图之间转换。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要转换的图片 | 输入的图像数据 | 连接图片 |
| kind | kind | mask/RGB/RGBA | RGB | 转换成什么格式 | 目标图像格式 | mask是黑白,RGB是彩色,RGBA带透明度 |
3.15 Constant Mask(固定遮罩)
这个节点就像"填充工具",可以创建一个纯色的遮罩。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| value | value | -8.0到8.0 | 0.0 | 填充的颜色深浅 | 遮罩的像素值 | 0是黑色,1是白色,0.5是灰色 |
| explicit_height | explicit_height | 0-大数 | 0 | 指定高度 | 明确指定的高度像素数 | 512表示512像素高 |
| explicit_width | explicit_width | 0-大数 | 0 | 指定宽度 | 明确指定的宽度像素数 | 512表示512像素宽 |
| copy_image_size | copy_image_size | IMAGE类型 | - | 复制某张图片的尺寸 | 可选的参考图像 | 连接图片会自动使用其尺寸 |
3.16 Prune By Mask(按遮罩筛选)
这个节点就像"筛子",可以从一批图片中筛选出符合条件的。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要筛选的图片批次 | 输入的图像批次 | 连接多张图片 |
| mask | mask | IMAGE类型 | - | 筛选条件遮罩 | 筛选条件遮罩 | 遮罩平均值大于0.5的图片会被保留 |
3.17 Separate Mask Components(分离遮罩组件)
这个节点就像"拆分器",可以把一个包含多个独立区域的遮罩拆分成多个单独的遮罩。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| mask | mask | IMAGE类型 | - | 要分离的遮罩 | 输入的复合遮罩 | 连接包含多个独立区域的遮罩 |
3.18 Create Rect Mask(创建矩形遮罩)
这个节点就像"矩形工具",可以创建一个矩形形状的遮罩。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| mode | mode | percent/pixels | percent | 数值单位:百分比/像素 | 坐标和尺寸的单位模式 | percent用百分比,pixels用像素值 |
| origin | origin | 四个角选项 | topleft | 起始点位置 | 坐标原点位置 | topleft从左上角开始,bottomright从右下角开始 |
| x | x | 0-大数 | 0 | 水平位置 | X坐标偏移 | 在percent模式下,50表示图片中央 |
| y | y | 0-大数 | 0 | 垂直位置 | Y坐标偏移 | 在percent模式下,50表示图片中央 |
| width | width | 0-大数 | 50 | 矩形宽度 | 矩形的宽度 | 在percent模式下,50表示图片宽度的一半 |
| height | height | 0-大数 | 50 | 矩形高度 | 矩形的高度 | 在percent模式下,50表示图片高度的一半 |
| image_width | image_width | 64-大数 | 512 | 图片总宽度 | 画布的总宽度 | 当没有参考图片时使用 |
| image_height | image_height | 64-大数 | 512 | 图片总高度 | 画布的总高度 | 当没有参考图片时使用 |
| copy_image_size | copy_image_size | IMAGE类型 | - | 复制某张图片的尺寸 | 可选的参考图像 | 连接图片会自动使用其尺寸 |
3.19 Make Image Batch(制作图片批次)
这个节点就像"打包器",可以把多张单独的图片打包成一个批次。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image1 | image1 | IMAGE类型 | - | 第一张图片(必需) | 第一个输入图像 | 连接第一张图片 |
| image2 | image2 | IMAGE类型 | - | 第二张图片(可选) | 第二个输入图像 | 连接第二张图片 |
| image3 | image3 | IMAGE类型 | - | 第三张图片(可选) | 第三个输入图像 | 连接第三张图片 |
| image4 | image4 | IMAGE类型 | - | 第四张图片(可选) | 第四个输入图像 | 连接第四张图片 |
| image5 | image5 | IMAGE类型 | - | 第五张图片(可选) | 第五个输入图像 | 连接第五张图片 |
| image6 | image6 | IMAGE类型 | - | 第六张图片(可选) | 第六个输入图像 | 连接第六张图片 |
3.20 Create QR Code(创建二维码)
这个节点就像"二维码生成器",可以把文字转换成二维码图片。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| text | text | 文本 | - | 要编码的文字内容 | 要编码到二维码中的文本 | 输入网址、文字等任何内容 |
| size | size | 64-4096 | 512 | 二维码图片大小 | 输出图像的像素尺寸 | 512表示512x512像素的图片 |
| qr_version | qr_version | 1-40 | 1 | 二维码版本(容量) | QR码的版本号 | 数字越大能存储的内容越多 |
| error_correction | error_correction | L/M/Q/H | H | 错误纠正级别 | 错误纠正能力等级 | H是最高级别,即使部分损坏也能识别 |
| box_size | box_size | 1-100 | 10 | 每个小方块的大小 | 二维码模块的像素大小 | 10表示每个小方块是10x10像素 |
| border | border | 0-100 | 4 | 边框宽度 | 二维码周围的边框宽度 | 4表示4个模块宽度的边框 |
3.21 Convert Color Space(颜色空间转换)
这个节点就像"颜色翻译器",可以在不同的颜色表示方法之间转换。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要转换的图片 | 输入的图像数据 | 连接图片 |
| in_space | in_space | RGB/HSV/HSL | RGB | 输入图片的颜色格式 | 输入图像的颜色空间 | RGB是常见格式,HSV便于调整色相 |
| out_space | out_space | RGB/HSV/HSL | HSV | 要转换成的颜色格式 | 输出图像的颜色空间 | HSV格式便于单独调整亮度、饱和度 |
3.22 MasqueradeIncrementer(递增器)
这个节点就像"计数器",可以产生递增的数字序列。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| seed | seed | -1到大数 | 0 | 起始数字 | 当前计数值 | 从0开始计数 |
| max_value | max_value | 1到大数 | 1 | 最大值(到达后重新开始) | 计数的最大值 | 设为10会在0-9之间循环 |
4. 使用技巧和建议
4.1 新手入门建议
- 从简单开始:先试试 "Mask By Text" 节点,输入简单的词汇如"人"、"猫"、"车"
- 调整精度:如果识别不准确,试试调整 precision 参数,0.3比较宽松,0.7比较严格
- 组合使用:多个节点组合使用效果更好,比如先用 "Mask By Text" 生成遮罩,再用 "Mask Morphology" 优化
4.2 常用工作流程
- 智能抠图流程:
- Mask By Text → Mask Morphology → Cut By Mask
- 局部处理流程:
- Mask By Text → Mix Images By Mask 或 Mix Color By Mask
- 批量处理流程:
- Make Image Batch → Mask By Text → Separate Mask Components → Cut By Mask
4.3 参数调优技巧
- precision 参数:从0.5开始,太低会包含不需要的部分,太高会遗漏需要的部分
- distance 参数:形态学操作时,先用小数值(3-5)测试效果
- 模糊半径:一般用5-15,太大会失去细节
5. 常见问题解答
Q1:为什么 "Mask By Text" 识别不准确?
A1:
- 检查 precision 参数,试试0.3-0.7之间的值
- 使用更具体的描述词,比如用"人脸"而不是"人"
- 可以在 negative_prompt 中排除不需要的内容
Q2:遮罩边缘太锐利怎么办?
A2:
- 使用 "Blur" 节点对遮罩进行轻微模糊
- 或者使用 "Mask Morphology" 的 open 操作去除小的锯齿
Q3:如何处理多个独立的对象?
A3:
- 使用 "Separate Mask Components" 节点将复合遮罩分离
- 然后可以对每个对象单独处理
Q4:图片尺寸不匹配怎么办?
A4:
- 大多数节点会自动处理尺寸问题
- 如需强制指定尺寸,使用 "Cut By Mask" 的 force_resize 参数
Q5:如何批量处理多张图片?
A5:
- 使用 "Make Image Batch" 节点将多张图片打包
- 或者直接连接多张图片到支持批处理的节点
6. 高级应用示例
6.1 人像换背景
- 使用 "Mask By Text" 识别人物:prompt="person"
- 使用 "Mask Morphology" 优化遮罩边缘
- 使用 "Mix Images By Mask" 将人物与新背景合成
6.2 物体颜色替换
- 使用 "Mask By Text" 识别目标物体
- 使用 "Mix Color By Mask" 将物体替换为指定颜色
6.3 批量人脸处理
- 使用 "Make Image Batch" 打包多张照片
- 使用 "Mask By Text" 识别所有人脸:prompt="face"
- 使用 "Separate Mask Components" 分离每个人脸
- 对每个人脸单独处理
这个插件功能强大,掌握了基本用法后,你可以创造出很多有趣的效果。记住多实验、多尝试,每个参数的微调都可能带来意想不到的结果!