ComfyUI Segment Anything 图像分割项目完全指南
ComfyUI Segment Anything 是一个基于 GroundingDino 和 SAM(Segment Anything Model)的开源项目,能够通过语义字符串来分割图像中的任意元素。该项目是 sd-webui-segment-anything 的 ComfyUI 版本,实现了最核心的图像分割功能。
项目概述
该项目结合了两种先进的AI模型:
- GroundingDino:用于目标检测和定位
- SAM:用于精确的图像分割 通过自然语言描述,用户可以轻松指定需要分割的图像元素。
环境配置要求
在开始使用前,请确保系统满足以下要求:
- Python 3.x 环境
- pip 包管理工具
- 足够的磁盘空间用于存储模型文件
依赖安装
进入项目目录后,执行以下命令安装必要的依赖包:
pip3 install -r requirements.txt
核心依赖包括 segment_anything、timm、addict 和 yapf 等库。
项目结构解析
项目采用模块化设计,主要包含以下核心模块:
- node.py:主处理脚本,包含所有核心功能类
- sam_hq/:SAM 模型相关代码和配置
- local_groundingdino/:GroundingDino 模型实现
- docs/images/:示例图片和文档资源
模型文件管理
系统支持自动下载和手动配置模型文件:
自动下载
项目会自动从官方源下载所需的模型文件,包括:
- BERT 语义理解模型
- GroundingDino 检测模型
- SAM 分割模型
手动配置
如果自动下载速度较慢,可以手动下载模型文件并放置在指定目录:
BERT 模型配置 将 bert-base-uncased 模型文件放置在 ComfyUI 的 models/bert-base-uncased 目录下,包含 config.json、model.safetensors 等必要文件。
GroundingDino 模型选项
- GroundingDINO_SwinT_OGC(694MB)
- GroundingDINO_SwinB(938MB)
SAM 模型选项
- sam_vit_h(2.56GB)
- sam_vit_l(1.25GB)
- sam_vit_b(375MB)
- sam_hq_vit_h(2.57GB)
- sam_hq_vit_l(1.25GB)
- sam_hq_vit_b(379MB)
- mobile_sam(39MB)
核心功能类详解
SAMModelLoader 类
负责加载和管理 SAM 分割模型,支持多种模型架构选择。
GroundingDinoModelLoader 类
用于加载 GroundingDino 目标检测模型,提供精确的目标定位能力。
GroundingDinoSAMSegment 类
核心分割处理类,整合了检测和分割功能:
- 输入:图像、语义提示词、置信度阈值
- 输出:分割后的图像和掩码
辅助工具类
- InvertMask:反转掩码功能
- IsMaskEmptyNode:检测掩码是否为空
使用示例
项目提供了完整的使用示例,展示了如何通过自然语言描述来分割图像中的特定元素。用户只需提供图像和语义提示,系统即可自动完成目标检测和精确分割。
性能优化建议
对于不同的使用场景,建议选择合适的模型:
- 高精度需求:使用 sam_vit_h 或 sam_hq_vit_h
- 快速处理:使用 sam_vit_b 或 mobile_sam
- 平衡性能:使用 sam_vit_l 或 sam_hq_vit_l
注意事项
- 首次运行时,系统会自动下载模型文件,请确保网络连接稳定
- 大模型文件需要较长的加载时间
- 建议根据硬件配置选择合适的模型大小
该项目为图像分割任务提供了强大而灵活的工具,无论是学术研究还是实际应用,都能满足多样化的需求。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




