Hunyuan 3D 3.1 Pro
Generating .glb files from your ComfyUI graph
- images
- file_path
This is the odd one out in the Runware pack, and it's worth understanding why it exists. Hunyuan 3D 3.1 Pro is Tencent's 3D generation model, and 3D is the modality the pack handles most differently: instead of returning an IMAGE or VIDEO, this node saves a .glb file to your output folder and hands you a file_path string. You're not looking at a preview on the canvas - you're building a model you'd load into Blender, a game engine, or a viewer.
The context for why this is a cloud node: Tencent Hunyuan is the lab that keeps shipping "open" weights nobody can actually run, and its 3D line is no exception - huge checkpoints under a community license that cuts the EU, UK, and South Korea out of the grant entirely. Running Hunyuan 3D locally is a project. This node skips all of it: Tencent's 3D asset generation, running on Runware's machines, driven from your graph. No VRAM budget, no license-jurisdiction spreadsheet.
What you set
Everything here is optional, which is a clue about how flexible the model is:
images- image-to-3D: feed it one or more views and it reconstructs geometry. This is the input that makes Hunyuan 3D practical.positivePrompt- text-to-3D, for when you have no reference image.settings.faceCount- polygon budget, 3,000 to 1,500,000 (default 500,000). This is your quality dial: more faces, smoother surface, bigger file. Draft at low, final at high.settings.generateType-Normal(full generation) orGeometry(geometry-only pass, for when you're iterating on shape and don't need materials yet).settings.pbr- toggle Physically Based Rendering materials on for realistic shading in engines.outputFormat- GLB, and only GLB. That's the whole list.numberResults1-4,ttl/ttl_valuefor URL expiry.
Output is file_path (STRING) - the path to the saved .glb.
How it works
Standard pack machinery: model AIR + taskType over REST via the Runware SDK. The difference is the return path - the pack downloads the generated asset to your output folder and returns its path rather than a tensor, because ComfyUI has no native 3D type. The title bar still shows cost, and 3D generation is one of the heavier, slower jobs in the pack, so expect a real wait for the file to land.
Installing
ComfyUI Manager → search Runware → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
No model downloads; dependencies are runware-sdk, pillow, soundfile. API key via Settings → Runware API key, RUNWARE_API_KEY, or runware auth login.
Troubleshooting
Key first. Then the most common confusion: nothing shows up on your canvas, and that's correct - find the .glb in your ComfyUI output folder via the file_path output. If the model comes out rough, raise settings.faceCount; if it's too smooth for drafting, that's what Geometry mode is for. And remember 3D runs are slow and metered - test at low face counts before committing to a 1.5M-polygon final.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| imagesopt | IMAGE | — | |
| positivePromptopt | STRING | Text prompt describing elements to include in the generated output. | |
| numberResultsopt | INT | 11–4 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| settings.faceCountopt | INT | 5000003000–1500000 | Number of faces (polygons) in the generated 3D model. |
| settings.generateTypeopt | COMBO | Normal | Generation mode for 3D model creation. |
| settings.pbropt | BOOLEAN | false | Enable PBR (Physically Based Rendering) material generation. |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | GLB | File format for the generated 3D model. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| file_path | STRING | — |