Nodes/Avatar Graph/UV Modifier
ComfyUI Node

UV Modifier

Stop your texture bleeding across UDIM tiles

By avatechai·Created 3 years ago·Updated 2 years ago· 264
UV Modifier
  • BPY_OBJ
  • BPY_OBJ
scale1.00
texture_nameTexture

This is the one node in this batch that's not auto-generated - the Avatar Graph authors wrote Object_UV_Modifier by hand, which tells you it actually does something specific for their pipeline. Its display name is just "UV Modifier," and its job is fixing a texture artifact that shows up the moment your character's UVs cross a UDIM tile boundary.

UDIM is Blender's tiling-texture system: instead of one 0–1 UV square, you get a grid of tiles, and each tile gets its own texture. The problem is the seam. When a mesh's UVs run right up against the edge of a tile - exactly at V = 1.0 - the texture sampling bleeds into the neighboring tile, and you get a line of garbage where the two textures meet. This node walks every face loop of your mesh and nudges any UV sitting at V = 1.0 down to 0.998, so the sample stays safely inside its own tile.

Mechanically it's a small bmesh edit-mode pass: the node enters edit mode (it's built on the pack's EditOps base), verifies a UV layer exists, adjusts the offending loops, and exits. If you've ever hand-fixed UV seams by dragging a few vertices in the UV editor, this is that fix automated.

The declared inputs are BPY_OBJ (the mesh), scale (float, default 1), and texture_name (string, default "Texture"). Honest note: in the current source, the adjustment logic uses only the object - scale and texture_name are exposed on the node but the shipped code doesn't branch on them. Don't expect changing scale to rescale anything; treat this node as "nudge the seam off the UDIM boundary." Output is your BPY_OBJ back out, seam-fixed.

You'll want this at the end of a mesh-construction chain, right where the README's workflow puts it: the pack builds meshes as 1:1 planes, unwraps them, and textures them, and that's exactly where V = 1.0 seams appear. If you're not using UDIM tiles - if your avatar is one flat 0–1 texture - this node is a harmless no-op for your case.

Install is pack-wide: ComfyUI Manager → "Avatar Graph", or clone avatechai/avatar-graph-comfyui into ComfyUI/custom_nodes and pip install -r requirements.txt (Python 3.10 for bpy==3.6.0). First startup pulls the ~2.4 GB SAM model.

Troubleshooting: if a seam artifact persists, check that this node runs after your texture assignment and UV unwrap steps - order matters, and the scene resets each run so it re-runs every time. And since the node's own inputs overpromise a little, don't fight it; if you need real UV rescaling you're looking at the wrong node in this pack.

Categoryblender

Inputs (3)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ
scaleoptFLOAT1.00
texture_nameoptSTRINGTexture

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ