Koala Save 3D Mesh Anywhere
Give that generated mesh a real home — Koala Save 3D Mesh Anywhere
- trimesh
- file_path
ComfyUI got into 3D the messy way: image-to-mesh nodes appeared as separate packs, each with its own way of dumping files, and half of them save into hardcoded temp locations you have to go hunting for. Koala Save 3D Mesh Anywhere cuts through that. It takes a mesh from whatever node produced it and writes it to any directory you choose, in six common formats: glb, obj, ply, stl, 3mf, or dae. If you've generated a mesh and want to actually get it out of ComfyUI in one piece, this is the output node for the job.
Where the mesh comes from
This node doesn't generate anything - it's the tail end of a pipeline. Its input type is TRIMESH, the mesh object produced by image-to-3D nodes like the TripoSR-based packs, ComfyUI-3D, or MoGe wrappers that turn a depth point map into actual geometry. The standard route is: generate a base shape with TripoSR or a multi-view model, then use this to export what you got. Depth-estimation pipelines feed the same space - a depth map becomes a height field, and that height field exports as an STL ready for a 3D printer.
How it works
Under the hood it's a thin wrapper around trimesh.export(). It creates the target directory if it doesn't exist, strips any extension from your filename, appends the format you picked, and writes the file. It returns the full saved path as a file_path string.
The inputs that matter
trimesh: the mesh object from your generator. This is the whole point - wire your TripoSR/MoGe output here.save_directory: absolute folder. Default isC:/output, a Windows path. On Linux or macOS that default creates a literalC:directory in your ComfyUI working folder, so set a real absolute path.filename: base name (defaultmodel); any extension you type gets stripped.file_format: the one that decides everything downstream.glbfor web/three.js,objorplyfor general interchange,stlor3mffor 3D printing,daefor game-engine import and Blender.
One output: file_path, where the mesh actually landed.
Install and dependencies
The pack's requirements.txt lists trimesh, which is the library that reads and writes these mesh formats. If you already run a mesh-generating node, trimesh is probably installed - this save node doesn't even import it at module load, it just calls .export() on the mesh object you feed it. If you get an import error, fix it directly:
pip install trimesh
For the node itself, the README says ComfyUI Manager support is "coming soon," so clone it manually and restart:
cd ComfyUI/custom_nodes
git clone https://github.com/cloudkoala/comfyui-koala.git
You'll find "Koala Save 3D Mesh Anywhere" under the Koala category, alongside the pack's aspect-ratio and image-save nodes.
Things to watch
If the TRIMESH input type doesn't appear in the node list at all, it's because you don't have a mesh-producing pack installed - the type has to come from somewhere. And remember the mesh itself is only as good as its source: a quick TripoSR output is a base shape, not a finished model, so expect to do cleanup in a proper tool before it's usable. The Windows-path default is the same trap as in the image-save sibling, and the "anything anywhere" pattern is one the community warns can make workflows hard to follow - use it where you need a file in a specific place, not as a habit.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| trimesh | TRIMESH | — | |
| save_directory | STRING | C:/output | — |
| filename | STRING | model | — |
| file_format | COMBO | 6 options: glb, obj, ply, stl, 3mf, dae |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| file_path | STRING | — |