Meshy-6
From a photo to a textured GLB, without touching Blender
- referenceImages
- images
- file_path
You've got an image of an object and you need a 3D model of it - for a render, a game asset, a print. Meshy-6 does that end to end: drop in one or more reference images, and the cloud returns a textured GLB mesh with polycount and texture settings you control. It's a paid, hosted 3D pipeline, and the whole thing saves straight to your ComfyUI output folder.
How it works
This is a 3dInference node, so unlike the image nodes it doesn't return a tensor - the pack downloads the generated model to your output folder and hands back a file_path string. The model runs on Runware's cloud (Meshy's generator), so there's no local mesh/UV/rendering stack to install. You get a .glb (the only outputFormat, so don't go looking for OBJ or FBX here).
The inputs that matter for a first run:
images/referenceImages(IMAGE) - your source photos. For image-to-3D, feed one or more views.positivePrompt(STRING) - describes the object; needed for text-to-3D, and it steers the mesh when you have reference images too.numberResults(default 1, max 4) - how many variations to generate, each with a different seed.
The long settings list is Meshy's actual parameter surface, and it's mostly "set once and forget":
settings.polyCount(default 30000, range 100–300k) - target triangle/quad count. Higher = smoother but bigger files.settings.meshType(standard/lowpoly) andsettings.topology(triangle/quad) - mesh character. Lowpoly + quad is your game-asset combo.settings.texture(default true) - generate a texture or return bare mesh. Turn off for pure geometry.settings.pbr(default false) - adds metallic/roughness/normal maps (plus emission). You want this for renders, not for raw geometry.settings.hdTexture(default false) - 4K base color instead of 2K. PBR maps stay 2K regardless.settings.pose(none/a-pose/t-pose) andsettings.symmetry(off/auto/on) - mostly for character/creature models.settings.removeLighting(default true) - bakes out highlights so the texture works under your own lights. Leave it on.settings.autoSize,settings.origin(bottom/center),settings.remesh,settings.decimation,settings.moderation- quality-of-life and safety toggles.
Install
It's part of ComfyUI-Runware:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Restart (or ComfyUI Manager → search "Runware"). You'll need a Runware API key - Settings → Runware API key, RUNWARE_API_KEY, or runware auth login.
Gotchas
This is the most expensive category in the pack - 3D generation is a real GPU job, and the title bar's cost readout will show it. Don't batch numberResults up to 4 casually. Also: the output is a file path, so wire it into a file/preview node that reads paths, and check the output folder for the GLB. If the mesh comes back lumpier than expected, try settings.polyCount up and settings.remesh on rather than re-prompting.
Inputs (23)
| Name | Type | Default | Description |
|---|---|---|---|
| referenceImagesopt | IMAGE | — | |
| imagesopt | IMAGE | — | |
| positivePromptopt | STRING | Text prompt describing elements to include in the generated output. | |
| numberResultsopt | INT | 11–4 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| settings.autoSizeopt | BOOLEAN | false | AI-based real-world height estimation to resize the model accordingly. |
| settings.decimationopt | COMBO | (default) | Adaptive decimation level. |
| settings.hdTextureopt | BOOLEAN | false | Base colour texture at 4K (4096×4096) resolution. PBR maps are always generated at 2K regardless. |
| settings.imageEnhancementopt | BOOLEAN | true | Input image optimization for better generation results. Set to false to preserve the exact appearance of the input. |
| settings.meshTypeopt | COMBO | standard | Mesh generation type for the output 3D model. |
| settings.moderationopt | BOOLEAN | false | Input content screening for potentially harmful material before generation proceeds. |
| settings.originopt | COMBO | bottom | Origin point position for the generated model. |
| settings.pbropt | BOOLEAN | false | PBR map generation (metallic, roughness, normal) in addition to base colour. Includes an emission map. |
| settings.polyCountopt | INT | 30000100–300000 | Target polygon count. Actual count may deviate based on geometry complexity. |
| settings.poseopt | COMBO | none | Pose preset for the generated model. |
| settings.remeshopt | BOOLEAN | false | Remesh phase toggle. When false, returns the highest-precision triangular mesh without decimation. |
| settings.removeLightingopt | BOOLEAN | true | Highlight and shadow removal from the base colour texture, producing a cleaner result for custom lighting. |
| settings.symmetryopt | COMBO | auto | Symmetry behaviour during generation. |
| settings.textureopt | BOOLEAN | true | Texture generation toggle. When false, returns a mesh only. |
| settings.texturePromptopt | STRING | Additional text prompt to guide the texturing process. | |
| settings.topologyopt | COMBO | triangle | Mesh topology for the output model. |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | GLB | File format for the generated 3D model. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| file_path | STRING | — |