ComfyUI Node

Hy3D Load Mesh

Start from an existing GLB instead of generating from scratch

By kijai·Created 2 years ago·Updated 5 months ago· 1,033
Hy3D Load Mesh
    • trimesh
    glb_path

    Not every workflow in this pack starts with an image. Hy3DLoadMesh is the front door for the other half: you've already got a mesh - downloaded, exported from Blender, baked from an earlier run - and you want to run it through the pack's texturing, remeshing, or export pipeline. It loads a .glb from disk into a trimesh and hands it to the rest of the graph.

    The node is aggressively simple. One input, glb_path (a STRING), which can be:

    • An absolute path to a .glb file anywhere on disk, or
    • A filename relative to ComfyUI/input/ (the node falls back to the input directory if the literal path doesn't exist).

    The output is a trimesh (TRIMESH). The output tooltip says it all: "The glb model with mesh to texturize." That's the use case - feed it a mesh you want painted.

    Why it's the node you'll reach for second

    The whole point of the pack's texturing side is that the paint model doesn't care where the geometry came from. Once a mesh is loaded here, the pipeline is identical to the generated path:

    Hy3DLoadMesh → Hy3DMeshUVWrap → Hy3DRenderMultiView → Hy3DSampleMultiView (paint)
                                                                       ↓
                                                 Hy3DBakeFromMultiview → inpaint → Hy3DApplyTexture → Hy3DExportMesh
    

    That's how people texture meshes they sculpted or downloaded, and it's how you re-run just the paint stage on a mesh you generated yesterday without re-sampling the shape.

    Honest notes

    • It loads force="mesh", so multi-node GLB scenes get flattened into one mesh. Fine for a single object; not the tool for re-texturing a complex scene.
    • The path handling is the one thing to watch. A typo or a path the node can't resolve silently falls back to ComfyUI/input/ and errors if it's not there. When in doubt, drop the file in ComfyUI/input/ and pass just the filename.
    • Texturing an arbitrary external mesh inherits all the pack's standing caveats: the render/paint/bake chain needs the compiled custom_rasterizer (Windows 11 / Python 3.12 / CUDA 12.6), and very dense meshes (50k+ faces) will complain at the UV wrap step - the README's xatlas upgrade procedure exists for exactly that.

    Install

    Ships with the pack, so it appears once you install ComfyUI-Hunyuan3DWrapper - ComfyUI Manager, search "Hunyuan3DWrapper", or git clone https://github.com/kijai/ComfyUI-Hunyuan3DWrapper into custom_nodes and pip install -r requirements.txt. The pack needs trimesh (it's in requirements), which is what does the actual GLB loading.

    CategoryHunyuan3DWrapper

    Inputs (1)

    NameTypeDefaultDescription
    glb_pathSTRINGThe glb path with mesh to load.

    Outputs (1)

    NameTypeDescription
    trimeshTRIMESHThe glb model with mesh to texturize.