fal/patina, served by Comfy Router from fal.
Quick start
Create a key in your Comfy workspace and export it asCOMFY_API_KEY. The Python and TypeScript snippets use the Comfy SDKs (pip install comfy-sdk, npm install @comfyorg/sdk); the cURL snippet is the same call over raw HTTP.
Model ID: fal/patina
Endpoint: POST https://api.comfy.org/v2/models/fal/patina
Schema
Input
boolean
default:"true"
Enable the safety checker for images.
string
required
URL of the input image (photograph or render).
string[]
Which PBR maps to predict. Defaults to all five.
string
default:"\"png\""
Output image format: jpeg, png, or webp.
integer
Random seed for reproducible denoising.
boolean
default:"false"
If true, return images as data URIs instead of CDN URLs.
GET /v2/models/fal/patina/openapi.json, the same document it validates a call against before the request reaches the provider.
Output
object[]
Generated tileable texture image plus the predicted PBR material maps. The base texture has only a url; each map entry also carries a map_type.
string
The PBR map type (basecolor, normal, roughness, metalness, height). Absent for the base texture image.
string
URL of the generated image.
string
The prompt used for texture generation (possibly expanded).
integer
Seed used for texture generation.
object
End-to-end timing breakdown (seconds).
Examples
Input
Output
Before you ship
The SDKs create anIdempotency-Key and reuse it for automatic retries. For manual retries, reuse the original key. Router can hold the connection for up to 10 minutes.
When a request fails, Router sends an X-Comfy-Error-Type response header explaining why. A 422 means Router rejected the input before calling the provider. Download generated assets promptly because result URLs can expire.
Headers
Authentication, idempotency, request IDs, error buckets, retry pacing, spend limits.
Using the Router API
Model discovery, validation errors, retries, and billing.
Limitations
What Router does not do today, and what to use instead.