meshy / v7 / imageTo3D
The character-generation node with the pose controls
- api_config
- model
- fbx_model
- thumbnail
- rigged_model
- rigged_fbx_model
- animated_model
- animated_fbx_model
- basic_animations
- workflow_id
- raw_json
Meshy v7 is where the hosted image-to-3D services start to feel like a real character pipeline instead of a shape guesser. This node adds the controls that matter for people making people: explicit pose selection, a reference for the texture pass, a character height in meters, and a whole animation library. If you want a rigged, posed, animated character from a single image, this is the node in this pack that's built for it.
What it is
meshy / v7 / imageTo3D from civitai/civitai-comfy-nodes. Your reference image goes up to Civitai's orchestration API, a Meshy v7 job runs on the fal-hosted backend, and a mesh comes back - with the v7 extras. Same STRING-not-IMAGE gotcha as the other Meshy nodes: image_url is a URL string, not an image socket.
The inputs
image_url- required STRING. Your reference image, hosted somewhere reachable.pose_mode-none(Meshy picks),a-pose, ort-pose. The tooltip says it plainly: "none" lets Meshy choose. If you're rigging for animation, forcing a T or A pose is usually the smart move so the skeleton behaves.texture_image_url- a second 2D image guiding the texturing. Nice control: use a clean render for geometry and a styled version for the paint.rigging_height_meters- approximate character height in meters, default 1.7. Only used when rigging is enabled; set it to your game's scale convention.animation_action_id- a preset from Meshy's animation library (0 is "Idle"), referenced by ID. The tooltip points at the Meshy docs for the full list. Only used when animation is enabled.ultra_mode- off by default; higher-fidelity geometry with finer surface detail. Expensive, but for a hero asset it's the button.model_type-standardorlowpoly. Here's the trap:lowpolymakes Meshy ignore the remesh controls - topology, target_polycount, should_remesh all become no-ops. Pick it deliberately for game-ready low-poly, not by accident.- The v6 family's knobs are all here too:
target_polycount,topology,symmetry_mode,should_remesh,enable_pbr,texture_prompt,enable_rigging,enable_animation,should_texture,seed.
The outputs
model (GLB URL), fbx_model, thumbnail (IMAGE), rigged_model, rigged_fbx_model, animated_model, animated_fbx_model, basic_animations - the rigged and animated outputs actually populate on Meshy - plus workflow_id and raw_json.
Installing it
ComfyUI Manager → Civitai Comfy Nodes → Install → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/civitai/civitai-comfy-nodes.git
pip install -r civitai-comfy-nodes/requirements.txt
Gotchas
- URL, not image - the classic Meshy-node confusion. Feed it a URL string.
lowpolyoverrides your mesh controls. If your topology settings seem to do nothing, checkmodel_type- that's the documented behavior, not a bug.- It's a metered commercial service. Buzz per run;
ultra_mode, rigging, and animation stack on top of the base price. Readraw_jsonif cost matters. - Credentials - Civitai Auth node,
CIVITAI_API_TOKEN, or sidebar OAuth. - Organic shapes still bite. Meshy v7 is good at characters, but the whole field's honest limit stands: generated topology needs cleanup for anything that ships.
Inputs (17)
| 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 | — |
| should_textureopt | BOOLEAN | true | — |
| pose_modeopt | COMBO | none | Pose to generate the character in. "none" lets Meshy pick. |
| texture_image_urlopt | STRING | 2D image guiding the texturing process. | |
| rigging_height_metersopt | FLOAT | 1.700.01–100 | Approximate character height in meters. Only used when enableRigging is set. |
| animation_action_idopt | INT | 920–696 | Animation preset from Meshy's library (0 is "Idle"); see https://docs.meshy.ai/en/api/animation-library. Only used when Civitai.Orchestration.Grains.Workflows.Steps.PolyGen.Fal.MeshyFalPolyGenInput.EnableAnimation is set. |
| ultra_modeopt | BOOLEAN | false | Higher-fidelity geometry with finer surface detail. |
| model_typeopt | COMBO | standard | "lowpoly" makes Meshy ignore the remesh controls (topology, targetPolycount, shouldRemesh). |
| 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 | — |