TRIVERSE Docs

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

ParameterTypeDefaultDescription
image_fileStringRequiredThe file_key or public URL of the reference image.
model_versionStringv2The AI model version to use for generation.
polygon_limitInteger1,000,000Maximum number of polygons (Range: 1k - 10M).
texture_sizeInteger1024Resolution 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

ParameterTypeDefaultDescription
image_fileStringRequiredThe file_key or public URL of the reference image.
model_versionStringv2The AI model version to use.
polygon_limitInteger1,000,000Target 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())

On this page