Files
AnyImage/docs/internals/outputs.md
nan 87d7721128 feat(cutout_tool): Implement cutout region to shape functionality
- Added interaction helpers for cutout region validation and shape menu interaction.
- Created main operator for converting image regions into cutout shapes, including AI artifact generation.
- Introduced object creation logic for cutout shapes, handling depth and normal textures.
- Defined cutout shape identifiers and node groups for various shape types.
- Implemented depth texture writing and prediction artifact generation for MoGe-2.
- Developed server jobs for generating cutout artifacts, depth planes, and refining image regions.
- Added region refinement logic to enhance gesture masks using BEN2.
2026-08-31 11:36:27 +08:00

2.9 KiB
Raw Blame History

Job 产物

Job 目录是 Server 与 Blender Operator 的交换边界。Server 写入普通图片、JSON 或 Debug NPZ;Blender 只读取 Job 返回值明确声明的文件,再创建最终 Image、Mesh、Material 与 Object。

正式 Job

| Job | 主要文件 | Blender 消费方式 | | | | | | remove-background | image.0001.png 起 | 替换 Image Empty 的颜色数据 | | upscale-image | upscale.0001.png 起 | 替换或新建高清颜色数据 | | refine-image-region | image.png、bounds.json | Image Box / Lasso 读取 Fit to Foreground 结果 | | generate-depth-plane-geometry | image.0001.*、z-depth.exr、depth.json | 创建 Depth Plane | | generate-cutout-artifacts | 可选 Region、Depth 与 Normal 文件 | 创建 Cutout Shape 与材质 |

两个 Depth Job 都不输出 Blender 网格。Server 保存可由 Blender 直接加载的模型空间 EXR;轮廓提取、三角化、Depth 标定以及 Blender 数据创建仍在主线程完成。

Depth 与 Normal 文件

MoGe-2 Prediction 只存在于 Server 内存。geometry/prediction_artifacts.py 共享一次推理,并按请求写出以下文件:

文件 内容
vector-depth.exr RGB 保存相机空间 XYZ,Alpha 保存有效区
z-depth.exr RGB 重复保存相机 Z,Alpha 保存有效区
depth.json 保存 image_size、3×3 intrinsics 与 reference_depth
tangent-normal.png Tangent Space Normal Map
object-normal.png Object Space Normal Map

Blender 通过 operators/common/depth_data.py 直接加载 EXR,设为 Non-Color 并 Pack;不会从 NumPy 点场再创建一张 Depth Image。Job 文件名不改变 Blender 数据块命名:Depth 与 Normal 仍分别使用 depth_data_name() 和 normal_data_name()。Blender 读取 Z 与 Alpha 只用于最终 Region 的本地标定,Geometry Nodes 直接采样已加载的 EXR。

Cutout Region 产物

Blender 先把 RegionPath 栅格化为 RegionMask,再把局部 RGBA 作为 Server 输入。Server 不接收 Path 或 Mask 对象协议:

  • 开启 Fit to Foreground 时,region.png 保存 Fit to Foreground 后的局部 RGBA,region_bounds.json 保存它相对输入裁切图的范围;
  • 需要 Vector Depth 时请求 vector-depth.exr 与 depth.json;
  • 需要 Z Depth 时请求 z-depth.exr 与 depth.json;
  • Normal Map 按空间请求 tangent-normal.png 或 object-normal.png。

未启用 Fit to Foreground,且不需要 Depth 或 Normal Map 时,Surface 与 Balloon 不提交 Job。最终颜色图仍由 Blender 从源 Image 裁切,并把 Alpha 乘以最终 RegionMask。

Debug 产物

| Job | 文件 | | | | | debug-da3 | prediction.npz | | debug-moge2 | prediction*.npz | | debug-ben2 | foreground*.png | | debug-upscale | prediction*.png |

Debug Job 只用于直接检查模型适配层,不参与正式对象创建流程。