Nodes/Avatar Graph/Object Call Holdout Get
ComfyUI Node

Object Call Holdout Get

Reading an object's render-holdout flag

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

ObjectCall_HoldoutGet is a render-compositing primitive from Avatar Graph's (avatechai/avatar-graph-comfyui) auto-generated wrapper layer over Blender's bpy.types.Object API. It has no role in the pack's documented headline feature - rigging a still character portrait into a live, blinking, lip-syncing 2D avatar - and, of everything in this batch, it's one of the furthest from anything that workflow actually needs.

How it works

It maps to Object.holdout_get(view_layer), documented as: "get the object's holdout state for the given view layer." "Holdout" is a render-visibility mode in Blender's Cycles and EEVEE engines: an object flagged as a holdout renders as a transparent cutout mask instead of its actual shading, useful for compositing (punching a hole in the render where that object sits, so something else can be layered in behind it).

Why you'd reach for it

Only if you're scripting custom render-compositing logic that needs to branch on whether a helper object is currently set to render as a holdout mask, rather than just always setting it. Nothing in Avatar Graph's documented node list (Create Mesh Layer, Join Meshes, Create Shape Flow, Avatar Main Output, and similar) touches holdout rendering at all.

Inputs and outputs

Just one optional BPY_OBJ input, one BPY_OBJ output. As with the rest of the *_Get family in this batch, Blender's real holdout_get() returns a boolean and accepts an optional view_layer argument - neither is exposed here. You're always reading the current view layer's state, and the boolean result itself doesn't come out as a separate wire.

Installing it

Avatar Graph pulls in Blender's bpy module as a dependency, which makes it a real install rather than a drop-in. 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 references 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 for the whole pack - bpy needs 3.10.x. Beyond that, this specific node has essentially no connection to anything Avatar Graph's own documented templates do - if you landed here trying to get an avatar working and expected this to matter, it almost certainly doesn't; it's here purely because the pack's node generator wraps the full bpy.types.Object API, holdout flag included. No author documentation exists for it, so this description comes from Blender's own Object.holdout_get() API docs.

Categoryblender

Inputs (1)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ