Nodes/ComfyUI-UltraTex/UltraText Load Mesh
ComfyUI Node

UltraText Load Mesh

The smallest node in the pack, and one install away from useless

By visualbruno·Created 23 days ago·Updated 3 days ago· 46
UltraText Load Mesh
    • trimesh
    ◄glb_path►
    ◄only_vertices_and_facesfalse►

    Two widgets, one output. This is the node that hands your .glb to the UltraTex pipeline, and it's the one nobody writes a tutorial about - which is a shame, because it's also the node people get confused by when they've already generated a mesh inside ComfyUI and can't work out why the TRIMESH plug won't take it.

    Note the display name first: it's listed as "UltraText Load Mesh", an r that wandered off. The class is UltraTexLoadMesh, so search the pack title rather than the node name and you'll find it fine.

    What it does

    It calls trimesh on your file with force="mesh" and returns the result as the pack's TRIMESH type. That's it. That type is the pack's own - it wires into UltraTex Prep's optional trimesh input and goes nowhere else, including into other 3D packs. The mesh does not need texturing in the graph-building sense; UltraTex Prep is what will unwrap it.

    The two inputs

    glb_path is a plain string, not a file-picker dropdown, which throws people. Absolute paths work. Relative paths are resolved against ComfyUI's input folder, so models/figure.glb means ComfyUI/input/models/figure.glb. If neither resolves, the node raises a FileNotFoundError naming the path it tried - much friendlier than a silent empty graph.

    only_vertices_and_faces is the interesting one and it defaults to false. Switch it on and the node rebuilds the mesh as bare geometry, throwing away material, visual and thus any UV coordinates that came with the file. Why would you want that? Because generated .glb files often carry UV layouts that are technically present and practically garbage - sliced across a hundred tiny charts from whatever UV atlas step produced them. If you were planning to let the unwrapper do a clean pass anyway, stripping first keeps you from ever tempting uv_mode = keep_existing with a layout nobody wants. Leave it off if you paid for your UVs, on if you didn't.

    Where it fits

    It's the front door for the mesh_path-free version of the workflow: UltraTex Load Mesh → UltraTex Prep's trimesh. Prep accepts either, and the wire beats the path string when both are connected. So the node is optional - you can just type the path into Prep - but it makes the graph self-describing, and it's how I'd wire it if you're handing the workflow to someone else.

    The place it doesn't help is the one people reach for it: you're coming out of another 3D pack with a MESH from a Hunyuan3D or TRELLIS workflow, and you want to feed UltraTex. That type won't connect here. Export the mesh to .glb (the core SaveGLB node, or your 3D pack's export), then load it with this node or by path. Annoying, but it's one hop, and it's the only reliable crossing point between types.

    Install

    Manager → ComfyUI-UltraTex, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/visualbruno/ComfyUI-UltraTex
    

    The pack's requirements are trimesh, moderngl, xatlas and scipy. This node only needs trimesh, so if you're debugging an install and this one loads, your problem is elsewhere - moderngl (the GL renderer Prep uses) is the more fragile of the two.

    Gotchas

    • Windows backslash confusion when you copy a path out of Explorer. The node strips quotes but doesn't normalise slashes, so paste forward slashes or let the input-folder-relative form do the work.
    • The path is resolved fresh on every run, so if you overwrite the .glb on disk ComfyUI will happily serve you a cached prep from the old geometry until you force the node to re-execute. Re-run the whole graph when you swap the file.
    • Same author as the TRELLIS.2 ComfyUI nodes, and the same house style: a minimal loader here, the heavy lifting in the next node. If you're expecting a viewport preview in this node, that's Preview 3D at the other end of the graph.
    CategoryUltraTex

    Inputs (2)

    NameTypeDefaultDescription
    glb_pathSTRINGThe glb path with mesh to load.
    only_vertices_and_facesBOOLEANfalse—

    Outputs (1)

    NameTypeDescription
    trimeshTRIMESHThe glb model with mesh to texturize.