GenLucid

MODEL TYPE

How Does AI Frame Interpolation Work?

Frame interpolation generates new frames that sit between two existing video frames, turning, for example, a 24-frames-per-second clip into 48 or 60 without re-shooting anything. It works by estimating how everything in the scene is moving between the two frames, then synthesizing a new frame that shows where that motion would be exactly halfway through.

Two steps: figure out the motion, then draw the in-between

The task splits into two parts. First, optical flow estimation: for every point in the frame, figure out where that point moved to in the next frame, in essence, a motion map showing direction and speed across the whole image. Second, frame synthesis: use that motion map to generate a plausible new frame showing the scene at some fraction of the way between the two, most often exactly halfway.

Older methods computed optical flow from frame A to frame B and from B to A separately, then linearly blended the two to guess the flow at the halfway point. That blend is an approximation, and it tends to produce visible artifacts right at motion boundaries, the edge of a moving hand or a car, where the true in-between motion isn't well described by a straight-line average of the two directions.

RIFE: estimating the in-between motion directly

RIFE (Real-Time Intermediate Flow Estimation), one of the models that set the current standard for this task, skips the blend-two-flows approach. A neural network (its authors call it IFNet) is trained to predict the intermediate flow directly from the two input frames, the motion at the halfway point itself, rather than inferring it after the fact from two separately computed flows. A second network then uses that predicted flow to actually generate the new frame's pixels.

Because IFNet predicts flow for an arbitrary point in time between the two frames, not just the midpoint, the same model supports generating a frame at any fraction of the way between two originals, useful for smoothing footage to a target frame rate other than a clean doubling.

Why fast, simple motion interpolates cleanly and complex motion doesn't

A ball moving in a straight line, or a camera panning smoothly, gives the flow estimator a clear, consistent motion signal to work with, and the generated in-between frame usually looks correct. Motion that involves occlusion, one object passing in front of another between the two frames, breaks the core assumption: the in-between content behind the moving object was never visible in either original frame, so the model has to invent plausible content for a region it has no real information about.

This is also why interpolation struggles with fast, erratic motion, fast enough that an object's position changes dramatically between frames leaves the flow estimator with a much harder correspondence problem, and small errors in that estimate turn into visible warping or ghosting in the generated frame.

FAQ

Is frame interpolation the same as motion blur or slow motion from a camera?
No. Camera-based slow motion captures genuinely more real frames per second at recording time; there's no invented content. Frame interpolation works after the fact on footage that was already recorded at a lower frame rate, generating new frames that were never captured, which is a fundamentally different, prediction-based process.
Why do interpolated frames sometimes look warped around fast-moving objects?
That's an optical-flow error made visible. If the estimated motion for a region is wrong, generating the in-between frame based on that wrong motion warps content in the direction of the mistake, most noticeable at the edges of fast-moving objects, where flow estimation is hardest to get right.
Does frame interpolation work on AI-generated video too?
Yes, it's commonly applied as a separate pass after generation: a video diffusion model generates a clip at a lower frame rate (which is cheaper to generate), then a frame interpolation model smooths it to a higher apparent frame rate as a second, independent step.

Sources

Related

Last updated 2026-09-16