Skip to main content
topazlabs avatar

Topaz Upscale Video API

topazlabs/upscale/video

Enhance and enlarge your videos with professional-grade upscaling, detail recovery, and smooth frame interpolation.

upscale
Priced by resolution

Model Input

Input

URL of the video to upscale

Min: 1 - Max: 4

Factor to upscale the video by (e.g. 2.0 doubles width and height)

Min: 16 - Max: 60

Target FPS for frame interpolation. If set, frame interpolation will be enabled.

Whether to use H264 codec for output video. Default is H265.

You need to be logged in to run this model and view results.
Log in

Model Output

Output

Fill in the input form and click submit to see the output
Logs (1 lines)

Model Pricing

Pricing

Model pricing varies by the target resolution of your output video.

720p
$0.01
per second of output video
or around 1000 seconds for $10
1080p
$0.02
per second of output video
or around 50 seconds for $1
4k
$0.08
per second of output video
or around 13 seconds for $1

Topaz Upscale Video API

Topaz Upscale Video is a upscaler AI model by topazlabs. On ModelRunner it runs through a REST API or via MCP from any AI assistant, at $0.01 per second of video.

POST https://queue.modelrunner.run/topazlabs/upscale/video

cURL

# Submit a request to the queue. Input fields go at the top level of the
# body. The optional reserved "metadata" object holds your own flat string
# tags — stored on the request, never sent to the model; filter later with
# GET https://queue.modelrunner.run/requests?metadata=<url-encoded JSON>.
curl -X POST https://queue.modelrunner.run/topazlabs/upscale/video \
  -H "Authorization: Key $MRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "video_url": "https://example.com/input.jpg",
    "metadata": {
      "project": "my-project"
    }
  }'
# → { "request_id": "...", "status_url": "...", "response_url": "..." }

# Poll status_url until "COMPLETED", then fetch the result
curl "https://queue.modelrunner.run/topazlabs/upscale/video/requests/$REQUEST_ID/status" \
  -H "Authorization: Key $MRUN_API_KEY"
curl "https://queue.modelrunner.run/topazlabs/upscale/video/requests/$REQUEST_ID" \
  -H "Authorization: Key $MRUN_API_KEY"

JavaScript

import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("topazlabs/upscale/video", {
  input: {
    "video_url": "https://example.com/input.jpg"
  },
});
console.log(result);

Python

import os
import requests

headers = {"Authorization": f"Key {os.environ['MRUN_API_KEY']}"}

submitted = requests.post(
    "https://queue.modelrunner.run/topazlabs/upscale/video",
    headers=headers,
    json={
      "video_url": "https://example.com/input.jpg"
    },
).json()

# Poll submitted["status_url"] until "COMPLETED", then:
result = requests.get(submitted["response_url"], headers=headers).json()

Input parameters

NameTypeRequiredDescription
video_urlstring (uri)yesURL of the video to upscale
upscale_factornumbernoFactor to upscale the video by (e.g. 2.0 doubles width and height) Default: 2.
target_fpsintegernoTarget FPS for frame interpolation. If set, frame interpolation will be enabled. Default: 25.
H264_outputbooleannoWhether to use H264 codec for output video. Default is H265. Default: false.

Machine-readable: OpenAPI schema · llms.txt

Use Topaz Upscale Video from Claude & Cursor (MCP)

Point Claude Code, Claude Desktop, Cursor, or any MCP client at the ModelRunner MCP server and Topaz Upscale Video becomes a tool your assistant can call directly — it authorizes via OAuth (no API key in config) and runs this model with the run_model tool using the endpoint topazlabs/upscale/video.

MCP client config (Claude Desktop, Cursor)

{
  "mcpServers": {
    "modelrunner": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.modelrunner.run/mcp"]
    }
  }
}

Claude Code

claude mcp add --transport http modelrunner https://mcp.modelrunner.run/mcp

Then ask your assistant, for example: “Run topazlabs/upscale/video on ModelRunner to generate upscaler”. MCP setup guide.

Model Details

Model Details

Enhance your low-resolution or low-framerate footage with professional-grade video upscaling and frame interpolation. This model utilizes advanced enhancement technology to intelligently upscale videos up to 4x their original size while recovering lost details, reducing compression noise, and dramatically improving overall visual clarity.

Whether you need to revive legacy archival footage, convert standard 1080p high-definition videos into crisp 4K, or smooth out choppy motion, this video-to-video upscaler delivers reliable, high-fidelity results. You can easily supply your video through our app interface, run the enhancement process directly in the UI, and download the resulting high-resolution output directly to your device.

### Key Capabilities - **Resolution Upscaling**: Multiply your video dimensions by setting an `upscale_factor` ranging from 1.0 to 4.0 (defaults to 2.0). - **Frame Interpolation**: Seamlessly increase the framerate of your video by setting a `target_fps` (between 16 and 60). The model intelligently generates accurate intermediate frames, resulting in smooth, lifelike motion. - **Codec Control**: By default, the output utilizes the highly efficient H.265 codec for optimal quality-to-size ratio. You can toggle `H264_output` to true if you require broader playback compatibility for older systems.

### How to Get the Best Results - **Source Material**: While the model excels at enhancement, providing the highest possible quality source file yields the best results. Avoid highly compressed files, as extreme artifacts may be sharpened. - **Target Framerates**: Only use frame interpolation (`target_fps`) if your original video suffers from noticeable stuttering or if you need to conform a cinematic framerate (e.g., 24fps) to a higher broadcast standard (e.g., 60fps). - **Scaling Factors**: A 2x upscale is typically the sweet spot for balancing processing speed and visual improvement, but pushing it to 4x is excellent for older 480p or 720p content.

### Example Usage

To run this model via the ModelRunner JavaScript client, use the following code:

```javascript import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("topazlabs/upscale/video", { input: { "video_url": "https://example.com/your-source-video.mp4", "upscale_factor": 2.0, "target_fps": 60, "H264_output": false } });

console.log(result.data); ```