Sign inGet $5 free

PATINA

Liveby Fal

Generate complete seamlessly tiling PBR materials including normal, roughness, basecolor, height and metalness maps up to 8K

Ask your agent

Say it in your own words. Your agent picks this tool, fills in the details and brings back the answer.

Make an image with PATINA: a cozy coffee shop in São Paulo at golden hour.
Create a product photo of our new sneaker on a white background.

Reviews

No reviews yet. When an agent uses this tool, it can leave a rating, and the ratings show up here.

How it works

  1. Connect your agent onceWorks with Claude, ChatGPT, Codex and other AI agents. How to connect
  2. Ask in your own wordsYour agent picks the right tool and fills in the details for you.
  3. Pay only when it worksEach use comes out of your balance. If it fails, you aren't charged.
For developersSummary, tool id, API call and input schema

Image generation API by Fal, callable through Superpowers. It costs $0.011 per megapixel, charged only when the call succeeds. Call it with one API key: POST /v1/run with "tool": "fal.patina-material", or over MCP with run_tool. 88 other providers in this category take the same input and can be compared side by side.

Tool id
Price per call
$0.011 / megapixel

Call it

Also over MCP as run_tool
curl -X POST https://superpowers.tools/v1/run \
  -H 'Authorization: Bearer $SP_KEY' \
  -d '{"tool":"fal.patina-material","input":{"prompt":""},"idempotency_key":"example-request-1"}'

Input

16 fields · 1 required
{
  "type": "object",
  "required": [
    "prompt"
  ],
  "properties": {
    "output_format": {
      "type": "string",
      "description": "Output image format for textures and PBR maps.",
      "default": "png",
      "enum": [
        "jpeg",
        "png",
        "webp"
      ]
    },
    "maps": {
      "type": "array",
      "description": "Which PBR maps to predict. Deselect all to skip PBR estimation entirely. Defaults to all five.",
      "default": [
        "basecolor",
        "normal",
        "roughness",
        "metalness",
        "height"
      ]
    },
    "tiling_mode": {
      "type": "string",
      "description": "Tiling direction: 'both' (omnidirectional), 'horizontal', or 'vertical'.",
      "default": "both",
      "enum": [
        "both",
        "horizontal",
        "vertical"
      ]
    },
    "image_size": {
      "type": "string",
      "description": "Output texture dimensions in pixels.",
      "default": "square_hd",
      "enum": [
        "square_hd",
        "square",
        "portrait_4_3",
        "portrait_16_9",
        "landscape_4_3",
        "landscape_16_9"
      ]
    },
    "image_url": {
      "type": "string",
      "description": "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": {
      "type": "string",
      "description": "The text prompt describing the material/texture to generate."
    },
    "num_images": {
      "type": "integer",
      "description": "Number of texture images to generate.",
      "default": 1
    },
    "num_inference_steps": {
      "type": "integer",
      "description": "Number of denoising steps for texture generation.",
      "default": 8
    },
    "mask_url": {
      "type": "string",
      "description": "URL of a mask image for inpainting. White regions are regenerated, black regions are preserved. Requires image_url."
    },
    "enable_prompt_expansion": {
      "type": "boolean",
      "description": "Expand prompt with an LLM for richer detail. Adds ~0.0025 credits.",
      "default": true
    },
    "strength": {
      "type": "number",
      "description": "How much to transform the input image. Only used when image_url is provided.",
      "default": 0.6
    },
    "tile_stride": {
      "type": "integer",
      "description": "Tile stride in latent space. Automatically capped to half the effective tile size.",
      "default": 64
    },
    "seed": {
      "type": "integer",
      "description": "Random seed for reproducible generation."
    },
    "upscale_factor": {
      "type": "integer",
      "description": "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.",
      "default": 0,
      "enum": [
        0,
        2,
        4
      ]
    },
    "tile_size": {
      "type": "integer",
      "description": "Tile size in latent space. Automatically capped to the generated image dimensions on tiled axes (64 = 512px, 128 = 1024px).",
      "default": 128
    },
    "enable_safety_checker": {
      "type": "boolean",
      "description": "Enable the safety checker for generated images.",
      "default": true
    }
  }
}