UV Copy
Keeping textures aligned after you duplicate or join meshes in Avatar Graph
- BPY_OBJ
- BPY_OBJ
Avatar Graph's mesh pipeline does a lot of duplicating, joining, and remeshing on the way to a rigged avatar - and every one of those operations risks scrambling a mesh's UV map, which is the thing that tells a texture image which pixel goes on which triangle. Mess up the UVs and your carefully cut-out character texture ends up smeared across the wrong faces. UV Copy exists to fix that: it copies UV coordinates from one mesh onto another so a texture that was mapped correctly stays mapped correctly after a mesh gets manipulated.
How it works
This wraps Blender's own UV-copy operator, which works within the active mesh context rather than taking two separate object inputs - the way you'd use it in Blender is to select a source and target (or source faces and target faces) and run the copy, and this node captures that same operation as a ComfyUI step. In the pack's typical use, this comes up right after operations like Object Data Transfer or a Join Meshes step (mentioned in the README's node table) where you've combined or rebuilt geometry and need the texture mapping to survive the transformation intact, rather than re-unwrapping from scratch.
The inputs and outputs that matter
There's exactly one input, and it's the whole node:
BPY_OBJ- the object whose UVs you're operating on. Chain this in right after whatever mesh operation you're trying to protect the UVs through.
Output is a single BPY_OBJ, the same object passed along so you can keep building the chain - a texture-bake step, a save, or the next mesh operation.
How to install it
Same as every node in this pack: 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. It's a bpy-backed node, which means the pack's Python 3.10.x pin applies - Blender's Python module only ships for that exact version, so on macOS/Linux you want a dedicated conda environment rather than an existing ComfyUI install running something newer. Windows users can skip that setup entirely with Avatech's prebuilt Python-3.10 ComfyUI zip and install the pack through Manager afterward.
Common issues & troubleshooting
If the node fails to load, that's almost always the pack's bpy dependency and Python version mismatch, not this specific operator - check ComfyUI's startup log for an import failure and confirm you're actually running Python 3.10.x with a clean pip install -r requirements.txt.
Since this node has no visible parameters beyond the object it operates on, the main way it "goes wrong" in practice is being in the wrong place in the chain - run it before the mesh operation that would scramble your UVs and it does nothing useful; run it after, on the rebuilt geometry, and it does its job. If textures still look wrong downstream, check whether this node is actually positioned after the operation that changed the mesh topology, not before it.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |