Mesh Uvs Rotate
Fixing a texture that landed sideways on one face
- BPY_OBJ
- BPY_OBJ
Sitting right next to Mesh_UvsReverse in this pack's node list, Mesh_UvsRotate solves a related but different problem: not a mirrored texture, but a rotated one. If a face's texture looks correct but turned 90 degrees, this is the node, not a full re-unwrap.
What it is and why you'd reach for it
It's a direct wrap of Blender's bpy.ops.mesh.uvs_rotate(). Avatar Graph runs actual Blender via the bpy package inside ComfyUI, and this node - like most of the Mesh_* family - is a thin passthrough to that operator: it rotates the UV coordinates of each selected face by one step around its corners, in place, without touching the underlying 3D geometry.
Where you'd hit this: Avatar Graph auto-unwraps the character mesh with Plane Texture Unwrap, which does a UV cube project scaled to the mesh's bounds. Cube projection is fast but not always oriented the way you'd hand-unwrap it, and it's common for one or two faces to come out with their UV corners rotated relative to their neighbors - visible as a texture detail that's correct in shape but pointing the wrong way on just that face. This node nudges it back into alignment without redoing the unwrap.
Inputs and outputs that matter
BPY_OBJ(optional) - the mesh coming in.use_ccw(bool, default False) - which direction the rotation steps: clockwise by default, counter-clockwise when enabled. If the first click rotates the wrong way, flip this rather than running the node repeatedly to cycle back around.
Output: a single BPY_OBJ, selected faces' UVs rotated one step.
As with the rest of the Mesh_* nodes here, it only acts on whatever is currently selected on the mesh - the selection has to come from somewhere upstream in the graph.
Installing Avatar Graph
bpy, the library this whole pack runs on, only has wheels for Python 3.10.x - get that right before anything else.
ComfyUI Manager: search avatar-graph-comfyui, install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/avatechai/avatar-graph-comfyui.git
cd avatar-graph-comfyui
python -m pip install -r requirements.txt
Restart with python main.py --enable-cors-header (--force-fp16 too on Mac). Windows has a prebuilt Python 3.10 environment linked from the README specifically to avoid the pip version fight; macOS/Linux is pointed at a dedicated conda create --name comfyui python=3.10.
Common issues
Nothing rotates. Almost always a selection problem - the face this node is supposed to act on isn't actually selected coming out of whatever node runs before it. Trace the selection back through the graph.
Rotated the wrong direction, or too far. Each run is one 90-degree-equivalent step, and there's no "rotate by N" input - just use_ccw to pick direction. If you overshoot, running it again in the opposite direction gets you back, since it's stepping around a quad's four corners.
Nodes not showing up at all. Check your Python version is 3.10.x. bpy fails to import outside that, and this entire pack silently won't register in ComfyUI.
No live preview panel. Needs --enable-cors-header at launch. Without it the graph still runs fine end-to-end; export via right-click → Save File on Avatar Main Output instead of relying on the live editor.avatech.ai view.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — | |
| use_ccwopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |