Skip to content
Dashboard

Proteus

Proteus is Topaz Labs’ video enhancement model for detail-preserving upscaling, denoising, and restoration. It enhances an existing video with automatic adjustments or fine control over detail recovery, compression artifacts, noise, blur, and grain. An input video and output resolution are required, supporting workflows that improve footage quality while preserving its source characteristics. Your use is subject to Topaz Labs's Terms & Privacy Policies.

View API reference
Price
$0.08, Per video
Lowest available configuration
import { experimental_generateVideo as generateVideo } from 'ai';
const result = await generateVideo({
model: 'topaz/proteus',
prompt: '',
inputReferences: [
{ data: 'https://example.com/input.mp4', mediaType: 'video/mp4' },
],
resolution: '1920x1080',
});
Read docs

Copy link to headingProviders

Route requests across multiple providers. Copy a provider slug to set your preference. Visit the docs for more info. Using a provider means you agree to their terms, listed under Legal.

Checking availability for your team
Provider
Input
Output
Capabilities
ZDR
No Training
Free AI Gateway Credit
Release Date
$0.08/video+17 more
10/06/2026

Getting started

Enhance an existing video with experimental_generateVideo from AI SDK 6 or later. Set AI_GATEWAY_API_KEY; AI Gateway routes the request to Topaz and waits for the result.

Install the AI SDK (pnpm add ai dotenv), create an API key from the API Keys page, and set it as AI_GATEWAY_API_KEY in your environment. Full setup is covered in the video API setup.

index.ts
import { experimental_generateVideo as generateVideo } from 'ai';
const result = await generateVideo({
model: 'topaz/proteus',
prompt: '',
inputReferences: [
{ data: 'https://example.com/input.mp4', mediaType: 'video/mp4' },
],
resolution: '1920x1080',
});

Enhance a video

Supply your input video and the output dimensions.

index.ts
import { experimental_generateVideo as generateVideo } from 'ai';
const result = await generateVideo({
model: 'topaz/proteus',
prompt: '',
inputReferences: [
{ data: 'https://example.com/input.mp4', mediaType: 'video/mp4' },
],
resolution: '1920x1080',
});
ParameterTypeRequiredDescription
promptstringYesUse an empty string; the SDK requires a prompt but Topaz does not use text.
inputReferencesArray<{ data: string | Uint8Array | URL; mediaType: string }>YesExactly one input video. For MP4, use mediaType: "video/mp4".
resolutionstringNoOutput dimensions as width x height, e.g. 1920x1080. Required unless output.width/output.height or complete source metadata supplies them.

Input limits

InputFormatsSourcesMax countMax sizeLimits
video—URL, File bytes1—Supply one existing video through inputReferences.
Enhances the whole input video. Text prompts, duration, aspectRatio, and seed do not control the output.

Provider options

Pass enhancement controls under providerOptions.topaz.

index.ts
import { experimental_generateVideo as generateVideo } from 'ai';
const result = await generateVideo({
model: 'topaz/proteus',
prompt: '',
inputReferences: [
{ data: 'https://example.com/input.mp4', mediaType: 'video/mp4' },
],
resolution: '1920x1080',
providerOptions: { topaz: { auto: 'Manual', compression: 0.2 } },
});

Pass these fields under providerOptions.topaz.

ParameterTypeRequiredDescription
source{ width: number; height: number; duration: number; frameRate: number; frameCount?: number }NoActual input width and height in pixels, duration in seconds, and frame rate. If supplied, all four fields are required. Set frameCount explicitly for variable-frame-rate input.
output{ width?: number; height?: number }NoOutput dimensions; these take precedence over resolution.
auto'Auto' | 'Manual' | 'Relative'NoParameter estimation mode.
compressionnumberNoCompression artifact removal from -1 to 1.

Copy link to headingMore models by Topaz Labs

Model
Context
Latency
Throughput
Input
Output
Cache
Search
Capabilities
Providers
ZDR
No Training
Free AI Gateway Credit
Release Date
—
$0.09/sec+1 more
—
topaz logo
10/06/2026
—
$0.08/img+7 more
—
topaz logo
10/06/2026