Nodes/Avatar Graph/Mesh Dissolve Faces
ComfyUI Node

Mesh Dissolve Faces

Merging selected faces without deleting geometry in Avatar Graph

By avatechai·Created 3 years ago·Updated 2 years ago· 264
Mesh Dissolve Faces
  • BPY_OBJ
  • BPY_OBJ
use_vertsfalse

Meshes that come out of a generation or remesh step in Avatar Graph's pipeline tend to be over-tessellated in places - lots of small faces where a handful of bigger ones would do. Mesh Dissolve Faces cleans that up without punching holes in the mesh: it takes the selected faces and merges them into fewer, larger faces by removing the internal edges between them, keeping the outer boundary intact.

How it works

This wraps Blender's mesh.dissolve_faces operator. The key distinction from something like a delete-faces operation is that dissolve doesn't remove geometry from the shape - it removes the edges between selected faces so they combine into one bigger face, leaving the overall silhouette unchanged. It only acts on whatever's currently selected, so a selection step needs to run before it in your graph for it to have a meaningful effect.

The inputs and outputs that matter

  • BPY_OBJ - the mesh with faces selected.
  • use_verts (default false) - when enabled, also dissolves any vertices left over from the operation that are no longer doing useful topological work (typically ones that end up with only two edges connected). Turning this on generally gives cleaner resulting topology; leaving it off is more conservative about what gets touched.

Output is a single BPY_OBJ, the same mesh with the selected faces merged.

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 nothing changes, the almost-certain cause is an empty or unexpected selection going in - this node only dissolves what's selected, so if a selection node upstream (something like Mesh Edges Select Sharp or a face-based equivalent) didn't run, ran on the wrong object, or selected nothing, there's nothing for this node to merge. Trace your selection state back through the graph before assuming the node itself is broken.

If the result leaves behind stray, low-value vertices sitting in the middle of what should now be one clean face, that's what use_verts is for - it's off by default, so if you're chaining this into further mesh edits and want tidier topology going forward, turn it on. And if you were expecting geometry to actually disappear rather than just simplify, that's the difference between dissolve and delete: dissolve preserves the mesh's outer shape, it just reduces how many faces make it up.

Worth using deliberately rather than reflexively as a "clean everything up" step: because it only removes internal edges between selected faces, running it on a selection that spans a large, complex area can produce a single, badly non-planar face if the underlying geometry wasn't flat to begin with - a big dissolved face across a curved region can end up looking worse, not better, than the smaller faces it replaced. It's a better fit for genuinely flat or near-flat regions with excess subdivision than as a blanket simplification pass across curved parts of a generated mesh.

Categoryblender

Inputs (2)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ
use_vertsoptBOOLEANfalse

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ