Hi3D · 上传粗模
Hi3D Load Mesh is just a file picker — and it's where your refinement quietly dies
- mesh
Every image-to-3D graph on this site ends the same way: a mesh lands in output/ and you realise the topology is triangle soup. Hi3D is the one tool in the stack built to attack that second half - you hand it a reference image plus a coarse version of the same object and it re-samples the geometry at higher resolution with real detail.
Hi3D Load Mesh (display name is Hi3D · 上传粗模, class Hi3DLoadMesh) is the front half of that: the coarse mesh. One input, one output, no weights, nothing downloaded. It's also the node that eats most of the support traffic in this pack, because a bad input mesh gives you a beautiful, detailed, wrong object and no error message at all.
What it actually is
The node is a file picker that turns a GLB, PLY or STL from ComfyUI/input/ into ComfyUI's native MESH socket type. That's it. It's the counterpart to the Load Image node sitting to its left in the pack's canvas workflow - Hi3D refines the same object seen in the image, so it needs both halves: the picture tells it what the surface should look like, the mesh tells it where to look.
Where does the coarse mesh come from? Not from this pack - not in ComfyUI, anyway. The standalone T8star workbench generates an initial mesh from one image, but the three ComfyUI nodes deliberately stop at refinement. In practice you feed this node something from elsewhere: an export from Kijai's Hunyuan3D wrapper or ComfyUI-3D-Pack, a SaveGLB output from another graph, a scan, or a Blender blockout. Our 3D generation guide explains the split - generation is the install-fragile half of this ecosystem, and this pack wants nothing to do with it.
The one input
mesh_file is the only required field: an enum that lists files, with the least helpful default in ComfyUI - the literal string 请先上传粗模 ("upload a coarse mesh first") when the list is empty. The tooltip tells you the intended flow: click the upload button, or drag a GLB / PLY / STL straight onto the node, and the file gets copied into ComfyUI/input/hi3d.
Behind that dropdown the code enumerates every file under ComfyUI/input recursively with a .glb, .ply, .stl or .npz extension - so if you've been dumping meshes into your input folder for months, your dropdown is that entire pile. Nothing is filtered by folder. Drag-and-drop auto-selects the file you just dropped, which is the sane path.
The output is a single mesh pin of type MESH, and it goes to Hi3DRefine.mesh. You can also wire it into ComfyUI's native Preview3D or SaveGLB if you just want to look at what you loaded - worth doing once, because seeing your input before refining is how you learn whether the problem downstream is the mesh or the model.
How to install it
Same pack, same steps, no separate downloads for this node:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-Hi3d-T8
cd Comfyui-Hi3d-T8
# use ComfyUI's own python, not your system one
../../../python_embeded/python.exe -m pip install -r requirements.txt # Windows portable
# or, for a venv install: pip install -r requirements.txt
Then restart ComfyUI. If you'd rather not touch a terminal, search Hi3D T8 in ComfyUI-Manager (node ID hi3d-t8, publisher t8star).
Fair warning about that requirements.txt: it pins spconv-cu126==2.3.8 and pulls Triton. This node only needs trimesh, but imports happen at pack level, so a broken spconv can keep the whole pack from registering. The pack also declares ComfyUI >= 0.34.0, since the MESH type it emits comes from the newer comfy_api geometry types. Weights aren't needed to load a mesh - only when you connect Hi3DRefine.
Where people get burned
Your materials and UVs are gone. The loader calls trimesh with skip_materials=True and keeps geometry only. A textured GLB loads as raw triangles. For Hi3D that's correct - the refinement step rebuilds topology and never preserves UVs or materials anyway - but don't expect the paint job to survive the round trip.
A multi-part GLB becomes one lump. If the file contains a scene rather than a single mesh, the node concatenates it into a single geometry. Hi3D only ever sees one object, and it will refine your careful three-part arrangement as one fused blob. Split it in Blender first.
The dropdown is empty and you're staring at Chinese placeholder text. That just means there is no .glb/.ply/.stl/.npz anywhere under ComfyUI/input. Drag the file onto the node instead of copying it somewhere clever.
Degenerate meshes get rejected. A mesh whose bounding box has zero extent in every axis throws a "mesh size is invalid" error, and a file with no triangles in it gets "the file must contain a triangle mesh" - that's usually a point cloud, a lines-only file, or an export that silently wrote nothing.
One genuinely nice detail: the node fingerprints the file by size and modification time, so replacing coarse.glb with a fixed version re-triggers the graph instead of serving you ComfyUI's cache of the old one. Small thing. It saves an hour the first time you hit it.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| mesh_file | COMBO | 点击上传粗模按钮或把 GLB / PLY / STL 文件拖到节点;文件保存在 ComfyUI/input/hi3d。 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| mesh | MESH | — |