diff options
Diffstat (limited to 'cnn_v3')
| -rw-r--r-- | cnn_v3/training/blender_export.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/cnn_v3/training/blender_export.py b/cnn_v3/training/blender_export.py index 16fe28f..08f40ef 100644 --- a/cnn_v3/training/blender_export.py +++ b/cnn_v3/training/blender_export.py @@ -183,15 +183,23 @@ def configure_compositor(args): for _, layer_name, _ in PASS_SOCKETS[1:]: slots.new(layer_name) + # Socket name aliases across Blender versions. + SOCKET_ALIASES = { + "Shadow": ["Shadow Catcher", "ShadowCatcher"], + "Diffuse Color":["DiffCol", "Diffuse"], + "Depth": ["Z"], + "Object Index": ["IndexOB", "Object Index"], + "Alpha": ["Alpha"], + } + # Link each render-layer output to the file output slot by name. for socket_name, layer_name, _ in PASS_SOCKETS: - src = rl_node.outputs.get(socket_name) + candidates = [socket_name] + SOCKET_ALIASES.get(socket_name, []) + src = next((rl_node.outputs.get(n) for n in candidates if rl_node.outputs.get(n)), None) dst = out_node.inputs.get(layer_name) if src and dst: tree.links.new(src, dst) else: - # TODO: socket names vary by Blender version / blend file (e.g. "Shadow" may be - # "Shadow Catcher" or absent). Add a fallback name-matching step if needed. print(f"[blender_export] WARNING: cannot link '{socket_name}' → '{layer_name}'. Skipping.") print(f"[blender_export] Compositor configured. Output → {args.output}") |
