Skip to main content

Example output

Drag the slider to compare the source clip (left) against the same clip after upscaling (right). Pause to study a single frame.

Quick start

Upscaling a clip is one POST and a poll: send up to 20 seconds of video as an HTTP(S) URL or base64, then fetch the result from the polling_url you get back.
The submit call returns the task id and the URL to poll:
While the clip renders, polls come back with "status": "Pending". When it flips to Ready, result.sample is a signed URL to the upscaled mp4:
Signed delivery URLs expire about 1 hour after the result is ready. Download your video within this timeframe.
Error, Request Moderated, and Content Moderated are terminal: stop polling and check the payload. The Errors reference lists every status.

Choosing a mode

The creativity parameter selects how the upscaler treats your footage:
  • creativity: 0 (precise) preserves the source exactly and sharpens it. Use it when identity matters: faces, products, brand assets, footage of real people.
  • creativity: 1 (creative) restores and invents fine detail more aggressively. Use it on generated footage, textures, crowds, and scenery. It does not preserve identity as strictly as precise mode, so faces and products can drift.

Request parameters

Use input_video as the minimum payload.
Output frames are capped at about 14.4 megapixels (4K and beyond): very large sources are upscaled by less than the requested factor.Sources longer than 20 seconds are rejected before processing; they are not truncated, and no charge applies.
The output keeps the source clip’s audio track.

Pricing

Upscaling is priced per megapixel-second of delivered output: the megapixels per output frame multiplied by the output duration in seconds. You are charged for delivered output only. One megapixel is 1,048,576 pixels (1024 x 1024), the same definition as FLUX image pricing. Per second of output, that works out to approximately: Example: upscaling a 10-second clip to 1080p (1920 x 1080 = 1.98 megapixels) is 19.8 megapixel-seconds, so $1.48 in precise mode or $2.08 in creative mode. You are charged for the delivered output only. See the pricing page for the full rate card.

Tips for best results

  • Start from the least compressed source you have. Compression artifacts limit how much real detail the upscaler can recover.
  • Use creative mode for generated footage, landscapes, textures, and crowds; use precise mode when faces, products, or brand assets must stay exactly as they are.
  • A short prompt describing the clip’s content can steer creative mode toward the right kind of detail.
  • Run upscaling as your final step, after editing and trimming, so you only pay for footage you keep.

Limitations

  • Source clips are limited to 20 seconds and 50MB.
  • Output frames are capped at about 14.4 megapixels: requesting 3x on a source that is already high resolution lands below the requested factor.
  • Creative mode does not strictly preserve identity for faces and products. Use precise mode when that matters.

Troubleshooting

  • 403 Forbidden - your API key is missing or your project does not have access to this endpoint.
  • 402 Payment Required - your credit balance cannot cover the request. Top up and retry.
  • 422 / validation errors - check base64 encoding, video URL accessibility, the 50MB payload limit, and that upscale_factor is between 1.5 and 3.
  • Status Error mentioning input length - the source clip is longer than 20 seconds. Trim it and resubmit; rejected clips are not charged.
  • Status Error mentioning output size - the requested output exceeds what the endpoint can serve. Reduce upscale_factor or the source resolution.
  • Faces or products look different - switch to creativity: 0 for a source-faithful upscale.
For the full list of HTTP status codes and polling response types returned by the API, see the Errors reference.