/VapourSynth-RIFE-ncnn-Vulkan

RIFE filter for VapourSynth

Primary LanguageC++MIT LicenseMIT

RIFE

GitHub release GitHub All Releases GitHub last commit

Real-Time Intermediate Flow Estimation for Video Frame Interpolation, based on rife-ncnn-vulkan.

Usage

rife.RIFE(vnode clip[, int model=5, int factor_num=2, int factor_den=1, int fps_num=None, int fps_den=None, string model_path=None, int gpu_id=None, int gpu_thread=2, bint tta=False, bint uhd=False, bint sc=False, bint skip=False, float skip_threshold=60.0, bint list_gpu=False])
  • clip: Clip to process. Only RGB format with float sample type of 32 bit depth is supported.

The models folder needs to be in the same folder as the compiled binary.

By default models are exported with ensemble=False and Fast=True

  • model: Model to use.

    • 0 = rife
    • 1 = rife-HD
    • 2 = rife-UHD
    • 3 = rife-anime
    • 4 = rife-v2
    • 5 = rife-v2.3
    • 6 = rife-v2.4
    • 7 = rife-v3.0
    • 8 = rife-v3.1
    • 9 = rife-v3.9 (ensemble=False / fast=True)
    • 10 = rife-v3.9 (ensemble=True / fast=False)
    • 11 = rife-v4 (ensemble=False / fast=True)
    • 12 = rife-v4 (ensemble=True / fast=False)
    • 13 = rife-v4.1 (ensemble=False / fast=True)
    • 14 = rife-v4.1 (ensemble=True / fast=False)
    • 15 = rife-v4.2 (ensemble=False / fast=True)
    • 16 = rife-v4.2 (ensemble=True / fast=False)
    • 17 = rife-v4.3 (ensemble=False / fast=True)
    • 18 = rife-v4.3 (ensemble=True / fast=False)
    • 19 = rife-v4.4 (ensemble=False / fast=True)
    • 20 = rife-v4.4 (ensemble=True / fast=False)
    • 21 = rife-v4.5 (ensemble=False)
    • 22 = rife-v4.5 (ensemble=True)
    • 23 = rife-v4.6 (ensemble=False)
    • 24 = rife-v4.6 (ensemble=True)
    • 25 = rife-v4.7 (ensemble=False)
    • 26 = rife-v4.7 (ensemble=True)
    • 27 = rife-v4.8 (ensemble=False)
    • 28 = rife-v4.8 (ensemble=True)
    • 29 = rife-v4.9 (ensemble=False)
    • 30 = rife-v4.9 (ensemble=True)
    • 31 = rife-v4.10 (ensemble=False)
    • 32 = rife-v4.10 (ensemble=True)
    • 33 = rife-v4.11 (ensemble=False)
    • 34 = rife-v4.11 (ensemble=True)
    • 35 = rife-v4.12 (ensemble=False)
    • 36 = rife-v4.12 (ensemble=True)
    • 37 = rife-v4.12-lite (ensemble=False)
    • 38 = rife-v4.12-lite (ensemble=True)
    • 39 = rife-v4.13 (ensemble=False)
    • 40 = rife-v4.13 (ensemble=True)
    • 41 = rife-v4.13-lite (ensemble=False)
    • 42 = rife-v4.13-lite (ensemble=True)
    • 43 = rife-v4.14 (ensemble=False)
    • 44 = rife-v4.14 (ensemble=True)
    • 45 = rife-v4.14-lite (ensemble=False)
    • 46 = rife-v4.14-lite (ensemble=True)
    • 47 = rife-v4.15 (ensemble=False)
    • 48 = rife-v4.15 (ensemble=True)
    • 49 = rife-v4.15-lite (ensemble=False)
    • 50 = rife-v4.15-lite (ensemble=True)
    • 51 = rife-v4.16-lite (ensemble=False)
    • 52 = rife-v4.16-lite (ensemble=True)
    • 53 = rife-v4.17 (ensemble=False)
    • 54 = rife-v4.17 (ensemble=True)
    • 55 = rife-v4.17-lite (ensemble=False)
    • 56 = rife-v4.17-lite (ensemble=True)
    • 57 = rife-v4.18 (ensemble=False)
    • 58 = rife-v4.18 (ensemble=True)
    • 59 = rife-v4.19-beta (ensemble=False)
    • 60 = rife-v4.19-beta (ensemble=True)
    • 61 = rife-v4.20 (ensemble=False)
    • 62 = rife-v4.20 (ensemble=True)
    • 63 = rife-v4.21 (ensemble=False)
    • 64 = rife-v4.22 (ensemble=False)
    • 65 = rife-v4.22-lite (ensemble=False)
    • 66 = rife-v4.23-beta (ensemble=False)
    • 67 = rife-v4.24 (ensemble=False)
    • 68 = rife-v4.24 (ensemble=True)
    • NOTICE: Models 4.25 through 4.26-large have issues at some resolutions.
    • 69 = rife-v4.25 (ensemble=False)
    • 70 = rife-v4.25-lite (ensemble=False)
    • 71 = rife-v4.25-heavy (ensemble=False)
    • 72 = rife-v4.26 (ensemble=False)
    • 73 = rife-v4.26-large (ensemble=False)

    My experimental custom models (only works with 2x)

    • 74 = sudo_rife4 (ensemble=False / fast=True)
    • 75 = sudo_rife4 (ensemble=True / fast=False)
    • 76 = sudo_rife4 (ensemble=True / fast=True)
  • factor_num, factor_den: Factor of target frame rate. For example factor_num=5, factor_den=2 will multiply input clip FPS by 2.5. Only rife-v4 model supports custom frame rate.

  • fps_num, fps_den: Target frame rate. Only rife-v4 model supports custom frame rate. Supersedes factor_num/factor_den parameter if specified.

  • model_path: RIFE model path. Supersedes model parameter if specified.

  • gpu_id: GPU device to use.

  • gpu_thread: Thread count for interpolation. Using larger values may increase GPU usage and consume more GPU memory. If you find that your GPU is hungry, try increasing thread count to achieve faster processing.

  • tta: Enable TTA(Test-Time Augmentation) mode.

  • uhd: Enable UHD mode.

  • sc: Avoid interpolating frames over scene changes. You must invoke misc.SCDetect on YUV or Gray format of the input beforehand so as to set frame properties.

  • skip: Skip interpolating static frames. Requires VMAF plugin.

  • skip_threshold: PSNR threshold to determine whether the current frame and the next one are static.

  • list_gpu: Simply print a list of available GPU devices on the frame and does no interpolation.

Compilation

Requires Vulkan SDK.

git submodule update --init --recursive --depth 1
meson build
ninja -C build
ninja -C build install