Generate 3D Model from Image
meshy_image_to_3dCreate a textured 3D model from a single image for props, characters, or product assets, with controls for geometry, texture resolution, topology, and export formats.
Instructions
Generate a 3D model from one image, textured by default (no refine step; should_texture false for a bare mesh). Typically 2–3 minutes. Cost: the mesh (meshy-7.1 / latest / meshy-6 20; meshy-6-lite, meshy-t2, meshy-t2.5 5) + 10 for the texture (15 at 8K), whichever texture_model; Ultra geometry +5.
IMAGE INPUT (exactly ONE):
file_path: a local image (RECOMMENDED; never base64-encode it yourself)
image_url: a public URL
input_task_id: a SUCCEEDED meshy_text_to_image / meshy_image_to_image task with ONE image (multi-view output → meshy_multi_image_to_3d)
Choose models by project (geometry ai_model + texture_model):
Detailed hero asset, product render, cinematic prop: meshy-7.1 + meshy-7 (PBR, up to 8K)
Game character to rig and animate: meshy-t2.5 (smart topology, set target_polycount) + meshy-n1
Many props for a game scene, or user-generated content: meshy-t2 (smart topology) + meshy-n1
A real object from 2 to 4 photos: meshy-7.1 on Multi-Image to 3D + meshy-7
A model to 3D print: meshy-7.1 + none, or meshy-7 to print in color
Many drafts at a low cost: meshy-6-lite + meshy-6-lite More: https://docs.meshy.ai/en/api/models Omit texture_model for the geometry's default; "none" is should_texture false; 2 to 4 photos go to meshy_multi_image_to_3d.
Example (game character): { file_path: "/path/to/character.png", ai_model: "meshy-t2.5", target_polycount: 15000, texture_model: "meshy-n1", pose_mode: "t-pose" }
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ai_model | No | 'latest' (default, = Meshy 7.1) or 'meshy-7.1' (best), 'meshy-6', 'meshy-6-lite' (fast, cheap, 2K textures only); 'meshy-7' is deprecated. With model_type smart-topology: 'meshy-t2' (the default there) or 'meshy-t2.5' (newest, sharper detail for game assets). | |
| topology | No | quad or triangle (default). | |
| auto_size | No | AI-estimate the real-world height and resize to it (default false). | |
| file_path | No | Absolute path to a local .jpg/.jpeg/.png/.webp; the server encodes it. | |
| image_url | No | Public image URL. For local files use file_path. | |
| origin_at | No | 'bottom' or 'center' (default bottom with auto_size). | |
| pose_mode | No | 'a-pose' or 't-pose'; use 't-pose' when the model will be rigged or animated. | |
| enable_pbr | No | Also make metallic/roughness/normal maps. Not with texture_model meshy-n1. | |
| hd_texture | No | Deprecated: use texture_resolution '4k'. | |
| model_type | No | standard (default); smart-topology (ai_model meshy-t2 or meshy-t2.5): a clean, part-separated, triangle-only mesh made directly at target_polycount, ignoring remesh/decimation. lowpoly (Meshy T1) is retired: use smart-topology with meshy-t2.5. | |
| ultra_mode | No | Deprecated: use geometry_resolution '2k'. | |
| input_task_id | No | A SUCCEEDED text-to-image / image-to-image task with exactly one image, used as the input. | |
| should_remesh | No | Remesh to target_polycount / topology (default false). | |
| symmetry_mode | No | Deprecated: has no effect. | |
| texture_model | No | Texture model, picked apart from the geometry: meshy-7 (PBR, 2K/4K/8K), meshy-n1 (2K base color from the input image, or texture_image_url as the front view; no texture_prompt, enable_pbr, 4k/8k, remove_lighting or quad remesh), meshy-6-lite (2K, lowest cost; no remove_lighting). Omit for the geometry's default: meshy-7 (meshy-7.1, latest, meshy-t2, meshy-t2.5), meshy-6 (meshy-6), meshy-6-lite (meshy-6-lite). Same price whichever; ignored with should_texture false. | |
| should_texture | No | Generate textures (default true); false gives a cheaper untextured mesh. | |
| target_formats | No | Formats to produce (default: all but 3mf; list '3mf' to get it). Fewer formats finish faster. | |
| texture_prompt | No | Text to guide texturing (max 800 characters). Not with texture_model meshy-n1. | |
| alpha_thumbnail | No | Also return a transparent-background preview (alpha_thumbnail_url). | |
| decimation_mode | No | Adaptive decimation 1 (ultra) – 4 (low); overrides target_polycount. | |
| remove_lighting | No | Remove highlights/shadows from the base color (Meshy 6 texture model only: ai_model meshy-6 without texture_model; API default true there). Not true with texture_model meshy-n1 / meshy-6-lite. | |
| response_format | No | markdown (default) or json | markdown |
| target_polycount | No | Standard: remesh target 100–300,000, needs should_remesh true. Smart Topology: meshy-t2 100–15,000 (default 4,000), meshy-t2.5 100–30,000 (default 15,000). | |
| image_enhancement | No | Optimize the input image (meshy-6/7.1/latest); false keeps deliberate styling. | |
| texture_image_url | No | Image URL to guide texturing. With texture_model meshy-n1, the front view it textures from. | |
| texture_resolution | No | Base color texture: 2k (default), 4k or 8k (+5 credits; PBR maps stay 4K, no emission map). 4k/8k need the meshy-7 or meshy-6 texture model: not meshy-6-lite or meshy-n1. | |
| geometry_resolution | No | Ultra geometry pass: standard (default), 2k or 4k (finest); meshy-7.1/latest with model_type standard only, +5 credits. | |
| multi_view_thumbnails | No | Also return front/back/left/right thumbnails. | |
| save_pre_remeshed_model | No | Also keep the GLB from before remeshing (with should_remesh). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | ||
| message | Yes | ||
| task_id | Yes | ||
| estimated_time | Yes |