Skip to content

PATINA · Material

Integrate

Model id patina/material
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/patina/material?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Files like the example: $0.08 80 API credits your files are measured before the run Run it on this page

Get API key
Open model Text to Image #material#pbr#displacement#metalness

Text-to-texture generator that outputs tileable images plus PBR maps, with optional img2img and inpainting

Open model · Image

Your first result goes here

Build a request below and run it with your API key. Outputs are copied to our storage, kept forever or 7 days for free.

Build a request

Controls are generated from the model schema. The code and the price update as you change them.

•required

Text description of the material or texture to create.

image_size default square_hd

Pixel dimensions of the resulting texture.

upscale_factor default 0

SeedVR seamless upscaling factor affecting predicted PBR maps but leaving the base texture at its original resolution. Select 2 for double resolution, 4 for quadruple resolution, or 0 to disable upscaling.

num_images default 1

Count of texture images to create.

Advanced image · mask · tiling_mode · output_format · num_inference_steps · tile_size · tile_stride · strength · seed · enable_prompt_expansion · enable_safety_checker · maps
image_url
Drop a file, or

Source image URL, used for inpainting if mask_url accompanies it and for image-to-image processing otherwise.

mask_url
Drop a file, or

Inpainting mask URL supplied alongside the required image_url. The mask retains black areas unchanged and regenerates white areas.

tiling_mode default both

Direction of tiling: 'both' for omnidirectional tiling, 'horizontal', or 'vertical'.

output_format default png

Image file format for output textures and PBR maps.

default 8

Denoising step count used to generate textures.

default 128

Latent-space tile size, where 64 represents 512px and 128 represents 1024px. On each tiled axis, the generated image's dimension sets an automatic upper bound.

default 64

Set the stride between latent-space tiles; an automatic cap prevents it from exceeding half of the effective tile size.

default 0.6

Transformation strength applied only to an image supplied through image_url; otherwise unused.

Random seed that makes generation reproducible.

default ["basecolor","normal"...

PBR maps selected for prediction, with all five selected by default. Selecting none skips PBR estimation entirely.

POST /run/patina/material?wait=20 quote → $0.08
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/patina/material?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Run this request

Your key stays in this browser: it is sent only to the Doitong API and saved (localStorage) only if you tick Remember. Get an API key

About PATINA · Material

Creates tileable textures from a prompt and predicts PBR maps: basecolor, normal, roughness, metalness and height. Use `tiling_mode` for both, horizontal or vertical tiling, and `upscale_factor` of 0, 2 or 4 to enlarge the maps. Passing `image_url` enables image-to-image, and adding `mask_url` enables inpainting. Up to 4 images per request.

Parameters

Send either the canonical name or the native name, not both. Canonical names

NameType DefaultAllowed Description
promptrequired
Typestring
Text description of the material or texture to create.
image_sizeoptional
Typeobject
Defaultsquare_hd
square_hdsquareportrait_4_3portrait_16_9landscape_4_3landscape_16_9
Pixel dimensions of the resulting texture.
num_inference_stepsoptional
Typeinteger
Default8
1 – 8
Denoising step count used to generate textures.
seedoptional
Typeinteger | null
Random seed that makes generation reproducible.
num_imagesoptional num_outputs
Typeinteger
Default1
1 – 4
Count of texture images to create.
enable_prompt_expansionoptional
Typeboolean
Defaulttrue
Enables LLM-based prompt expansion to add detail.
enable_safety_checkeroptional
Typeboolean
Defaulttrue
Enables safety checking of generated images.
tiling_modeoptional
Typeenum
Defaultboth
bothhorizontalvertical
Direction of tiling: 'both' for omnidirectional tiling, 'horizontal', or 'vertical'.
tile_sizeoptional
Typeinteger
Default128
32 – 256
Latent-space tile size, where 64 represents 512px and 128 represents 1024px. On each tiled axis, the generated image's dimension sets an automatic upper bound.
tile_strideoptional
Typeinteger
Default64
16 – 128
Set the stride between latent-space tiles; an automatic cap prevents it from exceeding half of the effective tile size.
image_urloptional image
Typeurl · image
Source image URL, used for inpainting if mask_url accompanies it and for image-to-image processing otherwise.
mask_urloptional mask
Typeurl · image
Inpainting mask URL supplied alongside the required image_url. The mask retains black areas unchanged and regenerates white areas.
strengthoptional
Typenumber
Default0.6
≤ 1> 0
Transformation strength applied only to an image supplied through image_url; otherwise unused.
mapsoptional
Typeenum[]
Default["basecolor","normal","roughness","metalness","height"]
PBR maps selected for prediction, with all five selected by default. Selecting none skips PBR estimation entirely.
upscale_factoroptional
Typeenum
Default0
024
SeedVR seamless upscaling factor affecting predicted PBR maps but leaving the base texture at its original resolution. Select 2 for double resolution, 4 for quadruple resolution, or 0 to disable upscaling.
output_formatoptional
Typeenum
Defaultpng
jpegpngwebp
Image file format for output textures and PBR maps.
required Canonical name, also accepted

File parameters take a public https:// URL, a data: URI up to 10 MB, or the file_url of an upload. Files

Output

GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "patina/material",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 80,
    "usd": "0.08",
    "charged": 80,
    "refunded": 0
  },
  "input": {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  },
  "output": {
    "images": [
      {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200,
        "width": 1024,
        "height": 768
      }
    ],
    "seed": 42,
    "prompt": "string",
    "timings": {}
  },
  "outputs": [
    {
      "type": "image",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_size": 1843200,
      "width": 1024,
      "height": 768,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
Your files, your choiceEvery outputs[].url is a copy on our storage: kept forever (paid per GB-month) or 7 days for free, by your account setting or ?storage=.
Same shape on every modeltype, url, content_type, width, height and duration, for images, video and audio alike. output is the model’s own result object.
Fields of output
images
array of anyOutput images include PBR material maps predicted by PATINA alongside tileable textures generated by z-image.
seed
integerSeed applied when generating textures.
prompt
stringTexture-generation prompt, including any expansion applied.
timings
objectTiming breakdown covering the full process, in seconds.

More models: Text to Image

For AI agents: this page as Markdown is at https://doitong.com/en-US/developers/models/patina/material.md. All models and guides: https://doitong.com/developers/llms.txt