ComfyUI Node

Mesh_Data_Get

Open the mesh hood and pull out every raw array it's hiding

By 807502278·Created 2 years ago·Updated 2 years ago· 23
Mesh_Data_Get
  • mesh
  • mesh
  • vertex
  • face
  • Normal_vnfn
  • UVs_vtft
  • vertex_color
  • Texture_Diffuse
  • Texture_reflection

If a mesh is a box of parts, Mesh_Data_Get is the node that opens the box and lays every part on the table. It takes a MESH and splits it into its raw data: vertices, faces, normals, UVs, vertex colors, and the two textures. It also passes the original mesh through untouched, so you can keep the full object flowing downstream while you poke at its internals.

This is the "deconstruct" half of the pack's data story. Its mirror image is Mesh_Data_Set, which takes these same raw pieces and rebuilds a mesh from them. Between the two, you can read a mesh's guts, edit them as plain tensors/lists with the pack's array tools, and write them back - a round-trip that's genuinely useful when you want to transform vertices or fix UVs by hand.

What comes out

  • mesh (MESH) - the original, unchanged
  • vertex (LIST) - vertex positions, [N, 3]
  • face (LIST) - triangle indices, [M, 3]
  • Normal_vnfn (LIST) - a two-element list: vertex normals and face-normal indices
  • UVs_vtft (LIST) - a two-element list: UV coordinates and the UV face indices
  • vertex_color (LIST) - per-vertex colors, [N, 3]
  • Texture_Diffuse (IMAGE) - the albedo/diffuse texture
  • Texture_reflection (IMAGE) - the metallic-roughness texture

The pattern for the normal and UV outputs is worth internalizing: the author packs them as [data, indices] pairs, so when you feed them back into Mesh_Data_Set you hand the whole pair over, not the pieces.

When you'd use it

  • You want to inspect what a mesh actually carries before running something that depends on it.
  • You need to hand-edit vertices or UVs - grab the list, run it through List_to_Tensor, edit, and rebuild.
  • You're building a pipeline that needs vertex positions and face indices as separate streams (e.g., feeding raw geometry to a custom renderer).

Install

It's part of ComfyUI-3D-MeshTool, so:

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

Restart ComfyUI. Or via ComfyUI Manager, search "ComfyUI-3D-MeshTool".

Notes

Outputs that don't exist on the mesh come back as None - there's no error, no placeholder, just None on the wire. That's not a crash; it's the mesh telling you it has no normals or UVs. Check Mesh_Data_Statistics first if you want a clean summary of what's present before you start wiring these streams. And remember the mesh itself is still in the output, so you don't need to re-load anything if you decide to drop the raw data and just use the original.

Category3D_MeshTool/Basics

Inputs (1)

NameTypeDefaultDescription
meshMESH

Outputs (8)

NameTypeDescription
meshMESH
vertexLIST
faceLIST
Normal_vnfnLIST
UVs_vtftLIST
vertex_colorLIST
Texture_DiffuseIMAGE
Texture_reflectionIMAGE