这次要解决的问题不是“RIFE 能不能在 Linux 上运行”,而是已经安装了 AUR 版 SVP 之后,SVP Manager 里没有可用的 RIFE 组件入口,系统中的 /opt/svp 也没有 rife 目录。实际排查后发现,Arch 的 svp-bin 包只安装了 SVP 主程序,RIFE 是官方组件仓库中的可选包,需要单独取出并安装。

最终采用的是 SVP 官方提供的 RIFE-ncnn-Vulkan 组件。它不需要安装 PyTorch,也不需要 CUDA Toolkit,推理部分由 SVP 自带的 libRIFE.so 配合 Vulkan 驱动完成。下面的步骤按这台机器的实际环境记录,重点是 AUR 版 SVP 和官方自解压安装器之间的差异。

0. 当前环境与最终方案

先记录环境。后面的判断都基于这些版本和硬件,换成其他显卡时,尤其要重新确认 Vulkan 设备编号。

项目

实际值

说明

系统

Arch Linux rolling

x86_64,内核 7.1.5-arch1-2

SVP

svp-bin 4.6.263-1

AUR 最新包为 4.7.305-3

独立显卡

NVIDIA GeForce RTX 5070 Ti

16GB 显存,Vulkan 设备为 GPU0

NVIDIA 驱动

610.43.03

nvidia-opennvidia-utilsopencl-nvidia

集成显卡

Intel Graphics (ARL)

Vulkan 设备为 GPU1,本次不使用

Vulkan

1.4.357

NVIDIA 和 Intel 两个 Vulkan 设备均能被识别

VapourSynth

77-2

mpv 已编译 VapourSynth bridge

最终安装位置保持为:

/opt/svp/rife/libRIFE.so
/opt/svp/rife/models/

这条路径很重要。RIFE 组件压缩包内部的顶层目录就是 rife,解包目标应该是 /opt/svp,不能把压缩包直接解到 /opt/svp/rife 后再多出一层 /opt/svp/rife/rife

1. 先确认问题不在显卡驱动

不要一看到 SVP 没有 RIFE 菜单就先安装 CUDA。RIFE 的这个版本走 ncnn/Vulkan,先把图形栈单独确认清楚:

nvidia-smi
vulkaninfo --summary
clinfo
mpv --vf=help | rg -i 'vapoursynth|vpy'

这次得到的关键结果是:

GPU0: NVIDIA GeForce RTX 5070 Ti
GPU1: Intel(R) Graphics (ARL)
Platform Name: NVIDIA CUDA
Platform Name: Intel(R) OpenCL Graphics
vapoursynth VapourSynth bridge

因此驱动和播放器不是阻塞点。RTX 5070 Ti 应该作为 RIFE 的计算设备,不能误选成 Vulkan 列表中的 Intel GPU1。没有必要为这套 ncnn/Vulkan 引擎安装完整 CUDA Toolkit,也不要把 TensorRT 模型和 Vulkan 模型混用。

2. AUR 版 SVP 为什么没有 RIFE

先看已安装版本和目录:

pacman -Qi svp-bin | rg '^(Name|Version)'
yay -Si svp-bin | rg '^(名称|Name|版本|Version)'
ls -ld /opt/svp /opt/svp/rife

实际状态是:

Name       : svp-bin
Version    : 4.6.263-1
远端版本    : 4.7.305-3
ls: cannot access '/opt/svp/rife': No such file or directory

AUR 的打包脚本会从官方安装包中提取 SVP 的核心文件,但 RIFE 组件不在核心目录里,它对应的是官方更新仓库中的 opt.rife。官方自解压安装器的图形界面能够管理这个可选组件,AUR 安装后的 SVP Manager 则没有这个入口,所以在 Manager 里找不到“Additional programs”并不是显卡或权限错误。

3. 先把 AUR 版 SVP 更新到当前版本

Arch Linux 不适合做部分升级。先完整更新系统和 SVP 包:

yay -Syu svp-bin

更新完成后确认:

pacman -Qi svp-bin | rg '^(Name|Version)'
ls -la /opt/svp

如果这一步同时更新了内核或 NVIDIA 驱动,按 Arch 的正常流程重启一次。这里不建议把官方 svp4-linux.run 直接覆盖到 AUR 管理的 /opt/svp,否则 pacman 记录的文件和手工安装文件会混在一起。核心程序继续由 AUR 管理,RIFE 组件单独从官方仓库解包即可。

4. 直接安装官方 RIFE Vulkan 组件

当前官方 Linux 更新清单中的 RIFE 组件 ID 是 opt.rife,版本为 4.0-3。对应的二进制压缩包是:

https://www.svp-team.com/files/repo/full-lin64/opt.rife/4.0-3rife.7z

Arch 中使用 7zip 解压,并在解包前做 SHA1 校验:

sudo pacman -S --needed 7zip curl

rife_tmp=$(mktemp -d)

curl -fL \
  'https://www.svp-team.com/files/repo/full-lin64/opt.rife/4.0-3rife.7z' \
  -o "$rife_tmp/rife.7z"

printf '%s  %s\n' \
  'dbc7a5cf0acbd84f08d0de8e3087716d1bd98075' \
  "$rife_tmp/rife.7z" | sha1sum -c -

sudo 7z x -y -o/opt/svp "$rife_tmp/rife.7z"

rm -r -- "$rife_tmp"

校验成功时应显示:

OK

压缩包本身已经包含 RIFE 动态库和几个基础模型。检查解包结果:

find /opt/svp/rife -maxdepth 3 -type f -printf '%P\n'

至少应该看到:

libRIFE.so
rife-v4/flownet.bin
rife-v4/flownet.param
models/rife-v4.6/flownet.bin
models/rife-v4.6/flownet.param
models/rife-v4.16lite/flownet.bin
models/rife-v4.16lite/flownet.param

如果最终出现的是 /opt/svp/rife/rife/libRIFE.so,说明解包目标多写了一层目录。把内容移动到正确位置后再继续,SVP 不会自动搜索这个错误路径。

5. 额外安装 GitHub 模型

官方组件自带的 rife-v4.6 已足够验证引擎。确认基础模型能工作之后,再按需要从 VapourSynth-RIFE-ncnn-Vulkan 增加模型。这个仓库体积不小,不建议第一次就把所有版本全部拉下来。

例如先只安装一个非 ensemble 模型:

sudo pacman -S --needed git

model_tmp=$(mktemp -d)

git clone --depth=1 --filter=blob:none --sparse \
  https://github.com/styler00dollar/VapourSynth-RIFE-ncnn-Vulkan.git \
  "$model_tmp/rife"

git -C "$model_tmp/rife" sparse-checkout set --no-cone \
  'models/rife-v4.6_ensembleFalse/**'

sudo install -d -m 755 /opt/svp/rife/models
sudo cp -a \
  "$model_tmp/rife/models/rife-v4.6_ensembleFalse" \
  /opt/svp/rife/models/

rm -r -- "$model_tmp"

如果确实需要仓库中的全部模型,把最后的 sparse checkout 改成:

git -C "$model_tmp/rife" sparse-checkout set models

复制时要复制 models/ 里面的目录,不要把整个仓库目录作为一个模型放到 /opt/svp/rife/models 下。

6. 在 SVP 中选择 RIFE

RIFE 文件安装完成后,完全退出正在运行的 SVP Manager,再重新启动:

/opt/svp/SVPManager

在视频配置中选择:

Video profile: RIFE AI engine
Engine: ncnn/Vulkan
GPU device: NVIDIA GeForce RTX 5070 Ti
AI model: rife-v4.6
GPU threads: 2

这台机器的 Vulkan 枚举顺序是 NVIDIA GPU0、Intel GPU1,所以不要只按“第二块卡”或“默认设备”猜测。优先按界面显示的显卡名称选择 RTX 5070 Ti。16GB 显存先使用 2 个 GPU threads,确认稳定后再试 3;threads 越高不一定线性提速,也会增加显存占用。

这里选择 ncnn/Vulkan 而不是 TensorRT。TensorRT 是另一个可选组件,依赖不同的模型格式和运行库,不能拿 .bin/.param 的 Vulkan 模型直接套用。

7. 常见问题

SVP Manager 里没有 Additional programs

这是 AUR 打包方式造成的。不要继续在 Manager 菜单里找,也不要为了这个功能覆盖安装整套官方 SVP。直接安装本篇第 4 节的 4.0-3rife.7z 即可。

有 RIFE profile,但启动时报找不到引擎

先检查动态库:

test -f /opt/svp/rife/libRIFE.so && echo 'libRIFE.so exists'
ldd /opt/svp/rife/libRIFE.so | rg 'not found' || true

如果动态库存在但模型加载失败,再检查模型目录和文件:

find /opt/svp/rife/models -maxdepth 2 -type f -printf '%p\n'
test -f /opt/svp/rife/models/rife-v4.6/flownet.bin && echo 'model exists'

GPU 选错导致性能很差

执行:

vulkaninfo --summary | sed -n '/Devices:/,$p'

当前环境中 NVIDIA 是 GPU0,Intel 是 GPU1。RIFE 如果跑到了 Intel 集显,通常不是安装失败,而是 profile 的 GPU device 选错了。

是否需要 Python、PyTorch 或 CUDA Toolkit

这套 SVP RIFE 组件使用已经编译好的 ncnn/Vulkan 引擎,不需要为它创建 Python 虚拟环境,也不需要安装 PyTorch。只要 Vulkan loader、显卡驱动和对应的 Vulkan 设备可用即可。

8. 最终检查清单

# AUR 版 SVP
pacman -Qi svp-bin | rg '^(Name|Version)'

# RIFE 动态库
test -f /opt/svp/rife/libRIFE.so && echo 'RIFE engine: OK'

# 基础模型
test -f /opt/svp/rife/models/rife-v4.6/flownet.bin && echo 'RIFE model: OK'

# Vulkan 设备
vulkaninfo --summary | rg 'deviceName|driverName'

# mpv 的 VapourSynth 支持
mpv --vf=help | rg -i 'vapoursynth|vpy'

这次的关键不是把一套 Windows 安装流程硬搬到 Arch,而是把文件的归属分开:SVP 核心由 AUR 的 svp-bin 管理,RIFE 通过官方 opt.rife 组件补齐,模型放在 /opt/svp/rife/models,Vulkan 设备明确选择 RTX 5070 Ti。这样后续更新 SVP 核心时,不需要重新安装 CUDA 或重建 RIFE。