Nodes/ComfyUI-3D-MeshTool/Mesh_Clean_Data
ComfyUI Node

Mesh_Clean_Data

Don't confuse this with Mesh Cleanup — this one strips data, not geometry

By 807502278·Created 2 years ago·Updated 2 years ago· 23
Mesh_Clean_Data
  • mesh
  • mesh
normalfalse
uvfalse
v_colorfalse
texture_diffusefalse
texture_reflectionfalse

The name is a trap. Mesh_Clean_Data (from ComfyUI-3D-MeshTool) doesn't remove debris, weld vertices, or repair geometry - that's Mesh_Cleanup, a different node in the same pack. This one strips data channels off a mesh: normals, UVs, vertex colors, and textures. The geometry stays exactly as it was.

You reach for it when a downstream node chokes on mesh data. Some tools in the ComfyUI 3D ecosystem assume a mesh is "pure" - vertices and faces only - and error out or misbehave when they meet UVs or textures they weren't expecting. Other times you just want a smaller mesh object and don't care about the extras. This is the "give me only the geometry, please" switch.

How it works

You pass a MESH plus five booleans, each defaulting to off:

  • normal - drop vertex/face normals (vn, fn)
  • uv - drop UV coordinates (vt, ft)
  • v_color - drop vertex colors (vc)
  • texture_diffuse - drop the albedo/diffuse texture
  • texture_reflection - drop the metallic-roughness texture

Under the hood it's embarrassingly simple: each toggle sets the corresponding attribute to None on the mesh object and passes the mesh through. That's the whole mechanism - which is why the toggles are conservative. Everything defaults off, so the node is a no-op until you deliberately switch a channel off. No destructive surprise, no undo needed.

When you'd actually use it

  • Your mesh came from Load_OBJ with auto-computed normals, and you want to test whether those normals are what's breaking a downstream normal-requiring node.
  • You're about to run a pipeline that re-derives everything (like UnwrapUV_xatlas, which generates fresh UVs anyway) and you want a clean slate.
  • You're debugging a "texture won't apply" problem and want to isolate whether the existing UVs/textures are the culprit.

The paired node is Mesh_Data_Get, which shows you what's actually present; Mesh_Data_Statistics tells you which channels exist. Use those to decide what to strip.

Output

  • mesh (MESH) - same geometry, minus whatever you toggled off.

Install

It's part of the pack, so one install gets it:

cd ComfyUI/custom_nodes
git clone https://github.com/807502278/ComfyUI-3D-MeshTool
cd ComfyUI-3D-MeshTool
pip install -r requirements.txt

Restart ComfyUI afterward (or install via ComfyUI Manager, search "ComfyUI-3D-MeshTool").

Common issues

Because the node never raises, the classic failure is "I stripped normals and now everything looks black" - that's not a bug, that's the mesh being honest that it has no normals left. Re-enable or re-run a normal computation (the pack's Auto_Normal node exists for exactly this). And keep the two "clean" nodes straight in your head: Mesh_Clean_Data strips channels, Mesh_Cleanup removes debris - wiring the wrong one into an optimization chain is a surprisingly common mix-up.

Category3D_MeshTool/Basics

Inputs (6)

NameTypeDefaultDescription
meshMESH
normalBOOLEANfalse
uvBOOLEANfalse
v_colorBOOLEANfalse
texture_diffuseBOOLEANfalse
texture_reflectionBOOLEANfalse

Outputs (1)

NameTypeDescription
meshMESH