Mesh_Clean_Data
Don't confuse this with Mesh Cleanup — this one strips data, not geometry
- mesh
- mesh
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 texturetexture_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.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| mesh | MESH | — | |
| normal | BOOLEAN | false | — |
| uv | BOOLEAN | false | — |
| v_color | BOOLEAN | false | — |
| texture_diffuse | BOOLEAN | false | — |
| texture_reflection | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| mesh | MESH | — |