Object Skin Root Mark
Pick where the body grows from
- BPY_OBJ
- BPY_OBJ
Every Skin modifier mesh needs at least one root vertex - the point the whole body grows outward from, the pelvis in a humanoid stick figure. Object Skin Root Mark wraps bpy.ops.object.skin_root_mark and flags the selected vertices as roots. Get this right and your skin rig has a sane origin for the armature; get it wrong and the whole thing behaves like it's hanging from a limb.
Why it matters beyond tidiness: Object Skin Armature Create builds bones from the skin mesh, and root vertices anchor that armature. Marking a root at the hips instead of at a foot is the difference between a character that poses from the pelvis and one that pivots weirdly from an ankle.
How it works
Auto-generated wrapper, standard for the pack. Your incoming BPY_OBJ becomes the active object and the operator marks the currently selected vertices as skin roots. Like its sibling Object Skin Loose Mark Clear, it acts on the selection, so the node assumes the right vertices are already selected in the shared scene.
The inputs that matter
Just BPY_OBJ. No root name, no index - the marked vertices are whichever are selected when the node runs. Selection state is the real control, and it's managed by nodes earlier in your graph.
Output is one BPY_OBJ, unchanged.
Install
Standard Avatar Graph install - one repo for the whole pack. ComfyUI Manager: search Avatar Graph, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/avatechai/avatar-graph-comfyui
cd avatar-graph-comfyui
python -m pip install -r requirements.txt
The pack pins bpy==3.6.0, so Python 3.10 is effectively required, and first launch downloads the ~2.5 GB SAM checkpoint plus MediaPipe landmarkers.
Common issues
The recurring skin-family gotcha: nothing happens when the selection isn't what you expect. Selection is persistent scene state in this pack, so if you ran a previous node that deselected everything, this node quietly marks nothing. Set up your selection deliberately right before the mark.
Also keep the mental model straight: root is about origin, loose (the Object Skin Loose Mark Clear node) is about ends. Marking a limb tip as a root instead of loose produces the same kind of blob-tipped limb you were trying to avoid, just with worse parenting. For the face-and-lipsync avatar crowd, this is another one you can safely skip - it lives entirely in the full-body skin-rigging lane.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |