Nodes/ComfyUI-Meshy/Meshy - Text to 3D (Preview)
ComfyUI Node

Meshy - Text to 3D (Preview)

Type a Prompt, Get a 3D Model — but It's a 'Preview' for a Reason

By Kazama-Suichiku·Created 9 months ago·Updated 9 months ago· 7
Meshy - Text to 3D (Preview)
  • api_key
  • thumbnail
  • base_color
  • normal
  • metallic_roughness
  • model_path
  • task_id
promptA 3D model of a cute cat
art_stylerealistic
ai_modellatest
negative_prompt
topologytriangle
target_polycount30000
seed-1
enable_pbrtrue

This is the headline node of the pack. Type "a steampunk owl made of brass" into MeshyTextTo3DPreview, hit run, and a few minutes later you have an actual 3D model on disk plus its texture maps laid out as images in your graph. All without touching a single GPU locally - the heavy lifting happens on Meshy's servers, and you pay for it in API credits.

Where this fits

ComfyUI 3D generation has two flavors. There's the local route - Trellis, Hunyuan3D and friends, where you download multi-gigabyte weights and burn VRAM - and there's the API route, where a service like Meshy generates the model in the cloud and you get the file back. This pack is firmly the second kind. It's a thin, honest wrapper around Meshy's API, so it works on any machine that can run ComfyUI at all - but every generation is a cloud round-trip that costs credits and takes time. Treat it like a slow, paid sampler.

How it works

The node submits a preview task to Meshy's text-to-3D endpoint, gets a task_id back, then polls the task status every five seconds - with a proper ComfyUI progress bar - until it either succeeds, fails, or hits a ten-minute timeout. On success it downloads the model and texture files into a folder under your ComfyUI output directory named meshy_<timestamp>_<short-task-id>/ and passes the results along as tensors and paths. The whole thing is one blocking call from ComfyUI's perspective; the graph sits and waits while the polling loop runs.

The inputs that matter

  • prompt - a multiline string, and the whole game. Describe the object, its material, its vibe. "A 3D model of a cute cat" is the default and it's exactly as generic as it looks.
  • art_style - one of realistic, cartoon, low-poly, sculpture, pbr. Sets the surface treatment, so it shapes both the geometry and the texturing.
  • ai_model - the dropdown offers meshy-4, meshy-5, and latest (the default). The README says the pack targets Meshy-4/5/6, with latest resolving to the current generation. Just leave it on latest.

The optional extras are worth a glance: negative_prompt ("what to avoid"), topology (triangle default, or quad), target_polycount (100–300,000, default 30,000 - lower is cheaper to render and game-engine friendly), seed (-1 for random; a fixed seed lets you compare generations), and enable_pbr. One real gotcha in the code: enable_pbr is only sent to the API for meshy-5 and later, so on meshy-4 it's silently ignored no matter what the checkbox says.

The outputs

You get six: thumbnail (a render of the model you can actually look at), base_color, normal, and metallic_roughness (the PBR texture maps, all as IMAGE tensors you can preview, save, or wire further down the graph), model_path (the file path to the downloaded .glb - the other formats sit in the same folder), and task_id, the string that hands off to the Refine node.

About that word "preview"

Previews are the cheap, rough stage of Meshy's two-step flow - you get the geometry and basic surfacing, not the polished result. That's deliberate, and it's the economy of the whole design: try several cheap previews, then spend real credits refining only the one you like. The README quotes roughly 20 credits for a preview on meshy-6 and about 5 on the older models, with refine costing extra. Don't judge the pipeline on a preview alone; judge it after Refine does its pass.

Installing

No model downloads here - nothing to fetch but the pack itself. Via ComfyUI Manager, search "ComfyUI-Meshy". Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/Kazama-Suichiku/ComfyUI-Meshy
pip install -r ComfyUI-Meshy/requirements.txt

then restart ComfyUI. The dependencies are numpy, Pillow, requests, torch, and pyhocon - all standard except pyhocon. You'll also need a Meshy API key and a credit balance, wired in through the Meshy API Key node. The pack is very new (a single commit from late 2025), so if Manager can't find it, clone by hand.

Troubleshooting

Failures show up as a red error placeholder image on the outputs and an empty model_path, with the reason printed in the console. The usual suspects: a 401 from a wrong or space-stuffed API key, a prompt that trips Meshy's content filters (the README flags "restricted content" as a generation failure), an empty credit balance, or a task that just takes longer than the ten-minute polling window. And remember - you're paying per run, so a big target_polycount on a fancy model is a more expensive experiment than you might expect.

CategoryMesh/Meshy

Inputs (9)

NameTypeDefaultDescription
api_keyAPIKEY
promptSTRINGA 3D model of a cute catText description of the 3D model you want to generate
art_styleCOMBOrealisticVisual style of the generated model
ai_modelCOMBOlatestAI model version to use (latest recommended)
negative_promptoptSTRINGWhat to avoid in the generation
topologyoptCOMBOtriangleMesh topology type
target_polycountoptINT30000100–300000Target polygon count (100-300,000)
seedoptINT-1-1–2147483647Random seed (-1 for random)
enable_pbroptBOOLEANtrueEnable PBR textures (only for meshy-5 and later)

Outputs (6)

NameTypeDescription
thumbnailIMAGE
base_colorIMAGE
normalIMAGE
metallic_roughnessIMAGE
model_pathSTRING
task_idSTRING