UltraShape Convert To GLB/OBJ
Preview your refined mesh without writing a file
- refined_mesh
- mesh
Everything UltraShape does is expensive - a refine run is minutes of diffusion - so you want to look at the result before you commit to saving a file. That's this node's job: it takes the refined_mesh from UltraShape Refine and hands it to ComfyUI as a FILE_3D, which is the socket type ComfyUI's built-in 3D viewport nodes (Load3D, Preview3D) speak. No disk write, no file to go hunting for - the mesh materializes in the graph's 3D viewer where you can orbit it.
It's the iteration loop node. Run a refine, preview it, tweak octree_resolution or guidance_scale or the seed, run again, preview again - all without generating a folder full of throwaway .glb files. When you've got the geometry you want, swap in UltraShape Save GLB/OBJ for the real export.
What it takes, what it gives
refined_mesh- theULTRASHAPE_OUTPUTfrom UltraShape Refine. Required.file_format-glb(default),obj, orstl. Note the trimmer list: no PLY here, unlike the save nodes. Probably a deliberate simplification; for preview purposes nobody misses it.mesh(output,FILE_3D) - the exported mesh, streamed into memory and handed to whatever 3D node you connect.
Under the hood it exports the mesh into an in-memory buffer (so nothing touches disk) and returns it as a FILE_3D object. Simple, and fast enough that the conversion itself is invisible next to the minutes the Refine node took.
Wiring and install
Connect refined_mesh from Refine in, mesh out to ComfyUI's built-in 3D preview node of choice. The pack's own example workflow uses the core Load3D / Preview3D nodes for display, and that's the natural pairing here. Because it's a conversion rather than a saver, this node is also the least-fussy way to get your refined geometry into anything else that consumes FILE_3D.
Install is the pack standard:
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 weights needed for conversion itself, though the upstream Refine node wants ultrashape_v1.pt in ComfyUI/models/UltraShape/. Two minor notes: the output is a preview-grade handoff, so don't treat it as your deliverable - when a run looks right, save it properly with the GLB/OBJ save node. And it's geometry only, same as everything in this pack: bare mesh, no textures, which is exactly what the refiner produced and what you should expect to see in the viewport.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| refined_mesh | ULTRASHAPE_OUTPUT | — | |
| file_format | COMBO | glb | 3 options: glb, obj, stl |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| mesh | FILE_3D | — |