Files
AnyImage/docs/internals/operators/remove-background.md
nan e7aeeb21d4 Add tools and tests for AnyImage model management and documentation
- Implement sync_models.py for preparing and uploading ONNX artifacts.
- Create build_node.py for building and validating Blender scripts.
- Add docs.py for building and previewing documentation with Mike or MkDocs.
- Introduce model_exports.py for exporting PyTorch models to ONNX format.
- Develop pack.py for packaging the project with dependencies for different platforms.
- Add test_sync_models.py to validate sync_models functionality.
- Add test_tool_commands.py to ensure repository tools have correct command scripts.
- Initialize tools package with __init__.py.
2026-08-31 15:15:33 +08:00

1.7 KiB
Raw Blame History

Remove Background

Remove Background 从当前 Image Empty 准备单图或多帧输入,运行 BEN2 生成前景 Alpha,再用结果 Image 替换原图。

执行过程

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_data.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_data.py 创建单图或序列 Image,并恢复源 Image User 的帧起点、偏移和循环设置。

replace_empty_image() 随后替换 Empty.data,提交一个 Remove Background Undo 步骤,并清理本次创建的临时输入。