Nodes/Avatar Graph/Join Meshes
ComfyUI Node

Join Meshes

Combining separate Avatar Graph layers into one mesh

By avatechai·Created 3 years ago·Updated 2 years ago· 264
Join Meshes
  • BPY_OBJ
  • BPY_OBJ2
  • BPY_OBJ

Unlike most of Avatar Graph's Blender nodes, this one is actually named and described in the pack's own README: "Combine multiple meshes into a single mesh object." It's one of the handful of low-level mesh nodes the pack's basic rigging workflow relies on directly, rather than an auto-generated operator wrapper most users will never touch.

How it works

Avatar Graph's typical flow builds a character up in layers - a separate mesh generated per segmented region of the source image, via Create Mesh Layer. Eyes, mouth, hair, whatever the SAM segmentation pulled out, each starts life as its own mesh object. Before that character can be unwrapped, rigged with shape keys, or exported as one coherent avatar, those layers need to become a single mesh. That's what this node does: it takes two mesh inputs and merges them into one combined object, geometry from both now living under a single mesh data block.

The inputs and outputs that matter

  • BPY_OBJ (optional) - the first mesh.
  • BPY_OBJ2 (optional) - the second mesh to combine into the first.

That's the whole interface - no options to configure, just two meshes in. If you need to combine more than two layers, chain multiple Join Meshes nodes together, feeding the output of one join in as an input to the next.

Output is a single BPY_OBJ - the combined mesh, ready for whatever comes next in the graph (texture unwrapping, shape key setup, or straight to Avatar Main Output).

How to install it

ComfyUI Manager: search "Avatar Graph" and install. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/avatechai/avatar-graph-comfyui

then pip install -r requirements.txt and restart. Needs Blender's bpy module, pinned to Python 3.10.x - a dedicated conda environment on macOS/Linux, or Avatech's prebuilt Python-3.10 ComfyUI zip on Windows with the pack installed through Manager afterward. Add --enable-cors-header (and --force-fp16 on Mac) on launch if you want the live avatar preview panel talking to Avatech's web editor; skip it if you just want to export a .glb/.gltf at the end.

Common issues & troubleshooting

Only one mesh's geometry seems to survive the join. Check that both BPY_OBJ and BPY_OBJ2 are actually wired to something upstream - an unconnected input feeding nothing in means this node effectively just passes the other mesh through unchanged.

Joined mesh looks doubled up or has overlapping geometry at the seam. Joining doesn't automatically weld coincident vertices where two layers happen to touch - if you need that, run Mesh Merge (by distance / by rule) or Blender's remove-doubles equivalent afterward on the combined result.

Materials or vertex groups from one layer seem to disappear or shift after joining. This is standard Blender join behavior, not a bug specific to this pack - joined meshes inherit their combined material/attribute slots from the order they're joined in, so if downstream nodes reference a specific material index, double-check it still points where you expect after the join.

Categoryblender

Inputs (2)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ
BPY_OBJ2optBPY_OBJ

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ