- 为BiRefNet Ultra和Transparent Background Ultra节点添加mask输入 - 新增'自动适用原图遮罩'参数,支持智能检测和使用输入的mask - 优化节点名称,移除BiRefNetUltraV3_RBS中的'V3'后缀 - 修复输入mask应用时的翻转问题,确保输出结果正确 - 改进批量处理逻辑,支持图像和mask的自动匹配 - 更新版本号到v1.2.0
5.1 KiB
5.1 KiB
ComfyUI-RemoveBackgroundSuite 项目规则
项目概述
ComfyUI-RemoveBackgroundSuite 是一个基于 ComfyUI 的抠图工具包,支持多种抠图模型和细节处理方法。
开发规则
代码规范
-
Python 代码风格
- 遵循 PEP 8 规范
- 使用 4 个空格缩进
- 行长度不超过 120 字符
- 使用有意义的变量和函数名
-
文件命名规范
- Python 文件使用小写字母和下划线:
model_utils.py - 类名使用 PascalCase:
BiRefNetUltra_RBS - 函数和变量使用 snake_case:
process_mask
- Python 文件使用小写字母和下划线:
-
注释规范
- 所有公共函数必须有文档字符串
- 复杂逻辑需要行内注释
- 使用中文注释说明业务逻辑
节点开发规则
-
节点命名
- 所有节点类名必须以
_RBS结尾 - 节点显示名称应清晰描述功能
- 所有节点类名必须以
-
输入输出规范
- 明确定义输入参数类型和范围
- 提供合理的默认值
- 输出结果应包含适当的元数据
-
错误处理
- 所有节点必须包含适当的错误处理
- 提供有意义的错误信息
- 记录详细的错误日志
模型管理规则
-
模型文件目录结构
- BiRefNet 系列模型:存储在
models/BiRefNet/目录下- BiRefNet-General
- BiRefNet_dynamic
- BiRefNet_HR
- BiRefNet_HR-matting
- RMBG 模型:存储在
models/transparent-background/目录下 - 其他第三方模型:按模型类型分别存储在不同目录
- BiRefNet 系列模型:存储在
-
模型加载规范
- 使用
model_utils.py中的统一加载函数 - 支持 HuggingFace Hub 自动下载
- 实现本地缓存机制
- 支持 GPU 和 CPU 模式
- 实现内存优化和模型缓存
- 使用
-
模型版本管理
- 每个模型目录包含完整的模型文件
- 支持模型文件的版本控制
- 提供模型兼容性检查
- 实现模型热更新机制
-
模型文件命名
- 使用统一的文件扩展名(.pth, .bin, .safetensors)
- 文件名应包含模型版本信息
- 避免文件名冲突
使用规则
安装要求
-
系统要求
- Python 3.8 或更高版本
- 支持 CUDA 的 GPU(推荐)
- 至少 4GB 内存
-
依赖管理
- 使用
requirements.txt管理依赖 - 定期更新依赖版本
- 避免版本冲突
- 使用
性能优化规则
-
图像处理
- 大图像自动缩放到
max_megapixels限制 - 使用批处理提高效率
- 实现内存友好的处理流程
- 大图像自动缩放到
-
模型选择
- 根据图像质量选择合适的模型
- 提供模型性能对比信息
- 支持模型自动选择
版本管理规则
版本号规范
使用语义化版本号:主版本.次版本.修订版本
- 主版本:不兼容的 API 修改
- 次版本:向下兼容的功能性新增
- 修订版本:向下兼容的问题修正
发布流程
-
开发阶段
- 在功能分支开发新功能
- 编写测试用例
- 更新文档
-
测试阶段
- 进行功能测试
- 性能测试
- 兼容性测试
-
发布阶段
- 更新版本号
- 更新 CHANGELOG
- 创建发布标签
文档规则
README 维护
-
必需内容
- 项目简介和特性
- 安装说明
- 使用示例
- 节点说明
- 更新日志
-
格式要求
- 使用 Markdown 格式
- 包含代码示例
- 提供截图说明
代码文档
-
函数文档
- 描述功能用途
- 参数说明
- 返回值说明
- 使用示例
-
类文档
- 类的作用和职责
- 主要方法说明
- 使用场景
测试规则
测试覆盖
-
单元测试
- 核心功能必须有测试
- 测试覆盖率不低于 80%
- 包含边界条件测试
-
集成测试
- 节点间交互测试
- 端到端工作流测试
- 性能测试
测试环境
- 测试数据
- 使用标准测试图像
- 包含各种场景的测试用例
- 测试数据应公开可用
安全规则
代码安全
-
输入验证
- 验证所有用户输入
- 防止路径遍历攻击
- 限制文件大小
-
依赖安全
- 定期检查依赖漏洞
- 使用可信的包源
- 及时更新安全补丁
维护规则
问题处理
-
Issue 管理
- 及时响应问题报告
- 提供解决方案或替代方案
- 记录问题解决过程
-
代码审查
- 所有代码变更需要审查
- 关注代码质量和性能
- 确保向后兼容性
性能监控
-
性能指标
- 处理速度
- 内存使用
- 模型准确率
-
优化目标
- 持续改进性能
- 减少资源消耗
- 提高用户体验
社区规则
交流规范
-
沟通方式
- 使用中文交流
- 保持礼貌和尊重
- 提供详细的问题描述
-
贡献认可
- 感谢所有贡献者
- 在文档中致谢
- 维护贡献者列表
注意:这些规则旨在确保项目的质量和可持续性。所有贡献者都应遵循这些规则,如有疑问请通过 Issue 或讨论区提出。