Image to 3D
Transform 2D images into high-quality 3D assets. Triverse offers two primary workflows: generating a fully textured model or generating a mesh-only geometry.
Image to Textured Model
Generates a complete 3D model with high-fidelity textures based on a single reference image.
Endpoint
POST /tasks/image-to-model
Request Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
image_file | String | Required | The file_key or public URL of the reference image. |
model_version | String | v2 | The AI model version to use for generation. |
polygon_limit | Integer | 1,000,000 | Maximum number of polygons (Range: 1k - 10M). |
texture_size | Integer | 1024 | Resolution of the generated texture (Range: 1024 - 4096). |
Example Request
cURL
curl -X 'POST' \
'https://api.triverse.ai/api/v1/tasks/image-to-model' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <YOUR_API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"image_file": "tasks/uid_64e96053-76ab-4e9c-bd82-2def925b53bc/20250805/reference.png",
"model_version": "v2",
"polygon_limit": 1000000,
"texture_size": 1024
}'JavaScript
const response = await fetch(
"https://api.triverse.ai/api/v1/tasks/image-to-model",
{
method: "POST",
headers: {
Accept: "application/json",
Authorization: "Bearer <YOUR_API_KEY>",
"Content-Type": "application/json",
},
body: JSON.stringify({
image_file:
"tasks/uid_64e96053-76ab-4e9c-bd82-2def925b53bc/20250805/reference.png",
model_version: "v2",
polygon_limit: 1000000,
texture_size: 1024,
}),
}
);
const data = await response.json();
console.log(data);Python
import requests
response = requests.post(
"https://api.triverse.ai/api/v1/tasks/image-to-model",
headers={
"Accept": "application/json",
"Authorization": "Bearer <YOUR_API_KEY>",
},
json={
"image_file": "tasks/uid_64e96053-76ab-4e9c-bd82-2def925b53bc/20250805/reference.png",
"model_version": "v2",
"polygon_limit": 1000000,
"texture_size": 1024,
},
)
print(response.json())Image to Geometry (Mesh Only)
Generates a pure geometric mesh without textures. This is ideal for workflows where you intend to apply custom materials or perform further sculpting.
Endpoint
POST /tasks/image-to-mesh
Request Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
image_file | String | Required | The file_key or public URL of the reference image. |
model_version | String | v2 | The AI model version to use. |
polygon_limit | Integer | 1,000,000 | Target polygon count for the mesh. |
Response
All task creation endpoints return a TaskCreationResponsePayload containing a task_uuid. Use this ID to monitor the task status via the Task Status endpoint or WebSockets.
{
"code": 0,
"message": "success",
"data": {
"task_uuid": "92483a80-236c-4889-9a95-4c90bb64dfd8",
"status": "PENDING",
"costCredits": 120
}
}Example Request
cURL
curl -X 'POST' \
'https://api.triverse.ai/api/v1/tasks/image-to-mesh' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <YOUR_API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"image_file": "tasks/uid_64e96053-76ab-4e9c-bd82-2def925b53bc/20250805/reference.png",
"polygon_limit": 750000
}'JavaScript
const response = await fetch(
"https://api.triverse.ai/api/v1/tasks/image-to-mesh",
{
method: "POST",
headers: {
Accept: "application/json",
Authorization: "Bearer <YOUR_API_KEY>",
"Content-Type": "application/json",
},
body: JSON.stringify({
image_file:
"tasks/uid_64e96053-76ab-4e9c-bd82-2def925b53bc/20250805/reference.png",
polygon_limit: 750000,
}),
}
);
const data = await response.json();
console.log(data);Python
import requests
response = requests.post(
"https://api.triverse.ai/api/v1/tasks/image-to-mesh",
headers={
"Accept": "application/json",
"Authorization": "Bearer <YOUR_API_KEY>",
},
json={
"image_file": "tasks/uid_64e96053-76ab-4e9c-bd82-2def925b53bc/20250805/reference.png",
"polygon_limit": 750000,
},
)
print(response.json())