Nodes/Civitai Comfy Nodes/meshy / v7 / multiImageTo3D
ComfyUI Node

meshy / v7 / multiImageTo3D

Give Meshy v7 four views, get a better character

By civitai·Created 4 months ago·Updated about a month ago· 55
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—