Files
AnyImage/docs/internals/outputs.md
nan 32bcd45d7b Add new node asset scripts for geometry and shader operations
- Implemented `build_mesh_plane.py` to create a geometry node group for mesh planes with customizable parameters.
- Created `build_shadeless.py` for a shader node group that displays color without scene lighting while preserving shadows and reflections.
- Added `validate.py` to validate the integrity of the newly created node groups and their inputs.
- Introduced `validate_cutout.py` to ensure the functionality of cutout node groups and their dependencies.
- Developed `validate_mesh_plane.py` to test the mesh plane creation and its modifier settings.
2026-08-30 00:17:29 +08:00

3.4 KiB
Raw Blame History

Job 产物

Job 目录是 Server 与 Blender Operator 的交换边界。Server 写入普通图片、JSON 或 NPZ;Blender 只根据 Job 返回值读取需要的文件,并创建最终数据块。

产物流向

flowchart TD
    Input["媒体输入"] --> Job["Server Job"]
    Job --> Color["PNG 颜色 / Alpha"]
    Job --> Field["NPZ 深度场"]
    Job --> Meta["JSON bounds"]
    Color --> Import["Blender response()"]
    Field --> Import
    Meta --> Import
    Import --> Data["Image / Mesh / Material"]

正式 Job

Job 主要文件 消费方
remove-background image.0001.png 起 替换 Image Empty 的颜色数据
upscale-image upscale.0001.png 起 创建 _upscale.png Image 并记录原图引用
refine-image-mask selection-input.png、image.png、bounds.json Image Box / Lasso 读取 Alpha 与原图坐标
prepare-geometry-data:Depth Plane image.0001.*、field.npz 创建颜色图、深度图、材质和 Plane
prepare-geometry-data:Cutout image.0001.png、selection.png、analysis.png、bounds.json,以及按形状生成的 field.npz / normal.png Blender 主线程构建局部网格与贴图

prepare-geometry-data 不输出 Blender 网格。它只准备颜色、选区和模型数组;轮廓提取、约束三角化、Geometry Nodes Modifier 与法线烘焙都在 Blender 响应阶段完成。

深度场

field.npz 是 Depth Plane、Depth Balloon 与 Depth Surface 共用的模型中间结果:

字段 含义
points 每个模型像素的相机空间 XYZ
depth 相机深度
intrinsics 像素坐标下的 3×3 相机内参
valid 模型与数值检查后的有效区域
calibration_valid 用于结果定位或深度基准的区域;Cutout 时与选择相交
image_size 深度场宽高
reference_depth 校准区域中的参考深度

Server 保留模型空间数据,不提前换算 Blender 单位。Depth Plane 在导入时根据 Image Empty 平面范围和相机内参锚定点场;Cutout 深度形状则计算 Uniform Scale 和局部坐标,再把相机点写入 Packed 浮点 Image 供 Geometry Nodes 采样。

Cutout 三类图片

Cutout 把“显示内容”“几何范围”和“模型分析”分开:

  • image.0001.png 保存裁切矩形中的源颜色与原 Alpha,用作材质。
  • selection.png 保存最终选择 Alpha,用于轮廓与网格。
  • analysis.png 只保留选择内的有效 RGBA,供深度或法线模型分析。

bounds.json 把裁切矩形映射回源图像素坐标。这样 Server 可以只处理局部数据,Blender 仍能恢复局部平面范围、UV 和世界位置。

Debug 产物

Debug Job 保留模型适配层的直接输出,不执行正式功能的 Blender 导入:

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

这些文件用于验证模型、Device 和适配层。正式 Job 会继续派生选择、Alpha、深度场或可导入图片,因此两者的文件结构有意不同。

单图与序列

正式颜色序列从 image.0001.* 开始,Upscale 使用独立的 upscale.0001.png 前缀。Remove Background 与 Upscale 的动画结果继续引用 Job 目录;单图结果通常在 Blender 导入后 Pack 到 .blend。不要清理仍被工程引用的序列目录。