finds.dev← search

// the find

nihui/dain-ncnn-vulkan

★ 545 · C · MIT · updated Oct 2023

DAIN, Depth-Aware Video Frame Interpolation implemented with ncnn library

A C++ port of the DAIN video frame interpolation model that runs on the ncnn inference framework through Vulkan, so it works on Intel, AMD and Nvidia GPUs without CUDA. It suits people who want to double the frame rate of old footage or make slow-motion clips from the command line without setting up a Python and PyTorch environment.

- The Vulkan backend means one portable binary covers AMD, Intel and Nvidia cards, and the release zip bundles the model files, so there is no Python, PyTorch or CUDA setup to get through.

- The -t tile size flag and the multi-GPU options (-g and -j) let you trade VRAM for speed. That matters in practice when a card would run out of memory at 1080p.

- The models ship as plain ncnn .param and .bin pairs in models/best, and the inference path is ordinary C++ with shader sources next to it. You can read what the pipeline does without digging through a framework graph.

- The last push was in October 2023 and the README still lists test-time augmentation as TODO. Treat this as a finished tool, not an active project. Issues about newer drivers or ncnn changes may sit unanswered.

- It only interpolates frames. Audio, containers and scene-cut detection are left to ffmpeg, and the README's extract-every-frame-to-PNG workflow means a 10-minute 1080p clip needs tens of gigabytes of scratch space and a long run before you know whether the result is any good.

- The output inherits the known weak spots of the original DAIN model: expect optical-flow artifacts at occlusion edges and on fine repeated texture. Check a few interpolated frames before committing to a full run.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →