Skip to content

Asd-g/AviSynthPlus-RIFE

Repository files navigation

Description

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

This is a port of the VapourSynth plugin RIFE.

Requirements:

  • Vulkan device

  • AviSynth+ r3688 or later (1 / 2 / 3)

  • Microsoft VisualC++ Redistributable Package 2022 (can be downloaded from here)

Usage:

RIFE(clip input, int "model", int "factor_num", int "factor_den", int "fps_num", int "fps_den", string "model_path", int "gpu_id", int "gpu_thread", bool "tta", bool "uhd", bool "sc", bool "sc1", float "sc_threshold", bool "skip", float "skip_threshold", bool "list_gpu", bool "denoise", int "denoise_tr")

Parameters:

  • input
    A clip to process.
    It must be in RGB 32-bit planar format.

  • model
    Model to use.
    models must be located in the same folder as RIFE.dll.
    Some of the models have two versions: speed oriented (ensemble=False / fast=True) and quality oriented (ensemble=True / fast=False).
    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_ensembleFalse_fastTrue
    10: rife-v3.9_ensembleTrue_fastFalse
    11: rife-v4_ensembleFalse_fastTrue
    12: rife-v4_ensembleTrue_fastFalse
    13: rife-v4.1_ensembleFalse_fastTrue
    14: rife-v4.1_ensembleTrue_fastFalse
    15: rife-v4.2_ensembleFalse_fastTrue
    16: rife-v4.2_ensembleTrue_fastFalse
    17: rife-v4.3_ensembleFalse_fastTrue
    18: rife-v4.3_ensembleTrue_fastFalse
    19: rife-v4.4_ensembleFalse_fastTrue
    20: rife-v4.4_ensembleTrue_fastFalse
    21: rife-v4.5_ensembleFalse
    22: rife-v4.5_ensembleTrue
    23: rife-v4.6_ensembleFalse
    24: rife-v4.6_ensembleTrue
    25: rife-v4.7_ensembleFalse
    26: rife-v4.7_ensembleTrue
    27: rife-v4.8_ensembleFalse
    28: rife-v4.8_ensembleTrue
    29: rife-v4.9_ensembleFalse
    30: rife-v4.9_ensembleTrue
    31: rife-v4.10_ensembleFalse
    32: rife-v4.10_ensembleTrue
    33: rife-v4.11_ensembleFalse
    34: rife-v4.11_ensembleTrue
    35: rife-v4.12_ensembleFalse
    36: rife-v4.12_ensembleTrue
    37: rife-v4.12_lite_ensembleFalse
    38: rife-v4.12_lite_ensembleTrue
    39: rife-v4.13_ensembleFalse
    40: rife-v4.13_ensembleTrue
    41: rife-v4.13_lite_ensembleFalse
    42: rife-v4.13_lite_ensembleTrue
    43: rife-v4.14_ensembleFalse
    44: rife-v4.14_ensembleTrue
    45: rife-v4.14_lite_ensembleFalse
    46: rife-v4.14_lite_ensembleTrue
    47: rife-v4.15_ensembleFalse
    48: rife-v4.15_ensembleTrue
    49: rife-v4.15_lite_ensembleFalse
    50: rife-v4.15_lite_ensembleTrue
    51: rife-v4.16_lite_ensembleFalse
    52: rife-v4.16_lite_ensembleTrue
    53: sudo_rife4_ensembleFalse_fastTrue
    54: sudo_rife4_ensembleTrue_fastFalse
    55: sudo_rife4_ensembleTrue_fastTrue
    Default: 5.

  • 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.
    Default: 2, 1.

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

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

  • gpu_id
    GPU device to use.
    By default the default device is selected.

  • 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.
    Must be between 1 and the max compute queue count supported by the GPU.
    Default: 2.

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

  • uhd
    Enable UHD mode.
    Default: False.

  • sc
    Avoid interpolating frames over scene changes.
    This cannot be true when sc1=true.
    Default: False.

  • sc1
    Blend frames (average) frames over scene changes.
    This cannot be true when sc=true.
    Default: False.

  • sc_threshold
    Threshold to determine whether the current frame and the next one are end/beginning of scene.
    Must be between 0.0..1.0.
    Default: 0.12.

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

  • skip_threshold
    PSNR threshold to determine whether the current frame and the next one are static.
    Must be between 0.0..60.0.
    Default: 60.0.

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

  • denoise
    Whether to return only the interpolated frames.
    Default: False.

  • denoise_tr
    Frame radius.
    For example, denoise_tr=1 means frames n-1 and n+1 are used.
    Must be greater than 0.
    Default: 1.

Building:

  • Requires Boost, Vulkan SDK.
git clone --depth 1 --recurse-submodules --shallow-submodules https://github.com/Asd-g/AviSynthPlus-RIFE
cd AviSynthPlus-RIFE

# Building boost (optional):
#b2 --with-system --with-filesystem --with-chrono -q --toolset=msvc-14.3 address-model=64 variant=release link=static runtime-link=shared threading=multi --hash --prefix=.\bin\x64
#b2 --with-system --with-filesystem --with-chrono -q --toolset=msvc-14.3 address-model=64 variant=release link=static runtime-link=shared threading=multi --hash --prefix=.\bin\x64 install

cmake -B build -G Ninja -DCMAKE_PREFIX_PATH=<path_to_boost_installation>;<path_to_vulkan_installation>