Nodes/Avatar Graph/Object Call Visible In Viewport Get
ComfyUI Node

Object Call Visible In Viewport Get

Per-viewport visibility, not global

By avatechai·Created 3 years ago·Updated 2 years ago· 264
Object Call Visible In Viewport Get
  • BPY_OBJ
  • viewport
  • BPY_OBJ

Like its sibling Object Call Visible Get, this node's name promises a check that its outputs don't actually surface - no boolean socket, just BPY_OBJ passed through. It wraps Blender's Object.visible_in_viewport_get(viewport), which answers a narrower question than the global visibility check: is this object visible in this specific 3D viewport, accounting for that viewport's own local overrides (local view / isolation mode, per-viewport collection visibility) rather than the file-wide state.

Where it fits in Avatar Graph

Avatar Graph (avatechai/avatar-graph-comfyui) rigs a flat character image into an interactive avatar - segmentation, mesh layers, a "Shape Flow" runtime graph, export through Avatar Main Output. The README documents a handful of nodes for that pipeline, and this isn't one of them. It's part of the much larger family the pack generates by wrapping Blender's own Object API almost 1:1 as nodes - this specific one is scripting-level plumbing for multi-viewport setups, well outside anything the rigging tutorial touches.

How it works

Blender lets each open 3D viewport carry its own local visibility state - you can isolate an object in one viewport (/ for local view) without hiding it everywhere else, or toggle a collection off in one viewport's overlay settings while it stays visible in another. visible_in_viewport_get() checks visibility scoped to one particular viewport rather than the object's global state, which matters if a script (or, here, a graph) needs to reason about what's actually on screen in a specific view rather than in the file as a whole.

Inputs and outputs

  • BPY_OBJ (optional) - the object being checked. Unwired, defaults to the active object.
  • viewport (optional, default null) - the specific viewport space to check against. There's no widget for this; it's a socket, so something upstream needs to actually produce a viewport reference to wire in - there's no Object_* node in this pack's schema whose job is obviously "give me a viewport."

Output: BPY_OBJ, passed through, matching the rest of this node family.

How to install it

Through ComfyUI Manager: search "avatar-graph-comfyui", install, restart. Or manually:

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

bpy needs Python 3.10.x specifically - nothing later. The README ships a prebuilt Python 3.10 ComfyUI zip for Windows for exactly this reason; on Mac/Linux, set up a dedicated conda env (conda create --name comfyui python=3.10) rather than reuse whatever you've already got. Restart with --enable-cors-header if you want the live avatar preview to talk to editor.avatech.ai - exports work fine without it.

Common issues & troubleshooting

Install trouble is almost always the Python version - dropping this pack into a 3.11/3.12 environment, which is the default on most current ComfyUI installs, will fail to import bpy at all. There's also a documented case of installing Avatar Graph on ComfyUI Desktop leaving the install badly broken (an oversized logo, a stray audio-permission popup) badly enough that a full reinstall didn't clean it up - test it in a spare, portable ComfyUI instance first if you're not already isolated on 3.10.

Practically speaking, this is the least likely node in the whole pack for a beginner to have a real use for: it needs an actual viewport reference wired in, which nothing else in this pack's node list obviously supplies, and even a successful check never leaves the node as a usable value. If you landed here trying to conditionally skip work based on what's visible on screen, this specific node isn't the tool - you'd need scripting elsewhere in the graph that actually exposes the result.

Categoryblender

Inputs (2)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ
viewportoptviewport

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ