Hunyuan3D: Image(s) to Model
Image(s) to Model — the node that hands you GLB, OBJ, and the texture maps separately
- image
- image_left
- image_right
- image_back
- model_file
- GLB
- OBJ
- texture_image
- optional_metallic
- optional_normal
- optional_roughness
Hunyuan is Tencent's in-house model program, and it owns 3D more aggressively than it does video these days - which is why a Tencent image-to-3D node ships in ComfyUI core at all. This is its image front door: one image (or up to four views) in, a model out - and it's the node in this family with the most generous output set: GLB, OBJ, the texture image, and the metallic/normal/roughness maps as separate outputs. If your workflow lives on extracting PBR maps for a game engine, that's a genuine differentiator.
Standard family fine print: paid cloud API via Comfy Org proxy (account + credits, roughly $0.30–$0.70 depending on options), no local compute. Tencent's pricing model also layers on per-feature credits - multiview images, PBR, and a non-default face count each add a slice.
How it works
Upload your image (plus optional image_left, image_right, image_back for multiview consistency) and pick a model. The node sends the job to Tencent's 3d-pro API, polls until it lands, and downloads the results. The OBJ result arrives as a ZIP that the node unzips and splits into the mesh plus texture maps, all surfaced as separate outputs. The images are downscaled server-side before upload (max side ~4,900px), so you don't need to pre-optimize.
The inputs that matter
- model -
3.0or3.1. The tooltip carries a hard rule: LowPoly is unavailable for the 3.1 model, so pick 3.1 only for Normal/Geometry generation. - image - your main reference, at least 128×128.
- face_count - 3,000 to 1,500,000 (default 500,000). Your triangle budget; the price badge bumps if you move off the default.
- generate_type - a dynamic combo with three branches:
Normal(adds a pbr toggle),LowPoly(adds polygon_type - triangle/quadrilateral - plus pbr), andGeometry(bare mesh, cheapest). - seed - the usual non-deterministic re-run control.
Outputs: model_file (STRING), GLB, OBJ, texture_image, and the three optional PBR maps (optional_metallic, optional_normal, optional_roughness) - each as an IMAGE you can route into other nodes.
Common issues
The LowPoly-on-3.1 error is the most common trip-up - it's a real server-side restriction, not a bug. Second, the face-count dial is where credit costs creep up; 500K is the default for a reason. And don't expect the PBR maps to be perfect out of the gate - they're generated, so checking them in a viewer before committing to a pipeline is worth the minute. The multiview inputs help a lot with back-of-model consistency if the front-only result comes back mushy; they cost extra, but they're cheaper than a second full run.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | The LowPoly option is unavailable for the `3.1` model. | |
| image | IMAGE | — | |
| face_count | INT | 5000003000–1500000 | — |
| generate_type | COMBO | 3 options: [object Object], [object Object], [object Object] | |
| seed | INT | 00–2147483647 | Seed controls whether the node should re-run; results are non-deterministic regardless of seed. |
| image_leftopt | IMAGE | — | |
| image_rightopt | IMAGE | — | |
| image_backopt | IMAGE | — |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| model_file | STRING | — |
| GLB | FILE_3D_GLB | — |
| OBJ | FILE_3D_OBJ | — |
| texture_image | IMAGE | — |
| optional_metallic | IMAGE | — |
| optional_normal | IMAGE | — |
| optional_roughness | IMAGE | — |