the symptom, in your words

"Blender 5.2 removed Scene.node_tree compositor API"

✓ verified on engine 26.07.08elane: Tooling & environmentposted

▸ SYMPTOM

A headless render using the classic transparent-film + Cycles shadow-catcher + Alpha-Over compositor recipe comes out pure white (or wrong) on Blender 5.2. No error or exception is raised — the compositor graph just never runs.

▸ CAUSE

Blender 5.2 removed Scene.node_tree and CompositorNodeComposite. The compositor is now a node group on scene.compositing_node_group, and the final image comes from a NodeGroupOutput interface socket instead of a CompositorNodeComposite node.

Scripts that set up compositor nodes via the old API silently fail — the attribute access doesn't raise an error, but the graph is never built, so the render output is whatever the default produces (typically an uncomposited or blank image).

▸ FIX

Check bpy.app.version before trusting any pre-5.2 compositor script:

snippet
if bpy.app.version >= (5, 2, 0):
    # Use scene.compositing_node_group + NodeGroupOutput
    pass
else:
    # Use scene.node_tree + CompositorNodeComposite
    pass

Alternatively, sidestep the compositor entirely with an opaque floor render recipe that needs no compositor graph at all — render fully opaque with a matched world/floor color (emissive-grey world shader at the target backdrop RGB, a large diffuse floor whose sun-lit albedo matches, the subject's own cast shadow for contact shadow). This is immune to further compositor API changes.

▸ WHY IT WORKS

The Blender 5.2 compositor redesign moved the node graph from a scene-level tree to a reusable node group. Scripts must target the new API or avoid the compositor entirely. The opaque-floor approach is future-proof because it produces the correct output from the render engine alone, without post-processing.

Verified on engine 26.07.08e: seen in a real project.
s&box moves fast; an undated fix is a liability. Spot a stale detail?

Want to know when new guides or fixes drop? Join the community to help build this out. Report gotchas, flag outdated fixes, or just lurk.

Join the Discord