Nodes/Avatar Graph/Object Face Map Move
ComfyUI Node

Object Face Map Move

Reordering face maps up or down in Avatar Graph

By avatechai·Created 3 years ago·Updated 2 years ago· 264
Object Face Map Move
  • BPY_OBJ
  • BPY_OBJ
direction

Face Maps were Blender's mechanism for grouping faces under a named label, similar in spirit to vertex groups but tracking faces instead of vertices - useful for tagging regions of a mesh (say, "left eye" vs "right eye" on a generated avatar mesh) that other tools or exports can reference by name. Object Face Map Move doesn't create or edit face maps, it just reorders them: moving the active one up or down in the object's list.

How it works

This wraps Blender's object.face_map_move operator. Like reordering vertex groups or shape keys, this changes list position, not content - the faces assigned to the map, and the map's name, stay exactly the same. What changes is where it sits relative to the object's other face maps. That matters when something downstream indexes face maps by position rather than by name, or when list order affects display priority in whatever's reading them.

The inputs and outputs that matter

  • BPY_OBJ - the object whose active face map you want to reorder.
  • direction - UP or DOWN, which way to move it one step in the list.

Output is a single BPY_OBJ, the same object with its face-map order updated.

How to install it

ComfyUI Manager, search "Avatar Graph" and install, or 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.

Common issues & troubleshooting

If the node fails to load, that's the pack's Python-version pin, not this operator - confirm a clean Python 3.10.x environment with requirements.txt installed without errors.

If moving "up" or "down" doesn't seem to do anything, check whether the object actually has more than one face map - with zero or one, there's nothing to reorder relative to. And this operator acts on the object's active face map specifically, not one you name or index directly through this node's inputs, so if the wrong map is active going in, this will reorder the wrong one; you'd need to set the active face map correctly upstream first.

Worth flagging separately: face maps are an older Blender feature that later versions of Blender removed outright in favor of the more general attribute system. If this operator errors out with something like a missing face_maps attribute rather than doing what's described here, that's a mismatch between the bpy version this pack expects and the one actually installed - not a bug in your graph.

Practically, this is a low-stakes node to get wrong - reordering doesn't lose data, so an experiment with direction that moves the wrong map is trivially reversible by running the node again with the opposite direction. If you're relying on face-map order for something that matters downstream (an export step, a name-agnostic lookup by position), it's worth double-checking the final order directly rather than assuming a chain of move operations landed exactly where you expect, since each call only shifts the active map by one position at a time.

Categoryblender

Inputs (2)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ
directionoptCOMBO2 options: UP, DOWN

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ