Nodes/Avatar Graph/Mesh Select Ungrouped
ComfyUI Node

Mesh Select Ungrouped

Catching vertices you forgot to weight

By avatechai·Created 3 years ago·Updated 2 years ago· 264
Mesh Select Ungrouped
  • BPY_OBJ
  • BPY_OBJ
extendfalse

Small node, useful job: Mesh Select Ungrouped wraps bpy.ops.mesh.select_ungrouped, which selects every vertex on the mesh that isn't assigned to any vertex group. If you're building a rig - and Avatar Graph exists to rig characters for its blink/lipsync Shape Flow system - this is your sanity check for "did I actually weight the whole mesh, or did some vertices slip through with zero influence."

How it works

Vertex groups are how Blender associates parts of a mesh with things like bones, shape-key targets, or modifier masks. A vertex with no group at all won't respond to whatever deformation system you built around those groups - it just sits there while everything around it moves, which shows up as a hole or a spike in an otherwise smooth deformation. Rather than eyeballing the mesh for that, this operator flags the culprits directly by selecting them.

The inputs and outputs that matter

There's really one setting worth knowing:

  • extend - when false (the default), this replaces whatever's currently selected with the ungrouped vertices. Set it true to add the ungrouped ones to an existing selection instead of starting fresh.

Output is the same BPY_OBJ, with the selection now marking every vertex that has no vertex group - feed that into a following step (like assigning a fallback group, or just inspecting the count) to catch weighting gaps before they cause a visible glitch downstream.

How to install it

Via ComfyUI Manager, search "Avatar Graph" (avatar-graph-comfyui) and install. Manual route: cd ComfyUI/custom_nodes && git clone https://github.com/avatechai/avatar-graph-comfyui, cd avatar-graph-comfyui && pip install -r requirements.txt, restart. Avatar Graph needs Python 3.10.x - bpy doesn't ship wheels for anything newer, so a standard current-gen ComfyUI environment (3.11/3.12) will fail this install or silently leave the blender-category nodes missing from your node list. Dedicated conda env on macOS/Linux, or Avatech's prebuilt Python-3.10 ComfyUI zip on Windows.

Common issues & troubleshooting

Selecting nothing, even though you're sure some vertices are ungrouped. This is one of the pack's raw Blender-operator wrappers, so it needs a BPY_OBJ that's already an actual mesh with vertex-group data attached and in Edit Mode context - if you wire it straight after a step that hasn't assigned any groups yet at all, there's nothing to distinguish "grouped" from "ungrouped," and depending on how the upstream chain set things up you may get an empty or full selection rather than the meaningful subset.

It's easy to run this and do nothing with the result. The node only selects - it doesn't fix anything or tell you a count. If you're using it as a QA step, you need a following node (a check on selection size, or a manual inspection via the live preview) to actually act on what it found; on its own it's silent.

Not documented in the pack's README. It isn't - none of the blender-category nodes are; the README's own node table covers about seven higher-level Avatech-built nodes, and this is one of the lower-level operator passthroughs generated from Blender's own API via the pack's generate_blender_types.py script. Blender's manual entry for "Select Ungrouped" covers the exact behavior if you need more than this.

Categoryblender

Inputs (2)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ
extendoptBOOLEANfalse

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ