Hi3D:ImageTo3D
One image in, a real GLB mesh out — but your GPU stays asleep, because this is a cloud ride
- image
- image_back
- image_left
- image_right
- GLB
- model_task
The name is a small lie. Hi3D:ImageTo3D looks like a ComfyUI node that turns a photo into a 3D model, and it does exactly that - but it calls no local model and needs no key of the GPU variety. It's a client for Hi3D's cloud image-to-3D API. You hand it a picture, it uploads it to api.hitem3d.ai, and minutes later a GLB file lands in your workflow. The pack's author, dev-hitem, frames it as generating "high-quality 3D models from images" - the catch being the generation happens on someone else's servers, not in your ComfyUI process.
Why reach for it? Because ComfyUI is otherwise a 2D town. This is one of the few ways to get a usable, texture-ready mesh without leaving the graph: base geometry for a game asset, a product mockup, a character you'll retopo in Blender. And because it's server-side, you don't pay VRAM for it - your sampler queues keep running while the mesh bakes elsewhere.
How it actually works
Read the source and the story is simple: the node saves your image to ComfyUI's input folder, POSTs it to the Hi3D task API, then polls query-task every 10 seconds until the job finishes or an hour passes. No tensor math on your machine at all. When the task reports success it downloads the resulting GLB and hands you two outputs:
- GLB (type
FILE_3D_GLB) - the model itself. Save it, preview it, or feed it to the pack's Texture node. - model_task (type
HI3D_MODEL_TASK) - the task's ID, model URL and keys. This is the "free re-upload" token: wire it into TextureNode and the mesh URL is reused instead of re-uploading.
The inputs that matter
Most of them you can leave alone. The ones worth touching:
- image - the required front view. This is the whole job. Clean background, good lighting, and the subject fully in frame beats everything else you can tune.
- image_back / image_left / image_right - optional multi-view reference shots. If you have them, use them; the node switches to a multi-view reconstruction endpoint and the geometry gets markedly better on non-front faces.
- scene -
generalfor objects,portraitfor people/scenes. This filters which model versions the dropdown offers, so don't fight the linkage. - model -
hitem3dv2.1is the current default and a reasonable first stop;v1.5/v2.0are the older generations. - texture - off by default. Turn it on if you want vertex colors / texture maps, not just raw geometry.
- pbr - on by default, but it silently forces
textureon and only works with v2.0/v2.1. If you get a "PBR requires texture" style error, that's this interaction. - face - target poly count, 100k–2M. The UI nudges the default up as resolution climbs (1M at 1024). Higher = finer detail, bigger file. Start at the default, go up only if the mesh looks faceted.
Installing it
Via ComfyUI Manager, search Hi3D and install, or do it by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/dev-hitem/hitems3D-comfyUI
cd hitems3D-comfyUI
pip install -r requirements.txt
Then restart ComfyUI. Dependencies are just tos and aiohttp - nothing heavy, no model downloads. Two real requirements though: a fairly recent ComfyUI (the pack leans on the newer API-node framework and the FILE_3D types that only landed in 2025 builds), and an API key. Register at hi3d.ai and put the pair in config.json in the node folder, or export Hi3D_ak / Hi3D_sk as environment variables - then the ak/sk node inputs can stay empty.
Gotchas
- It costs money eventually. Hitem3D's free tier is famously stingy - community threads from mid-2025 describe a hard cap on free generations that doesn't reset. Budget for the paid tier if you'll run this regularly.
- Slow. You're queueing on someone else's servers. A job can take minutes; the node will happily poll for up to an hour. This isn't a bug, it's the cloud tax.
- "ak is required" with valid-looking inputs means the config file or env vars aren't being picked up - double-check the path and restart.
- The name "Hitem3D" is the service, "Hi3DGen" is a separate open-source project. Don't go hunting for the local weights; there aren't any.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| ak | STRING | Hi3D API Access Key. Leave empty if configured in config.json or environment variables. | |
| sk | STRING | Hi3D API Secret Key. Leave empty if configured in config.json or environment variables. | |
| imageopt | IMAGE | Main front image (Required) for 3D model generation. | |
| image_backopt | IMAGE | Back reference image (Optional) for multi-view 3D reconstruction. | |
| image_leftopt | IMAGE | Left reference image (Optional) for multi-view 3D reconstruction. | |
| image_rightopt | IMAGE | Right reference image (Optional) for multi-view 3D reconstruction. | |
| textureopt | BOOLEAN | false | Whether to generate textures. If enabled, the model will include vertex colors/textures. |
| pbropt | BOOLEAN | true | PBR开关(默认开启)。PBR需要texture开启,并且仅支持hitem3dv2.0/hitem3dv2.1。 |
| sceneopt | COMBO | general | Scene preset. `general` is for common objects, `portrait` is for portrait/scene generation. |
| modelopt | COMBO | hitem3dv2.1 | 3D generation model version. The node UI filters valid versions according to the selected scene. |
| resolutionopt | COMBO | 1024 | Generation resolution. The node UI filters valid resolutions according to the selected model. |
| faceopt | INT | 500000100000–2000000 | Output poly count. Higher count means finer detail but larger file size. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| GLB | FILE_3D_GLB | — |
| model_task | HI3D_MODEL_TASK | Task information to be passed to the Texture node for re-texturing |