patina/material
Material by patina - generate stunning images from text prompts with state-of-the-art AI. Supports multiple aspect ratios, styles, and high-resolution output for creative and commercial use.
PNG, JPEG, WebP, or GIF · 20 MiB maximum
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/runpatina/materialInput 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 |
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": "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"API README
PATINA Material
PATINA Material is the PATINA route for material synthesis, turning a source surface and material brief into a production-ready result while keeping the operation distinct from neighboring endpoints. Material by patina - generate stunning images from text prompts with state-of-the-art AI. Supports multiple aspect ratios, styles, and high-resolution output for creative and commercial use. The workflow is designed for creators who need the model’s specific transformation to remain visible in the request, so the source, intended change, and finished artifact can be reviewed as one coherent creative decision.
In practical use, this route exposes maps, mask, seed, image, prompt, strength, tile_size, tile_stride to shape the exact deliverable. Those controls let a team preserve the important source constraints, state subject behavior or material treatment precisely, choose supported timing or output characteristics, and reproduce successful settings across alternate takes. The result fits an iterative pipeline: establish the core brief, compare controlled variations, then pass the selected asset into editorial, design, localization, visualization, or publishing work.
Highlights
- Material-aware synthesis. Create or revise physically plausible surface material from an image and a written material brief.
- Production map output. Request the documented material-map set for downstream 3D shading rather than receiving only a flat preview.
- Seamless texture control. Use tiling mode, tile size, and stride to prepare repeatable horizontal, vertical, or two-axis textures.
- Resolution-linked enhancement. Combine inference strength with the supported 2× or 4× upscale path when the material needs more usable detail.
Pricing
| Configuration | Price |
|---|---|
| Base component | $0.010000 |
| Image area | $0.020000 per megapixel |
| Each requested map | $0.010000 per megapixel |
| 2× upscale surcharge | $0.004000 per megapixel per map |
| 4× upscale surcharge | $0.016000 per megapixel per map |
When to Use
| Scenario | Why it fits |
|---|---|
| Exact workflow fit | Choose this route when the required deliverable is material synthesis, rather than a related route with different source media. |
| Directed creative iteration | Use it when subject, motion, material, speech, framing, or finish should be expressed explicitly and compared across controlled variants. |
| Existing-asset continuity | Use it when supplied images, video, audio, references, or styles must remain the anchor for the generated result. |
| Repeatable production | Use it when successful inputs need to be saved and rerun across a campaign, asset set, localization pass, or batch. |
| Pipeline handoff | Use it when the returned artifact will move into editorial, compositing, visualization, review, storage, or publishing. |
Prompt Guide
Start with the source or subject, then describe the intended transformation, movement or behavior, camera and composition, and the desired finish. Keep media URLs reachable, use only fields documented for this exact route, and change one major control at a time when comparing results. For source-led tasks, describe what should change as well as what must remain recognizable.
{
"prompt": "mossy stone wall",
"image": "https://example.com/reference.jpg",
"aspect_ratio": "21:9"
}
Technical Specs
| Property | Value |
|---|---|
| Model ID | patina/material |
| Execution mode | async |
| Required inputs | prompt, image |
maps | array; default: ['basecolor', 'normal', 'roughness', 'metalness', 'height'] |
mask | string |
seed | integer |
image | string |
prompt | string |
strength | number; maximum: 1; default: 0.6 |
tile_size | integer; minimum: 32; maximum: 256; default: 128 |
tile_stride | integer; minimum: 16; maximum: 128; default: 64 |
tiling_mode | string; options: both, horizontal, vertical; default: both |
aspect_ratio | string; options: 21:9, 16:9, 3:2, 4:3, 5:4, 1:1, 4:5, 3:4, 2:3, 9:16 |
output_format | string; options: jpeg, png; default: png |
upscale_factor | integer; options: 0, 2, 4; default: 0 |
num_inference_steps | integer; minimum: 1; maximum: 8; default: 8 |
Related Models
patina/material/extract

