Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.runflow.io/llms.txt

Use this file to discover all available pages before exploring further.

Pricing: $0.08/image. Endpoint: POST /v1/models/topaz/upscale/image/runs.
Use the powerful and accurate topaz image enhancer to enhance your images.

Overview

Pricing

  • Base price: $0.08/image
  • Note: Up to 24MP

Topaz Upscale - Image API

Endpoint: POST /v1/models/topaz/upscale/image/runs

Run the model

Python

import requests

response = requests.post(
    "https://api.runflow.io/v1/models/topaz/upscale/image/runs",
    headers={"Authorization": "Bearer RUNFLOW_API_KEY"},
    json={
        "input": {
            "model": "Standard V2",
            "image_url": "https://public.runflow.io/images/models/photalabs/phota/example-output-0.webp",
            "autoprompt": True,
            "output_format": "png",
            "upscale_factor": 4,
            "face_enhancement": True,
            "subject_detection": "Foreground",
            "face_enhancement_strength": 0.8,
            "face_enhancement_creativity": 0.1
        },
        "callback_url": "https://your-server.com/webhook"
    },
)

data = response.json()
print(data)

Node.js

const response = await fetch(
  "https://api.runflow.io/v1/models/topaz/upscale/image/runs",
  {
    method: "POST",
    headers: {
      "Authorization": "Bearer RUNFLOW_API_KEY",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
        "input": {
            "model": "Standard V2",
            "image_url": "https://public.runflow.io/images/models/photalabs/phota/example-output-0.webp",
            "autoprompt": true,
            "output_format": "png",
            "upscale_factor": 4,
            "face_enhancement": true,
            "subject_detection": "Foreground",
            "face_enhancement_strength": 0.8,
            "face_enhancement_creativity": 0.1
        },
        "callback_url": "https://your-server.com/webhook"
    }),
  }
);

const data = await response.json();
console.log(data);

cURL

curl -X POST https://api.runflow.io/v1/models/topaz/upscale/image/runs \
  -H "Authorization: Bearer $RUNFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'JSON'
{
    "input": {
        "model": "Standard V2",
        "image_url": "https://public.runflow.io/images/models/photalabs/phota/example-output-0.webp",
        "autoprompt": true,
        "output_format": "png",
        "upscale_factor": 4,
        "face_enhancement": true,
        "subject_detection": "Foreground",
        "face_enhancement_strength": 0.8,
        "face_enhancement_creativity": 0.1
    },
    "callback_url": "https://your-server.com/webhook"
}
JSON

Request parameters

ParameterTypeRequiredDescription
inputobjectrequiredModel input parameters. See “Input schema” below.
callback_urlstring | nulloptionalWebhook URL - POSTed when the run reaches a terminal state.
metadataobject | nulloptionalArbitrary key-value pairs attached to the run.

Input schema

FieldTypeRequiredAllowed valuesDescription
promptstringoptionalAnyText prompt to guide generative upscaling (max 1024 chars). Applies to Redefine model only.
face_enhancement_creativityfloatoptionalAnyCreativity level for face enhancement. 0.0 means no creativity, 1.0 means maximum creativity. Ignored if face enhancement is disabled.
face_enhancementbooleanoptionalAnyWhether to apply face enhancement to the image. Applies to standard enhance and Recovery V2 models.
modelstringoptionalLow Resolution V2, Standard V2, CGI, High Fidelity V2, Text Refine, Recovery, Redefine, Recovery V2, Standard MAX, WonderModel to use for image enhancement.
crop_to_fillbooleanoptionalAny
upscale_factorfloatoptionalAnyFactor to upscale the image by (e.g. 2.0 doubles width and height)
face_enhancement_strengthfloatoptionalAnyStrength of the face enhancement. 0.0 means no enhancement, 1.0 means maximum enhancement. Ignored if face enhancement is disabled.
sharpenfloatoptionalAnySharpening level (0.0-1.0). Applies to Standard V2, Low Resolution V2, CGI, High Fidelity V2, Text Refine, and Redefine models.
detailfloatoptionalAnyDetail recovery level (0.0-1.0). Applies to Recovery V2 model only.
denoisefloatoptionalAnyDenoising level (0.0-1.0). Applies to Standard V2, Low Resolution V2, CGI, High Fidelity V2, Text Refine, and Redefine models.
output_formatstringoptionaljpeg, pngOutput format of the upscaled image.
subject_detectionstringoptionalAll, Foreground, BackgroundSubject detection mode for the image enhancement. Applies to standard enhance and Recovery V2 models.
strengthfloatoptionalAnyEnhancement strength (0.01-1.0). Applies to Text Refine model only.
textureintegeroptionalAnyTexture detail level for generative upscaling (1-5). Applies to Redefine model only.
image_urlimagerequiredAnyUrl of the image to be upscaled
autopromptbooleanoptionalAnyEnable automatic prompt generation for generative upscaling. Applies to Redefine model only.
creativityintegeroptionalAnyCreativity level for generative upscaling (1-6). Higher values produce more creative/hallucinated details. Applies to Redefine model only.
fix_compressionfloatoptionalAnyCompression artifact removal level (0.0-1.0). Applies to Standard V2, Low Resolution V2, High Fidelity V2, and Text Refine models.

Output schema

FieldTypeDescription
outputsjsonUnified output array - one entry per generated artifact with url/type/width/height/duration/etc.
nsfw_detectedjsontrue if the provider flagged output as NSFW, false if cleared, null if not checked.
seedjsonDeterministic seed used for generation, or null if the provider doesn’t return one.
timingjsonProvider timing info (inference_ms etc.), or null.

Callback payload

When you provide a callback_url, Runflow POSTs to it once the run reaches a terminal state.
FieldTypeDescription
eventstringEvent type: “run.completed”, “run.failed”, or “run.cancelled”.
run_idstringThe unique identifier of the run.
statusstringTerminal status: “succeeded”, “failed”, or “cancelled”.
outputobject | nullThe run output. Null if the run failed or was cancelled.
duration_msnumber | nullTotal run duration in milliseconds.
created_atstring | nullISO 8601 timestamp when the run was created.
completed_atstring | nullISO 8601 timestamp when the run reached terminal state.
metadataobject | nullThe metadata object passed at run creation, if any.
  • Retries: 3 attempts with exponential backoff (1s, 2s). Retries on 5xx / network errors only.
  • Headers: Runflow-Request-Id is always sent. Runflow-Signature is sent if a signing secret is configured.

Additional Resources

Browse all models

Browse the catalog.

Run lifecycle

Callbacks, polling, statuses.

Callbacks

Handle async results.

Pricing

How requests bill out.