meshy / imageTo3D
An image becomes a 3D mesh — Meshy, without installing anything 3D
- api_config
- model
- fbx_model
- thumbnail
- rigged_model
- rigged_fbx_model
- animated_model
- animated_fbx_model
- basic_animations
- workflow_id
- raw_json
Image-to-3D is the one corner of 3D generation that actually works - you give it a single image and a feed-forward model reconstructs a shape, inventing the geometry and texture of the sides it can't see. This node runs Meshy's image-to-3D pipeline through the Civitai Orchestration API (the Fal in the name is the inference host), so a ComfyUI graph can emit a textured 3D mesh without you ever installing a 3D wrapper pack, fighting CUDA, or renting an A100.
The honest expectation, straight from the KB's 3D doc: what you get is "aesthetic quality and depth," not production topology. The silhouette will impress you; the triangle layout underneath won't. Static props, 3D prints, and scene filler: genuinely usable. Anything that has to deform, rig, or ship in a game as-is: you're doing retopology, which is where the AI stops saving you time.
Inputs and outputs
image_url(required) - a string URL to the source image. Note this is text, not anIMAGEsocket - you need a hosted URL (or data URL) for Meshy to fetch.target_polycount- 30000 default; the budget for the mesh.topology-triangledefault (vs. quad). Triangle soup is what you'll get either way; the KB's warning is that clean quads are what a 3D artist builds, and these models don't.symmetry_mode-autodefault; lets the model assume symmetry for objects that have it (better reconstruction, fewer artifacts).should_remesh- true default; re-meshing cleans the raw reconstruction.should_texture- true default; without it you get a bare mesh.texture_prompt- a prompt for the texture pass; this is your lever for "give it a worn metal look" beyond what the image implies.enable_pbr- false default; PBR gives you metalness/roughness/albedo channels a game engine can relight, but it's more expensive and, per the community, not always worth it.enable_rigging/enable_animation- both false. These are the ambitious ones, and the KB's verdict is that generated rigs are where "entirely unusable for interactive applications" lives. Turn them on only if you want to see for yourself.seed- reproducibility.
Outputs (this is where the node gets exciting): model and fbx_model (STRING - URLs/paths to the mesh), thumbnail (IMAGE), rigged_model/rigged_fbx_model, animated_model/animated_fbx_model, basic_animations, plus workflow_id and raw_json.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/civitai/civitai-comfy-nodes.git
pip install -r civitai-comfy-nodes/requirements.txt
Or ComfyUI Manager → "Civitai Comfy Nodes" → Install → restart. Authenticate; 3D jobs bill in Buzz per mesh.
Gotchas
The image_url being a string instead of an image socket trips people up - you can't just drag from a Load Image node; you need the image somewhere Meshy can fetch it. And manage expectations on the outputs: the rigged/animated variants are the sizzle, but the reliable deliverable is the static mesh (model/fbx_model). If you're targeting a game engine or Blender, budget for cleanup - the KB's "you will do a retopology and re-UV pass" is not optional, it's the price of entry. For 3D printing and background props, this node is genuinely one image away from a usable asset.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| image_url | STRING | — | |
| target_polycountopt | INT | 30000100–300000 | — |
| topologyopt | COMBO | triangle | 2 options: quad, triangle |
| symmetry_modeopt | COMBO | auto | 3 options: off, auto, on |
| should_remeshopt | BOOLEAN | true | — |
| enable_pbropt | BOOLEAN | false | — |
| texture_promptopt | STRING | — | |
| enable_riggingopt | BOOLEAN | false | — |
| enable_animationopt | BOOLEAN | false | — |
| seedopt | INT | 00–4294967295 | — |
| should_textureopt | BOOLEAN | true | — |
| api_configopt | CIVITAI_CONFIG | Optional Civitai Auth connection; defaults to CIVITAI_API_TOKEN or stored OAuth login. |
Outputs (10)
| Name | Type | Description |
|---|---|---|
| model | STRING | — |
| fbx_model | STRING | — |
| thumbnail | IMAGE | — |
| rigged_model | STRING | — |
| rigged_fbx_model | STRING | — |
| animated_model | STRING | — |
| animated_fbx_model | STRING | — |
| basic_animations | STRING | — |
| workflow_id | STRING | — |
| raw_json | STRING | — |