ComfyUI-SAM2 插件保姆级教程
1. 插件简介
插件地址: https://github.com/neverbiasu/ComfyUI-SAM2
ComfyUI-SAM2 是一个超级厉害的图片分割工具!就像你用剪刀把照片里的人物、物体精确地剪下来一样,但这个工具是用人工智能来做的,而且比人手更精准。
这个插件能给我们带来什么效果?
- 自动识别图片中的物体(比如人、车、动物等)
- 精确地把这些物体从背景中"抠"出来
- 生成精准的遮罩(就像PS里的选区)
- 可以通过文字描述来找到你想要的物体
- 支持批量处理多张图片
简单来说: 你只需要告诉它"找出图片里的猫",它就能自动把所有的猫都精确地选中,就像有个超级聪明的助手帮你做PS抠图工作!
2. 如何安装
方法一:通过 ComfyUI Manager 安装(推荐)
- 打开 ComfyUI Manager
- 搜索 "SAM2" 或 "segment anything"
- 点击安装
- 重启 ComfyUI
- 刷新浏览器页面
方法二:手动安装
- 在 ComfyUI 的
custom_nodes文件夹里创建一个新文件夹 - 把插件文件放进去
- 安装依赖:
pip install -r requirements.txt - 重启 ComfyUI
安装模型文件
插件会自动下载需要的模型,但如果网络慢,你也可以手动下载:
SAM2 模型: 放到 models/sam2 文件夹
GroundingDino 模型: 放到 models/grounding-dino 文件夹
BERT 模型: 放到 models/bert-base-uncased 文件夹
3. 节点详解
3.1 SAM2ModelLoader 节点
这个节点就像一个模型管理员,负责加载SAM2模型。就像你要用不同的工具做不同的活,这个节点帮你选择合适的"工具"。
3.2 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model_name | model_name | 下拉选择 | sam2_1_hiera_base_plus.pt | 选择要使用的SAM2模型,就像选择不同大小的剪刀 | 指定SAM2模型的版本和大小 | 一般用户选base_plus就够了,追求速度选tiny,追求精度选large |
3.3 GroundingDinoModelLoader 节点
这个节点是文字理解专家,它能听懂你说的话,然后在图片里找到对应的东西。就像一个很聪明的助手,你说"找猫",它就知道什么是猫。
3.4 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model_name | model_name | 下拉选择 | GroundingDINO_SwinT_OGC (694MB) | 选择文字理解模型,就像选择不同语言水平的翻译 | 指定GroundingDINO模型版本 | 一般选SwinT就够用,追求精度可以选SwinB但会更慢 |
3.5 GroundingDinoSAM2Segment 节点
这是整个插件的核心节点!它把前面两个模型结合起来,先理解你的文字描述,然后精确地分割出对应的物体。就像一个超级智能的PS抠图工具。
3.6 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| sam_model | sam_model | SAM2_MODEL类型 | 连接SAM2模型 | 这是分割工具,就像你的剪刀 | SAM2模型实例 | 从SAM2ModelLoader节点连接过来 |
| grounding_dino_model | grounding_dino_model | GROUNDING_DINO_MODEL类型 | 连接Dino模型 | 这是理解文字的大脑,告诉剪刀该剪哪里 | GroundingDINO模型实例 | 从GroundingDinoModelLoader节点连接过来 |
| image | image | IMAGE类型 | 连接图片输入 | 这是你要处理的照片 | 输入的图像数据 | 从Load Image或其他图片节点连接 |
| prompt | prompt | STRING类型 | 输入文字描述 | 告诉AI你要找什么,比如"cat"、"person"、"car" | 文本提示词,描述要分割的对象 | 输入英文单词,如"dog"找狗,"tree"找树 |
| threshold | threshold | 0-1的小数 | 0.3 | 设置识别的严格程度,就像调节敏感度 | 检测置信度阈值 | 数值越高越严格,越低越宽松,一般0.3就好 |
3.7 InvertMask 节点
这个节点就像一个反转开关,把选中的区域变成未选中,未选中的变成选中。就像PS里的"反选"功能。
3.8 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| mask | mask | MASK类型 | 连接遮罩输入 | 这是要反转的选区,就像要翻面的纸 | 输入的遮罩数据 | 从分割节点或其他遮罩节点连接过来 |
3.9 IsMaskEmpty 节点
这个节点是个检查员,它会告诉你遮罩是不是空的(没有选中任何东西)。就像检查盒子里有没有东西。
3.10 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| mask | mask | MASK类型 | 连接遮罩输入 | 这是要检查的选区 | 输入的遮罩数据 | 从分割节点或其他遮罩节点连接过来 |
4. 使用技巧和建议
4.1 文字提示词技巧
- 使用英文: 比如"cat"、"dog"、"person"、"car"
- 简单明确: 不要用复杂的句子,单个词效果最好
- 常见物体: 人、动物、交通工具、家具等识别效果最好
- 多个物体: 可以用"person and dog"这样的组合
4.2 模型选择建议
-
SAM2模型:
- tiny:速度最快,精度一般,适合快速测试
- small:速度较快,精度不错,日常使用推荐
- base_plus:平衡选择,精度和速度都不错
- large:精度最高,但速度最慢,追求完美时使用
-
GroundingDino模型:
- SwinT:较小较快,一般使用足够
- SwinB:更大更准,但速度慢一些
4.3 阈值调节技巧
- 0.1-0.2: 很宽松,会找到很多可能的物体
- 0.3-0.4: 平衡设置,推荐使用
- 0.5-0.7: 比较严格,只找很确定的物体
- 0.8-1.0: 非常严格,可能会漏掉一些物体
4.4 性能优化建议
- 显存不足: 选择较小的模型(tiny、small)
- 速度优先: 使用SAM2.1版本的模型,速度更快
- 精度优先: 使用large模型,调高阈值
5. 常见问题解答
Q1: 为什么找不到我想要的物体?
A: 可能的原因和解决方法:
- 降低threshold值(比如从0.3改到0.2)
- 换个英文词试试(比如"人"用"person"而不是"human")
- 确保物体在图片中足够清晰
- 尝试更具体的描述(比如"red car"而不是"car")
Q2: 分割出来的边缘不够精确怎么办?
A:
- 使用更大的SAM2模型(比如从small换到base_plus或large)
- 确保输入图片分辨率足够高
- 调整threshold值找到最佳设置
Q3: 处理速度太慢怎么办?
A:
- 使用较小的模型(tiny或small)
- 使用SAM2.1版本的模型
- 降低输入图片的分辨率
- 确保有足够的显存
Q4: 模型下载失败怎么办?
A:
- 检查网络连接
- 设置代理(HTTP_PROXY和HTTPS_PROXY环境变量)
- 手动下载模型文件到对应文件夹
- 确保有足够的磁盘空间
Q5: 遮罩结果是空的?
A:
- 使用IsMaskEmpty节点检查
- 降低threshold值
- 检查prompt是否正确
- 确保图片中确实有你要找的物体
6. 工作流程示例
基础分割工作流程:
- Load Image → GroundingDinoSAM2Segment → Save Image
- SAM2ModelLoader → GroundingDinoSAM2Segment
- GroundingDinoModelLoader → GroundingDinoSAM2Segment
高级处理工作流程:
- Load Image → GroundingDinoSAM2Segment → InvertMask → 其他处理节点
- 添加IsMaskEmpty节点检查结果
- 使用多个不同的prompt分别处理
批量处理工作流程:
- 加载多张图片 → GroundingDinoSAM2Segment → 批量保存
7. 支持的模型版本
SAM2.1 模型(推荐,更快更准):
- sam2.1_hiera_tiny (148MB) - 最快
- sam2.1_hiera_small (176MB) - 平衡
- sam2.1_hiera_base_plus (308MB) - 推荐
- sam2.1_hiera_large (856MB) - 最准
SAM2 模型(经典版本):
- sam2_hiera_tiny (39MB)
- sam2_hiera_small (46MB)
- sam2_hiera_base_plus (81MB)
- sam2_hiera_large (224MB)
8. 总结
ComfyUI-SAM2 是一个非常强大的图像分割工具,特别适合需要精确抠图的场景。它的最大优势是:
- 智能理解: 通过文字就能找到对应物体
- 精确分割: 边缘处理非常精细
- 批量处理: 可以一次处理多张图片
- 灵活组合: 可以和其他节点配合使用
记住几个要点:
- 用英文描述你要找的物体
- 根据需求选择合适大小的模型
- 适当调节阈值获得最佳效果
- 善用反转和检查节点
希望这个教程能帮助你更好地使用这个强大的分割工具!