Auto_Normal
The node that fixes the 'flat shading' disaster
- mesh
- mesh
Load a mesh, and it can look terrible - flat-shaded, faceted, like a low-poly relic. Nine times out of ten that's not the geometry, it's the normals: missing, zeroed, or stale vertex normals that make lighting treat every triangle as a separate surface. Auto Normal recomputes proper vertex normals from the actual geometry, which is the fastest fix for "why does my model look like a diamond".
The mechanism is the classic one, and it's worth knowing because it tells you when to trust it. For each face it takes the cross product of two edges - the standard normal computation - then it splats those face normals back onto the vertices they touch, summing them up, and finally normalizes each vertex normal. The result is smooth, per-vertex shading across the whole surface. There's also a neat safety valve: any vertex whose normal comes out as zero (a degenerate or collapsed triangle) gets defaulted to [0, 0, 1], pointing up the Z axis, rather than leaving a hole in the lighting.
The single input is mesh (a MESH), and the single output is mesh again, with the computed normals written in. It's a pass-through-and-fix node, so you can drop it anywhere in a mesh chain and keep wiring downstream.
Where this becomes essential: right after this pack's own optimization nodes. Mesh Optimization and Mesh Cleanup deliberately wipe normals, UVs, and vertex color when they add or remove geometry (they clear mismatched data so nothing points at the wrong vertex), which means a decimated mesh always needs its normals rebuilt. The canonical pipeline is: load → optimize → Auto Normal → preview or export. If you skip the middle step, you get the flat-shaded mess this node exists to fix.
It's a fast, pure-torch operation - no extra dependencies, no models, nothing to download - which is the pleasant surprise in a 3D pack full of heavy libraries. It's part of 807502278/ComfyUI-3D-MeshTool, a one-author utility pack whose MESH type comes from ComfyUI-3D-Pack (keep that installed for sockets to resolve).
Install via ComfyUI Manager (search "ComfyUI-3D-MeshTool") and restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/807502278/ComfyUI-3D-MeshTool
cd ComfyUI-3D-MeshTool
pip install -r requirements.txt # kiui, xatlas, pyfqmr, plyfile
The pack's standing quirk: the author renames nodes between releases and old instances turn red in saved workflows - recreate and reconnect. And if a mesh still looks faceted after Auto Normal, check whether it's the UVs, not the normals - this node fixes lighting, not seams.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| mesh | MESH | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| mesh | MESH | — |