Object Call Holdout Get
Reading an object's render-holdout flag
- 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.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |