Skip to main content
tripo3d avatar

Tripo v2.5 Image-to-3D API

tripo3d/tripo/v2.5/image-to-3d

Turn a single object or product photo into a downloadable, textured 3D mesh (GLB) ready for games, AR, and product viewers.

0.3

Model Input

Input

The photo of the object, product, character, or prop to reconstruct into a 3D model.

Additional Settings

Customize your input with more control.

Caps the number of faces (triangles) on the output mesh. Leave unset to let mesh density adapt to the object.

Random seed controlling geometry generation. Reuse the same seed to reproduce the same shape.

Random seed controlling texture generation. Reuse with the same seed to keep the shape but vary or reproduce textures.

Whether to prioritize aligning textures to the original image or to the generated geometry.

Automatically scale the model to real-world dimensions in meters.

Set to align_image to rotate the model so it matches the input image's pose; default keeps the canonical orientation.

You need to be logged in to run this model and view results.
Log in

Model Output

Output

Unsupported file type

Generated in 57.292 seconds
Logs (1 lines)

Model Example Requests

Examples

Example output 1Example output 2

Tripo v2.5 Image-to-3D API

Tripo v2.5 Image-to-3D is a image-to-3d AI model by tripo3d. On ModelRunner it runs through a REST API or via MCP from any AI assistant, at $0.3 per output.

POST https://queue.modelrunner.run/tripo3d/tripo/v2.5/image-to-3d

cURL

# Submit a request to the queue. Input fields go at the top level of the
# body. The optional reserved "metadata" object holds your own flat string
# tags — stored on the request, never sent to the model; filter later with
# GET https://queue.modelrunner.run/requests?metadata=<url-encoded JSON>.
curl -X POST https://queue.modelrunner.run/tripo3d/tripo/v2.5/image-to-3d \
  -H "Authorization: Key $MRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "auto_size": false,
    "image_url": "https://media.modelrunner.ai/vAtzF0EatRy34GsA-photo-1503602642458-232111445657",
    "orientation": "default",
    "texture_alignment": "original_image",
    "metadata": {
      "project": "my-project"
    }
  }'
# → { "request_id": "...", "status_url": "...", "response_url": "..." }

# Poll status_url until "COMPLETED", then fetch the result
curl "https://queue.modelrunner.run/tripo3d/tripo/v2.5/image-to-3d/requests/$REQUEST_ID/status" \
  -H "Authorization: Key $MRUN_API_KEY"
curl "https://queue.modelrunner.run/tripo3d/tripo/v2.5/image-to-3d/requests/$REQUEST_ID" \
  -H "Authorization: Key $MRUN_API_KEY"

JavaScript

import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("tripo3d/tripo/v2.5/image-to-3d", {
  input: {
    "auto_size": false,
    "image_url": "https://media.modelrunner.ai/vAtzF0EatRy34GsA-photo-1503602642458-232111445657",
    "orientation": "default",
    "texture_alignment": "original_image"
  },
});
console.log(result);

Python

import os
import requests

headers = {"Authorization": f"Key {os.environ['MRUN_API_KEY']}"}

submitted = requests.post(
    "https://queue.modelrunner.run/tripo3d/tripo/v2.5/image-to-3d",
    headers=headers,
    json={
      "auto_size": false,
      "image_url": "https://media.modelrunner.ai/vAtzF0EatRy34GsA-photo-1503602642458-232111445657",
      "orientation": "default",
      "texture_alignment": "original_image"
    },
).json()

# Poll submitted["status_url"] until "COMPLETED", then:
result = requests.get(submitted["response_url"], headers=headers).json()

Input parameters

NameTypeRequiredDescription
image_urlstring (uri)yesThe photo of the object, product, character, or prop to reconstruct into a 3D model.
face_limitintegernoCaps the number of faces (triangles) on the output mesh. Leave unset to let mesh density adapt to the object.
seedintegernoRandom seed controlling geometry generation. Reuse the same seed to reproduce the same shape.
texture_seedintegernoRandom seed controlling texture generation. Reuse with the same seed to keep the shape but vary or reproduce textures.
texture_alignmentenumnoWhether to prioritize aligning textures to the original image or to the generated geometry. Default: "original_image".
auto_sizebooleannoAutomatically scale the model to real-world dimensions in meters. Default: false.
orientationenumnoSet to align_image to rotate the model so it matches the input image's pose; default keeps the canonical orientation. Default: "default".

Machine-readable: OpenAPI schema · llms.txt

Use Tripo v2.5 Image-to-3D from Claude & Cursor (MCP)

Point Claude Code, Claude Desktop, Cursor, or any MCP client at the ModelRunner MCP server and Tripo v2.5 Image-to-3D becomes a tool your assistant can call directly — it authorizes via OAuth (no API key in config) and runs this model with the run_model tool using the endpoint tripo3d/tripo/v2.5/image-to-3d.

MCP client config (Claude Desktop, Cursor)

{
  "mcpServers": {
    "modelrunner": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.modelrunner.run/mcp"]
    }
  }
}

Claude Code

claude mcp add --transport http modelrunner https://mcp.modelrunner.run/mcp

Then ask your assistant, for example: “Run tripo3d/tripo/v2.5/image-to-3d on ModelRunner to generate 3d”. MCP setup guide.

Model Details

Model Details

Tripo v2.5 Image-to-3D reconstructs a complete, textured 3D model from one photo of an object, product, character, or prop. You provide a single image and it returns a downloadable GLB mesh with standard color textures baked in — geometry plus material, not just a point cloud or silhouette. The output is a regular `.glb` file you can drop into a game engine, AR viewer, 3D editor, or product-configurator, so it suits asset creation, e-commerce 3D previews, and rapid prototyping from reference art.

## Best for - Turning a single product or packshot photo into a 3D asset for web/AR product viewers - Generating game-ready or render-ready meshes of objects, props, and characters from concept art - Quickly prototyping a 3D model when you have one clean reference image and no 3D source - Building libraries of GLB assets from a catalog of object photos

## Choose another model when - You want to animate or render a video from your image rather than a 3D mesh — use an image-to-video model - You only need a 2D edited or restyled image — use an image-to-image model - You need a printable, watertight, or CAD-grade solid for manufacturing — single-image reconstruction is for visual assets, not engineering tolerances

## Tips - Use a clear, well-lit photo with the subject centered and the background simple; clutter and occlusion degrade the reconstruction - A roughly front-facing or three-quarter view of the whole object reconstructs best - Set `orientation` to `align_image` if you want the model rotated to match the input photo's pose instead of the default canonical orientation - Use `face_limit` to cap mesh density when you need a lighter asset; leave it unset to let density adapt to the object - Pass a fixed `seed` (geometry) or `texture_seed` (textures) to reproduce a result, or vary `texture_seed` with the same `seed` to keep the shape but retexture

## Limitations - Reconstructs the visible side faithfully; unseen surfaces are inferred and may be approximate - Thin structures, transparent or highly reflective materials, and very busy scenes can lose fidelity - Output is a textured visual mesh, not a precise measured or watertight solid

The generated 3D model is returned as a GLB file URL.

```js import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("tripo3d/tripo/v2.5/image-to-3d", { input: { image_url: "https://media.modelrunner.ai/your-object-photo.jpg", orientation: "align_image", }, }); ```