- Added validation documentation for AI model tiers. - Introduced `background.py` for background removal logic, including inference functions for alpha and foreground extraction. - Created `onnx_birefnet.py` to handle BiRefNet model sessions and alpha inference. - Developed tests for background models, ensuring proper dispatch and session reuse. - Added tests for BiRefNet ONNX model to validate alpha output and error handling for invalid values. - Implemented model export scripts for BiRefNet and HAT Sharper, ensuring proper weight compression and licensing. - Created `deform_sampling.py` for deformable convolution operations used in BiRefNet. - Added utility functions for compressing ONNX weights without altering graph arithmetic. - Introduced a reference plane node for depth field adjustments in geometry processing.
60 lines
3.5 KiB
Markdown
60 lines
3.5 KiB
Markdown
## Purpose
|
||
|
||
让用户通过同一个背景移除功能选择轻量、通用或精细抠图模型,并在静态图、多帧图与 HDR 图片中得到尺寸、透明度和资源生命周期一致的结果,保留已有图片编辑语义。
|
||
|
||
## ADDED Requirements
|
||
|
||
### Requirement: 背景模型选择贯穿真实执行
|
||
系统 SHALL 使用当前选择的 BiRefNet Lite、BEN2 或 BiRefNet HR-matting 执行所有支持的背景移除输入路径,模型名称 SHALL 与下载、进度和实际加载的资源一致。
|
||
|
||
#### Scenario: 切换到精细抠图
|
||
- **WHEN** 用户选择已经下载的 BiRefNet HR-matting 并执行背景移除
|
||
- **THEN** 使用该模型推理,输出和进度不再固定指向 BEN2
|
||
|
||
### Requirement: 输出有限的连续透明度
|
||
每款背景模型 SHALL 产出与分析图片尺寸一致、有限且位于 `[0,1]` 的连续 Alpha。模型适配 SHALL 保持其官方输出语义,支持发丝、毛绒和半透明边缘的连续透明度。
|
||
|
||
#### Scenario: 半透明边缘
|
||
- **WHEN** HR-matting 对包含薄纱或细发丝的图片输出中间透明度
|
||
- **THEN** 后处理保留有效的中间 Alpha 值,不将其强制二值化或按单图极值重新拉伸
|
||
|
||
#### Scenario: 无效预测
|
||
- **WHEN** 模型返回错误形状或包含 NaN、Inf 的透明度
|
||
- **THEN** 任务明确失败,并保留可诊断的模型错误信息
|
||
|
||
### Requirement: 保持已有前景和 HDR 编辑行为
|
||
系统 SHALL 沿用既有前景 RGB 与源 Alpha 合成规则,支持静态前景、多帧前景及 HDR 的 Alpha-only 输出;HDR 结果 SHALL 保持原始浮点 RGB。
|
||
|
||
#### Scenario: HDR 背景移除
|
||
- **WHEN** 用户对浮点 HDR 图片使用任意背景模型
|
||
- **THEN** 用分析输入预测 Alpha,将结果应用到原始图片,并保留原始 HDR RGB 数值
|
||
|
||
#### Scenario: 多帧透明前景
|
||
- **WHEN** 用户对支持的多帧输入执行背景移除
|
||
- **THEN** 每帧使用选定模型,保持帧数、编号、尺寸与已有透明度合成约定
|
||
|
||
### Requirement: 模型资源可复用且可释放
|
||
系统 SHALL 为相同模型和设备复用会话,在模型切换、资源关闭时释放旧会话,并使取消与失败遵循既有任务清理行为。
|
||
|
||
#### Scenario: 连续帧复用
|
||
- **WHEN** 多帧任务连续处理同一模型和设备
|
||
- **THEN** 各帧复用已加载会话,取消后停止后续推理并清理未完成任务产物
|
||
|
||
#### Scenario: 切换背景模型
|
||
- **WHEN** 用户从 Lite 切换到 BEN2 或 HR-matting
|
||
- **THEN** 实际推理使用新选择,并释放原先背景模型占用的会话资源
|
||
|
||
### Requirement: 新背景模型经过真实运行验收
|
||
BiRefNet Lite SHALL 在发布前通过 CPU / DirectML 数值和图片验证,HR-matting SHALL 通过 CPU 验证;记录真实下载体积、加载与热推理耗时、峰值资源占用及边缘效果。Lite SHALL 比 BEN2 下载体积更小,并在相同测试条件下至少降低热推理耗时或峰值占用中的一项。
|
||
|
||
#### Scenario: 确定轻量默认模型
|
||
- **WHEN** Lite 的正式资产准备发布
|
||
- **THEN** 存在与 BEN2 的同条件对照和质量检查记录,且其轻量收益满足要求
|
||
|
||
### Requirement: HR-matting 使用 CPU
|
||
HR-matting SHALL 暂时固定使用 CPU。模型选项 SHALL 标明 CPU,进度 SHALL 显示实际设备;会话缓存 SHALL 按实际 CPU 设备复用。
|
||
|
||
#### Scenario: GPU 偏好下选择 HR-matting
|
||
- **WHEN** 全局设备为 DirectML,用户选择 HR-matting
|
||
- **THEN** 创建 CPU 会话并显示 CPU 进度,保持 HR 的 2048 像素输入及连续 Alpha 语义
|