diff options
| author | skal <pascal.massimino@gmail.com> | 2026-03-22 08:42:30 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-03-22 08:42:30 +0100 |
| commit | a1c1aa4f9ec54525a9b37e211cc1512f8e1cb747 (patch) | |
| tree | ed1409684a247696cc12168c08b539ff96ef5214 /cnn_v3/training | |
| parent | e168fecfc2035f0158417c4bbe7fc49109d05a5d (diff) | |
fix(cnn_v3): blender_export fallback socket name aliases for Shadow etc.
Diffstat (limited to 'cnn_v3/training')
| -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}") |
