Ana içeriğe geç
megvii-research avatarı

RIFE Video Interpolation API

megvii-research/rife/video

Araya yeni kareler üreterek videonun kare hızını yükseltin ve akıcı ağır çekim elde edin.

A4000,RTX4000
0.015037

Model girdisi

Input

URL of the video whose frame rate to interpolate.

Min: 1 - Max: 4

Number of intermediate frames to generate between each pair of input frames (1-4). Higher values yield a higher output frame rate and smoother slow-motion.

Additional Settings

Customize your input with more control.

Split the video into scenes before interpolating so frames are not blended across hard cuts.

Derive the output frame rate from the input frame rate times num_frames. When false, the fps value is used instead.

Min: 1 - Max: 60

Target output frame rate (1-60). Only used when use_calculated_fps is false.

Interpolate from the final frame back to the first to create a seamless looping video.

You need to be logged in to run this model and view results.
Log in

Model çıktısı

Output

Loading
Generated in 2.002 seconds
Logs (1 lines)

Örnek istekler

Örnekler

Example output 1Example output 2

RIFE Video Interpolation API

RIFE Video Interpolation is a video-to-video AI model by megvii-research. On ModelRunner it runs through a REST API or via MCP from any AI assistant, at about $0.015037 per video.

POST https://queue.modelrunner.run/megvii-research/rife/video

cURL

# Submit a request to the queue. Input fields go at the top level of the
# body. The optional reserved "metadata" object holds your own flat string
# tags — stored on the request, never sent to the model; filter later with
# GET https://queue.modelrunner.run/requests?metadata=<url-encoded JSON>.
curl -X POST https://queue.modelrunner.run/megvii-research/rife/video \
  -H "Authorization: Key $MRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "fps": 8,
    "loop": false,
    "video_url": "https://media.modelrunner.ai/wIRSbtfvYKHdIGXV-rife-interpolation-input.mp4",
    "num_frames": 1,
    "use_calculated_fps": true,
    "use_scene_detection": false,
    "metadata": {
      "project": "my-project"
    }
  }'
# → { "request_id": "...", "status_url": "...", "response_url": "..." }

# Poll status_url until "COMPLETED", then fetch the result
curl "https://queue.modelrunner.run/megvii-research/rife/video/requests/$REQUEST_ID/status" \
  -H "Authorization: Key $MRUN_API_KEY"
curl "https://queue.modelrunner.run/megvii-research/rife/video/requests/$REQUEST_ID" \
  -H "Authorization: Key $MRUN_API_KEY"

JavaScript

import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("megvii-research/rife/video", {
  input: {
    "fps": 8,
    "loop": false,
    "video_url": "https://media.modelrunner.ai/wIRSbtfvYKHdIGXV-rife-interpolation-input.mp4",
    "num_frames": 1,
    "use_calculated_fps": true,
    "use_scene_detection": false
  },
});
console.log(result);

Python

import os
import requests

headers = {"Authorization": f"Key {os.environ['MRUN_API_KEY']}"}

submitted = requests.post(
    "https://queue.modelrunner.run/megvii-research/rife/video",
    headers=headers,
    json={
      "fps": 8,
      "loop": false,
      "video_url": "https://media.modelrunner.ai/wIRSbtfvYKHdIGXV-rife-interpolation-input.mp4",
      "num_frames": 1,
      "use_calculated_fps": true,
      "use_scene_detection": false
    },
).json()

# Poll submitted["status_url"] until "COMPLETED", then:
result = requests.get(submitted["response_url"], headers=headers).json()

Input parameters

Input parameters of RIFE Video Interpolation
NameTypeRequiredDescription
video_urlstring (uri)yesURL of the video whose frame rate to interpolate.
num_framesintegernoNumber of intermediate frames to generate between each pair of input frames (1-4). Higher values yield a higher output frame rate and smoother slow-motion. Default: 1.
use_scene_detectionbooleannoSplit the video into scenes before interpolating so frames are not blended across hard cuts. Default: false.
use_calculated_fpsbooleannoDerive the output frame rate from the input frame rate times num_frames. When false, the fps value is used instead. Default: true.
fpsintegernoTarget output frame rate (1-60). Only used when use_calculated_fps is false. Default: 8.
loopbooleannoInterpolate from the final frame back to the first to create a seamless looping video. Default: false.

Machine-readable: OpenAPI schema · llms.txt

Use RIFE Video Interpolation from Claude & Cursor (MCP)

Point Claude Code, Claude Desktop, Cursor, or any MCP client at the ModelRunner MCP server and RIFE Video Interpolation becomes a tool your assistant can call directly — it authorizes via OAuth (no API key in config) and runs this model with the run_model tool using the endpoint megvii-research/rife/video.

MCP client config (Claude Desktop, Cursor)

{
  "mcpServers": {
    "modelrunner": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.modelrunner.run/mcp"]
    }
  }
}

Claude Code

claude mcp add --transport http modelrunner https://mcp.modelrunner.run/mcp

Then ask your assistant, for example: “Run megvii-research/rife/video on ModelRunner to generate video”. MCP setup guide.

Model Detayları

Model Detayları

RIFE (Real-Time Intermediate Flow Estimation), mevcut kareler arasına yeni kareler sentezleyerek bir videonun kare hızını artırır. Bir kaynak video verirsiniz; model ardışık kareler arasındaki hareketi tahmin eder ve yumuşak ara kareler render eder, böylece çıktı daha yüksek FPS ile oynar ya da yavaşlatıldığında akıcı bir ağır çekime dönüşür. Prompt ya da çekim başına ayar gerektirmeden klibin tamamında çalışır; hareketin özgün çekimin izin verdiğinden daha akıcı hissettirmesini istediğiniz görüntüler için çok uygundur.

## En uygun olduğu işler - Daha akıcı bir oynatma için mevcut görüntünün kare hızını yükseltmek (ör. 24/30 fps’ten 48/60 fps’e) - Yüksek hızlı kamera olmadan, normal hızda çekilmiş videodan akıcı ağır çekim üretmek - Düşük kare hızında çekilmiş stop-motion, time-lapse ya da animasyonu yumuşatmak - Hızlı pan ya da aksiyon içeren kliplerdeki hareket boşluklarını doldurup hareketin net okunmasını sağlamak

## Şu durumlarda başka bir model seçin - Kare eklemek yerine çözünürlüğü büyütmek ya da detay geri kazanmak istiyorsanız — bir video upscaler kullanın - Kaynak klip olmadan, bir metin prompt’undan ya da tek bir durağan görselden video üretmeniz gerekiyorsa — bir text-to-video ya da image-to-video modeli kullanın - Bir talking-head’in ağzını yeni bir sesle yeniden senkronlamak istiyorsanız — bir lip-sync modeli kullanın

## İpuçları - `num_frames` (1–4), her girdi kare çifti arasına kaç kare ekleneceğini belirler; yüksek değerler etkin kare hızını ve ağır çekimin akıcılığını katlar, karşılığında işlem süresi uzar. - `use_calculated_fps` açık (varsayılan) kalsın: model, çıktı kare hızını girdinin `num_frames` ile çarpımından türetir. Yalnızca kesin bir hedef kare hızı gerektiğinde kapatıp `fps` değerini ayarlayın. - Sert kesmeler içeren kliplerde `use_scene_detection` etkinleştirin; böylece interpolasyon sahne sınırlarının ötesine harmanlama yapmaz. - Kusursuz döngülenen bir klip için son kareyi ilk kareye bağlamak üzere `loop` değerini true yapın.

## Sınırlamalar - Kareler arasındaki çok büyük ya da kaotik hareket, üretilen ara karelerde harmanlama ya da ghosting artefaktlarına yol açabilir. - Interpolasyon kare ekler; uzamsal çözünürlüğü artırmaz, mevcut gürültüyü de temizlemez.

ModelRunner JavaScript client ile çalıştırmak için: ```js import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("megvii-research/rife/video", { input: { video_url: "https://storage.googleapis.com/falserverless/example_inputs/interpolation-video-input.mp4", num_frames: 2, }, }); ```