Object Call Visible Get
Check if an object is actually visible right now
- BPY_OBJ
- BPY_OBJ
Same flag as its siblings in this node family: the name says "Get," but check the outputs and there's no boolean socket - just BPY_OBJ passed through. This wraps Blender's Object.visible_get(viewport=None), whose actual job is answering "is this object really visible right now" by combining every visibility flag Blender tracks at once - hide_viewport, collection visibility, view-layer exclusion, the lot - rather than just reading one of them in isolation. The node exposes the call, but not its return value as a typed output.
Where it fits in Avatar Graph
Avatar Graph (avatechai/avatar-graph-comfyui) rigs a flat character image into a real-time interactive avatar - segmentation, mesh layers, a "Shape Flow" runtime graph, export via Avatar Main Output. The README documents a small set of nodes for that pipeline; this one isn't in it. It belongs to the much larger, undocumented family the pack generates by exposing most of Blender's own Object API directly as nodes - a deep-scripting layer, not something the rigging tutorial ever asks you to wire.
How it works
Blender has several independent ways to hide something: a per-object eye icon (hide_get), a collection's own visibility toggle, exclusion from the current view layer, render-visibility separate from viewport visibility. Checking any one of those in isolation can give you a wrong answer about whether the object is actually rendering on screen. visible_get() resolves all of them together and returns the combined answer - which is genuinely more useful than the individual flags, if you had a way to read it out.
Inputs and outputs
BPY_OBJ(optional) - the object to check. Unwired, it defaults to Blender's currently active object.
Output: BPY_OBJ - the object, passed straight through, same pattern as every node in this family. The boolean the underlying call actually returns isn't surfaced by this node's schema.
How to install it
ComfyUI Manager: search "avatar-graph-comfyui", install, restart. Or clone it yourself:
cd ComfyUI/custom_nodes
git clone https://github.com/avatechai/avatar-graph-comfyui
cd avatar-graph-comfyui && python -m pip install -r requirements.txt
The dependency that actually matters: bpy requires Python 3.10.x, nothing newer. Windows users get a prebuilt Python 3.10 ComfyUI zip from the README for this exact reason; on Mac/Linux, build a dedicated conda env (conda create --name comfyui python=3.10) instead of trying to force it into an existing one. Add --enable-cors-header on restart if you want the live avatar preview panel to work - file export doesn't need it.
Common issues & troubleshooting
The install is where people actually get stuck, not this node. Because bpy needs Python 3.10 specifically, a 3.11/3.12 environment - the default on most current ComfyUI installs - will fail to import it at all. There's also a real report of Avatar Graph leaving a ComfyUI Desktop install badly broken after installing it (an oversized UI logo, an unexpected audio-permission popup) severely enough that a clean ComfyUI reinstall didn't fully fix it - test in a spare, portable ComfyUI instance first if you're not already isolated on 3.10.
If you were hoping to branch your graph on visibility ("only run this if the object is shown"), this node alone can't do it - the visible/hidden result never leaves the node as a usable value. You'd need to build that check somewhere the boolean is actually exposed, not rely on this passthrough.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |