Patina Material

Patina Material

Playground

Try it on WavespeedAI!

PATINA Material generates complete seamlessly tiling PBR material sets (basecolor, normal, roughness, metalness, height) from text prompts — perfect for game engines, 3D rendering, and material libraries. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

Patina Material

Patina Material generates a complete set of seamlessly tiling PBR material maps from a text description. Describe any surface — weathered wood, cracked clay, brushed metal — and the model produces a full material map set ready for use in game engines, 3D tools, and real-time rendering pipelines.


Why Choose This?

  • Text-driven PBR generation Generate complete material map sets from a natural language description — no reference photo or manual authoring required.

  • Seamless tiling control Choose omnidirectional tiling (both), horizontal-only, or vertical-only to match your specific UV mapping and surface application needs.

  • Custom output size Specify any output resolution to match your target quality and performance requirements.

  • Production-ready output Maps are formatted for direct use in game engines (Unreal, Unity), 3D tools (Blender, Maya), and real-time rendering pipelines.


Parameters

ParameterRequiredDescription
promptYesText description of the material to generate (e.g. “weathered oak wood planks”, “cracked desert clay”).
sizeNoOutput dimensions in width×height pixels. Default: 1024×1024.
tiling_modeNoSeamless tiling direction: both (default), horizontal, or vertical.

How to Use

  1. Write your prompt — describe the material surface, condition, and style (e.g. “mossy cobblestone path, wet, medieval”).
  2. Set size (optional) — specify output dimensions to match your target resolution.
  3. Choose tiling_mode (optional) — select both for omnidirectional tiling, or horizontal/vertical for axis-specific tiling.
  4. Submit — the model generates all 6 PBR material maps in a single run.
  5. Download your complete tileable map set ready for use in your 3D pipeline.

Pricing

Just $0.48 per run (6 maps).


Best Use Cases

  • Game development — Generate complete tileable PBR materials from text for environments, props, and terrain.
  • 3D environment art — Rapidly produce material sets for architectural visualization and scene building without sourcing reference photography.
  • Texture authoring — Create unlimited material variations from descriptive prompts for large-scale asset production.
  • Indie & rapid prototyping — Quickly populate 3D scenes with physically accurate, seamlessly tiling materials.
  • Procedural content pipelines — Integrate text-driven material generation into automated asset creation workflows.

Pro Tips

  • Be specific in your prompt — include material type, condition, age, and surface characteristics (e.g. “polished black granite with fine white veining” rather than just “granite”).
  • Specify environmental context for more accurate weathering and aging effects (e.g. “salt-worn, coastal, sun-bleached”).
  • Use tiling_mode = horizontal for road or fabric materials that only repeat along one axis.
  • Use tiling_mode = both for floor, wall, and terrain materials that tile in all directions.

Notes

  • Only prompt is required; size and tiling_mode are optional.
  • Each run generates 6 PBR map types as output.
  • Please ensure your content complies with WaveSpeed AI’s usage policies.

Authentication

For authentication details, please refer to the Authentication Guide.

API Endpoints

Submit Task & Query Result


# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/patina/material" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
    "size": "1024*1024",
    "tiling_mode": "both"
}'

# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
promptstringYes-Text description of the material to generate (e.g., 'weathered oak wood planks', 'cracked desert clay').
sizestringNo1024*1024256 ~ 1536 per dimensionThe size of the generated material maps in pixels (width*height).
tiling_modestringNobothboth, horizontal, verticalSeamless tiling direction. 'both' tiles in all directions; 'horizontal' or 'vertical' tiles only along one axis.

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayArray of URLs to the generated content (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.has_nsfw_contentsarrayArray of boolean values indicating NSFW detection for each output
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction, the ID of the prediction to get
data.modelstringModel ID used for the prediction
data.outputsstringArray of URLs to the generated PBR material maps.
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2025 WaveSpeedAI. All rights reserved.