Generate 3D Model from Image
meshy_image_to_3dGenerate a 3D model from a single image, textured by default, with options for bare mesh, PBR maps, 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: meshy-7.1 / latest / meshy-6 20 mesh only, 30 textured, 35 at 8K; meshy-6-lite 5 / 15; meshy-t2 / meshy-t2.5 5 / 15 / 20 at 8K; 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)
Example: { file_path: "/path/to/character.png", 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); 'meshy-t1' is deprecated. | |
| 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. | |
| 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 is deprecated (billed like meshy-6, retires 2026-10-30). | |
| 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. | |
| 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). | |
| 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 only; API default true there). | |
| 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. | |
| texture_resolution | No | Base color texture: 2k (default), 4k or 8k (+5 credits; PBR maps stay 4K, no emission map). 4k/8k not on meshy-6-lite. | |
| 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 |