Object Empty Add
A plain anchor point for your Avatar Graph scene
- BPY_OBJ
- location
- rotation
- scale
- BPY_OBJ
Of everything in this batch, Object Empty Add is probably the most quietly useful one. An Empty in Blender is an object with no mesh, no render footprint - just a position, rotation, and scale you can point other things at. Parent anchor, pivot, constraint target: it's the plain scaffolding you reach for when you need "a place in 3D space" without needing anything visible there.
How it works
It wraps bpy.ops.object.empty_add(). The only thing that changes based on your type choice is which little icon represents the Empty in the viewport - plain axes, arrows, a circle, a cube, a sphere, a cone, or an image placeholder. None of that changes behavior; it's purely a viewport-navigation aid so you can tell your Empties apart at a glance.
In an avatar-rigging context, this is the kind of node you reach for as connective tissue - a parent object to group several mesh-layer parts under so they move together, or a target for a constraint elsewhere in the pack - rather than something with a documented role of its own in the README's blink-and-lipsync pipeline.
The inputs and outputs that matter
type(enum) -PLAIN_AXES,ARROWS,SINGLE_ARROW,CIRCLE,CUBE,SPHERE,CONE,IMAGE. Purely cosmetic in the viewport.radius(float, default1) - display size.align(enum:WORLD,VIEW,CURSOR) - orientation on creation.location/rotation/scale- starting transform, the fields you'll actually touch to place it where you need it.
Output: a single BPY_OBJ, the new Empty.
One thing worth flagging: picking IMAGE as the type doesn't, by itself, load an image - it just picks the display style. If you want an Empty that actually shows a picture, Object_DropNamedImage or Object_LoadReferenceImage are the nodes that load real image data onto one.
How to install it
ComfyUI Manager: search "Avatar Graph", 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, and nothing else works. Windows gets a prebuilt Python-3.10 ComfyUI zip from the README; macOS/Linux should use a dedicated conda create --name comfyui python=3.10 environment. Restart with --enable-cors-header (plus --force-fp16 on Mac) for the live avatar preview to reach editor.avatech.ai; without it, everything still works, you just export .glb/.gltf.
Common issues & troubleshooting
Nodes not loading traces to the Python-version pin - check ComfyUI's startup console for a bpy import error first.
Set type to IMAGE and nothing shows up - as above, that's expected: this node only sets display style, not image data. Follow it with an image-loading node if you actually want a picture attached.
Empty seems to have no effect on the rig - also expected, and not a bug. An Empty on its own is inert; it only matters once something else - a parent relationship, a constraint, a driver - actually references it. If you added one and nothing changed, the wiring to make it useful happens in whatever node comes next, not here.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — | |
| typeopt | COMBO | 8 options: PLAIN_AXES, ARROWS, SINGLE_ARROW, CIRCLE, CUBE, SPHERE, +2 | |
| radiusopt | FLOAT | 1.000–999999995904 | — |
| alignopt | COMBO | 3 options: WORLD, VIEW, CURSOR | |
| locationopt | B_VECTOR3 | — | |
| rotationopt | B_VECTOR3 | — | |
| scaleopt | B_VECTOR3 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |