Tutorial · Python · ~10 min

Upscale 480p to 4K

480p was fine in 2005. The footage still matters — AI super resolution rebuilds it for 4K screens.

Python480p→4KAPI

Why this matters

Plain scaling turns 480p into soft 4K; there is no new information. Super-resolution models learn where real detail should be — edges, textures, and faces get rebuilt, not smeared.

For archive footage the win is twofold: it looks right on modern screens and buys the catalog more time.

How it works

Submit the 480p file with scale=4; the API runs the model, applies sharpening, and outputs true 4K with optional denoise for grainy sources.

Submit a job with an input URL (S3, GCS or HTTPS), poll the job URL, and download the rendered output. No GPU, no queues, no ffmpeg builds to babysit.

Code

Python
import requests, time

API = "https://api.mlslabs.io/v1/super-resolution/jobs"
headers = {"X-API-Key": "YOUR_API_KEY"}
payload = {"input": "s3://bucket/480p.mp4", "scale": 4, "model": "real-esrgan-x4"}

resp = requests.post(API, json=payload, headers=headers)
job = resp.json()
while job["status"] not in ("succeeded", "failed"):
    time.sleep(3)
    job = requests.get(job["url"], headers=headers).json()

print("Output:", job["output_url"])

Pro tips

  • Denoise first for VHS/DVD-era sources — grain eats model budget.
  • Scale in one jump (4x) rather than two 2x passes; quality holds better.
  • Compare faces and text (credits, signs) — the clearest tell of quality.

Pricing note

Usage is metered per minute of media processed; the first tier is free each month. Volume discounts kick in automatically.

FAQ

Common questions

Does it invent detail that wasn't there?

It reconstructs plausible detail from learned priors — the content is consistent, but it is an estimate, not the original lost data.

How long does 480p→4K take?

Roughly 1–3 minutes per minute of footage at 4x on our GPU workers.

What about interlaced sources?

Deinterlace first (or enable the deinterlace option) — interlacing confuses the model.