Nodes/ComfyUI-UltraShape1/UltraShape Save Mesh
ComfyUI Node

UltraShape Save Mesh

Save any TRIMESH — including your refined one

By jtydhr88·Created 8 months ago·Updated 6 months ago· 183
UltraShape Save Mesh
  • mesh
  • file_path
output_dirultrashape_output
filename_prefixmesh
file_formatglb

UltraShape Save GLB/OBJ is the pack's original save node, but it's picky - it only accepts the pack's own ULTRASHAPE_OUTPUT type. This is the sibling that accepts TRIMESH instead, and it's the more flexible of the two: anything that can be expressed as a TRIMESH socket can be saved by it.

That includes your refined mesh - you just route it through UltraShape Output To Trimesh first. But it also includes meshes that never touched UltraShape at all: a Trellis2 output, a mesh loaded with UltraShape Load Mesh, anything in the TRIMESH ecosystem. If you're running a mixed graph where Trellis2 nodes do some of the work and you want a single consistent save pattern, this is the node that fits.

What you set

  • mesh - any TRIMESH socket. Required.
  • output_dir - subfolder of output/, default ultrashape_output, auto-created.
  • filename_prefix - default mesh. Timestamp + random suffix (mesh_20260825_120000_ab12cd34.glb), so no two runs collide.
  • file_format - glb, obj, ply, stl, default glb. Same coverage as its sibling: engines/Blender get GLB or OBJ, printers get STL, PLY for the raw interchange.

It writes to ComfyUI/output/ultrashape_output/ and returns a file_path string relative to output/. The export is a straight trimesh write - no resampling, no re-topology, no texturing.

Choosing between the two savers

If your graph is pure UltraShape - Refine straight to disk - use UltraShape Save GLB/OBJ and skip a node. The moment you're mixing in the TRIMESH world (Trellis2 texture passes, Load Mesh, second refinement loops), this one is the better landing pad, because it doesn't care where the mesh came from. The Output To TrimeshSave Mesh chain is the canonical way to persist a refined-and-then-touched mesh.

Install is the same pack story:

cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyUI-UltraShape1
cd ComfyUI-UltraShape1
pip install -r requirements.txt

Restart; ComfyUI Manager installs it as ComfyUI-UltraShape1. No model weights needed to save, though upstream nodes will want ultrashape_v1.pt in ComfyUI/models/UltraShape/. And the usual reminder applies: it writes geometry only, so a TRIMESH carrying textures will save fine, but a raw refined mesh won't grow a skin on its way to disk - run that texturing pass first.

CategoryUltraShape

Inputs (4)

NameTypeDefaultDescription
meshTRIMESH
output_diroptSTRINGultrashape_output
filename_prefixoptSTRINGmesh
file_formatoptCOMBOglb4 options: glb, obj, ply, stl

Outputs (1)

NameTypeDescription
file_pathSTRING