Segment (RMBG)

节点功能:该节点能基于文本提示的智能对象分割功能。使用 SAM (Segment Anything Model) 和 GroundingDINO 模型来实现对象的精确分割。

输入参数

参数名称说明
image输入待分割的图像。

输出参数

参数名称说明
IMAGE背景处理后的输出图像。
MASK单通道布尔掩码图,1 表示目标区域。

控件参数

参数名称说明
prompt输入要分割的对象或场景描述,支持标签风格或自然语言。
sam_model选择要使用的 SAM 模型名称。依赖 sam_model_registry 注册的模型,建议选择精度高的模型,如 vit_h。
dino_model选择要使用的 GroundingDINO 模型名称。
threshold探测框置信度阈值,值越高代表识别越严格(默认 0.3)。建议默认值即可,若识别区域过多可调高此值过滤低置信度目标。
mask_blur掩码边缘模糊半径,单位像素,0 表示关闭。增加模糊可减轻边缘锯齿感,建议设置为 4~8 获得更自然的过渡。
mask_offset调整掩码边界,正值扩展,负值收缩。用于手动微调目标区域边缘,便于实现边界控制,如突出主体或清除边缘噪点。
background_color背景类型,可选值:Alpha、Color。“Alpha” 表示透明背景,适用于导出抠图 PNG;“Color” 用指定颜色填充背景。
invert_output是否反转输出掩码区域。

SAM (Segment Anything Model) 模型选项:

  • sam_vit_h: 2.56GB - 最高精度
  • sam_vit_l: 1.25GB - 平衡性能
  • sam_vit_b: 375MB - 轻量级选项

GroundingDINO 模型选项:

  • SwinT: 694MB - 快速高效
  • SwinB: 938MB - 更高精度

在以下场景中,根据prompt中的提示词来对指定主体进行分割,这里输入了"panda",但上面却分割出了狮子,下面使用更大的模型后则分割正确。

该节点还能针对多个prompt进行分割。


在使用提示词 "cup" 进行目标分割时,以下是三种不同Threshold阈值设定下的分割效果。阈值的高低对分割准确性有显著影响,尤其在复杂场景中更为明显

  • 当阈值设置较低时,虽然能较宽松地检测出包含“cup”特征的区域,但由于语义判定容忍度较高,容易将场景中其他具有类似形状或材质(如玻璃瓶、小罐子等)的物体也一并错误分割,造成漏检目标、误检非目标的现象。
  • 当阈值设置过高时,分割器对提示词匹配的要求变得更加严格,仅保留与“cup”强相关的区域,虽然误检减少,但也可能遗漏部分真实目标区域,特别是在被遮挡、部分边缘模糊或低对比度的情况下。


Mask Blur:应用于遮罩边缘的模糊程度,值越大越模糊。


Mask Offset:扩大或缩小遮罩边界,正值膨胀,负值收缩