Tutorial · Migration guide

Real-ESRGAN API Alternative: Migrate Your Upscaling Pipeline

If you run Real-ESRGAN today, you know the three-stage pipeline: VRAM limits, tile overlap, and FFmpeg stitching. Here is the API equivalent — and the honest cost math.

Real-ESRGANUpscalingMigration

The self-hosted reality

Real-ESRGAN is excellent and open source. Running it at scale is a three-stage pipeline: load the model on a GPU, tile the video because VRAM caps resolution, then stitch tiles with FFmpeg — with seam artifacts where tiles meet.

Migration map

Self-hosted stepmlslabs API
Download RealESRGAN_x4plus.pthNothing — model hosted
VRAM planning (tile size)No VRAM on your side
Tile + overlap + FFmpeg stitchscale: 4, one call
Batch shell loopsBatch queue + webhooks
CUDA version pinningNever

Cost math

Self-hosting: a GPU instance 24/7 plus your engineering time on the tile pipeline. API: billed per second of output video. For bursty or library-scale work the API typically wins; for a permanently saturated GPU fleet, self-hosting may still win — we publish the break-even honestly.

Try it side by side

Python
import mlslabs

client = mlslabs.Client("YOUR_API_KEY")
job = client.super_resolution.submit(
    input_url="s3://bucket/archive-480p.mov",
    output_url="s3://bucket/upscaled/",
    scale=4,
    denoise=0.4, detail=0.6,
)
job.wait()
print(job.status)