Load Mesh (FBX)
The FBX importer that goes through Blender to get there
- mesh
- info
FBX is the format game assets and animation pipelines actually use, and it's the one trimesh handles worst. It's a proprietary, version-locked binary format with no clean pure-Python reader, so GeometryPack's plain loaders will wave you off it. Load Mesh (FBX) doesn't pretend otherwise: it routes the file through Blender's own FBX importer (bpy.ops.import_scene.fbx) and pulls the result back into the graph as a TRIMESH. If Blender can read the file, this node can.
It's part of ComfyUI-GeometryPack ("ComfyUI libigl") by Andrea Pozzetti. Same pack, same heavy install story - and like the sibling Load Mesh (Blender) node, this one is bpy-backed, which is where its requirements and quirks come from.
How it works
The file_path input is a dropdown populated by scanning ComfyUI/input/3d (recursively) and the input root for .fbx files, so drop your asset there and it shows up. Under the hood the node imports the FBX scene with Blender's importer, collects the mesh data, and converts it to the pack's TRIMESH type. You get two outputs: mesh (the TRIMESH) and info (a STRING summary of what was imported - geometry counts and any warnings from the import itself).
Because the real importing happens in Blender, you inherit Blender's FBX handling: skinned/rigged meshes, multiple meshes in one file, and the various FBX export flavors that third-party exporters produce are all dealt with by a battle-tested importer rather than a best-effort parser. If a vendor's FBX was too broken for Blender, it'll be too broken here too - that's the honest boundary of the approach.
The requirement nobody reads until it breaks
This node needs bpy, Blender's Python bindings. GeometryPack's installer provisions Blender into its isolated environment via the experimental comfy-env package (which pulls in the pixi package manager), so a normal install gets you there - but it's why first launch downloads gigabytes, and why the pack imports its Blender modules "defensively": if bpy is missing or broken, the node just doesn't register, with a console warning, instead of nuking the whole pack.
Install:
cd ComfyUI/custom_nodes
git clone https://github.com/PozzettiAndrea/ComfyUI-GeometryPack.git
cd ComfyUI-GeometryPack
pip install -r requirements.txt --upgrade
python install.py
…or search "GeometryPack" in ComfyUI Manager and restart. If you're on a machine where the isolated env didn't build Blender (Windows quirks and pre-existing Python environments are the usual suspects), this is the node that disappears from your menu - check the console log for the "skipping" message before you assume you installed the pack wrong.
Gotchas worth knowing
- Merged output - a multi-mesh FBX comes out as one combined
TRIMESH. Fine for analysis and preview, wrong if you wanted the parts separated. - Scale and rotation - FBX has its own unit and axis conventions; Blender's importer applies them, but if your result looks flipped or scaled vs. your DCC tool, that's the importer's (correct) interpretation, not a bug in this node.
- Animation data is dropped - you get geometry, not the rig. This is a mesh loader, not a motion pipeline.
The author runs GeometryPack as openly WIP with rapid releases, so if an FBX that used to load stops loading after an update, reinstall clean before debugging your file. It's the right tool when the asset on your disk is .fbx and you want it in the graph without launching a DCC app.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| file_path | COMBO | 2 options: 3d/rigged_human.fbx, sam3d_rigged.fbx |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| mesh | TRIMESH | — |
| info | STRING | — |