Tutorial · Python · ~10 min
Interpolate Anime Video
Anime at 60fps is polarizing and magical. Here is how to do it without the jitter and warping artifacts.
Why this matters
Anime is drawn at 12–24fps with limited motion, which makes naive interpolation warp line art and breathe backgrounds. Motion-aware models with proper settings keep art stable.
At 60fps, pans glide, action reads clearer, and the result looks intentional rather than juddery.
How it works
Submit the episode with factor=2.5 (24→60) or 5 (12→60); the API generates in-between frames with anime-safe settings.
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
import requests, time
API = "https://api.mlslabs.io/v1/frame-interpolation/jobs"
headers = {"X-API-Key": "YOUR_API_KEY"}
payload = {"input": "s3://bucket/episode.mkv", "factor": 2.5}
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
- Test one scene with fast pans first — the hardest case.
- For 12fps sources, interpolate in two stages (12→24→60) for stability.
- Upscale after interpolation, not before — less compute on motion analysis.
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
Why do some anime look wrong at 60fps?
Fast pans and 12fps cadences fool naive interpolation; our anime preset detects and treats those scenes differently.
Does it preserve the cel look?
Yes — flat colors stay flat; the preset avoids adding texture.
Subtitles OK?
Burned-in subs are treated as image content; motion of the text is handled, but cleaner to erase first.
Keep exploring