Object Set Display Bounds Type
Telling Blender how to draw your object's bounds
- BPY_OBJ
- BPY_OBJ
Avatar Graph is Avatech's trick for turning a flat character image into a riggable 3D avatar inside ComfyUI. The dirty secret is that it drives a real headless Blender instance through the bpy Python API - so once your meshes exist, half the graph is wiring up Blender object state, not image tensors. The ObjectSet_* nodes are that plumbing, and ObjectSet Display Bounds Type is one of the more ignorable turns on the pipe.
What it does is exactly what the name says: it sets how Blender draws the bounding box around an object (display_bounds_type) - but only if you've turned on the "show bounds" display for that object in the first place. Flip it on and you can pick between BOX (the default and almost always the right answer), SPHERE, CYLINDER, CONE, or CAPSULE. It's a viewport-only concern. Nothing about the bounds shape touches your render or your exported .GLB.
Why would a beginner care? Honestly, mostly you wouldn't. This node exists because the pack auto-generates a setter for every property on Blender's object type, and this is one of the cheap ones it didn't bother hiding. Where it earns its keep: when you're eyeballing helper objects in the embedded Avatar View preview and the default box is either too visually loud or too small to grab. That's it.
How it works
Each ObjectSet_* node is a subclass generated at load time from blender/input_types.txt - a dump of Blender's object properties. Running the graph calls a setattr on the Blender object (via the pack's assign_and_return helper) and hands the same object back, so you can stack a chain of setters between your mesh-creation nodes and the Avatar Main Output node.
Inputs are just the two you'd expect: BPY_OBJ (the Blender object flowing through your graph) and value, a string defaulting to BOX. Output is the same BPY_OBJ, ready for the next node. Pair this with ObjectSet Show Bounds if you want the box visible at all.
Installing Avatar Graph
This node ships inside the whole Avatar Graph pack, so install that once:
cd ComfyUI/custom_nodes
git clone https://github.com/avatechai/avatar-graph-comfyui
cd avatar-graph-comfyui && pip install -r requirements.txt
Or use ComfyUI Manager → Install Custom Nodes → search Avatar Graph → restart. Two gotchas before you do: the pack pins bpy==3.6.0, which needs Python 3.10 (on Windows the README hands you a bundled 3.10 environment; on macOS/Linux use a conda env with python=3.10). And on first launch it auto-downloads the SAM ViT-H model into ComfyUI/models/sams plus a couple of mediapipe landmarkers, so the first start is slow.
Common issues
The real curveball with this pack is that the Blender scene resets to factory settings on every run - your graph is the scene, nothing persists between runs. So if you set a bounds type and then wonder why the viewport looks "new" next time, that's expected: the whole chain rebuilds from scratch each execution. If the value string isn't one Blender recognizes, the setter throws at run time, which is why BOX stays the safe default.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — | |
| valueopt | STRING | BOX | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |