API reference · patina
patina/material
Integrate this model through SandBase's unified API, with production-ready schemas and examples.
Production endpoint
Send your first request
OpenAI-compatible endpoint with unified authentication and usage tracking.
POST
https://api.sandbase.ai/v1/runModel ID
patina/material01
Input Schema
13 parameters · 2 required · 11 optional
| Parameter | Type | Required | Description |
|---|---|---|---|
image | string | Required | URL of an input image for image-to-image or inpainting. When provided without mask_url, performs image-to-image; with mask_url, performs inpainting. |
prompt | string | Required | The text prompt describing the material/texture to generate. |
maps | string[] | Optional | Which PBR maps to predict. Deselect all to skip PBR estimation entirely. Defaults to all five. · Default: ["basecolor","normal","roughness","metalness","height"] |
mask | string | Optional | URL of a mask image for inpainting. White regions are regenerated, black regions are preserved. Requires image_url. |
seed | integer | Optional | Random seed for reproducible generation. |
strength | number | Optional | How much to transform the input image. Only used when image_url is provided. · Max: 1 · Default: 0.6 |
tile_size | integer | Optional | Tile size in latent space (64 = 512px, 128 = 1024px). · Min: 32 · Max: 256 · Default: 128 |
tile_stride | integer | Optional | Tile stride in latent space. · Min: 16 · Max: 128 · Default: 64 |
tiling_mode | string | Optional | Tiling direction: 'both' (omnidirectional), 'horizontal', or 'vertical'. · Options: both, horizontal, vertical · Default: "both" bothhorizontalvertical |
aspect_ratio | string | Optional | The aspect ratio of the generated image. · Options: 21:9, 16:9, 3:2, 4:3, 5:4, 1:1, 4:5, 3:4, 2:3, 9:16 21:916:93:24:35:41:14:53:42:39:16 |
output_format | string | Optional | Output image format for textures and PBR maps. · Options: jpeg, png · Default: "png" jpegpng |
upscale_factor | integer | Optional | Upscale factor for predicted PBR maps via SeedVR seamless upscaling. 0 = no upscaling, 2 = 2× resolution, 4 = 4× resolution. The base texture image is not upscaled. · Options: 0, 2, 4 · Default: 0 024 |
num_inference_steps | integer | Optional | Number of denoising steps for texture generation. · Min: 1 · Max: 8 · Default: 8 |
02
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
03
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": "patina/material",
"maps": [
"basecolor",
"normal",
"roughness",
"metalness",
"height"
],
"prompt": "mossy stone wall",
"strength": 0.6,
"tile_size": 128,
"tile_stride": 64,
"tiling_mode": "both",
"output_format": "png",
"upscale_factor": 0,
"num_inference_steps": 8
}'
# Step 2: Poll result (replace <id>)
curl https://api.sandbase.ai/v1/run/<id> \
-H "Authorization: Bearer YOUR_API_KEY"
