Nodes/Avatar Graph/Object Set Is Shadow Catcher
ComfyUI Node

Object Set Is Shadow Catcher

Catching real shadows for your animated avatar

By avatechai·Created 3 years ago·Updated 2 years ago· 264
Object Set Is Shadow Catcher
  • BPY_OBJ
  • BPY_OBJ
valuefalse

This is one of the handful of ObjectSet_* nodes you'll actually reach for. ObjectSet Is Shadow Catcher marks an object as a shadow catcher in Cycles, which is the renderer's way of saying: render only the shadows that fall on this object, and make everything else about it transparent.

Why does that matter for avatars? Because a floating character with no contact shadow looks fake, and a solid floor behind it wrecks your compositing. The shadow-catcher move is the middle path: put an invisible plane under your avatar, mark it as a shadow catcher, and it catches a soft, realistic shadow from the character while staying perfectly transparent everywhere else. Now the avatar drops into video footage or a generated background and sits in the scene instead of hovering. It's the same trick VFX pipelines use, and it's the difference between "animated sticker" and "character standing in the room."

The node maps to Blender's is_shadow_catcher property. Default is false; set value to true for the catcher. It's a Cycles behavior, so expect it in the render output and in exports from Avatar Main Output - and remember the shadow only appears if the character actually casts one, which means lights in your Blender scene.

How it works

Standard ObjectSet_* plumbing: the node is auto-generated from a dump of Blender's bpy.types.Object properties, does a single setattr on the BPY_OBJ passing through, and returns the same object so you can chain more setters after it.

Inputs that matter:

  • BPY_OBJ - the plane (or object) that should catch shadows
  • value - boolean, default false; true makes it a shadow catcher

Output: the same BPY_OBJ.

Installing Avatar Graph

One install for the whole pack:

cd ComfyUI/custom_nodes
git clone https://github.com/avatechai/avatar-graph-comfyui
cd avatar-graph-comfyui && pip install -r requirements.txt

Or ComfyUI Manager → Install Custom Nodes → search Avatar Graph → restart. Pack requirements: bpy==3.6.0 pins you to Python 3.10 (Windows gets a bundled 3.10 environment from the README; macOS/Linux use conda), and first launch auto-downloads the SAM ViT-H model into ComfyUI/models/sams plus the mediapipe face/pose landmarkers.

Common issues

Two mix-ups to avoid. First, shadow catcher is not holdout: a catcher keeps only shadows, a holdout cuts a hole. Second, the catcher renders transparent - if you were hoping the floor would also show through as a visible surface, this isn't it; pair it with a separate visible floor if you need both. And because the pack resets its Blender scene to factory settings every run, the catcher flag must be set by the graph each time - there's no persistent scene state to save it for you.

Categoryblender

Inputs (2)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ
valueoptBOOLEANfalse

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ