Documentation Index
Fetch the complete documentation index at: https://docs.unifically.com/llms.txt
Use this file to discover all available pages before exploring further.
Upscale videos using Topaz Labs AI models. One endpoint covers both upscale-only and upscale + frame-interpolation flows. Output sizing is set via a resolution tier — the long edge maps to exact pixels and the short edge is derived from the probed source aspect ratio.
Model
Parameters
| Parameter | Type | Required | Default | Description |
|---|
video_url | string | Yes | - | Publicly-accessible URL of the source video |
preset | string | No | prob-4 | Topaz upscale model short-code. See Upscale presets |
resolution | string | No | - | Output resolution tier. One of 480p, 720p, 1080p, 1440p, 4k, 8k. Short edge is derived from the source aspect ratio |
target_fps | number | No | source fps | Output frame rate. Defaults to the source video’s fps |
frame_interpolation | boolean | No | false | Enable a frame-interpolation pass chained after the upscale. When true, interpolation_preset is required |
interpolation_preset | string | Conditional | - | Required when frame_interpolation: true. One of apo-8, apf-2, chr-2, chf-3 |
interpolation_settings | object | No | - | Pass-through key/values for the interpolation filter. Only valid when frame_interpolation: true. See Interpolation settings |
extra_settings | object | No | - | Model-specific enhancement tuning. See Enhancement parameters |
Upscale presets
| Code | Model | Best for |
|---|
prob-4 (default) | Proteus | General purpose. Recommended for most sources; handles low-to-medium quality, grainy, or compressed footage |
rhea-1 | Rhea | 4x high-fidelity upscaling of organic textures, fine detail, and faces. Best for clean or low-res sources |
thd-3 | Theia Fine Tune Detail | Aggressive per-frame sharpening and detail extraction; may introduce subtle frame-to-frame variation |
thf-4 | Theia Fine Tune Fidelity | Stable clarity-focused sharpening with reduced artifacts. More consistent than the Detail variant |
iris-2, iris-3 | Iris | Face recovery for degraded footage. Restores faces in old, low-quality, or compressed video |
gcg-5, ghq-5 | Gaia CG / HQ | CGI and animation upscaling. Preserves clean edges and flat colour regions |
amq-13, ahq-12, alq-13 | Artemis | Balanced denoise + sharpening across quality tiers (Medium / High / Low quality sources) |
ddv-3 | Dione DV | Deinterlacing for legacy DV footage |
dtd-4, dtv-4 | Dione TV / Detail | Deinterlacing for broadcast / TV legacy footage |
nyx-3, nxf-1, nxl-1, nxhf-1 | Nyx | Video denoise variants (standard, fast, lossless, high-fidelity) |
aaa-9 | Artemis AA / Moiré | Aliasing and moiré artifact correction |
color-1 | Colorize | Black-and-white to colour conversion |
thm-2 | Themis | Motion deblur for fast-moving footage |
Enhancement parameters
Pass any of these inside extra_settings. Anything omitted is auto-configured by Topaz. Use auto: "Manual" to override all values explicitly, or auto: "Relative" to use autopilot as a base with your values as offsets.
| Key | Type | Range / values | Description |
|---|
auto | string | Auto (default), Manual, Relative | Parameter mode |
video_type | string | Progressive, Interlaced, ProgressiveInterlaced | Source frame/field type |
field_order | string | TopFirst, BottomFirst, Auto | Interlaced field order (interlaced sources only) |
focus_fix_level | string | None, Normal, Strong | Downscales input before the model for stronger blur correction |
compression | float | -1 to 1 | Compression-artifact recovery strength. Higher = more aggressive |
details | float | -1 to 1 | Detail reconstruction amount |
noise | float | -1 to 1 | Noise reduction. Higher = more reduction |
blur | float | -1 to 1 | Sharpness applied to output. Higher = sharper |
halo | float | -1 to 1 | Halo reduction around edges |
preblur | float | -1 to 1 | Anti-aliasing / deblur applied before the model |
prenoise | float | 0 to 0.1 | Adds noise to input to reduce over-smoothing |
recover_original_detail_value | float | 0 to 1 | Blends source detail back into the output |
grain | float | 0 to 0.1 | Adds film grain after AI processing |
grain_size | float | 0 to 5 | Size of generated grain |
grain_sigma | float | 0 to 1 | Grain softness |
grain_type | string | silver_rich, gaussian, grey | Grain character / style |
Frame interpolation
Set frame_interpolation: true to chain a frame-interpolation filter after the upscale. This is used to increase frame rate or create slow motion.
| Code | Model | Best for |
|---|
apo-8 | Apollo | Smooth slow-motion and frame-rate conversion. Handles non-linear motion |
apf-2 | Apollo Fast | Faster Apollo variant for simpler motion |
chr-2 | Chronos | Natural slow motion for real-world motion with minimal artifacts |
chf-3 | Chronos Fast | Faster Chronos variant |
Interpolation settings
Pass any of these inside interpolation_settings. Only valid when frame_interpolation: true.
| Key | Type | Range | Description |
|---|
slowmo | int | 1–16 | Slow-motion multiplier. 2 makes output 2x slower and doubles duration |
fps | number | 15–240 | Target output frame rate without changing duration |
duplicate | boolean | - | Detect and remove duplicate frames from input before interpolating |
duplicateThreshold | number | 0.001–0.1 | Sensitivity for duplicate-frame detection |
Resolution
Output resolution is set via resolution. The long edge is mapped to exact pixels; the short edge is computed from the source aspect ratio so the output matches source orientation.
| Tier | Long edge |
|---|
480p | 854 px |
720p | 1280 px |
1080p | 1920 px |
1440p | 2560 px |
4k | 3840 px |
8k | 7680 px |
Example - Basic upscale
curl -X POST https://api.unifically.com/v1/tasks \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "topaz-labs/video-upscale",
"input": {
"video_url": "https://example.com/video.mp4",
"resolution": "1080p"
}
}'
Example - CGI / animation upscale
curl -X POST https://api.unifically.com/v1/tasks \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "topaz-labs/video-upscale",
"input": {
"video_url": "https://example.com/animation.mp4",
"preset": "gcg-5",
"resolution": "4k"
}
}'
curl -X POST https://api.unifically.com/v1/tasks \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "topaz-labs/video-upscale",
"input": {
"video_url": "https://example.com/old-interview.mp4",
"preset": "iris-3",
"resolution": "1080p"
}
}'
curl -X POST https://api.unifically.com/v1/tasks \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "topaz-labs/video-upscale",
"input": {
"video_url": "https://example.com/legacy-tv.mp4",
"preset": "dtv-4",
"resolution": "1080p",
"extra_settings": {
"video_type": "Interlaced",
"field_order": "TopFirst"
}
}
}'
Example - 4K upscale with 2x slow motion
curl -X POST https://api.unifically.com/v1/tasks \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "topaz-labs/video-upscale",
"input": {
"video_url": "https://example.com/action.mp4",
"preset": "prob-4",
"resolution": "4k",
"frame_interpolation": true,
"interpolation_preset": "chr-2",
"interpolation_settings": {
"slowmo": 2
}
}
}'
Example - Interpolate to 60 fps without changing duration
curl -X POST https://api.unifically.com/v1/tasks \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "topaz-labs/video-upscale",
"input": {
"video_url": "https://example.com/clip.mp4",
"resolution": "1080p",
"frame_interpolation": true,
"interpolation_preset": "apo-8",
"interpolation_settings": {
"fps": 60,
"duplicate": true
}
}
}'
Response
{
"code": 200,
"success": true,
"data": {
"task_id": "abc123def456",
"status": "pending"
}
}