Nodes/civitai-comfy-nodes/comfy / hunyuan3D / imageTo3D
ComfyUI Node

comfy / hunyuan3D / imageTo3D

Hunyuan3D in ComfyUI without the CUDA wheel nightmare

By civitai·Created 3 months ago·Updated 2 days ago· 44
comfy / hunyuan3D / imageTo3D
  • image_url
  • model_air
  • api_config
  • model
  • fbx_model
  • thumbnail
  • rigged_model
  • rigged_fbx_model
  • animated_model
  • animated_fbx_model
  • basic_animations
  • workflow_id
  • raw_json
model_versionv2
steps1
cfg_scale0.00
samplereuler
schedulernormal
resolution1
vae_num_chunks8000
octree_resolution256
mesh_threshold0.60
seed0
shift1.00
prompt
should_texturetrue
should_remeshfalse
enable_pbrtrue

Image-to-3D is the one corner of ComfyUI where the install is the hard part, not the generation. Hunyuan3D is the best-known open model for the job, and getting it running locally means fighting ComfyUI-3D-Pack's compiled CUDA extensions, or Kijai's wrapper, or a license wrinkle. This node does none of that. It's a hosted Hunyuan3D image-to-3D job that runs on Civitai's fleet and hands you a textured mesh back - no GPU, no model download, just Buzz on your account.

What it actually is

It's one of the ~160 nodes in civitai/civitai-comfy-nodes, Civitai's official ComfyUI pack for its Orchestration API. Every node in the pack is a thin client: it packages your inputs, submits a cloud workflow, polls until it finishes, and converts the result to native Comfy types. This one calls the comfy / hunyuan3D / imageTo3D recipe - the full Tencent Hunyuan3D two-stage pipeline, where a shape model builds the geometry and a separate paint model textures it.

That's the whole value proposition, and it's a real one. Locally, image-to-3D is where "it won't import" eats more hours than "it's slow". This node sidesteps the entire problem: you get the model's output without touching a single compiled wheel.

The inputs that matter

image_url is the one required input - an IMAGE socket, so wire a Load Image or any generator into it. The rest are the knobs Hunyuan3D's comfy engine exposes:

  • model_version - v2, v2.1, or v2-mini. v2.1 is the version worth using when you want quality; v2-mini if you want something quick and cheap.
  • should_texture - default on. Turn it off to skip the paint stage and get a bare mesh back.
  • enable_pbr - default on, and it's the good default. Hunyuan3D's PBR materials (metalness/roughness/albedo) relight properly in a game engine instead of arriving as one baked diffuse map.
  • octree_resolution and mesh_threshold - the geometry controls. Higher octree = finer voxel grid, higher threshold = more conservative mesh extraction.
  • prompt - optional text hint for the generation. Mostly useful for steering texture.
  • steps, cfg_scale, sampler, scheduler - the diffusion knobs. The default sampler is euler with the normal scheduler, and honestly, for hosted generation, leaving them alone is fine until you're chasing a specific look.

The outputs

Every recipe node in this pack returns workflow_id and raw_json for debugging and cost inspection, and this one adds eight more:

  • model - a STRING, and the thing you actually want. It's a URL to the generated mesh (GLB), not a file. Download it, or wire it into something that fetches the URL for you.
  • fbx_model - the same mesh as FBX, for engines that want it.
  • thumbnail - an IMAGE you can wire straight into a Preview Image node. This is the quickest way to see what you got.
  • rigged_model / rigged_fbx_model / animated_model / animated_fbx_model / basic_animations - populated only when the backend produces them; in practice you'll mostly ignore these on the Hunyuan3D nodes.

Wire thumbnail → Preview Image and model → Save Text (or a downloader node), and you have a working loop.

Installing it

ComfyUI Manager → Custom Nodes Manager → search Civitai Comfy Nodes (publisher civitai) → Install, then restart. Or by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/civitai/civitai-comfy-nodes.git
pip install -r civitai-comfy-nodes/requirements.txt

The dependency is just requests + python-socketio. No model files at all.

Troubleshooting

  • "No Civitai credentials" - the node needs an account. Wire a Civitai Auth node, set CIVITAI_API_TOKEN, or sign in from the Civitai sidebar tab (OAuth, stored locally and auto-refreshed).
  • It costs Buzz. Every run is metered. Check raw_json (or the cost line on the node) if a surprise bill is your concern - the pack surfaces the per-run cost on the node itself.
  • Don't expect game-ready topology. This is the honest caveat on every hosted image-to-3D node: the silhouette and surface look great, the geometry underneath is triangle soup with machine-made UVs and no rig. Fine for a prop, a render, or a 3D print; you're doing a retopo pass if it has to deform.
  • Missing required input errors are raised locally before anything is submitted, so a blank field tells you immediately.
CategoryCivitai/Misc/comfy

Inputs (18)

NameTypeDefaultDescription
image_urlIMAGE
model_versionoptCOMBOv23 options: v2, v2.1, v2-mini
model_airoptCIVITAI_AIR
stepsoptINT11–150
cfg_scaleoptFLOAT0.000–30
sampleroptCOMBOeuler18 options: euler, euler_ancestral, heun, heunpp2, dpm_2, dpm_2_ancestral, +12
scheduleroptCOMBOnormal7 options: normal, karras, exponential, sgm_uniform, simple, ddim_uniform, +1
resolutionoptINT11–8192
vae_num_chunksoptINT80001000–500000
octree_resolutionoptINT25616–512
mesh_thresholdoptFLOAT0.600–1
seedoptINT00–4294967295
shiftoptFLOAT1.000–2147483647
promptoptSTRING
should_textureoptBOOLEANtrue
should_remeshoptBOOLEANfalse
enable_pbroptBOOLEANtrue
api_configoptCIVITAI_CONFIGOptional Civitai Auth connection; defaults to CIVITAI_API_TOKEN or stored OAuth login.

Outputs (10)

NameTypeDescription
modelSTRING
fbx_modelSTRING
thumbnailIMAGE
rigged_modelSTRING
rigged_fbx_modelSTRING
animated_modelSTRING
animated_fbx_modelSTRING
basic_animationsSTRING
workflow_idSTRING
raw_jsonSTRING