ComfyUI Node

Save Mesh

Getting your processed mesh back out of ComfyUI

By PozzettiAndrea·Created 10 months ago·Updated 4 days ago· 218
Save Mesh
  • trimesh
  • file_path
file_pathoutput
formatobj

You've remeshed, unwrapped, or fixed a mesh inside ComfyUI and now you need it as an actual file on disk - Blender, a game engine, a 3D printer, whatever lives outside the node graph. That's Save Mesh, the pack's output side of the I/O pair. It's about as straightforward as nodes get, but the details are worth knowing because they're where people trip.

Three inputs, and only one of them is a decision:

  • trimesh - the mesh to save. Wire in whatever your pipeline produced.
  • file_path - output filename without extension, or a path. The default is literally output. Give it a real name.
  • format - the format dropdown: OBJ, PLY, STL, FBX, OFF, whatever this pack's save supports. OBJ is the safe default for most uses; PLY if you're going into point-cloud or capture tools; STL if the destination is a printer.

It returns a file_path string with the final resolved location, which is nice for wiring into a Show Text / logging node if you want the workflow to tell you where things landed.

Where it fits

Save Mesh is the natural end of a GeometryPack chain - Load Mesh → repair/remesh/UV → Save Mesh. There's no real ambiguity in the node itself; the skill is in the choices around it. If you're saving for a texturing tool, OBJ (which carries UVs) beats STL (which carries nothing but geometry). If you've just unwrapped with the UV backends, make sure you save to a format that keeps UVs - that's the whole point of the unwrap step.

Install

It ships with the pack, so:

cd ComfyUI/custom_nodes
git clone https://github.com/PozzettiAndrea/ComfyUI-GeometryPack.git
cd ComfyUI-GeometryPack
pip install -r requirements.txt --upgrade
python install.py

Or ComfyUI Manager → search GeometryPack. Standard pack caveats: the install is the experimental comfy-env/pixi route with a big first-run download, and it's a fast-moving repo - if save behavior changes between versions, that's the cadence, and the author takes reports in GitHub Discussions.

The traps

Two classic misses. First, forgetting the extension: file_path expects no extension because the format dropdown supplies it - put my_mesh.obj in the filename box and you can end up with my_mesh.obj.obj weirdness. Second, assuming everything is round-trippable: if you loaded an STL, fixed it, and save as OBJ, you're fine; but a format change can drop data (FBX ↔ OBJ are not always faithful with materials). And one worth remembering: the pack's mesh type is TRIMESH - save what you meant to save, because a preview node won't save your file for you. When in doubt, save the OBJ and check it in a proper viewer.

Categorygeompack/io

Inputs (3)

NameTypeDefaultDescription
trimeshTRIMESH
file_pathSTRINGoutputOutput filename (without extension) or path
formatCOMBOobjOutput file format

Outputs (1)

NameTypeDescription
file_pathSTRING