> ## 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.

# Topaz Video Upscale

> AI-powered video upscaling with selectable Topaz models, enhancement tuning, and optional frame interpolation

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

```
topaz-labs/video-upscale
```

## 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](#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](#interpolation-settings) |
| `extra_settings`         | object  | No          | -          | Model-specific enhancement tuning. See [Enhancement parameters](#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

```bash theme={null}
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

```bash theme={null}
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"
    }
  }'
```

## Example - Face recovery on degraded footage

```bash theme={null}
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"
    }
  }'
```

## Example - Deinterlacing legacy TV footage

```bash theme={null}
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

```bash theme={null}
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

```bash theme={null}
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

```json theme={null}
{
  "code": 200,
  "success": true,
  "data": {
    "task_id": "abc123def456",
    "status": "pending"
  }
}
```
