咨询一下MPV懒人包补帧问题
本帖最后由 yxch 于 2024-10-23 22:13 编辑听闻RIFE补帧效果好,想试一下,搜到了这个懒人包 https://github.com/hooke007/MPV_lazy/releases/tag/20240824 (网上还有一些步骤繁琐的教程,那个我是真的搞不定)
这个包补帧滤镜是能够正常工作的,但是着色器超分都不起作用,(滤镜中的两个超分预设是起作用的)凭我的技术能力根本不知道从何下手,一头雾水。求个解决方案,或者有整合好的懒人包也行,需求是视频RIFE补帧到60fps的同时可以开启超分辨率,显卡是4090性能肯定带得动。(补帧如果是以原视频帧数的倍率进行补帧也可以,这个我会调整)
更新一下:
经过仔细比对,着色器超分效果是有的,但非常不明显,而滤镜中的两个超分选项效果非常明显,如果说滤镜超分的效果是10分的话,着色器的超分效果大概为0.5~1分。超分滤镜虽然效果明显,对真人视频效果并不好,会出现严重涂抹感,对2D效果拔群。
实际是起作用的
你试试暂停了开/关着色器看看边缘有没锐化,别用新片测,很难看出来
90年代的4:3影片着色器效果较为明显 本帖最后由 zmw_831110 于 2024-10-23 12:44 编辑
大致思路就是
找到MPV路径里.vpy放置的文件夹.
新建.vpy文件,修改你想要的组合.
把input.conf里原本超分的.vpy改成这个.vpy,就可以同时插帧+ 超分了。
ESRGAN里model号对应的关系,比较通用的是5010,动画定向优化的是5007
RIFE的model号对应关系,46很差,建议4151起
现在没电脑,晚上会去看看,当时我怎么改的.
因为我是4070TiS,最终发现我超分我只能搞到1080p然后再RIFE,否则我就别想视频加速播放了.
我最终是改出几个菜单.
仅RIFE模型4151 2.5X --对应24→60FPS
仅RIFE模型4151 2.4X --对应25→60FPS
仅RIFE模型4151 2X --对应30→60FPS
仅超分到1440p模型5007
仅超分到1440p模型5010
超分到1080p模型5007+RIFE模型4151 2X
超分到1080p模型5010+RIFE模型4151 2X
RIFE和ESRGAN配置:
下面的脚本的参数都是默认状态的,你根据自己的需求自己改
单独开启RIFE用的MEMC_RIFE_NV.vpy
### https://github.com/hooke007/MPV_lazy/wiki/3_K7sfunc
### RIFE (v4+) 补帧,性能要求较高,N卡专用
import vapoursynth as vs
from vapoursynth import core
import k7sfunc as k7f
clip = video_in
############
# 用户选项 #
############
H_Pre = 1440
Lt_D2k = False
Model = 46
Ext_Proc = False
#Ext_Proc = True
T_Tta = False
Fps_Num = 2
Fps_Den = 1
Sc_Mode = 1
Gpu = 0
Gpu_T = 2
St_Eng = False
Ws_Size = 0
Lk_Fmt = False
## 整数,预降低处理源高度(填你的显示器高度)
## <True|False> 是否对超过DCI2K分辨率的源进行补帧
## <46|415|4151> 使用的模型
## <True|False> 是否使用外部的填充裁切处理
## <True|False> 是否使用ensemble版模型
## 整数,Fps_Num/Fps_Den 的值即帧率倍数
## 整数
## <0|1|2> 场景切换检测的模式,0为禁用
## 使用的显卡序号,0为排序一号
## <1|2|3> 显卡线程数
## <True|False> 是否使用静态引擎(需要对不同分辨率的源各进行预处理);动态引擎自适应不同分辨率(QVGA→DCI4K)
## 整数,约束显存(MiB),静态引擎的最小值为128(动态引擎自动双倍),设为低于此数的值即最大化利用
## <True|False> 锁定像素格式为yuv420p8
ret = k7f.FPS_CTRL(clip, fps_in=container_fps, fps_ret=True)
clip = k7f.FMT_CTRL(clip, h_max=H_Pre, fmt_pix=1 if Lk_Fmt else 0)
clip = k7f.RIFE_NV(clip, lt_d2k=Lt_D2k, model=Model, ext_proc=Ext_Proc, t_tta=T_Tta, fps_in=container_fps, fps_num=Fps_Num, fps_den=Fps_Den, sc_mode=Sc_Mode, gpu=Gpu, gpu_t=Gpu_T, st_eng=St_Eng, ws_size=Ws_Size)
clip.set_output()
单独开启ESRGAN用的SR_ESRGAN_NV.vpy
### https://github.com/hooke007/MPV_lazy/wiki/3_K7sfunc
### Real-ESRGAN 放大或降噪,性能要求极高,N卡专用
import vapoursynth as vs
from vapoursynth import core
import k7sfunc as k7f
clip = video_in
############
# 用户选项 #
############
H_Pre = 720
Lt_Hd = False
Model = 5005
Gpu = 0
Gpu_T = 2
St_Eng = False
Ws_Size = 0
H_Max = 1440
Lk_Fmt = False
## 整数,预降低处理源高度
## <True|False> 是否对超过HD分辨率(720P)的源进行处理
## <0|2|5005|5006|5007> 使用的模型
## 使用的显卡序号,0为排序一号
## <1|2|3> 使用的显卡线程数
## <True|False> 是否使用静态引擎(需要对不同分辨率的源各进行预处理);动态引擎自适应不同分辨率(64²→DCI2K)
## <0~1024> 约束显存(MiB),静态引擎的最小值为128(动态引擎自动双倍),设为低于此数的值即为不限制
## 整数,输出高度限制(填你的显示器高度)
## <True|False> 是否锁定像素格式为yuv420p8
ret = k7f.FMT_CTRL(clip, h_max=1200, h_ret=True)
clip = k7f.FMT_CTRL(clip, h_max=H_Pre, fmt_pix=1 if Lk_Fmt else 0)
clip = k7f.ESRGAN_NV(clip, lt_hd=Lt_Hd, model=Model, gpu=Gpu, gpu_t=Gpu_T, st_eng=St_Eng, ws_size=Ws_Size)
clip = k7f.FMT_CTRL(clip, h_max=H_Max, fmt_pix=1 if Lk_Fmt else 0)
clip.set_output()
同时开启RIFE+ESRGAN用的MEMC_RIFE_NV_SR_ESRGAN_NV.vpy
有引用上面的2个文件
import k7sfunc as k7f
clip = video_in
if clip.height <= 1080 :
clip = k7f.FMT_CTRL(clip, h_max=720, fmt_pix=1)
clip = k7f.ESRGAN_NV(clip, lt_hd=True, gpu=0)
clip = k7f.FMT_CTRL(clip, h_max=1440)
if container_fps <= 32 :
clip = k7f.FMT_CTRL(clip, h_max=1440, fmt_pix=1)
clip = k7f.RIFE_NV(clip, lt_d2k=True, model=46, gpu=0)
if not (clip == video_in) :
clip.set_output()
好奇,这个 RIFE 补帧效果和 SVP 比起来哪个好一点?
—— 来自 S1Fun keytomylife0 发表于 2024-10-23 12:24
实际是起作用的
你试试暂停了开/关着色器看看边缘有没锐化,别用新片测,很难看出来
90年代的4:3影片着色 ...
我用新出的乱马试的,开超分滤镜效果超级明显,开着色器每个都试一遍,完全看不出来效果。我再仔细比对一下 rife默认下会缩到720p再插帧吧,着色器在滤镜前面所以拉上去就给缩了(大概是这样
把rife配置文件里面的输出分辨率改改 本帖最后由 zmw_831110 于 2024-10-23 15:46 编辑
qwased 发表于 2024-10-23 15:24
rife默认下会缩到720p再插帧吧,着色器在滤镜前面所以拉上去就给缩了(大概是这样
把rife配置文件里面的输 ...
可以改,我是设置的超过1440p就缩小到到1440p再插帧
H_Pre = 1440
Lt_D2k = False
## 整数,预降低处理源高度(填你的显示器高度)
## <True|False> 是否对超过DCI2K分辨率的源进行补帧
要完全不降分辨率插帧
H_Pre = 2160
Lt_D2k = Ture
要求4080以及以上的显卡才可以24*2,我的4070TiS设置成这样,跑测试在47.X,有的视频可以,有的不行,而且不能开任何滤镜,否则也不行,后来感觉易用性不好,就改成最多1440了 4090我在4K杜比跑4221模型24-48fps 会音画对不齐啊,而且显卡也没吃满,不知道是不是我U瓶颈 本帖最后由 keytomylife0 于 2024-10-23 16:29 编辑
yxch 发表于 2024-10-23 13:22
我用新出的乱马试的,开超分滤镜效果超级明显,开着色器每个都试一遍,完全看不出来效果。我再仔细比对一 ...
再补一张超分+着色器的
旧版乱马也就看出一丁点区别,新版肯定没作用
着色器对近15年的动画个人觉得是毫无帮助,也就老片看起来锐利点
keytomylife0 发表于 2024-10-23 16:06
旧版乱马也就看出一丁点区别,新版肯定没作用
着色器对近15年的动画个人觉得是毫无帮助,也就老片看起 ...
主要是我开超分滤镜效果特别明显,相比之下就感觉着色器都不起作用,你们这么一说,我也不确定是真没起作用还是我没分辨出来 yxch 发表于 2024-10-23 16:29
主要是我开超分滤镜效果特别明显,相比之下就感觉着色器都不起作用,你们这么一说,我也不确定是真没起作 ...
你试试默认 滤镜 着色器 滤镜+着色器 各截一同一张图,不断切换就能看出区别
无能狂怒人 发表于 2024-10-23 13:18
好奇,这个 RIFE 补帧效果和 SVP 比起来哪个好一点?
—— 来自 S1Fun
买svp的现在也全在用rife模型了啊根本不是一个次元的效果 yxch 发表于 2024-10-23 16:29
主要是我开超分滤镜效果特别明显,相比之下就感觉着色器都不起作用,你们这么一说,我也不确定是真没起作 ...
新版本的MPV_lazy
作者懒得把着色器放默认包里
要你自己去下载,放到
\mpv-lazy\portable_config\shaders里面去
本帖最后由 zmw_831110 于 2024-10-23 22:26 编辑
我的MVP lazy还是2024V1的
你的是2024V2
我的配置,你只可以参考一下,我改了啥地方,也许会对你有帮助(善用Beyond Compare)
代码里"#"是注释符
注意,因为受限于我的性能
我的RIFE插帧,最大输入分辨率限制在1440p
我的超分+RIFE插帧,限制在超分输出1080p到RIFE
这两部分怎么改,我上面有说RIFE怎么改,超分也是类似的,你改一次,也就侧类旁通了.
另外,如果某次MPV死机,记得删除 \mpv-lazy\portable_config\saved-props.json
否则会不会默认加载上一次的着色器(滤镜)
而RIFE和超分,每次则需要手动开启
WhiteGlint 发表于 2024-10-23 16:03
4090我在4K杜比跑4221模型24-48fps 会音画对不齐啊,而且显卡也没吃满,不知道是不是我U瓶颈 ...
开个小飞机,看看视频的帧生成曲线是不是平滑的呢
插帧后,音画不同步,好像我也遇见过,后来搜索解决了,但我已经忘记怎么解决的了,甚至我不记得是不是在MPV上遇见的
到是配置成HDR直通,花了点时间 zmw_831110 发表于 2024-10-23 22:31
开个小飞机,看看视频的帧生成曲线是不是平滑的呢
插帧后,音画不同步,好像我也遇见过,后来搜索解决了,但 ...
A+V那边偏差值一直在0.2上下跳动 帧生成不稳定 感觉是性能不足 换46模型就好了 本帖最后由 zmw_831110 于 2024-10-23 22:53 编辑
WhiteGlint 发表于 2024-10-23 22:44
A+V那边偏差值一直在0.2上下跳动 帧生成不稳定 感觉是性能不足 换46模型就好了 ...
46很垃圾的...部分表现还不如A卡(GCN)的AFM
建议你试一试415(这个4.15评价很高),我性能不够,用的4151(4.15Lite)
你可以先看看MPV lazy的作者默认给你做好的配置
在mpv-lazy\k7sfunc.py文件里的
##################################################
## RIFE补帧
##################################################
def RIFE_NV(
input : vs.VideoNode,
lt_d2k : bool = False,
model : typing.Literal = 46,
ext_proc : bool = True,
t_tta : bool = False,
fps_in : float = 23.976,
fps_num : int = 2,
fps_den : int = 1,
sc_mode : typing.Literal = 1,
gpu : typing.Literal = 0,
gpu_t : int = 2,
st_eng : bool = False,
ws_size : int = 0,
vs_t : int = vs_thd_dft,
) -> vs.VideoNode :
我更换RIFE,一般是直接改名新版本的RIFE,直接覆盖过去
比如我常用的4151对应的是rife_v4.15_lite.onnx
我就直接把新版本的.onnx文件,直接改成rife_v4.15_lite.onnx去覆盖原本的文件(当然,提前备份好真的rife_v4.15_lite.onnx)
\mpv-lazy\vs-plugins\models\rife_v2\rife_v4.15_lite.onnx
zmw_831110 发表于 2024-10-23 22:48
46很垃圾的...部分表现还不如A卡(GCN)的AFM
建议你试一试415(这个4.15评价很高),我性能不够,用的4151(4.15 ...
多谢,我试试看。
我是没有降低分辨率插帧,4151模型的A+V偏差值也会维持在0.2
也就是Vpy的配置文件里是
H_Pre = 2160
Lt_D2k = True
预降低处理源高度的话好像就没有问题,但是我感觉4090的性能应该够,我检查一下滤镜方面
WhiteGlint 发表于 2024-10-24 00:42
多谢,我试试看。
我是没有降低分辨率插帧,4151模型的A+V偏差值也会维持在0.2
也就是Vpy的配置文件里是
滤镜得关。。。你这个就是性能不够
页:
[1]