SAMLoader (Pipe)
节点功能:该节点作为细节修复流程中的分割组件,与 SAM (Segment Anything Model) 相关,用于图像分割任务。
输出参数
参数名称 | 说明 |
---|---|
sam_pipe | 包含已加载 SAM 模型及其分割参数的管线结构,供后续 DetailerFix 使用。 |
控件参数
参数名称 | 说明 |
---|---|
model_name | 选择用于分割的 SAM 模型名称,模型需位于 sams 文件夹中。 |
device_mode | 指定模型推理设备模式。可选值:AUTO、Prefer GPU、CPU。 |
sam_detection_hint | SAM 模型的检测提示方式,用于引导 mask 推理。 center-1:中心点引导单目标; - horizontal-2:水平双目标; - vertical-2:垂直双目标; - rect-4:矩形四点; - diamond-4:菱形四点; - mask-area:根据已有掩码面积计算; - mask-points:从掩码中采样正负点; - mask-point-bbox:mask 周边框引导; - none:无提示,直接使用原始 mask。推荐根据具体任务选择。 |
sam_dilation | 对 SAM 生成的掩码进行扩张或腐蚀操作(负值为腐蚀)。控制分割区域边界,默认 0。大于 0 可扩大掩码,负值用于收缩边缘。 |
sam_threshold | SAM mask 的置信度阈值,取值范围为 0~1。默认 0.93,表示仅保留高置信度区域。适当降低可提升召回率,但风险是引入伪掩码。 |
sam_bbox_expansion | 在 bbox 基础上进行额外扩张像素,增强覆盖范围。 |
sam_mask_hint_threshold | 引导提示点的置信度阈值,控制 hint mask 生成。 |
sam_mask_hint_use_negative | 是否使用负提示点辅助 mask 引导。 False:不使用负提示。 Small:使用 mask 中的小区域作为负样本。 Outter:使用外围区域作为负样本。推荐 Small 提升精度。 |
该节点使用以下3个模型,其他模型会报错。
b、h、l 这三种分割模型按体积依次增大,同时其检测精度也相应提升。模型越大,通常能够提供更高的分割质量和细节还原能力。
选项 | 行为 | 应用场景 |
---|---|---|
center-1 | 中心点分割一个区域 | 头像/物体中心特写 |
horizontal-2 | 水平两个区域 | 对称布局,如双眼、双肩 |
vertical-2 | 垂直两个区域 | 上下结构,如头部+躯干 |
rect-4 | 四个矩形区域 | 全局结构引导 |
diamond-4 | 对角线结构引导分割 | 复杂分布下的粗引导 |
mask-area | 使用已有掩膜作为参考区域 | 用于复用外部掩膜 |
mask-points | 使用 mask 上的多个点进行点引导 | 细粒度 mask 提取 |
mask-point-bbox | mask 点结合 bbox 方式 | 多策略融合分割 |
none | 不启用任何 hint,使用默认处理 | 基础分割流程 |
sam_threshold:用于控制掩膜的置信度阈值,值越高,生成的掩膜越精准。
参数 | 作用 | 配合逻辑 |
---|---|---|
sam_mask_hint_threshold | 控制从原始掩膜中提取提示点的置信度下限。值越高,所提取的提示点越靠近掩膜中心 | 用于筛选“哪些点是高可信的正向提示点”以及“掩膜边界附近哪些点可作为负向点” |
sam_mask_hint_use_negative | 控制是否启用负向提示点(在掩膜外围添加“非目标区域”的点) | 若启用,会根据 sam_mask_hint_threshold 过滤掉可信度不够的区域并围绕其外围自动采样 negative points |
假设你有一个遮住眼睛的掩膜图:
设置 1:
sam_mask_hint_threshold = 0.7
sam_mask_hint_use_negative = "Small"
表示从掩膜内部选择置信度 ≥0.7 的区域生成正向提示点,在掩膜边缘外圈生成一小圈负向点,引导 SAM 更精准地区分眼睛与脸部。
设置 2:
sam_mask_hint_threshold = 0.9
sam_mask_hint_use_negative = "Outter"
更严格筛选正向点,并使用更大范围的负向引导,适合背景复杂、人脸遮挡等高干扰情境。
修复目标 | 建议设置 |
---|---|
眼睛、嘴巴等小区域 | threshold = 0.7 ~ 0.8 , use_negative = Small |
人脸遮挡、前后景接壤 | threshold = 0.85 ~ 0.95 , use_negative = Outter |
图像结构清晰,无干扰 | threshold = 0.6 ~ 0.8 , use_negative = False |