- Implemented viewport.py for handling 3D view projections, gestures, and overlay drawing. - Created refine_image_selection.py to manage the refinement of gesture masks and output image bounds. - Added selection module with refine_selection.py to process and crop images based on alpha channel visibility. - Introduced __init__.py for selection module to expose refine_selection function.
38 lines
1.7 KiB
Markdown
38 lines
1.7 KiB
Markdown
# Remove Background
|
||
|
||
Remove Background 从当前 Image Empty 准备单图或多帧输入,运行 BEN2 生成前景 Alpha,再用结果 Image 替换原图。
|
||
|
||
## 执行过程
|
||
|
||
```mermaid
|
||
flowchart TD
|
||
Empty["Image Empty"] --> Prepare["准备图片、视频或序列输入"]
|
||
Prepare --> Job["remove-background Job"]
|
||
Job --> Frames["逐帧运行 BEN2"]
|
||
Frames --> Result["写出 PNG 结果序列"]
|
||
Result --> Import["创建结果 Image"]
|
||
Import --> Replace["替换 Empty.data"]
|
||
```
|
||
|
||
Packed 图片和内存中修改过的单图会先导出临时文件;文件图片、视频和序列沿用原路径。
|
||
|
||
## 节点说明
|
||
|
||
### 准备媒体输入
|
||
|
||
入口是 `operators/remove_background.py` 中的 `RemoveImageBackground`。它检查当前对象、AI Environment 和帧数,再调用 `common/image.py` 的 `prepare_image_input()`。多帧输入会先写入 Scene 中的抽帧设置。
|
||
|
||
准备完成后,内部 Operator `RunBackgroundRemoval` 保存输入路径、源对象名和临时文件清理标记。
|
||
|
||
### 运行 BEN2
|
||
|
||
`RunBackgroundRemoval` 提交 `remove-background` Job。`server/jobs/remove_background.py` 使用公共媒体输入层展开单图、视频或序列,并逐帧调用 `server/models/ben2.py`。
|
||
|
||
BEN2 推理前先用源 Alpha 屏蔽透明区域,模型输出的前景 Alpha 再与源 Alpha 合成,RGB 保持源图内容。多帧结果按连续文件名写入 Job 目录。
|
||
|
||
### 导入并替换结果
|
||
|
||
Job 返回后,`remove_background.py` 的 `apply_background_response()` 调用 `common/image.py` 创建单图或序列 Image,并恢复源 Image User 的帧起点、偏移和循环设置。
|
||
|
||
`replace_empty_image()` 随后替换 `Empty.data`,提交一个 Remove Background Undo 步骤,并清理本次创建的临时输入。
|