Load Mesh From URL
Pull a Mesh Straight From a URL
- trimesh
You generated a 3D asset. It's a .glb, it's sitting on some server, and now you have to download it, drag it into ComfyUI's input folder, and reload the graph before anything else can touch it. Hy3DLoadMeshFromURL deletes that whole ritual: give it a URL and it hands you the mesh as a TRIMESH object, live in the graph.
It's the mesh-flavoured sibling of the pack's URL image loader, and it was built for a very specific chain: Graydient's hosted ComfyUI wants to take the shape-stage GLB output of one job and feed it directly into the texture-stage mesh input of the next, with no local-file round trip. But the use case is broader than that. Any mesh you can point a URL at - glb, obj, ply, stl, 3mf, dae - becomes a graph input without ever touching your disk. No API key, nothing to configure; it's a plain download.
How it works
One HTTP GET (60-second timeout), then the format sniffing starts. The node takes the URL's file extension - query string stripped - and hands it to trimesh.load as the file type, defaulting to glb when there's no extension. The force="mesh" flag means a scene file gets merged down to a single mesh rather than a bundle of sub-objects, which is what you want for everything downstream in this pipeline.
The input is a single url STRING. The output is trimesh of type TRIMESH, the socket type this whole pack defines and shares across its mesh nodes. Wire it into Hy3DUVUnwrapMesh to get a single-chart xatlas unwrap, then Hy3DSaveTrimesh to export - or into anything else that consumes TRIMESH.
Worth saying in context: Hunyuan3D's meshes are famous for impressive surfaces and terrible underlying topology, with machine-made UVs (that's the honest community verdict, not a dig). The real value of the mesh half of this pack is exactly that tail - convert the native MESH output to trimesh, unwrap it properly, export it texture-ready. This node is just the way to start that tail from a URL instead of a local file.
Install
Same shared route as the rest of the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/UnlimitedEditing/ComfyUI-Hunyuan3D
or search "ComfyUI-Hunyuan3D" in ComfyUI Manager. Restart after. Requirements are trimesh, xatlas, and requests. No Hunyuan3D model weights needed just to load a mesh.
Where people get burned
- The node isn't in your menu. The mesh nodes - this one included - only register when both
trimeshis installed and your ComfyUI ships the native Hunyuan3D nodes (comfy_extras.nodes_hunyuan3d). On an older ComfyUI it's not missing, it's invisible. Update ComfyUI, then check the console for the pack'smesh deps unavailableline. - The format comes from the URL, not the file. A signed URL with no
.glbsuffix defaults toglb, and if the bytes are actually an OBJ, the parse fails. If you're generating presigned links, keep the extension. - Dead links are loud: HTTP errors raise rather than silently returning nothing, which is a feature - you'll know exactly which URL failed.
It's a small node with a narrow job, and it does that job cleanly. If your meshes already live on the web, it's the difference between a manual download and a graph that just works.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| url | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| trimesh | TRIMESH | — |