Nodes/Avatar Graph/Object Add
ComfyUI Node

Object Add

Dropping a raw Blender primitive into the scene

By avatechai·Created 3 years ago·Updated 2 years ago· 264
Object Add
  • BPY_OBJ
  • location
  • rotation
  • scale
  • BPY_OBJ
radius1.00
type
enter_editmodefalse
align

Most of the Mesh_* nodes in this pack edit a mesh you already have. Object_Add is one level lower - it's the node that creates a brand-new object in the Blender scene from scratch.

What it is and why you'd reach for it

This wraps Blender's bpy.ops.object.add() directly. Avatar Graph embeds real Blender via the bpy package inside ComfyUI, and this node is a thin passthrough to that operator - the same one Blender's own "Add" menu calls under the hood, whether you're adding a mesh primitive, a curve, an empty, or one of the pack's other 16 listed object types.

In practice, most of an Avatar Graph workflow doesn't start here - your character mesh comes from Create Mesh Layer, built from a segmented image, not from a primitive. Object_Add is more of a low-level utility: something to attach an empty to as a pivot point, or to drop a primitive placeholder into the scene while you're building or debugging a graph. It's the whole Blender object toolkit being exposed, not something the standard eye-blink/lipsync templates lean on directly.

Inputs and outputs that matter

  • BPY_OBJ (optional) - an object from upstream, if you're chaining this after other operations rather than starting fresh.
  • type (enum, 16 choices - MESH, CURVE, SURFACE, META, FONT, CURVES, POINTCLOUD, VOLUME, GPENCIL, ARMATURE, LATTICE, EMPTY, and four more) - what kind of object to create. For most Avatar Graph use, MESH or EMPTY are the ones you'll actually reach for; several of the others (VOLUME, POINTCLOUD, GPENCIL) exist because the underlying Blender operator supports them, not because this pack's downstream nodes do anything special with them.
  • radius (float, default 1) - the initial size of the primitive, where the type supports it.
  • enter_editmode (bool, default False) - whether the new object opens directly in edit mode.
  • align (enum: WORLD, VIEW, CURSOR) - how the object's initial rotation is set.
  • location / rotation / scale (each a 3-value vector) - the object's starting transform.

Output: a single BPY_OBJ - the newly created object, ready to feed into mesh-editing or other object nodes.

Installing Avatar Graph

bpy, the library the whole pack runs on, only ships wheels for Python 3.10.x - that's the constraint to satisfy before anything else.

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

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

Restart with python main.py --enable-cors-header (--force-fp16 too on Mac). Windows gets a prebuilt Python 3.10 environment from the README; macOS/Linux is pointed at a dedicated conda create --name comfyui python=3.10.

Common issues

Created the wrong kind of object. Double-check type - with 16 options crammed into one dropdown, it's easy to pick MESH when you meant EMPTY, or vice versa, especially since this node's tooltips are sparse (the pack is explicitly early/WIP per its README).

Object appears in an unexpected place. location/rotation/scale default to origin unless you set them - if you expected it to spawn relative to something else in the graph, remember this is a fresh object with its own transform, not automatically parented or positioned relative to an existing BPY_OBJ.

Nodes not loading in ComfyUI. Check python --version is exactly 3.10.x - bpy fails to import otherwise, and the whole pack won't register.

No live avatar preview. Needs --enable-cors-header at launch to reach the embedded editor.avatech.ai panel. Without it, export the finished result via right-click → Save File on Avatar Main Output instead.

Categoryblender

Inputs (8)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ
radiusoptFLOAT1.000–999999995904
typeoptCOMBO16 options: MESH, CURVE, SURFACE, META, FONT, CURVES, +10
enter_editmodeoptBOOLEANfalse
alignoptCOMBO3 options: WORLD, VIEW, CURSOR
locationoptB_VECTOR3
rotationoptB_VECTOR3
scaleoptB_VECTOR3

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ