Tripo Image-to-3D (API)
Turn a photo into a .glb you can actually use
- image
- glb
ComfyUI is mostly a 2D and video tool, so a node that outputs a 3D model file feels like a party trick - until you actually need one. Tripo Image-to-3D takes an image you already have (a render, a photo of an object, a character sheet) and produces a textured 3D mesh as a .glb file via Tripo AI's API. It's the fastest way to go from "image" to "model I can drop into Blender or a game engine" without touching a single 3D app.
The honest use case: you've generated a reference image of a character or prop, and you want a low-poly, textured mesh of it for a project. Tripo's output isn't production-grade sculpting - it's a solid starting mesh, and for many uses it's good enough as-is.
How it works
The node uses Tripo's REST API (api.tripo3d.ai). It uploads your image as a PNG, creates a generation task with your chosen model version and settings, then polls the task until the model is ready and downloads the result. The .glb file is saved to your ComfyUI output directory with your save_name plus a timestamp. That last detail matters: the node's output is a path string, not a 3D object - it tells you where the file landed.
The inputs that matter
- image - the source image to turn into a mesh. A clean, single-subject image with a plain background gives the best results.
- model_version -
v3.0-20250812(newest),v2.5-20250123(the solid default),v2.0-20240919, orv1.4-20240625. Newer versions make better geometry; keep the default unless you have a reason to pin an older one. - texture_quality -
standardordetailed. Detailed costs more and takes longer; use it for close-up work. - save_name - the filename prefix for the saved
.glb. Worth setting something descriptive, because the timestamp suffix makes duplicates otherwise. - api_key - Tripo API key (from tripo3d.ai) in the field or
.env(TRIPO_API_KEY).
The optional inputs are where the quality lives:
- seed and texture_seed - seed for geometry,
texture_seed(default 420) for the randomness of colors/textures. - face_limit - max triangles in the mesh, 500–100000, default 20000. Higher = smoother but heavier. 20k is a good game-asset middle ground.
- texture_size -
512/1024/2048. The texture resolution; 1024 is the default and usually enough. - pbr - on by default; includes realistic lighting maps (normal/roughness etc.) with the model, which matters if you're taking it into a PBR renderer.
The output
glb - a STRING. It's the file path to the saved .glb in your output directory. Don't wire it expecting a mesh object - it's a path you can read, log, or pass to another tool.
Installing it
One of ~20 nodes in the Aryan185/ComfyUI-ExternalAPI-Helpers pack:
cd ComfyUI/custom_nodes
git clone https://github.com/Aryan185/ComfyUI-ExternalAPI-Helpers.git
cd ComfyUI-ExternalAPI-Helpers
pip install -r requirements.txt
Restart ComfyUI; find "Tripo Image-to-3D (API)" under 3D/generation. It only needs requests beyond the usual. Grab a Tripo API key from tripo3d.ai, paste it in or set TRIPO_API_KEY in .env. There's also a Tripo Text-to-3D node in the same pack if you want to start from a prompt instead.
Where people get burned
The output being a path string surprises everyone once. Also, Tripo bills per task, and detailed texture + 2K texture size + high face limits stack the cost on a job that already takes a while to poll. Iterate cheap (standard texture, 1024, default face limit), then run the expensive settings for the final. And the geometry quality depends heavily on your input image - a busy, cluttered photo gives a lumpy mesh. Give it a clean subject and it rewards you. For "I need a 3D model of this thing and I have an image," it's the least-effort route available.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| model_version | COMBO | v2.5-20250123 | 4 options: v3.0-20250812, v2.5-20250123, v2.0-20240919, v1.4-20240625 |
| texture_quality | COMBO | standard | 2 options: standard, detailed |
| api_key | STRING | Tripo API key or .env variable name (TRIPO_API_KEY) | |
| save_name | STRING | tripo_img_model | — |
| seedopt | INT | 690–2147483646 | — |
| texture_seedopt | INT | 4200–2147483646 | Controls randomness of colors/textures. |
| face_limitopt | INT | 20000500–100000 | Max triangles in mesh. |
| texture_sizeopt | COMBO | 1024 | 3 options: 512, 1024, 2048 |
| pbropt | BOOLEAN | true | Include realistic lighting maps. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| glb | STRING | — |