ComfyUI_essentials>🔧 Mask From Segmentation
ComfyUI_essentials
时间:2025/09/02

🔧 Mask From Segmentation

节点通过对输入图像进行颜色分割,将图像拆分为多个区域,每个区域对应一个 Mask。它基于 颜色聚类(量化) 的方法,将图像颜色压缩为指定数量的颜色段,然后逐一生成每个颜色段对应的 Mask。
🔧 Mask From Segmentation-节点参数说明
输入参数
image输入待处理的图像
输出参数
MASK输出处理后的遮罩
控件参数
segments分割颜色数量(聚类色彩数)。 默认:6,范围:1–16。 值越大,分割越细腻 值越小,分割越粗糙。 设置过大可能导致遮罩图被视为无效而被丢弃。
remove_isolated_pixels去除孤立像素的内核大小(结构元素尺寸)。 默认:0(不去除),范围:0–32。 值越大,去除的小斑点越大,但可能误删细节,且导致遮罩图被视为无效而被丢弃。
remove_small_masks去除小面积 Mask 的阈值,按面积占整图比例过滤。 默认:0.0(不过滤),范围:0–1。 例如:0.05 表示删除面积小于 5% 的 Mask。 设置过大可能导更多的致遮罩图被视为无效而被丢弃。
fill_holes是否填补 Mask 内部空洞。 默认:False。
演示segments参数,当segments设置为10,最终仅出现9张遮罩图,说明有一张遮罩图不大于remove_small_masks的值(0),所以被丢弃了

源码实现:

```

# if the mask is too small, it's probably noise

if mask.sum() / (mask.shape[0]*mask.shape[1]) > remove_small_masks:

masks.append(mask)

```


演示remove_isolated_pixels参数,当remove_isolated_pixels设置为10和32,最终仅出现4张遮罩图。且32的时候导致很多细节被误删了


演示remove_small_masks参数,当remove_small_masks设置为0.2时丢弃了2张图片,设置为0.5时所有遮罩图片全部被丢弃掉了(为了有输出保底留一张)


源码实现:

```

if masks == []:

masks.append(torch.zeros_like(im)[:,:,0]) # return an empty mask if no masks were found, prevents errors

```


演示开启FILL_HOLES效果


广告

可加入知识星球获取所有示例工作流

广告

微信扫码入群,加入AIGC大家庭,与大家一起交流学习