trellis/trellis-2
Trellis 2 is trellis's image-to-3D AI model. Transform photographs into production-ready 3D meshes with accurate geometry and texture mapping.
PNG, JPEG, WebP, or GIF · 20 MiB maximum
Example output — click Run to generate your own
Send your first request
OpenAI-compatible endpoint with unified authentication and usage tracking.
https://api.sandbase.ai/v1/runtrellis/trellis-2Input Schema
30 parameters · 1 required · 29 optional
| Parameter | Type | Required | Description |
|---|---|---|---|
image | string | Required | URL of the input image to convert to 3D |
seed | integer | Optional | Random seed for reproducibility |
remesh | boolean | Optional | Rebuild the mesh topology for cleaner triangles. Slower but usually produces better results for downstream use (animation, 3D printing, etc). · Default: true |
resolution | integer | Optional | Output resolution; higher is slower but more detailed · Options: 512, 1024, 1536 · Default: 1024 51210241536 |
remesh_band | number | Optional | Controls how far remeshing can move vertices from the original surface. Higher values allow more smoothing but may lose fine details. · Min: 0 · Max: 4 · Default: 1 |
ss_rescale_t | number | Optional | Controls noise schedule sharpness for structure generation. Higher values produce sharper transitions. · Min: 1 · Max: 6 · Default: 5 |
texture_size | integer | Optional | Resolution of the texture image baked onto the mesh. Higher values capture finer surface details but produce larger files. · Options: 1024, 2048, 4096 · Default: 2048 102420484096 |
remesh_project | number | Optional | How much to project remeshed vertices back onto the original surface. 0 = no projection (smoother), 1 = full projection (preserves detail). · Min: 0 · Max: 1 · Default: 0 |
decimation_target | integer | Optional | Target number of vertices in the final mesh. Lower values produce smaller files but less detail. 500k is good for most uses, reduce to 20k-50k for web/mobile. · Min: 5000 · Max: 2000000 · Default: 500000 |
ss_sampling_steps | integer | Optional | Number of denoising steps for the initial structure. More steps = slower but potentially higher quality. · Min: 1 · Max: 50 · Default: 12 |
tex_slat_rescale_t | number | Optional | Controls noise schedule sharpness for texture generation. Higher values produce sharper texture details. · Min: 1 · Max: 6 · Default: 3 |
ss_guidance_rescale | number | Optional | Dampens artifacts from high guidance in stage 1. Lower values allow stronger guidance effects, higher values stabilize the output. · Min: 0 · Max: 1 · Default: 0.7 |
shape_slat_rescale_t | number | Optional | Controls noise schedule sharpness for shape refinement. Higher values produce sharper geometric details. · Min: 1 · Max: 6 · Default: 3 |
ss_guidance_strength | number | Optional | How closely the initial 3D structure follows the input image. Higher values produce more faithful but potentially noisier results. · Min: 0 · Max: 10 · Default: 7.5 |
tex_slat_sampling_steps | integer | Optional | Number of denoising steps for texture generation. More steps = slower but potentially cleaner textures. · Min: 1 · Max: 50 · Default: 12 |
ss_guidance_interval_end | number | Optional | Fraction of the denoising process at which classifier-free guidance ends for stage 1 (sparse structure). Must be >= ss_guidance_interval_start. · Min: 0 · Max: 1 · Default: 1 |
shape_slat_sampling_steps | integer | Optional | Number of denoising steps for shape refinement. More steps = slower but potentially smoother geometry. · Min: 1 · Max: 50 · Default: 12 |
tex_slat_guidance_rescale | number | Optional | Dampens artifacts from high guidance in the texture stage. Increase if textures look noisy or have color banding. · Min: 0 · Max: 1 · Default: 0 |
uv_unwrap_smooth_strength | number | Optional | Smoothing strength applied to UV chart boundaries. Higher values reduce visible seams but may introduce UV distortion. · Min: 0 · Max: 10 · Default: 1 |
ss_guidance_interval_start | number | Optional | Fraction of the denoising process at which classifier-free guidance starts for stage 1 (sparse structure). Guidance is only applied between interval_start and interval_end; outside this window the model runs unguided. Lower values apply guidance earlier. · Min: 0 · Max: 1 · Default: 0.6 |
tex_slat_guidance_strength | number | Optional | How closely the texture follows the input image colors. Higher values produce more vivid but potentially oversaturated textures. · Min: 0 · Max: 10 · Default: 1 |
shape_slat_guidance_rescale | number | Optional | Dampens artifacts from high guidance in the shape stage. Increase if you see noisy geometry. · Min: 0 · Max: 1 · Default: 0.5 |
uv_unwrap_global_iterations | integer | Optional | Number of global clustering passes during UV chart computation. More passes produce more balanced charts. · Min: 1 · Max: 10 · Default: 1 |
uv_unwrap_refine_iterations | integer | Optional | Number of local refinement passes during UV chart computation. Higher values produce cleaner chart boundaries at the cost of additional UV-unwrap time. · Min: 0 · Max: 10 · Default: 0 |
shape_slat_guidance_strength | number | Optional | How closely the detailed geometry follows the input image. Higher values add more detail but may introduce noise. · Min: 0 · Max: 10 · Default: 7.5 |
uv_unwrap_angle_threshold_deg | number | Optional | Maximum angle (in degrees) between adjacent face normals allowed within a single UV chart. Lower values produce more charts with less distortion; higher values produce fewer, larger charts with potentially more stretching. · Min: 0 · Max: 180 · Default: 90 |
tex_slat_guidance_interval_end | number | Optional | Fraction of the denoising process at which classifier-free guidance ends for stage 3 (texture). Must be >= tex_slat_guidance_interval_start. · Min: 0 · Max: 1 · Default: 0.9 |
shape_slat_guidance_interval_end | number | Optional | Fraction of the denoising process at which classifier-free guidance ends for stage 2 (shape refinement). Must be >= shape_slat_guidance_interval_start. · Min: 0 · Max: 1 · Default: 1 |
tex_slat_guidance_interval_start | number | Optional | Fraction of the denoising process at which classifier-free guidance starts for stage 3 (texture). Guidance is only applied between interval_start and interval_end. · Min: 0 · Max: 1 · Default: 0.6 |
shape_slat_guidance_interval_start | number | Optional | Fraction of the denoising process at which classifier-free guidance starts for stage 2 (shape refinement). Guidance is only applied between interval_start and interval_end. · Min: 0 · Max: 1 · Default: 0.6 |
Output Schema
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier for the generation task |
status | string | Task status: pending, running, completed, failed, timeout |
model | string | Model used for the generation |
outputs | array | Array of output items |
outputs[].url | string | URL of the generated artifact |
outputs[].content_type | string | MIME type (e.g. image/png, video/mp4) |
error | object | null | Error details if failed, null on success |
error.type | string | Machine-readable error type code |
error.message | string | Human-readable error description |
Async Workflow
This model uses asynchronous execution. Submit a request and poll for the result.
- Submit — POST to /v1/run, receive an
id - Poll — GET /v1/run/{id} until status is
completed,failed, ortimeout - Retrieve — Read
outputsfrom the completed response
Code Examples
Ready-to-run snippets
# Step 1: Submit
curl -X POST https://api.sandbase.ai/v1/run \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "trellis/trellis-2",
"image": "https://static.sandbase.ai/examples/trellis/trellis-2/input_image_0.png",
"remesh": true,
"resolution": 1024,
"remesh_band": 1,
"ss_rescale_t": 5,
"texture_size": 2048,
"remesh_project": 0,
"decimation_target": 500000,
"ss_sampling_steps": 12,
"tex_slat_rescale_t": 3,
"ss_guidance_rescale": 0.7,
"shape_slat_rescale_t": 3,
"ss_guidance_strength": 7.5,
"tex_slat_sampling_steps": 12,
"ss_guidance_interval_end": 1,
"shape_slat_sampling_steps": 12,
"tex_slat_guidance_rescale": 0,
"uv_unwrap_smooth_strength": 1,
"ss_guidance_interval_start": 0.6,
"tex_slat_guidance_strength": 1,
"shape_slat_guidance_rescale": 0.5,
"uv_unwrap_global_iterations": 1,
"uv_unwrap_refine_iterations": 0,
"shape_slat_guidance_strength": 7.5,
"uv_unwrap_angle_threshold_deg": 90,
"tex_slat_guidance_interval_end": 0.9,
"shape_slat_guidance_interval_end": 1,
"tex_slat_guidance_interval_start": 0.6,
"shape_slat_guidance_interval_start": 0.6,
"prompt": "a beautiful sunset over mountains"
}'
# Step 2: Poll result (replace <id>)
curl https://api.sandbase.ai/v1/run/<id> \
-H "Authorization: Bearer YOUR_API_KEY"API README
Trellis 2
Trellis 2 is designed around the trellis/trellis-2 workflow for trellis 2 work in image production. Teams can place this named operation inside review, asset preparation, and publishing pipelines while keeping the original request attached to every result. Trellis 2 is trellis's image-to-3D AI model. Transform photographs into production-ready 3D meshes with accurate geometry and texture mapping. Because trellis/trellis-2 is a separate catalog entry, evaluations should use this route’s own inputs, output expectations, and billing behavior. The endpoint is especially useful when a project has a defined transformation goal and needs a repeatable request contract instead of an ad-hoc desktop step. This is the creative remit of the exact endpoint, not a family-wide promise.
The mandatory portion is image. For example, the route documentation includes “https://static.sandbase.ai/examples/trellis/trellis-2/input_image_0.png”. Trellis 2 exposes seed, image, remesh, resolution, remesh_band, ss_rescale_t, texture_size as its documented request surface. seed controls random seed for reproducibility; image controls uRL of the input image to convert to 3D; remesh controls rebuild the mesh topology for cleaner triangles. Slower but usually produces better results for downstream use (animation, 3D printing, etc); resolution controls output resolution; higher is slower but more detailed; resolution accepts 512, 1024, 1536; remesh band controls controls how far remeshing can move vertices from the original surface. Higher values allow more smoothing but may lose fine details; ss rescale t controls controls noise schedule sharpness for structure generation. Higher values produce sharper transitions; texture size controls resolution of the texture image baked onto the mesh. Higher values capture finer surface details but produce larger files. Applications can submit that exact shape asynchronously, retain the chosen arguments in job metadata, and collect the resulting media URL for review or publishing.
Highlights
- Second-generation 3D synthesis. Trellis 2 uses the Trellis 2 route to construct a textured spatial asset from its supported visual input.
- Selectable reconstruction resolution. The documented resolution choices let teams balance output detail and request cost for the intended review stage.
- Coherent unseen surfaces. The model infers geometry outside the reference view so the result can be inspected as an object rather than a billboard.
- Material-aware presentation. Surface appearance accompanies the generated structure, giving the asset a usable visual identity before manual finishing.
Pricing
| Billing option | Price |
|---|---|
| Billing formula | params.resolution == "1024p" ? 0.3 : params.resolution == "1536p" ? 0.35 : 0.25 |
resolution=512 | $0.250000 |
resolution=1024 | $0.250000 |
resolution=1536 | $0.250000 |
When to Use
| Scenario | Why it fits |
|---|---|
| Choose Trellis 2 | Use it when the job specifically calls for trellis 2 and the route’s documented input contract matches assets already available in your workflow. |
| Keep the request reproducible | Use the required image explicitly, then record optional choices alongside the prompt for repeatable reruns. |
| Build controlled creative variations | Change one declared control at a time when comparing framing, format, duration, resolution, style, or other route-supported output decisions. |
| Integrate asynchronous delivery | Use this endpoint when an application can submit work, track completion, and collect the returned media URL instead of requiring an immediate inline artifact. |
| Validate before a large batch | Run representative prompts and source assets first, confirm the visual or audio behavior, then lock the successful request shape for scaled production. |
Prompt Guide
Lead with the subject or transformation, then add the composition, environment, style, lighting, motion, voice, or fidelity details relevant to this route. Keep every parameter inside the documented schema; the example below uses only fields declared for trellis/trellis-2.
{
"image": "https://static.sandbase.ai/examples/trellis/trellis-2/input_image_0.png",
"resolution": 512,
"texture_size": 1024
}
Technical Specs
| Specification | Details |
|---|---|
| Model ID | trellis/trellis-2 |
| Execution mode | async |
| Task type | image |
seed | integer · optional |
image | string · required |
remesh | boolean · optional |
resolution | integer · optional · choices: 512, 1024, 1536 |
remesh_band | number · optional · min 0 · max 4 |
ss_rescale_t | number · optional · min 1 · max 6 |
texture_size | integer · optional · choices: 1024, 2048, 4096 |
remesh_project | number · optional · min 0 · max 1 |
decimation_target | integer · optional · min 5000 · max 2000000 |
ss_sampling_steps | integer · optional · min 1 · max 50 |
tex_slat_rescale_t | number · optional · min 1 · max 6 |
ss_guidance_rescale | number · optional · min 0 · max 1 |
shape_slat_rescale_t | number · optional · min 1 · max 6 |
ss_guidance_strength | number · optional · min 0 · max 10 |
tex_slat_sampling_steps | integer · optional · min 1 · max 50 |
ss_guidance_interval_end | number · optional · min 0 · max 1 |
shape_slat_sampling_steps | integer · optional · min 1 · max 50 |
tex_slat_guidance_rescale | number · optional · min 0 · max 1 |
uv_unwrap_smooth_strength | number · optional · min 0 · max 10 |
ss_guidance_interval_start | number · optional · min 0 · max 1 |
tex_slat_guidance_strength | number · optional · min 0 · max 10 |
shape_slat_guidance_rescale | number · optional · min 0 · max 1 |
uv_unwrap_global_iterations | integer · optional · min 1 · max 10 |
uv_unwrap_refine_iterations | integer · optional · min 0 · max 10 |
shape_slat_guidance_strength | number · optional · min 0 · max 10 |
uv_unwrap_angle_threshold_deg | number · optional · min 0 · max 180 |
tex_slat_guidance_interval_end | number · optional · min 0 · max 1 |
shape_slat_guidance_interval_end | number · optional · min 0 · max 1 |
tex_slat_guidance_interval_start | number · optional · min 0 · max 1 |
shape_slat_guidance_interval_start | number · optional · min 0 · max 1 |

