Nodes/Avatar Graph/Object Quadriflow Remesh
ComfyUI Node

Object Quadriflow Remesh

Clean quad topology for Avatar Graph meshes

By avatechai·Created 3 years ago·Updated 2 years ago· 264
Object Quadriflow Remesh
  • BPY_OBJ
  • BPY_OBJ
use_mesh_symmetrytrue
use_preserve_sharpfalse
use_preserve_boundaryfalse
preserve_paint_maskfalse
smooth_normalsfalse
mode
target_ratio1.00
target_edge_length0.10
target_faces4000
mesh_area-1.00
seed0

This is the pack's second remesh option, and it exists for a different reason than Object Voxel Remesh. Voxel remeshing gives you a clean, uniformly-dense surface fast, but it doesn't care about producing nice, animation-friendly geometry - it just fills space. Object Quadriflow Remesh does the opposite trade: it's slower and more deliberate, but it rebuilds the mesh into clean quad-based topology, the kind that deforms predictably under shape keys and rigging rather than fighting you the way dense triangle soup does.

How it works

It's a direct wrap of Blender's Quadriflow Remesh operator. Where voxel remeshing is governed by a single voxel-size setting, quadriflow gives you an explicit target for how dense the result should be, specified one of three ways depending on mode: as a ratio of the current face count, as a target edge length, or as a straight target face count. Because it's solving for genuinely quad-aligned flow across the surface (not just filling a grid), it's more computationally expensive than voxel remesh and can take noticeably longer on complex geometry - worth knowing before you drop it into a graph you're iterating on quickly.

The inputs and outputs that matter

  • BPY_OBJ - the object to remesh.
  • mode - RATIO, EDGE, or FACES. This decides which of the three target settings below actually applies.
  • target_ratio (default 1), target_edge_length (default 0.1), target_faces (default 4000) - only one of these matters at a time, depending on mode. target_faces is the most intuitive starting point if you just want "roughly this many faces" without thinking in ratios or edge lengths.
  • use_mesh_symmetry (default true) - preserves left/right symmetry in the result, which matters a lot for a character face or avatar part where an asymmetric remesh would look obviously wrong.
  • use_preserve_sharp and use_preserve_boundary - keep hard edges and mesh boundaries intact through the remesh rather than letting them get smoothed away, useful if your mesh has deliberate hard edges (like the border of a cut-out layer).

Output is a single BPY_OBJ, the remeshed object with clean quad topology.

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 won't load, that's the pack's Python-version pin - check ComfyUI's startup console for an import error and confirm a clean Python 3.10.x environment with requirements.txt installed.

If the remesh is much slower than you expected (or seems to hang), that's consistent with quadriflow's own known trade-off, not a bug specific to this node - it's a genuinely more expensive algorithm than voxel remeshing, and a high target_faces count on complex input geometry can take a while. If you're iterating quickly on a graph and don't need clean quads yet, Object Voxel Remesh is the faster node to prototype with; switch to this one once you're closer to a final mesh.

Categoryblender

Inputs (12)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ
use_mesh_symmetryoptBOOLEANtrue
use_preserve_sharpoptBOOLEANfalse
use_preserve_boundaryoptBOOLEANfalse
preserve_paint_maskoptBOOLEANfalse
smooth_normalsoptBOOLEANfalse
modeoptCOMBO3 options: RATIO, EDGE, FACES
target_ratiooptFLOAT1.000–3.402823466385289e+38
target_edge_lengthoptFLOAT0.101.000000011686097e-7–3.402823466385289e+38
target_facesoptINT40001–2147483647
mesh_areaoptFLOAT-1.00-3.402823466385289e+38–3.402823466385289e+38
seedoptINT00–2147483647

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ