Nodes/Avatar Graph/Object Call Indirect Only Get
ComfyUI Node

Object Call Indirect Only Get

Reading whether an object only casts indirect light

By avatechai·Created 3 years ago·Updated 2 years ago· 264
Object Call Indirect Only Get
  • BPY_OBJ
  • BPY_OBJ

ObjectCall_IndirectOnlyGet closes out the render-visibility family of nodes in Avatar Graph's (avatechai/avatar-graph-comfyui) auto-generated bpy.types.Object wrapper layer, alongside ObjectCall_HideGet/Set and ObjectCall_HoldoutGet. Like its siblings, it has no role in the pack's documented headline feature - rigging a still character portrait into a live, blinking, lip-syncing 2D avatar.

How it works

It maps to Object.indirect_only_get(view_layer), documented as: "get the object's indirect only state for the given view layer." "Indirect only" is another Cycles/EEVEE render-visibility mode: an object flagged this way is invisible directly to the camera, but still contributes indirect lighting - it still casts shadows, bounces light, and shows up in reflections, just never appears as itself in the final frame.

Why you'd reach for it

Niche render-compositing logic, same as HoldoutGet - reading whether a helper object (a light-bounce prop, an environment piece that shouldn't appear directly in the final avatar render) is currently flagged this way, if you're scripting behavior that branches on that state rather than just always setting it. It's about as far from Avatar Graph's documented rigging workflow as any node in this batch.

Inputs and outputs

Just one optional BPY_OBJ input, one BPY_OBJ output - the same pattern as the rest of the *_Get family. Blender's real indirect_only_get() returns a boolean and takes an optional view_layer argument; neither shows up here. You're reading the current view layer's state only, and the boolean itself isn't exposed as a separate wire - you get the object passed straight through and nothing else.

Installing it

Avatar Graph depends on Blender's bpy module, which makes it a real install rather than a drop-in - it's strict about Python version. On Windows, use the author's bundled Python 3.10 environment (linked in their README), unzipped into your ComfyUI folder and launched via the included .bat, then install "Avatar Graph" from ComfyUI Manager. On macOS/Linux, pin your ComfyUI environment to Python 3.10.x exactly - conda is the cleanest way (conda create --name comfyui python=3.10). Then cd ComfyUI/custom_nodes, git clone https://github.com/avatechai/avatar-graph-comfyui.git (their README's own manual-install command points at a stale org, avatechgg - the repo actually lives under avatechai). cd avatar-graph-comfyui && python -m pip install -r requirements.txt, then restart with python main.py --enable-cors-header (Mac: also --force-fp16). That flag opens CORS so the hosted viewer at editor.avatech.ai can talk to your local ComfyUI; skip it if you're exporting .glb/.gltf from Avatar Main Output instead.

Common issues

Python-version mismatch is the recurring first blocker across this entire pack - bpy needs 3.10.x, not newer. Beyond that, this node - together with the rest of the *_Get visibility family in this batch - is a strong signal of how this whole corner of Avatar Graph came to exist: it mirrors the complete bpy.types.Object API for completeness, not because the avatar-rigging workflow needed a render-holdout toggle. There's no author documentation for it, so this description is grounded in Blender's own Object.indirect_only_get() API docs rather than anything Avatech published.

Categoryblender

Inputs (1)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ