Nodes/Avatar Graph/Object Vertex Group Remove From
ComfyUI Node

Object Vertex Group Remove From

Scrub Weights Off Vertices Without Killing the Group

By avatechai·Created 3 years ago·Updated 2 years ago· 264
Object Vertex Group Remove From
  • BPY_OBJ
  • BPY_OBJ
use_all_groupsfalse
use_all_vertsfalse

Removing a whole vertex group is one thing; scrubbing specific vertices out of a group is the surgical version, and that's what Object Vertex Group Remove From does. It takes the currently selected vertices and removes them from a group - or from every group - while leaving the group itself intact for the vertices that should stay.

In an avatar rig this is how you keep a brow group from bleeding into the forehead, or stop a mouth group from grabbing the cheeks. Delete the wrong weights from the wrong verts and the whole blink reads wrong, so the control here matters.

How it works

An auto-generated wrapper around Blender's bpy.ops.object.vertex_group_remove_from. BPY_OBJ in, edit mode, operator runs, same object out. Two booleans decide the scope:

  • use_all_groups - default false. When on, the selected vertices are removed from every group, not just the active one. A quick way to fully clear a selection's weights.
  • use_all_verts - default false. When on, the operation applies to all vertices instead of just the selection.

Default behavior, with both off: selected vertices, active group. That's the one you'll reach for most. Select the verts you want to detach, make the target group active, run it.

Output is the same BPY_OBJ, so you can chain this into a smoothing or normalization pass afterward - removing stray weights and then tidying the survivors is a natural one-two.

Installing it

It's part of Avatar Graph:

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

Restart ComfyUI, or install "Avatar Graph" from ComfyUI Manager. Pack-wide install notes: bpy==3.6.0 needs Python 3.10 (README suggests a conda env), and bpy is a several-hundred-MB headless Blender.

Common issues

The top gotcha is selection. The default scope is "selected vertices," so if your graph didn't actually select anything, the operator has an empty set to work with - a silent no-op. Make sure something upstream (an Object Vertex Group Select, or a mesh selection op) actually populated the selection.

Second: mixing up use_all_groups with use_all_verts. One is "every group," the other is "every vertex." Setting the wrong one and getting a blanked mesh is a rite of passage. And remember the standing rule - this only runs on a real BPY_OBJ from the pack's mesh nodes.

Categoryblender

Inputs (3)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ
use_all_groupsoptBOOLEANfalse
use_all_vertsoptBOOLEANfalse

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ