# Tripo 2.5 Multiview — API Reference Model ID: `model_tripo-v2-5-multiview-to-3d` --- ## Authentication - **API_KEY** and **API_SECRET** are found in your [Scenario Project Settings](https://app.scenario.com/team&tab=api_keys) under API Keys. - Set them as environment variables `SCENARIO_SDK_API_KEY` and `SCENARIO_SDK_API_SECRET` — both SDKs pick them up by default. - For raw HTTP (cURL), use Basic Auth: `Authorization: Basic base64(":")`. ### Install the SDK - JavaScript / TypeScript: `npm install @scenario-labs/sdk` - Python: `pip install scenario-sdk` --- ## Generate **Endpoint:** `POST https://api.cloud.scenario.com/v1/generate/custom/model_tripo-v2-5-multiview-to-3d` ### Parameters | Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | `frontImage` | assetId | yes | - | Front view image (0 deg). Required for multiview mode. Provide with at least one of left, back, right. | | `leftImage` | assetId | - | - | Left view image (90 deg — character's left arm side). | | `backImage` | assetId | - | - | Back view image (180 deg). | | `rightImage` | assetId | - | - | Right view image (270 deg). | | `texture` | boolean | - | `true` | Enable texturing. Set to false for a model without textures. | | `textureQuality` | string | - | `standard` | Texture quality level. 'Detailed' gives HD quality textures. | | `textureAlignment` | string | - | `original_image` | Determines the prioritization of texture alignment in the 3D model. | | `textureSeed` | number | - | - | Random seed for texture generation. Using the same seed will produce identical textures. | | `orientation` | string | - | `default` | Set orientation to 'Align Image' will automatically rotate the model to align the original image. | | `pbr` | boolean | - | `true` | Enable PBR generation. Default value is True. If this option is set to True, texture parameters will be ignored. | | `faceLimit` | number | - | - | Maximum face count. Adaptive if unset. With Smart Low Poly: 1,000–20,000 (500–10,000 if Quad is also enabled). Otherwise capped at 500,000. Quad alone caps face limit at 150,000. | | `autoSize` | boolean | - | `false` | Automatically scale the model to real-world dimensions, with the unit in meters. | | `quad` | boolean | - | `false` | Enable quad mesh output (FBX format). When Smart Low Poly is off, face limit is capped at 150,000. When Smart Low Poly is on and Face Limit is unset, defaults to 10,000. | | `smartLowPoly` | boolean | - | `false` | Generate hand-crafted low-poly topology. When enabled and Face Limit is set: 1,000–20,000 (500–10,000 if Quad is also enabled). | | `generateParts` | boolean | - | `false` | Generate segmented 3D model parts. Incompatible with texture, pbr, and quad. | | `seed` | number | - | - | Random seed for model generation. The seed controls the geometry generation process, ensuring identical models when the same seed is used. | ### Example Requests **cURL** ```bash curl -X POST "https://api.cloud.scenario.com/v1/generate/custom/model_tripo-v2-5-multiview-to-3d" \ -H "Authorization: Basic $(echo -n ':' | base64)" \ -H "Content-Type: application/json" \ --data-binary @- <<'EOF' { "frontImage": "", "texture": true, "textureQuality": "standard", "textureAlignment": "original_image", "orientation": "default", "pbr": true, "autoSize": false, "quad": false, "smartLowPoly": false, "generateParts": false } EOF ``` **Python** ```python import os from scenario_sdk import Scenario client = Scenario( api_key=os.environ.get("SCENARIO_SDK_API_KEY"), api_secret=os.environ.get("SCENARIO_SDK_API_SECRET"), ) body = { "frontImage": "", "texture": True, "textureQuality": "standard", "textureAlignment": "original_image", "orientation": "default", "pbr": True, "autoSize": False, "quad": False, "smartLowPoly": False, "generateParts": False } response = client.generate.run_model( model_id="model_tripo-v2-5-multiview-to-3d", body=body, ) print(response) ``` **JavaScript** ```javascript import Scenario from "@scenario-labs/sdk"; const client = new Scenario({ apiKey: process.env["SCENARIO_SDK_API_KEY"], apiSecret: process.env["SCENARIO_SDK_API_SECRET"], }); const body = { "frontImage": "", "texture": true, "textureQuality": "standard", "textureAlignment": "original_image", "orientation": "default", "pbr": true, "autoSize": false, "quad": false, "smartLowPoly": false, "generateParts": false }; const response = await client.generate.runModel("model_tripo-v2-5-multiview-to-3d", { body }); console.info(response); ``` --- ## Retrieve Results After submitting a generation request, you receive a `jobId`. Poll the job until `job.status` is `"success"`. The generated asset IDs are in `job.metadata.assetIds`. **Endpoint:** `GET https://api.cloud.scenario.com/v1/jobs/{jobId}` ### Example Requests **cURL** ```bash curl -X GET "https://api.cloud.scenario.com/v1/jobs/" \ -H "Authorization: Basic $(echo -n ':' | base64)" ``` **Python** ```python job = client.jobs.retrieve(job_id="") print(job.status) print(job.metadata.asset_ids) ``` **JavaScript** ```javascript // Option 1 — wait on the response from runModel using the SDK helper const completed = await response.job.wait(); console.info(completed.status); console.info(completed.metadata?.assetIds); // Option 2 — retrieve a job by its ID const job = await client.jobs.retrieve(""); console.info(job.status); console.info(job.metadata?.assetIds); ``` **Example response:** ```json { "job": { "jobId": "job_abc123", "status": "success", "metadata": { "assetIds": [ "asset_abc123" ] } } } ``` > **Important:** Generated asset URLs are **temporary** and expire after a short period. Download and store any images you wish to keep before the URL expires. More info: [Content Delivery Network (CDN)](https://docs.scenario.com/get-started/documentation/content-delivery-network-cdn). --- *Generated by [Scenario](https://app.scenario.com)*