mirror of
https://github.com/k4yt3x/video2x.git
synced 2026-02-28 03:10:34 +08:00
feat(rife): add support for frame interpolation and RIFE (#1244)
* feat: add RIFE files and processor/interpolator abstractions * feat: add `rife` as processor option * feat: add frame interpolation math except first frame * feat: complete motion interpolation and add scene detection * feat: improve Vulkan device validation * fix: fix casting issues and variable names * refactor: improve error-checking; add abstractions and factories * refactor: improve readability of the frames processor * docs: update changelog Signed-off-by: k4yt3x <i@k4yt3x.com>
This commit is contained in:
BIN
models/rife/rife-v3.1/contextnet.bin
vendored
Normal file
BIN
models/rife/rife-v3.1/contextnet.bin
vendored
Normal file
Binary file not shown.
42
models/rife/rife-v3.1/contextnet.param
vendored
Normal file
42
models/rife/rife-v3.1/contextnet.param
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
7767517
|
||||
40 46
|
||||
Input input.1 0 1 input.1
|
||||
Input flow.0 0 1 flow.0
|
||||
Convolution Conv_0 1 1 input.1 32 0=32 1=3 3=2 4=1 5=1 6=864
|
||||
PReLU PRelu_1 1 1 32 34 0=32
|
||||
Convolution Conv_2 1 1 34 35 0=32 1=3 4=1 5=1 6=9216
|
||||
PReLU PRelu_3 1 1 35 37 0=32
|
||||
Convolution Conv_4 1 1 37 38 0=32 1=3 3=2 4=1 5=1 6=9216
|
||||
PReLU PRelu_5 1 1 38 40 0=32
|
||||
Convolution Conv_6 1 1 40 41 0=32 1=3 4=1 5=1 6=9216
|
||||
PReLU PRelu_7 1 1 41 43 0=32
|
||||
Split splitncnn_0 1 2 43 43_splitncnn_0 43_splitncnn_1
|
||||
Interp Resize_9 1 1 flow.0 53 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
BinaryOp Mul_11 1 1 53 55 0=2 1=1 2=5.000000e-01
|
||||
Split splitncnn_1 1 2 55 55_splitncnn_0 55_splitncnn_1
|
||||
rife.Warp Warp_17 2 1 43_splitncnn_1 55_splitncnn_1 f1
|
||||
Convolution Conv_18 1 1 43_splitncnn_0 62 0=64 1=3 3=2 4=1 5=1 6=18432
|
||||
PReLU PRelu_19 1 1 62 64 0=64
|
||||
Convolution Conv_20 1 1 64 65 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_21 1 1 65 67 0=64
|
||||
Split splitncnn_2 1 2 67 67_splitncnn_0 67_splitncnn_1
|
||||
Interp Resize_23 1 1 55_splitncnn_0 77 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
BinaryOp Mul_25 1 1 77 79 0=2 1=1 2=5.000000e-01
|
||||
Split splitncnn_3 1 2 79 79_splitncnn_0 79_splitncnn_1
|
||||
rife.Warp Warp_31 2 1 67_splitncnn_1 79_splitncnn_1 f2
|
||||
Convolution Conv_32 1 1 67_splitncnn_0 86 0=128 1=3 3=2 4=1 5=1 6=73728
|
||||
PReLU PRelu_33 1 1 86 88 0=128
|
||||
Convolution Conv_34 1 1 88 89 0=128 1=3 4=1 5=1 6=147456
|
||||
PReLU PRelu_35 1 1 89 91 0=128
|
||||
Split splitncnn_4 1 2 91 91_splitncnn_0 91_splitncnn_1
|
||||
Interp Resize_37 1 1 79_splitncnn_0 101 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
BinaryOp Mul_39 1 1 101 103 0=2 1=1 2=5.000000e-01
|
||||
Split splitncnn_5 1 2 103 103_splitncnn_0 103_splitncnn_1
|
||||
rife.Warp Warp_45 2 1 91_splitncnn_1 103_splitncnn_1 f3
|
||||
Convolution Conv_46 1 1 91_splitncnn_0 110 0=256 1=3 3=2 4=1 5=1 6=294912
|
||||
PReLU PRelu_47 1 1 110 112 0=256
|
||||
Convolution Conv_48 1 1 112 113 0=256 1=3 4=1 5=1 6=589824
|
||||
PReLU PRelu_49 1 1 113 115 0=256
|
||||
Interp Resize_51 1 1 103_splitncnn_0 125 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
BinaryOp Mul_53 1 1 125 127 0=2 1=1 2=5.000000e-01
|
||||
rife.Warp Warp_59 2 1 115 127 f4
|
||||
BIN
models/rife/rife-v3.1/flownet.bin
vendored
Normal file
BIN
models/rife/rife-v3.1/flownet.bin
vendored
Normal file
Binary file not shown.
114
models/rife/rife-v3.1/flownet.param
vendored
Normal file
114
models/rife/rife-v3.1/flownet.param
vendored
Normal file
@@ -0,0 +1,114 @@
|
||||
7767517
|
||||
112 132
|
||||
Input input0 0 1 input0
|
||||
Input input1 0 1 input1
|
||||
Concat input.1 2 1 input0 input1 input.1
|
||||
Interp Resize_1 1 1 input.1 88 0=2
|
||||
Split splitncnn_0 1 5 88 88_splitncnn_0 88_splitncnn_1 88_splitncnn_2 88_splitncnn_3 88_splitncnn_4
|
||||
Interp Resize_3 1 1 88_splitncnn_4 98 0=2 1=2.500000e-01 2=2.500000e-01
|
||||
Convolution Conv_4 1 1 98 99 0=80 1=3 3=2 4=1 5=1 6=4320
|
||||
PReLU PRelu_5 1 1 99 101 0=80
|
||||
Convolution Conv_6 1 1 101 102 0=160 1=3 3=2 4=1 5=1 6=115200
|
||||
PReLU PRelu_7 1 1 102 104 0=160
|
||||
Split splitncnn_1 1 2 104 104_splitncnn_0 104_splitncnn_1
|
||||
Convolution Conv_8 1 1 104_splitncnn_1 105 0=160 1=3 4=1 5=1 6=230400
|
||||
PReLU PRelu_9 1 1 105 107 0=160
|
||||
Convolution Conv_10 1 1 107 108 0=160 1=3 4=1 5=1 6=230400
|
||||
PReLU PRelu_11 1 1 108 110 0=160
|
||||
BinaryOp Add_12 2 1 110 104_splitncnn_0 111
|
||||
Split splitncnn_2 1 2 111 111_splitncnn_0 111_splitncnn_1
|
||||
Convolution Conv_13 1 1 111_splitncnn_1 112 0=160 1=3 4=1 5=1 6=230400
|
||||
PReLU PRelu_14 1 1 112 114 0=160
|
||||
Convolution Conv_15 1 1 114 115 0=160 1=3 4=1 5=1 6=230400
|
||||
PReLU PRelu_16 1 1 115 117 0=160
|
||||
BinaryOp Add_17 2 1 117 111_splitncnn_0 118
|
||||
Split splitncnn_3 1 2 118 118_splitncnn_0 118_splitncnn_1
|
||||
Convolution Conv_18 1 1 118_splitncnn_1 119 0=160 1=3 4=1 5=1 6=230400
|
||||
PReLU PRelu_19 1 1 119 121 0=160
|
||||
Convolution Conv_20 1 1 121 122 0=160 1=3 4=1 5=1 6=230400
|
||||
PReLU PRelu_21 1 1 122 124 0=160
|
||||
BinaryOp Add_22 2 1 124 118_splitncnn_0 125
|
||||
Deconvolution ConvTranspose_23 1 1 125 126 0=4 1=4 3=2 4=1 5=1 6=10240
|
||||
Interp Resize_25 1 1 126 136 0=2 1=4.000000e+00 2=4.000000e+00
|
||||
BinaryOp Mul_27 1 1 136 138 0=2 1=1 2=4.000000e+00
|
||||
Split splitncnn_4 1 3 138 138_splitncnn_0 138_splitncnn_1 138_splitncnn_2
|
||||
Interp Resize_29 1 1 138_splitncnn_2 148 0=2 1=2.000000e+00 2=2.000000e+00
|
||||
BinaryOp Mul_31 1 1 148 150 0=2 1=1 2=2.000000e+00
|
||||
Split splitncnn_5 1 3 150 150_splitncnn_0 150_splitncnn_1 150_splitncnn_2
|
||||
Crop Slice_36 1 1 88_splitncnn_3 155 -23309=1,0 -23310=1,3 -23311=1,0
|
||||
Crop Slice_41 1 1 150_splitncnn_2 160 -23309=1,0 -23310=1,2 -23311=1,0
|
||||
rife.Warp Warp_47 2 1 155 160 166
|
||||
Crop Slice_52 1 1 88_splitncnn_2 171 -23309=1,3 -23310=1,2147483647 -23311=1,0
|
||||
Crop Slice_57 1 1 150_splitncnn_1 176 -23309=1,2 -23310=1,4 -23311=1,0
|
||||
rife.Warp Warp_63 2 1 171 176 182
|
||||
Concat Concat_64 2 1 166 182 183
|
||||
Interp Resize_66 1 1 183 193 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
Interp Resize_68 1 1 150_splitncnn_0 203 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
BinaryOp Mul_70 1 1 203 205 0=2 1=1 2=5.000000e-01
|
||||
Concat Concat_71 2 1 193 205 206
|
||||
Convolution Conv_72 1 1 206 207 0=80 1=3 3=2 4=1 5=1 6=7200
|
||||
PReLU PRelu_73 1 1 207 209 0=80
|
||||
Convolution Conv_74 1 1 209 210 0=160 1=3 3=2 4=1 5=1 6=115200
|
||||
PReLU PRelu_75 1 1 210 212 0=160
|
||||
Split splitncnn_6 1 2 212 212_splitncnn_0 212_splitncnn_1
|
||||
Convolution Conv_76 1 1 212_splitncnn_1 213 0=160 1=3 4=1 5=1 6=230400
|
||||
PReLU PRelu_77 1 1 213 215 0=160
|
||||
Convolution Conv_78 1 1 215 216 0=160 1=3 4=1 5=1 6=230400
|
||||
PReLU PRelu_79 1 1 216 218 0=160
|
||||
BinaryOp Add_80 2 1 218 212_splitncnn_0 219
|
||||
Split splitncnn_7 1 2 219 219_splitncnn_0 219_splitncnn_1
|
||||
Convolution Conv_81 1 1 219_splitncnn_1 220 0=160 1=3 4=1 5=1 6=230400
|
||||
PReLU PRelu_82 1 1 220 222 0=160
|
||||
Convolution Conv_83 1 1 222 223 0=160 1=3 4=1 5=1 6=230400
|
||||
PReLU PRelu_84 1 1 223 225 0=160
|
||||
BinaryOp Add_85 2 1 225 219_splitncnn_0 226
|
||||
Split splitncnn_8 1 2 226 226_splitncnn_0 226_splitncnn_1
|
||||
Convolution Conv_86 1 1 226_splitncnn_1 227 0=160 1=3 4=1 5=1 6=230400
|
||||
PReLU PRelu_87 1 1 227 229 0=160
|
||||
Convolution Conv_88 1 1 229 230 0=160 1=3 4=1 5=1 6=230400
|
||||
PReLU PRelu_89 1 1 230 232 0=160
|
||||
BinaryOp Add_90 2 1 232 226_splitncnn_0 233
|
||||
Deconvolution ConvTranspose_91 1 1 233 234 0=4 1=4 3=2 4=1 5=1 6=10240
|
||||
Interp Resize_93 1 1 234 244 0=2 1=2.000000e+00 2=2.000000e+00
|
||||
BinaryOp Mul_95 1 1 244 246 0=2 1=1 2=2.000000e+00
|
||||
Split splitncnn_9 1 2 246 246_splitncnn_0 246_splitncnn_1
|
||||
BinaryOp Add_96 2 1 138_splitncnn_1 246_splitncnn_1 247
|
||||
Interp Resize_98 1 1 247 257 0=2 1=2.000000e+00 2=2.000000e+00
|
||||
BinaryOp Mul_100 1 1 257 259 0=2 1=1 2=2.000000e+00
|
||||
Split splitncnn_10 1 3 259 259_splitncnn_0 259_splitncnn_1 259_splitncnn_2
|
||||
Crop Slice_105 1 1 88_splitncnn_1 264 -23309=1,0 -23310=1,3 -23311=1,0
|
||||
Crop Slice_110 1 1 259_splitncnn_2 269 -23309=1,0 -23310=1,2 -23311=1,0
|
||||
rife.Warp Warp_116 2 1 264 269 275
|
||||
Crop Slice_121 1 1 88_splitncnn_0 280 -23309=1,3 -23310=1,2147483647 -23311=1,0
|
||||
Crop Slice_126 1 1 259_splitncnn_1 285 -23309=1,2 -23310=1,4 -23311=1,0
|
||||
rife.Warp Warp_132 2 1 280 285 291
|
||||
Concat Concat_133 2 1 275 291 292
|
||||
Interp Resize_135 1 1 292 302 0=2
|
||||
Interp Resize_137 1 1 259_splitncnn_0 312 0=2
|
||||
BinaryOp Mul_139 1 1 312 314 0=2 1=1 2=1.000000e+00
|
||||
Concat Concat_140 2 1 302 314 315
|
||||
Convolution Conv_141 1 1 315 316 0=80 1=3 3=2 4=1 5=1 6=7200
|
||||
PReLU PRelu_142 1 1 316 318 0=80
|
||||
Convolution Conv_143 1 1 318 319 0=160 1=3 3=2 4=1 5=1 6=115200
|
||||
PReLU PRelu_144 1 1 319 321 0=160
|
||||
Split splitncnn_11 1 2 321 321_splitncnn_0 321_splitncnn_1
|
||||
Convolution Conv_145 1 1 321_splitncnn_1 322 0=160 1=3 4=1 5=1 6=230400
|
||||
PReLU PRelu_146 1 1 322 324 0=160
|
||||
Convolution Conv_147 1 1 324 325 0=160 1=3 4=1 5=1 6=230400
|
||||
PReLU PRelu_148 1 1 325 327 0=160
|
||||
BinaryOp Add_149 2 1 327 321_splitncnn_0 328
|
||||
Split splitncnn_12 1 2 328 328_splitncnn_0 328_splitncnn_1
|
||||
Convolution Conv_150 1 1 328_splitncnn_1 329 0=160 1=3 4=1 5=1 6=230400
|
||||
PReLU PRelu_151 1 1 329 331 0=160
|
||||
Convolution Conv_152 1 1 331 332 0=160 1=3 4=1 5=1 6=230400
|
||||
PReLU PRelu_153 1 1 332 334 0=160
|
||||
BinaryOp Add_154 2 1 334 328_splitncnn_0 335
|
||||
Split splitncnn_13 1 2 335 335_splitncnn_0 335_splitncnn_1
|
||||
Convolution Conv_155 1 1 335_splitncnn_1 336 0=160 1=3 4=1 5=1 6=230400
|
||||
PReLU PRelu_156 1 1 336 338 0=160
|
||||
Convolution Conv_157 1 1 338 339 0=160 1=3 4=1 5=1 6=230400
|
||||
PReLU PRelu_158 1 1 339 341 0=160
|
||||
BinaryOp Add_159 2 1 341 335_splitncnn_0 342
|
||||
Deconvolution ConvTranspose_160 1 1 342 343 0=4 1=4 3=2 4=1 5=1 6=10240
|
||||
BinaryOp Add_161 2 1 138_splitncnn_0 246_splitncnn_0 344
|
||||
BinaryOp Add_162 2 1 344 343 flow
|
||||
BIN
models/rife/rife-v3.1/fusionnet.bin
vendored
Normal file
BIN
models/rife/rife-v3.1/fusionnet.bin
vendored
Normal file
Binary file not shown.
74
models/rife/rife-v3.1/fusionnet.param
vendored
Normal file
74
models/rife/rife-v3.1/fusionnet.param
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
7767517
|
||||
72 81
|
||||
Input img0 0 1 img0
|
||||
Input img1 0 1 img1
|
||||
Input flow 0 1 flow
|
||||
Input 3 0 1 3
|
||||
Input 4 0 1 4
|
||||
Input 5 0 1 5
|
||||
Input 6 0 1 6
|
||||
Input 7 0 1 7
|
||||
Input 8 0 1 8
|
||||
Input 9 0 1 9
|
||||
Input 10 0 1 10
|
||||
Interp Resize_1 1 1 flow 64 0=2 1=2.000000e+00 2=2.000000e+00
|
||||
BinaryOp Mul_3 1 1 64 66 0=2 1=1 2=2.000000e+00
|
||||
Split splitncnn_0 1 3 66 66_splitncnn_0 66_splitncnn_1 66_splitncnn_2
|
||||
Crop Slice_8 1 1 66_splitncnn_2 71 -23309=1,0 -23310=1,2 -23311=1,0
|
||||
rife.Warp Warp_14 2 1 img0 71 77
|
||||
Split splitncnn_1 1 2 77 77_splitncnn_0 77_splitncnn_1
|
||||
Crop Slice_19 1 1 66_splitncnn_1 82 -23309=1,2 -23310=1,4 -23311=1,0
|
||||
rife.Warp Warp_14 2 1 img1 82 88
|
||||
Split splitncnn_2 1 2 88 88_splitncnn_0 88_splitncnn_1
|
||||
Concat Concat_26 3 1 77_splitncnn_1 88_splitncnn_1 66_splitncnn_0 89
|
||||
Convolution Conv_27 1 1 89 90 0=32 1=3 3=2 4=1 5=1 6=2880
|
||||
PReLU PRelu_28 1 1 90 92 0=32
|
||||
Convolution Conv_29 1 1 92 93 0=32 1=3 4=1 5=1 6=9216
|
||||
PReLU PRelu_30 1 1 93 95 0=32
|
||||
Convolution Conv_31 1 1 95 96 0=64 1=3 3=2 4=1 5=1 6=18432
|
||||
PReLU PRelu_32 1 1 96 98 0=64
|
||||
Convolution Conv_33 1 1 98 99 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_34 1 1 99 101 0=64
|
||||
Split splitncnn_3 1 2 101 101_splitncnn_0 101_splitncnn_1
|
||||
Concat Concat_35 3 1 101_splitncnn_1 3 7 102
|
||||
Convolution Conv_36 1 1 102 103 0=128 1=3 3=2 4=1 5=1 6=147456
|
||||
PReLU PRelu_37 1 1 103 105 0=128
|
||||
Convolution Conv_38 1 1 105 106 0=128 1=3 4=1 5=1 6=147456
|
||||
PReLU PRelu_39 1 1 106 108 0=128
|
||||
Split splitncnn_4 1 2 108 108_splitncnn_0 108_splitncnn_1
|
||||
Concat Concat_40 3 1 108_splitncnn_1 4 8 109
|
||||
Convolution Conv_41 1 1 109 110 0=256 1=3 3=2 4=1 5=1 6=589824
|
||||
PReLU PRelu_42 1 1 110 112 0=256
|
||||
Convolution Conv_43 1 1 112 113 0=256 1=3 4=1 5=1 6=589824
|
||||
PReLU PRelu_44 1 1 113 115 0=256
|
||||
Split splitncnn_5 1 2 115 115_splitncnn_0 115_splitncnn_1
|
||||
Concat Concat_45 3 1 115_splitncnn_1 5 9 116
|
||||
Convolution Conv_46 1 1 116 117 0=512 1=3 3=2 4=1 5=1 6=2359296
|
||||
PReLU PRelu_47 1 1 117 119 0=512
|
||||
Convolution Conv_48 1 1 119 120 0=512 1=3 4=1 5=1 6=2359296
|
||||
PReLU PRelu_49 1 1 120 122 0=512
|
||||
Concat Concat_50 3 1 122 6 10 123
|
||||
Deconvolution ConvTranspose_51 1 1 123 124 0=256 1=4 3=2 4=1 5=1 6=4194304
|
||||
PReLU PRelu_52 1 1 124 126 0=256
|
||||
Concat Concat_53 2 1 126 115_splitncnn_0 127
|
||||
Deconvolution ConvTranspose_54 1 1 127 128 0=128 1=4 3=2 4=1 5=1 6=1048576
|
||||
PReLU PRelu_55 1 1 128 130 0=128
|
||||
Concat Concat_56 2 1 130 108_splitncnn_0 131
|
||||
Deconvolution ConvTranspose_57 1 1 131 132 0=64 1=4 3=2 4=1 5=1 6=262144
|
||||
PReLU PRelu_58 1 1 132 134 0=64
|
||||
Concat Concat_59 2 1 134 101_splitncnn_0 135
|
||||
Deconvolution ConvTranspose_60 1 1 135 136 0=32 1=4 3=2 4=1 5=1 6=65536
|
||||
PReLU PRelu_61 1 1 136 138 0=32
|
||||
Deconvolution ConvTranspose_62 1 1 138 140 0=4 1=4 3=2 4=1 5=1 6=2048 9=4
|
||||
Split splitncnn_6 1 2 140 140_splitncnn_0 140_splitncnn_1
|
||||
Crop Slice_68 1 1 140_splitncnn_1 145 -23309=1,0 -23310=1,3 -23311=1,0
|
||||
BinaryOp Mul_70 1 1 145 147 0=2 1=1 2=2.000000e+00
|
||||
BinaryOp Sub_72 1 1 147 149 0=1 1=1 2=1.000000e+00
|
||||
Crop Slice_77 1 1 140_splitncnn_0 154 -23309=1,3 -23310=1,4 -23311=1,0
|
||||
Split splitncnn_7 1 2 154 154_splitncnn_0 154_splitncnn_1
|
||||
BinaryOp Mul_78 2 1 77_splitncnn_0 154_splitncnn_1 155 0=2
|
||||
BinaryOp Sub_80 1 1 154_splitncnn_0 157 0=7 1=1 2=1.000000e+00
|
||||
BinaryOp Mul_81 2 1 88_splitncnn_0 157 158 0=2
|
||||
BinaryOp Add_82 2 1 155 158 159
|
||||
BinaryOp Add_83 2 1 159 149 160
|
||||
Clip Clip_84 1 1 160 output 0=0.000000e+00 1=1.000000e+00
|
||||
Reference in New Issue
Block a user