Nodes/civitai-comfy-nodes/meshy / v7 / multiImageTo3D
ComfyUI Node

meshy / v7 / multiImageTo3D

Give Meshy v7 four views, get a better character

By civitai·Created 3 months ago·Updated 2 days ago· 44
meshy / v7 / multiImageTo3D
  • api_config
  • model
  • fbx_model
  • thumbnail
  • rigged_model
  • rigged_fbx_model
  • animated_model
  • animated_fbx_model
  • basic_animations
  • workflow_id
  • raw_json
image_urls_json
target_polycount30000
topologytriangle
symmetry_modeauto
should_remeshtrue
enable_pbrfalse
texture_prompt
enable_riggingfalse
enable_animationfalse
should_texturetrue
pose_modenone
texture_image_url
rigging_height_meters1.70
animation_action_id92

Single-image 3D reconstruction is a miracle with a flaw: the model has to invent everything it can't see, and with one photo that's roughly two-thirds of the object. Meshy v7's multi-image mode is the fix - feed it multiple views of the same subject and it hallucinates a lot less. This node is how you run that from ComfyUI, and for characters specifically it's usually worth the extra reference images.

What it is

meshy / v7 / multiImageTo3D from civitai/civitai-comfy-nodes. Instead of one image_url, the required input is image_urls_json - a JSON array holding 1 to 4 views of the same object. More views means better geometry on the sides the generator would otherwise guess. The tooltip also gives you a gift: "Meshy has no ultra or lowpoly mode on this operation," so this node's schema is the v7 set minus ultra_mode and model_type.

The inputs

  • image_urls_json - required, multiline JSON, 1–4 URLs. Format it as a JSON array of strings. Keep the views consistent - same subject, different angles, ideally a rough orbit of shots - because wildly inconsistent references confuse the reconstruction.
  • pose_mode - none / a-pose / t-pose. Same as the single-image v7: force a T or A pose if you're rigging for animation.
  • texture_image_url - an optional 2D image to guide texturing on top of the reference views.
  • rigging_height_meters (1.7), animation_action_id (0 = "Idle") - character scale and animation preset, used when rigging/animation are enabled.
  • target_polycount, topology, symmetry_mode, should_remesh, enable_pbr, texture_prompt, enable_rigging, enable_animation, should_texture, seed - the rest of the v7 family's controls, unchanged.

The outputs

model (GLB URL), fbx_model, thumbnail (IMAGE), then the rigged/animated set - rigged_model, rigged_fbx_model, animated_model, animated_fbx_model, basic_animations - which populate when you enable rigging and animation. 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

  • JSON, not an image. image_urls_json wants a JSON array of URL strings - paste it as text, and make sure the JSON parses (trailing commas and single quotes are the classic killers). A malformed array fails before anything is submitted.
  • Views must be the same subject. Multi-view reconstruction assumes consistency. Different outfit, different pose, different lighting between shots and you're paying extra for worse results.
  • Metered, and multi-view isn't the cheap end. You're running a commercial Meshy job with more inputs; rigging and animation stack on top. Check raw_json for the per-run cost.
  • Credentials - Civitai Auth node, CIVITAI_API_TOKEN, or sidebar OAuth, no exceptions.
  • Expect cleanup. More views reduce the hallucination problem; they don't fix topology. Same field-wide caveat as every 3D node here.
CategoryCivitai/Misc/meshy

Inputs (15)

NameTypeDefaultDescription
image_urls_jsonSTRING1–4 views of the same object. Meshy has no ultra or lowpoly mode on this operation.
target_polycountoptINT30000100–300000
topologyoptCOMBOtriangle2 options: quad, triangle
symmetry_modeoptCOMBOauto3 options: off, auto, on
should_remeshoptBOOLEANtrue
enable_pbroptBOOLEANfalse
texture_promptoptSTRING
enable_riggingoptBOOLEANfalse
enable_animationoptBOOLEANfalse
should_textureoptBOOLEANtrue
pose_modeoptCOMBOnonePose to generate the character in. "none" lets Meshy pick.
texture_image_urloptSTRING2D image guiding the texturing process.
rigging_height_metersoptFLOAT1.700.01–100Approximate character height in meters. Only used when enableRigging is set.
animation_action_idoptINT920–696Animation 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.
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