mirror of
https://github.com/k4yt3x/video2x.git
synced 2026-02-04 11:24:41 +08:00
Compare commits
429 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a6dfdc7343 | ||
|
|
ca5044f09c | ||
|
|
0e00aca401 | ||
|
|
0400cf51b0 | ||
|
|
adf3baf4be | ||
|
|
d4d1e58f8d | ||
|
|
a379c7481e | ||
|
|
f27d8556c0 | ||
|
|
f8dcad3aef | ||
|
|
24d43a8478 | ||
|
|
627f3d84a4 | ||
|
|
2fc89e3883 | ||
|
|
073f706980 | ||
|
|
a388a12d7d | ||
|
|
937939710a | ||
|
|
ed318f61ad | ||
|
|
862b7f4ae8 | ||
|
|
b20f065fe0 | ||
|
|
149cf1ca4a | ||
|
|
a77cf9e14f | ||
|
|
d3de1ded96 | ||
|
|
3215c89870 | ||
|
|
169509b7d4 | ||
|
|
b520d51c6c | ||
|
|
980b44bc05 | ||
|
|
561671c4cb | ||
|
|
0869d153c0 | ||
|
|
4c919de6ba | ||
|
|
e393910f21 | ||
|
|
e477123e88 | ||
|
|
c8f2acdea6 | ||
|
|
aa8ed60e52 | ||
|
|
e07beb67a4 | ||
|
|
bc8ae34dde | ||
|
|
6a218ebd9c | ||
|
|
0d6a6abce2 | ||
|
|
943b446d26 | ||
|
|
1b81f7d1e2 | ||
|
|
64697a9385 | ||
|
|
e8b0b0ec21 | ||
|
|
05b275dd82 | ||
|
|
33b7c53e16 | ||
|
|
3b7921a774 | ||
|
|
dfb29e05b7 | ||
|
|
3bae03f403 | ||
|
|
9ff320721f | ||
|
|
7a7558e1a8 | ||
|
|
ec4b51064a | ||
|
|
77a06e7d92 | ||
|
|
8eda3fa2d2 | ||
|
|
bcbe33d5dc | ||
|
|
850e0fde9c | ||
|
|
a63b8d85b0 | ||
|
|
1d1792d10f | ||
|
|
851f13bd4d | ||
|
|
fbe3b44139 | ||
|
|
d6f27b3f22 | ||
|
|
fb0e3a040d | ||
|
|
bb74144070 | ||
|
|
406a97f360 | ||
|
|
9c491d4277 | ||
|
|
27c76189d9 | ||
|
|
77b3df22c1 | ||
|
|
b333f88c2f | ||
|
|
8cafb29f70 | ||
|
|
afd7c8050f | ||
|
|
66c623ff49 | ||
|
|
0633b3fd62 | ||
|
|
0588908dd6 | ||
|
|
b309bec1cb | ||
|
|
94e69f9f62 | ||
|
|
a8b952c3ad | ||
|
|
c912bfaffc | ||
|
|
f5eb195d79 | ||
|
|
5156d4a825 | ||
|
|
cbffef2b23 | ||
|
|
31e606bd4c | ||
|
|
d50cf54f2a | ||
|
|
613b75ffec | ||
|
|
9d342c51a2 | ||
|
|
48119a30eb | ||
|
|
9d09d8570f | ||
|
|
ebef5f54cb | ||
|
|
747d85cf9b | ||
|
|
f89b263487 | ||
|
|
ebd5e8eb3d | ||
|
|
50d5cb16d1 | ||
|
|
8eac1a7393 | ||
|
|
f0f3166d92 | ||
|
|
482e82f9c4 | ||
|
|
58ea9e4b35 | ||
|
|
e077849a2c | ||
|
|
0fb547589d | ||
|
|
1f18b8507d | ||
|
|
eb7d411f49 | ||
|
|
640d9cd52b | ||
|
|
bc168d11ab | ||
|
|
e09f348890 | ||
|
|
f3caf22765 | ||
|
|
cd2006b4d9 | ||
|
|
ecbc512711 | ||
|
|
3fe1f6d544 | ||
|
|
ee4d6f360e | ||
|
|
7ae1943754 | ||
|
|
c2a4b25290 | ||
|
|
f79d4893db | ||
|
|
37c2c4c647 | ||
|
|
c7fa9c10e6 | ||
|
|
fa1dca8708 | ||
|
|
a7952fc493 | ||
|
|
721de8cbce | ||
|
|
7de040bbb7 | ||
|
|
b382f3973f | ||
|
|
37bdfddf55 | ||
|
|
21967209b8 | ||
|
|
b4b7cadf0d | ||
|
|
7c70032fe7 | ||
|
|
71821dbb56 | ||
|
|
22993028b4 | ||
|
|
6d934e6a98 | ||
|
|
78a2aafa0e | ||
|
|
e535cf7333 | ||
|
|
e725712be9 | ||
|
|
d66b7fa144 | ||
|
|
155a144a93 | ||
|
|
275f329f7f | ||
|
|
60ae71f3c5 | ||
|
|
cc01f2d8e2 | ||
|
|
5255e20283 | ||
|
|
c746773980 | ||
|
|
afc0df30cd | ||
|
|
bb759197d8 | ||
|
|
b4570cc106 | ||
|
|
66f4c17294 | ||
|
|
30048ae304 | ||
|
|
84b730497b | ||
|
|
db0b87597d | ||
|
|
102340e2be | ||
|
|
85437a8481 | ||
|
|
176ae90bbb | ||
|
|
44238aed35 | ||
|
|
045e643867 | ||
|
|
c92805e7bc | ||
|
|
899fe3ae2d | ||
|
|
a75c2a50ca | ||
|
|
508d6ea4d0 | ||
|
|
8976dd8199 | ||
|
|
29a55e633c | ||
|
|
f7d6dc41b3 | ||
|
|
d236131134 | ||
|
|
d669654142 | ||
|
|
4b0ab5382c | ||
|
|
737646a248 | ||
|
|
9fc0aa787e | ||
|
|
a041a60d87 | ||
|
|
020fb2dc80 | ||
|
|
9a27960bf7 | ||
|
|
862b811517 | ||
|
|
e01d24c164 | ||
|
|
0a052a3a72 | ||
|
|
f3eaa47ec6 | ||
|
|
3f457907b6 | ||
|
|
a1d750e7ca | ||
|
|
22f656b800 | ||
|
|
8eeba71ece | ||
|
|
afca10a17b | ||
|
|
f976bdc1c9 | ||
|
|
51c0c38b34 | ||
|
|
f2b2e11c41 | ||
|
|
865e3bd193 | ||
|
|
e0dc8237f5 | ||
|
|
bbc1b57445 | ||
|
|
ebbe4570d5 | ||
|
|
bcb2e97f89 | ||
|
|
ba29349e65 | ||
|
|
1b67f373d1 | ||
|
|
7215ee1921 | ||
|
|
65c0d32a51 | ||
|
|
268460fd17 | ||
|
|
d72ecb332a | ||
|
|
8ba56e58c2 | ||
|
|
fa485b6cdd | ||
|
|
625b340f3d | ||
|
|
fa3bd38217 | ||
|
|
0fca5c8e9a | ||
|
|
237f6336ec | ||
|
|
083af60c6f | ||
|
|
f7756886e7 | ||
|
|
6e72df66fc | ||
|
|
2bfcb13976 | ||
|
|
49e0375eee | ||
|
|
4459f4d3be | ||
|
|
c0fe81bd2e | ||
|
|
8cb64d3b70 | ||
|
|
0b154a715c | ||
|
|
05031b2b5a | ||
|
|
2510c8fa28 | ||
|
|
f17d75539c | ||
|
|
82512ef10c | ||
|
|
ad479e53b8 | ||
|
|
a356bfeaff | ||
|
|
dee8e23485 | ||
|
|
1fa0821057 | ||
|
|
b5ecffba81 | ||
|
|
672c9b8652 | ||
|
|
9f73e75f17 | ||
|
|
ef1a8f3e41 | ||
|
|
04f409ef80 | ||
|
|
51c8693dce | ||
|
|
bb572e2468 | ||
|
|
c07fafc0e9 | ||
|
|
595b179d3c | ||
|
|
c865d494a1 | ||
|
|
f4acb2188d | ||
|
|
01d4006c75 | ||
|
|
a7f0f34751 | ||
|
|
b6b1bf9f0e | ||
|
|
5d7a53a2fc | ||
|
|
b32e0ec132 | ||
|
|
6378a36d91 | ||
|
|
0d0fd70a24 | ||
|
|
7c0e9c45d8 | ||
|
|
7b60041529 | ||
|
|
6ffd6282e0 | ||
|
|
c37e7f0d72 | ||
|
|
ca1e593874 | ||
|
|
bfb0f339e2 | ||
|
|
3690337092 | ||
|
|
6c129a1c7a | ||
|
|
2b539c15f7 | ||
|
|
53456cd442 | ||
|
|
e1f4cdd71d | ||
|
|
ab6d2e3c9e | ||
|
|
f69c95a608 | ||
|
|
c103e45076 | ||
|
|
240d722fda | ||
|
|
14f3cd1e16 | ||
|
|
f4cc178dcd | ||
|
|
ad825bd2ba | ||
|
|
151733c8f8 | ||
|
|
544a7081ed | ||
|
|
4b3bde1615 | ||
|
|
b38cef2de2 | ||
|
|
b27da8a61a | ||
|
|
5e4170b0b7 | ||
|
|
b3539d4aa8 | ||
|
|
d09efc4748 | ||
|
|
dc532ff184 | ||
|
|
1fbb2f22f3 | ||
|
|
339815f74c | ||
|
|
fa6dc88faa | ||
|
|
ce344caa72 | ||
|
|
d8aed8065b | ||
|
|
6b83734382 | ||
|
|
2b52d4aa45 | ||
|
|
a515886ad8 | ||
|
|
a7629db518 | ||
|
|
ba336e9c75 | ||
|
|
736771b1c8 | ||
|
|
f9f736bec1 | ||
|
|
535681f3cd | ||
|
|
f283a12a0b | ||
|
|
ac80de9399 | ||
|
|
7eabac2175 | ||
|
|
e870399af1 | ||
|
|
37d567f208 | ||
|
|
7b9e811c99 | ||
|
|
0d97a11015 | ||
|
|
079a2aa64b | ||
|
|
9cdddd2e41 | ||
|
|
26d82e1582 | ||
|
|
c4e73cfbc7 | ||
|
|
2fffeeadf1 | ||
|
|
25155b3029 | ||
|
|
26795c5561 | ||
|
|
5543382d03 | ||
|
|
dc51b8b04c | ||
|
|
cde02be32b | ||
|
|
9213e3e13a | ||
|
|
b41f1f7e6c | ||
|
|
7201c036d5 | ||
|
|
da532d8e13 | ||
|
|
f97ed080e1 | ||
|
|
d67f55c824 | ||
|
|
095d40b688 | ||
|
|
bd6690fed1 | ||
|
|
bfda833bcf | ||
|
|
09345703e6 | ||
|
|
64e4a41710 | ||
|
|
f7b8b2520a | ||
|
|
fad793b18e | ||
|
|
d09d05ae9b | ||
|
|
89ca3b09d9 | ||
|
|
4694c557ec | ||
|
|
33d96bcd4e | ||
|
|
eee43def3b | ||
|
|
f4be9cc596 | ||
|
|
cc89b0aac5 | ||
|
|
9e8e95803f | ||
|
|
df0861ff5c | ||
|
|
706aeab03f | ||
|
|
f850ca80f1 | ||
|
|
608bf1a2ec | ||
|
|
b1f7290c20 | ||
|
|
65d445c293 | ||
|
|
43dbb134b6 | ||
|
|
84b0684d64 | ||
|
|
29b4153b63 | ||
|
|
3f1821f1ac | ||
|
|
4f8bb1be1c | ||
|
|
c2f1e43656 | ||
|
|
914d5cdf87 | ||
|
|
de77c90dd1 | ||
|
|
458ce82644 | ||
|
|
1d145a8690 | ||
|
|
b37acfa31d | ||
|
|
a0522311e2 | ||
|
|
7de9cc699a | ||
|
|
685648957f | ||
|
|
c2260ca709 | ||
|
|
776475265e | ||
|
|
21928f9eb4 | ||
|
|
211f024e49 | ||
|
|
bfdb051705 | ||
|
|
d824cd6516 | ||
|
|
b4f46ad31e | ||
|
|
a8d7f7ecf2 | ||
|
|
2b84e497b5 | ||
|
|
9b408a6e62 | ||
|
|
ecf94490a7 | ||
|
|
881183ed0a | ||
|
|
9389511d2d | ||
|
|
16389fc8a6 | ||
|
|
c7013b2576 | ||
|
|
a82fcc778e | ||
|
|
6dbdf93ca4 | ||
|
|
64eb03ac08 | ||
|
|
227cf54a47 | ||
|
|
107d31e5dc | ||
|
|
04562dcaa1 | ||
|
|
7059852586 | ||
|
|
8b7e9f959b | ||
|
|
19bd05149d | ||
|
|
a3706a1a17 | ||
|
|
5a7c464dea | ||
|
|
6c1b49b5ed | ||
|
|
59860dcfc3 | ||
|
|
b38ce2c56d | ||
|
|
68e6331672 | ||
|
|
188a44ce38 | ||
|
|
5621eb306a | ||
|
|
07a6356836 | ||
|
|
ef4269bbcd | ||
|
|
898d45e4b5 | ||
|
|
01493068e1 | ||
|
|
e44264bb6b | ||
|
|
06355441ea | ||
|
|
9b9da1ba5a | ||
|
|
78fa5e8c07 | ||
|
|
b2d7415a2c | ||
|
|
75d342f145 | ||
|
|
fae08dfb11 | ||
|
|
a0745e2196 | ||
|
|
986619165f | ||
|
|
78b0420e07 | ||
|
|
1eba4f2187 | ||
|
|
6e1315f2ed | ||
|
|
29a776d049 | ||
|
|
da4bfe9827 | ||
|
|
00c391b46c | ||
|
|
f5eb6514e1 | ||
|
|
3f6a3addaa | ||
|
|
8f2113ab0a | ||
|
|
60cf792c23 | ||
|
|
7e87dac15e | ||
|
|
0b15fb7bd2 | ||
|
|
765db2512b | ||
|
|
e14fbea67b | ||
|
|
491f80d2d2 | ||
|
|
2f4953e6c7 | ||
|
|
3f36cb8b43 | ||
|
|
3e57e206c6 | ||
|
|
da0e47528c | ||
|
|
f6aac30f96 | ||
|
|
7d00189f2f | ||
|
|
751150fe64 | ||
|
|
eb2b62b056 | ||
|
|
cc1b0b5464 | ||
|
|
fe7ded7e53 | ||
|
|
5f2ad35d41 | ||
|
|
d688ca490e | ||
|
|
708c983c1e | ||
|
|
9b91016d98 | ||
|
|
b024581906 | ||
|
|
8fd3292cd6 | ||
|
|
e646825c57 | ||
|
|
fdf326108f | ||
|
|
e26561c56a | ||
|
|
9d7c3963c3 | ||
|
|
ce5d4051e5 | ||
|
|
9f6f1eee5b | ||
|
|
6ae7491652 | ||
|
|
d35472fbfb | ||
|
|
7166afdc0e | ||
|
|
d3db4e8cf1 | ||
|
|
f887dfe3a7 | ||
|
|
a41df138bf | ||
|
|
41833f4068 | ||
|
|
c0955ae7e4 | ||
|
|
682aeb82ff | ||
|
|
21407c831c | ||
|
|
7e34bf7516 | ||
|
|
4c5ca73e38 | ||
|
|
387a233daf | ||
|
|
781eb6686f | ||
|
|
c73edd9001 | ||
|
|
deb742ee8d | ||
|
|
5ef6eb7e8e | ||
|
|
6c5e079a1c | ||
|
|
1e384596ee | ||
|
|
4680647f1f | ||
|
|
4015db5bcf | ||
|
|
082c6d44fa | ||
|
|
de841a4636 | ||
|
|
40711a2711 | ||
|
|
0c63768165 | ||
|
|
ac2d447391 | ||
|
|
b03747dbde | ||
|
|
89740f01dc |
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@@ -0,0 +1 @@
|
||||
models/** linguist-vendored
|
||||
12
.github/FUNDING.yml
vendored
12
.github/FUNDING.yml
vendored
@@ -1,12 +1,2 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||
github: k4yt3x
|
||||
patreon: k4yt3x
|
||||
open_collective: # Replace with a single Open Collective username
|
||||
ko_fi: # Replace with a single Ko-fi username
|
||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||
liberapay: # Replace with a single Liberapay username
|
||||
issuehunt: # Replace with a single IssueHunt username
|
||||
otechie: # Replace with a single Otechie username
|
||||
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
||||
|
||||
32
.github/ISSUE_TEMPLATE/bug-report.md
vendored
32
.github/ISSUE_TEMPLATE/bug-report.md
vendored
@@ -1,32 +0,0 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Use this template if you believe you've encountered a bug.
|
||||
title: ''
|
||||
labels: bug
|
||||
assignees: K4YT3X
|
||||
|
||||
---
|
||||
|
||||
## Environment Information
|
||||
|
||||
|Module|Version|
|
||||
|-|-|
|
||||
|`Video2X`||
|
||||
|`FFmpeg`||
|
||||
|`waifu2x-caffe`||
|
||||
|`waifu2x-converter-cpp`||
|
||||
|`waifu2x-ncnn-vulkan`||
|
||||
|
||||
## Symptom
|
||||
|
||||
Briefly describe what's going on.
|
||||
|
||||
## Screenshots or Error Messages
|
||||
|
||||
Please paste screenshots or error messages here.
|
||||
Include as much details as you can, as this greatly helps debugging the problem.
|
||||
|
||||
Please paste your error message in the code block down below:
|
||||
|
||||
```
|
||||
```
|
||||
16
.github/ISSUE_TEMPLATE/feature_request.md
vendored
16
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -1,16 +0,0 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Request a new feature to be added
|
||||
title: ''
|
||||
labels: enhancement
|
||||
assignees: K4YT3X
|
||||
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Briefly describe the feature you want to be added into `video2x`.
|
||||
|
||||
## Sources
|
||||
|
||||
Paste links to descriptions of related documentations, websites and etc. here.
|
||||
123
.github/workflows/build.yml
vendored
Normal file
123
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,123 @@
|
||||
name: Build
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- ".github/workflows/build.yml"
|
||||
- "include/**"
|
||||
- "src/**"
|
||||
- "tools/**"
|
||||
- "third_party/**"
|
||||
- "CMakeLists.txt"
|
||||
pull_request:
|
||||
paths:
|
||||
- ".github/workflows/build.yml"
|
||||
- "include/**"
|
||||
- "src/**"
|
||||
- "tools/**"
|
||||
- "third_party/**"
|
||||
- "CMakeLists.txt"
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
ubuntu:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
git submodule update --init --recursive
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y --no-install-recommends \
|
||||
libavcodec-dev \
|
||||
libavdevice-dev \
|
||||
libavfilter-dev \
|
||||
libavformat-dev \
|
||||
libavutil-dev \
|
||||
libswscale-dev \
|
||||
libvulkan-dev \
|
||||
glslang-tools \
|
||||
libomp-dev \
|
||||
libboost-program-options-dev
|
||||
|
||||
- name: Build Video2X
|
||||
run: |
|
||||
mkdir -p /tmp/build /tmp/install
|
||||
cmake -B /tmp/build -S . -DUSE_SYSTEM_NCNN=OFF -DUSE_SYSTEM_SPDLOG=OFF \
|
||||
-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \
|
||||
-DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/tmp/install \
|
||||
-DINSTALL_BIN_DESTINATION=. -DINSTALL_INCLUDE_DESTINATION=include \
|
||||
-DINSTALL_LIB_DESTINATION=. -DINSTALL_MODEL_DESTINATION=.
|
||||
cmake --build /tmp/build --config Debug --target install --parallel
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: video2x-nightly-linux-amd64
|
||||
path: /tmp/install
|
||||
|
||||
windows:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Install Vulkan SDK
|
||||
uses: humbletim/setup-vulkan-sdk@v1.2.0
|
||||
with:
|
||||
vulkan-query-version: 1.3.204.0
|
||||
vulkan-components: Vulkan-Headers, Vulkan-Loader, Glslang, SPIRV-Tools, SPIRV-Headers
|
||||
vulkan-use-cache: true
|
||||
|
||||
- name: Install dependencies
|
||||
shell: pwsh
|
||||
run: |
|
||||
$ffmpegVersion = "7.1"
|
||||
$ncnnVersion = "20240820"
|
||||
|
||||
git submodule update --init --recursive
|
||||
|
||||
curl -Lo ffmpeg-shared.zip "https://github.com/GyanD/codexffmpeg/releases/download/$ffmpegVersion/ffmpeg-$ffmpegVersion-full_build-shared.zip"
|
||||
Expand-Archive -Path ffmpeg-shared.zip -DestinationPath third_party
|
||||
Rename-Item -Path "third_party/ffmpeg-$ffmpegVersion-full_build-shared" -NewName ffmpeg-shared
|
||||
|
||||
curl -Lo ncnn-shared.zip "https://github.com/Tencent/ncnn/releases/download/$ncnnVersion/ncnn-$ncnnVersion-windows-vs2022-shared.zip"
|
||||
Expand-Archive -Path ncnn-shared.zip -DestinationPath third_party
|
||||
Rename-Item -Path "third_party/ncnn-$ncnnVersion-windows-vs2022-shared" -NewName ncnn-shared
|
||||
|
||||
- name: Build Video2X
|
||||
shell: pwsh
|
||||
run: |
|
||||
cmake -S . -B build `
|
||||
-DUSE_SYSTEM_NCNN=OFF -DUSE_SYSTEM_SPDLOG=OFF -DUSE_SYSTEM_BOOST=OFF `
|
||||
-DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=build/video2x_install
|
||||
cmake --build build --config Debug --parallel --target install
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: video2x-nightly-windows-amd64
|
||||
path: build/video2x_install
|
||||
|
||||
container:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- uses: mr-smithers-excellent/docker-build-push@v5
|
||||
name: Build the Docker image
|
||||
with:
|
||||
registry: ghcr.io
|
||||
dockerfile: packaging/docker/Dockerfile
|
||||
image: video2x
|
||||
tags: latest
|
||||
pushImage: false
|
||||
49
.github/workflows/docs.yml
vendored
Normal file
49
.github/workflows/docs.yml
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
name: Docs
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- "docs/book/**"
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
concurrency:
|
||||
group: "pages"
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install mdBook
|
||||
run: |
|
||||
version="$(curl https://api.github.com/repos/rust-lang/mdBook/releases/latest | jq -r '.tag_name')"
|
||||
curl -sSL "https://github.com/rust-lang/mdBook/releases/download/$version/mdbook-$version-x86_64-unknown-linux-musl.tar.gz" | tar -xz
|
||||
sudo mv mdbook /usr/local/bin/
|
||||
|
||||
- name: Build Docs with mdBook
|
||||
run: mdbook build -d "$PWD/build/docs/book" docs/book
|
||||
|
||||
- name: Setup Pages
|
||||
uses: actions/configure-pages@v5
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-pages-artifact@v3
|
||||
with:
|
||||
path: "build/docs/book"
|
||||
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v4
|
||||
52
.github/workflows/issues.yml
vendored
Normal file
52
.github/workflows/issues.yml
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
name: Issues
|
||||
|
||||
on:
|
||||
issues:
|
||||
types:
|
||||
- opened
|
||||
- reopened
|
||||
- closed
|
||||
|
||||
jobs:
|
||||
label_issues:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Remove all 'state:' labels
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
ISSUE_NUMBER=${{ github.event.issue.number }}
|
||||
REPO=${{ github.repository }}
|
||||
EXISTING_LABELS=$(gh issue view $ISSUE_NUMBER --repo $REPO --json labels --jq '.labels[].name')
|
||||
|
||||
for label in $EXISTING_LABELS; do
|
||||
if [[ $label == state:* ]]; then
|
||||
gh issue edit $ISSUE_NUMBER --remove-label "$label" --repo $REPO
|
||||
fi
|
||||
done
|
||||
|
||||
- name: Add 'state:Backlog' label on issue opened or reopened
|
||||
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
LABEL_NAME="state:Backlog"
|
||||
REPO=${{ github.repository }}
|
||||
ISSUE_NUMBER=${{ github.event.issue.number }}
|
||||
|
||||
if gh label list --repo $REPO | grep -q "$LABEL_NAME"; then
|
||||
gh issue edit $ISSUE_NUMBER --add-label "$LABEL_NAME" --repo $REPO
|
||||
fi
|
||||
|
||||
- name: Add 'state:Done' label on issue closed
|
||||
if: ${{ github.event.action == 'closed' }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
LABEL_NAME="state:Done"
|
||||
REPO=${{ github.repository }}
|
||||
ISSUE_NUMBER=${{ github.event.issue.number }}
|
||||
|
||||
if gh label list --repo $REPO | grep -q "$LABEL_NAME"; then
|
||||
gh issue edit $ISSUE_NUMBER --add-label "$LABEL_NAME" --repo $REPO
|
||||
fi
|
||||
69
.github/workflows/nightly.yml
vendored
69
.github/workflows/nightly.yml
vendored
@@ -1,69 +0,0 @@
|
||||
# Name: Video2X Nightly Build
|
||||
# Creator: K4YT3X
|
||||
# Date Created: May 12, 2020
|
||||
# Last Modified: May 13, 2020
|
||||
|
||||
name: Video2X Nightly Build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
|
||||
defaults:
|
||||
run:
|
||||
working-directory: src
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: windows-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Setup Python 3.8
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.8
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install -U pip
|
||||
pip install -U pyinstaller pywin32
|
||||
pip install -U -r requirements.txt
|
||||
- name: Build Video2X CLI
|
||||
run: |
|
||||
pyinstaller --noconfirm --log-level=WARN `
|
||||
--onefile `
|
||||
--add-data="locale;locale" `
|
||||
--add-data="wrappers;wrappers" `
|
||||
--icon="images\video2x.ico" `
|
||||
video2x.py
|
||||
- name: Build Video2X GUI
|
||||
run: |
|
||||
pyinstaller --noconfirm --log-level=WARN `
|
||||
--onefile `
|
||||
--add-data="images;images" `
|
||||
--add-data="locale;locale" `
|
||||
--add-data="video2x_gui.ui;." `
|
||||
--add-data="wrappers;wrappers" `
|
||||
--icon="images\video2x.ico" `
|
||||
video2x_gui.py
|
||||
- name: Build Video2X setup script
|
||||
run: |
|
||||
pyinstaller --noconfirm --log-level=WARN `
|
||||
--onefile `
|
||||
--additional-hooks-dir "pyinstaller\hooks" `
|
||||
--add-data="locale;locale" `
|
||||
--add-data="pyinstaller\7z1900-extra;7z" `
|
||||
--icon="images\video2x.ico" `
|
||||
video2x_setup.py
|
||||
- name: Collect artifacts into folder
|
||||
run: |
|
||||
New-Item "video2x-nightly-win32-light\" -ItemType Directory
|
||||
Copy-Item "dist\video2x.exe" -Destination "video2x-nightly-win32-light\"
|
||||
Copy-Item "dist\video2x_gui.exe" -Destination "video2x-nightly-win32-light\"
|
||||
Copy-Item "dist\video2x_setup.exe" -Destination "video2x-nightly-win32-light\"
|
||||
Copy-Item "video2x.yaml" -Destination "video2x-nightly-win32-light\"
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: video2x-nightly-win32-light
|
||||
path: src/video2x-nightly-win32-light/
|
||||
165
.github/workflows/release.yml
vendored
Normal file
165
.github/workflows/release.yml
vendored
Normal file
@@ -0,0 +1,165 @@
|
||||
name: Release
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "*"
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
setup:
|
||||
name: Setup
|
||||
if: github.event.base_ref == 'refs/heads/master'
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
version: ${{ steps.get_version.outputs.version }}
|
||||
steps:
|
||||
- name: Get version
|
||||
id: get_version
|
||||
run: echo version=${GITHUB_REF/refs\/tags\//} >> $GITHUB_OUTPUT
|
||||
|
||||
ubuntu-2404:
|
||||
# GitHub Actions' ubuntu-24.04 runner does not have enough RAM
|
||||
if: false
|
||||
name: Build Ubuntu 24.04 release
|
||||
needs:
|
||||
- setup
|
||||
runs-on: ubuntu-24.04
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
git submodule update --init --recursive
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y --no-install-recommends \
|
||||
libavcodec-dev \
|
||||
libavdevice-dev \
|
||||
libavfilter-dev \
|
||||
libavformat-dev \
|
||||
libavutil-dev \
|
||||
libswscale-dev \
|
||||
libvulkan-dev \
|
||||
glslang-tools \
|
||||
libomp-dev \
|
||||
libboost-program-options-dev
|
||||
|
||||
- name: Build Video2X
|
||||
run: |
|
||||
cmake -B build -S . -DUSE_SYSTEM_NCNN=OFF -DUSE_SYSTEM_SPDLOG=OFF -DSPDLOG_NO_EXCEPTIONS=ON \
|
||||
-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ \
|
||||
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=build/video2x-linux-ubuntu-2404-amd64/usr
|
||||
cmake --build build --config Release --target install --parallel
|
||||
mkdir -p build/video2x-linux-ubuntu-2404-amd64/DEBIAN
|
||||
cp packaging/debian/control build/video2x-linux-ubuntu-2404-amd64/DEBIAN/control
|
||||
dpkg-deb --build build/video2x-linux-ubuntu-2404-amd64
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: video2x-linux-ubuntu-2404-amd64
|
||||
path: build/video2x-linux-ubuntu-2404-amd64.deb
|
||||
|
||||
windows:
|
||||
name: Build Windows release
|
||||
needs:
|
||||
- setup
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Install Vulkan SDK
|
||||
uses: humbletim/setup-vulkan-sdk@v1.2.0
|
||||
with:
|
||||
vulkan-query-version: 1.3.204.0
|
||||
vulkan-components: Vulkan-Headers, Vulkan-Loader, Glslang, SPIRV-Tools, SPIRV-Headers
|
||||
vulkan-use-cache: true
|
||||
|
||||
- name: Install dependencies
|
||||
shell: pwsh
|
||||
run: |
|
||||
$ffmpegVersion = "7.1"
|
||||
$ncnnVersion = "20240820"
|
||||
|
||||
git submodule update --init --recursive
|
||||
|
||||
curl -Lo ffmpeg-shared.zip "https://github.com/GyanD/codexffmpeg/releases/download/$ffmpegVersion/ffmpeg-$ffmpegVersion-full_build-shared.zip"
|
||||
Expand-Archive -Path ffmpeg-shared.zip -DestinationPath third_party
|
||||
Rename-Item -Path "third_party/ffmpeg-$ffmpegVersion-full_build-shared" -NewName ffmpeg-shared
|
||||
|
||||
curl -Lo ncnn-shared.zip "https://github.com/Tencent/ncnn/releases/download/$ncnnVersion/ncnn-$ncnnVersion-windows-vs2022-shared.zip"
|
||||
Expand-Archive -Path ncnn-shared.zip -DestinationPath third_party
|
||||
Rename-Item -Path "third_party/ncnn-$ncnnVersion-windows-vs2022-shared" -NewName ncnn-shared
|
||||
|
||||
- name: Build Video2X
|
||||
shell: pwsh
|
||||
run: |
|
||||
cmake -S . -B build `
|
||||
-DUSE_SYSTEM_NCNN=OFF -DUSE_SYSTEM_SPDLOG=OFF -DUSE_SYSTEM_BOOST=OFF `
|
||||
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=build/video2x_install
|
||||
cmake --build build --config Release --parallel --target install
|
||||
|
||||
- name: Compress artifacts
|
||||
run: |
|
||||
Compress-Archive -Path build/video2x_install/* -DestinationPath build/video2x-windows-amd64.zip
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: video2x-windows-amd64
|
||||
path: build/video2x-windows-amd64.zip
|
||||
|
||||
container:
|
||||
name: Build and upload container
|
||||
needs:
|
||||
- setup
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- uses: mr-smithers-excellent/docker-build-push@v5
|
||||
name: Build & push the Docker image
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.GHCR_USER }}
|
||||
password: ${{ secrets.GHCR_TOKEN }}
|
||||
dockerfile: packaging/docker/Dockerfile
|
||||
image: video2x
|
||||
tags: latest, ${{ needs.setup.outputs.version }}
|
||||
|
||||
create-release:
|
||||
name: Create release
|
||||
needs:
|
||||
- setup
|
||||
# - ubuntu-2404
|
||||
- windows
|
||||
- container
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
steps:
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
|
||||
- name: Create release
|
||||
id: create_release
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
tag_name: ${{ needs.setup.outputs.version }}
|
||||
name: ${{ needs.setup.outputs.version }}
|
||||
draft: true
|
||||
prerelease: false
|
||||
files: |
|
||||
video2x-windows-amd64.zip
|
||||
158
.gitignore
vendored
158
.gitignore
vendored
@@ -1,107 +1,77 @@
|
||||
# PyCharm
|
||||
.idea/
|
||||
# Data files
|
||||
data/
|
||||
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
# Built-binaries
|
||||
bin/
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
MANIFEST
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
# Prerequisites
|
||||
*.d
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
# Object files
|
||||
*.o
|
||||
*.ko
|
||||
*.obj
|
||||
*.elf
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*.cover
|
||||
.hypothesis/
|
||||
.pytest_cache/
|
||||
# Linker output
|
||||
*.ilk
|
||||
*.map
|
||||
*.exp
|
||||
|
||||
# Translations
|
||||
#*.mo
|
||||
#*.pot
|
||||
# Precompiled Headers
|
||||
*.gch
|
||||
*.pch
|
||||
|
||||
# Django stuff:
|
||||
*.log
|
||||
local_settings.py
|
||||
db.sqlite3
|
||||
# Libraries
|
||||
*.lib
|
||||
*.a
|
||||
*.la
|
||||
*.lo
|
||||
|
||||
# Flask stuff:
|
||||
instance/
|
||||
.webassets-cache
|
||||
# Shared objects (inc. Windows DLLs)
|
||||
*.dll
|
||||
#*.so
|
||||
*.so.*
|
||||
*.dylib
|
||||
|
||||
# Scrapy stuff:
|
||||
.scrapy
|
||||
# Executables
|
||||
*.exe
|
||||
*.out
|
||||
*.app
|
||||
*.i*86
|
||||
*.x86_64
|
||||
*.hex
|
||||
|
||||
# Sphinx documentation
|
||||
docs/_build/
|
||||
# Debug files
|
||||
*.dSYM/
|
||||
*.su
|
||||
*.idb
|
||||
*.pdb
|
||||
|
||||
# PyBuilder
|
||||
target/
|
||||
# Kernel Module Compile Results
|
||||
#*.mod*
|
||||
*.cmd
|
||||
.tmp_versions/
|
||||
modules.order
|
||||
Module.symvers
|
||||
Mkfile.old
|
||||
dkms.conf
|
||||
|
||||
# Jupyter Notebook
|
||||
.ipynb_checkpoints
|
||||
# clang tooling compilation databases
|
||||
.cache/
|
||||
*.plist
|
||||
|
||||
# pyenv
|
||||
.python-version
|
||||
|
||||
# celery beat schedule file
|
||||
celerybeat-schedule
|
||||
|
||||
# SageMath parsed files
|
||||
*.sage.py
|
||||
|
||||
# Environments
|
||||
.env
|
||||
.venv
|
||||
env/
|
||||
venv/
|
||||
ENV/
|
||||
env.bak/
|
||||
venv.bak/
|
||||
|
||||
# Spyder project settings
|
||||
.spyderproject
|
||||
.spyproject
|
||||
|
||||
# Rope project settings
|
||||
.ropeproject
|
||||
|
||||
# mkdocs documentation
|
||||
/site
|
||||
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
# CMake
|
||||
CMakeLists.txt.user
|
||||
CMakeCache.txt
|
||||
CMakeFiles
|
||||
CMakeScripts
|
||||
Testing
|
||||
Makefile
|
||||
cmake_install.cmake
|
||||
install_manifest.txt
|
||||
compile_commands.json
|
||||
CTestTestfile.cmake
|
||||
_deps
|
||||
CMakeUserPresets.json
|
||||
|
||||
15
.gitmodules
vendored
Normal file
15
.gitmodules
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
[submodule "third_party/librealesrgan_ncnn_vulkan"]
|
||||
path = third_party/librealesrgan_ncnn_vulkan
|
||||
url = https://github.com/k4yt3x/librealesrgan-ncnn-vulkan.git
|
||||
[submodule "third_party/ncnn"]
|
||||
path = third_party/ncnn
|
||||
url = https://github.com/Tencent/ncnn.git
|
||||
[submodule "third_party/spdlog"]
|
||||
path = third_party/spdlog
|
||||
url = https://github.com/gabime/spdlog.git
|
||||
[submodule "third_party/boost"]
|
||||
path = third_party/boost
|
||||
url = https://github.com/boostorg/boost.git
|
||||
[submodule "third_party/librife_ncnn_vulkan"]
|
||||
path = third_party/librife_ncnn_vulkan
|
||||
url = https://github.com/k4yt3x/librife-ncnn-vulkan.git
|
||||
69
CHANGELOG.md
Normal file
69
CHANGELOG.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [6.2.0] - 2024-12-11
|
||||
|
||||
### Added
|
||||
|
||||
- Automatic selection of the most suitable pixel format for the output video.
|
||||
- Frame interpolation processing mode.
|
||||
- More `AVCodecContext` options.
|
||||
- Support for RIFE ncnn Vulkan.
|
||||
- Support for specifying arbitrary `AVOptions` for the encoder (#1232).
|
||||
- Visual C++ Redistributable version check to the installer. (Video2X Qt6)
|
||||
|
||||
### Changed
|
||||
|
||||
- Improve CLI argument validation.
|
||||
- Improve error handling and error messages.
|
||||
- Improve the CLI help message structure and clarity.
|
||||
- Improve the UI with a complete redesign. (Video2X Qt6)
|
||||
|
||||
### Removed
|
||||
|
||||
- The C API for easier maintenance and development.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Timestamp errors processing frames with PTS equal to 0 (#1222).
|
||||
|
||||
## [6.1.1] - 2024-11-07
|
||||
|
||||
### Added
|
||||
|
||||
- Time remaining, and processing speed to the status bar.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Stream mapping for cases where the video stream is not the first stream in the input file (#1217).
|
||||
- The encoder using the wrong color space for the output video.
|
||||
|
||||
## [6.1.0] - 2024-11-04
|
||||
|
||||
### Added
|
||||
|
||||
- A better timer that gets paused when the processing is paused.
|
||||
- Detection for the validity of the provided GPU ID.
|
||||
- Status bar and processing statistics. (Video2X Qt6)
|
||||
- The `--listgpus` option to list available Vulkan GPU devices.
|
||||
- Vulkan device selection for libplacebo.
|
||||
|
||||
### Changed
|
||||
|
||||
- Automatically detect if options `colorspace` and `range` are supported by the buffer filter.
|
||||
- Resource file missing error messages.
|
||||
- Rewritten the CLI with C++.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Wide character string paths support on Windows systems without UTF-8 support enabled (#1201).
|
||||
|
||||
## [6.0.0] - 2024-10-29
|
||||
|
||||
### Added
|
||||
|
||||
- The initial release of the 6.0.0 version of Video2X.
|
||||
423
CMakeLists.txt
Normal file
423
CMakeLists.txt
Normal file
@@ -0,0 +1,423 @@
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
project(video2x VERSION 6.2.0 LANGUAGES CXX)
|
||||
|
||||
if(POLICY CMP0167)
|
||||
cmake_policy(SET CMP0167 NEW)
|
||||
endif()
|
||||
|
||||
# Set the C++ standard
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
# Set the default build type to Release if not specified
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE Release)
|
||||
endif()
|
||||
|
||||
# Set the default optimization flags for Release builds
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Ox /GL /LTCG /MD /DNDEBUG")
|
||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -march=native -flto")
|
||||
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -s")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} -s")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Set global compile options for all targets
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||
add_compile_options(/W4 /permissive-)
|
||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
add_compile_options(-Wall -Wextra -Wpedantic -Wconversion -Wshadow)
|
||||
endif()
|
||||
|
||||
# Build options
|
||||
option(BUILD_SHARED_LIBS "Build libvideo2x as a shared library" ON)
|
||||
option(BUILD_VIDEO2X_CLI "Build the video2x executable" ON)
|
||||
option(USE_SYSTEM_NCNN "Use system ncnn library" ON)
|
||||
option(USE_SYSTEM_SPDLOG "Use system spdlog library" ON)
|
||||
option(USE_SYSTEM_BOOST "Use system Boost library" ON)
|
||||
|
||||
# Generate the version header file
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/include/libvideo2x/version.h.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/libvideo2x/version.h"
|
||||
@ONLY
|
||||
)
|
||||
|
||||
# Find the required packages
|
||||
set(ALL_INCLUDE_DIRS)
|
||||
set(ALL_LIBRARIES)
|
||||
|
||||
# Platform-specific dependencies
|
||||
if(WIN32)
|
||||
# Define base paths for FFmpeg and ncnn
|
||||
set(FFMPEG_BASE_PATH ${PROJECT_SOURCE_DIR}/third_party/ffmpeg-shared)
|
||||
set(NCNN_BASE_PATH ${PROJECT_SOURCE_DIR}/third_party/ncnn-shared/x64)
|
||||
|
||||
# FFmpeg
|
||||
set(FFMPEG_LIB
|
||||
${FFMPEG_BASE_PATH}/lib/avcodec.lib
|
||||
${FFMPEG_BASE_PATH}/lib/avdevice.lib
|
||||
${FFMPEG_BASE_PATH}/lib/avfilter.lib
|
||||
${FFMPEG_BASE_PATH}/lib/avformat.lib
|
||||
${FFMPEG_BASE_PATH}/lib/avutil.lib
|
||||
${FFMPEG_BASE_PATH}/lib/swscale.lib
|
||||
)
|
||||
list(APPEND ALL_LIBRARIES ${FFMPEG_LIB})
|
||||
list(APPEND ALL_INCLUDE_DIRS ${FFMPEG_BASE_PATH}/include)
|
||||
|
||||
# ncnn
|
||||
# TODO: Figure out why this file is not being copied to the install directory
|
||||
set(SPIRV_BUILD_PATH
|
||||
${CMAKE_BINARY_DIR}/realesrgan-prefix/src/realesrgan-build/ncnn/glslang/SPIRV
|
||||
)
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||
set(SPIRV_LIB ${SPIRV_BUILD_PATH}/Release/SPIRV.lib)
|
||||
else()
|
||||
set(SPIRV_LIB ${SPIRV_BUILD_PATH}/Debug/SPIRVd.lib)
|
||||
endif()
|
||||
|
||||
list(APPEND ALL_LIBRARIES
|
||||
${NCNN_BASE_PATH}/lib/ncnn.lib
|
||||
${SPIRV_LIB}
|
||||
)
|
||||
list(APPEND ALL_INCLUDE_DIRS ${NCNN_BASE_PATH}/include/ncnn)
|
||||
else()
|
||||
# FFmpeg
|
||||
find_package(PkgConfig REQUIRED)
|
||||
set(FFMPEG_REQUIRED_PKGS
|
||||
libavcodec
|
||||
libavdevice
|
||||
libavfilter
|
||||
libavformat
|
||||
libavutil
|
||||
libswscale
|
||||
)
|
||||
|
||||
# Loop through each package to find and collect include dirs and libraries
|
||||
set(FFMPEG_LIB)
|
||||
foreach(PKG ${FFMPEG_REQUIRED_PKGS})
|
||||
pkg_check_modules(${PKG} REQUIRED ${PKG})
|
||||
list(APPEND ALL_INCLUDE_DIRS ${${PKG}_INCLUDE_DIRS})
|
||||
list(APPEND FFMPEG_LIB ${${PKG}_LIBRARIES})
|
||||
endforeach()
|
||||
list(APPEND ALL_LIBRARIES ${FFMPEG_LIB})
|
||||
endif() # WIN32
|
||||
|
||||
# Find ncnn package
|
||||
if(USE_SYSTEM_NCNN)
|
||||
find_package(ncnn REQUIRED)
|
||||
else()
|
||||
option(NCNN_INSTALL_SDK "" OFF)
|
||||
option(NCNN_PIXEL_ROTATE "" OFF)
|
||||
option(NCNN_VULKAN "" ON)
|
||||
option(NCNN_VULKAN_ONLINE_SPIRV "" ON)
|
||||
option(NCNN_BUILD_BENCHMARK "" OFF)
|
||||
option(NCNN_BUILD_TESTS "" OFF)
|
||||
option(NCNN_BUILD_TOOLS "" OFF)
|
||||
option(NCNN_BUILD_EXAMPLES "" OFF)
|
||||
option(NCNN_DISABLE_RTTI "" ON)
|
||||
option(NCNN_DISABLE_EXCEPTION "" ON)
|
||||
option(NCNN_BUILD_SHARED_LIBS "" OFF)
|
||||
option(SKIP_GLSLANG_INSTALL "" ON)
|
||||
|
||||
option(WITH_LAYER_absval "" OFF)
|
||||
option(WITH_LAYER_argmax "" OFF)
|
||||
option(WITH_LAYER_batchnorm "" OFF)
|
||||
option(WITH_LAYER_bias "" OFF)
|
||||
option(WITH_LAYER_bnll "" OFF)
|
||||
option(WITH_LAYER_concat "" ON)
|
||||
option(WITH_LAYER_convolution "" ON)
|
||||
option(WITH_LAYER_crop "" ON)
|
||||
option(WITH_LAYER_deconvolution "" OFF)
|
||||
option(WITH_LAYER_dropout "" OFF)
|
||||
option(WITH_LAYER_eltwise "" ON)
|
||||
option(WITH_LAYER_elu "" OFF)
|
||||
option(WITH_LAYER_embed "" OFF)
|
||||
option(WITH_LAYER_exp "" OFF)
|
||||
option(WITH_LAYER_flatten "" ON)
|
||||
option(WITH_LAYER_innerproduct "" ON)
|
||||
option(WITH_LAYER_input "" ON)
|
||||
option(WITH_LAYER_log "" OFF)
|
||||
option(WITH_LAYER_lrn "" OFF)
|
||||
option(WITH_LAYER_memorydata "" OFF)
|
||||
option(WITH_LAYER_mvn "" OFF)
|
||||
option(WITH_LAYER_pooling "" OFF)
|
||||
option(WITH_LAYER_power "" OFF)
|
||||
option(WITH_LAYER_prelu "" ON)
|
||||
option(WITH_LAYER_proposal "" OFF)
|
||||
option(WITH_LAYER_reduction "" OFF)
|
||||
option(WITH_LAYER_relu "" ON)
|
||||
option(WITH_LAYER_reshape "" OFF)
|
||||
option(WITH_LAYER_roipooling "" OFF)
|
||||
option(WITH_LAYER_scale "" OFF)
|
||||
option(WITH_LAYER_sigmoid "" OFF)
|
||||
option(WITH_LAYER_slice "" OFF)
|
||||
option(WITH_LAYER_softmax "" OFF)
|
||||
option(WITH_LAYER_split "" ON)
|
||||
option(WITH_LAYER_spp "" OFF)
|
||||
option(WITH_LAYER_tanh "" OFF)
|
||||
option(WITH_LAYER_threshold "" OFF)
|
||||
option(WITH_LAYER_tile "" OFF)
|
||||
option(WITH_LAYER_rnn "" OFF)
|
||||
option(WITH_LAYER_lstm "" OFF)
|
||||
option(WITH_LAYER_binaryop "" ON)
|
||||
option(WITH_LAYER_unaryop "" OFF)
|
||||
option(WITH_LAYER_convolutiondepthwise "" OFF)
|
||||
option(WITH_LAYER_padding "" ON)
|
||||
option(WITH_LAYER_squeeze "" OFF)
|
||||
option(WITH_LAYER_expanddims "" OFF)
|
||||
option(WITH_LAYER_normalize "" OFF)
|
||||
option(WITH_LAYER_permute "" OFF)
|
||||
option(WITH_LAYER_priorbox "" OFF)
|
||||
option(WITH_LAYER_detectionoutput "" OFF)
|
||||
option(WITH_LAYER_interp "" ON)
|
||||
option(WITH_LAYER_deconvolutiondepthwise "" OFF)
|
||||
option(WITH_LAYER_shufflechannel "" OFF)
|
||||
option(WITH_LAYER_instancenorm "" OFF)
|
||||
option(WITH_LAYER_clip "" OFF)
|
||||
option(WITH_LAYER_reorg "" OFF)
|
||||
option(WITH_LAYER_yolodetectionoutput "" OFF)
|
||||
option(WITH_LAYER_quantize "" OFF)
|
||||
option(WITH_LAYER_dequantize "" OFF)
|
||||
option(WITH_LAYER_yolov3detectionoutput "" OFF)
|
||||
option(WITH_LAYER_psroipooling "" OFF)
|
||||
option(WITH_LAYER_roialign "" OFF)
|
||||
option(WITH_LAYER_packing "" ON)
|
||||
option(WITH_LAYER_requantize "" OFF)
|
||||
option(WITH_LAYER_cast "" ON)
|
||||
option(WITH_LAYER_hardsigmoid "" OFF)
|
||||
option(WITH_LAYER_selu "" OFF)
|
||||
option(WITH_LAYER_hardswish "" OFF)
|
||||
option(WITH_LAYER_noop "" OFF)
|
||||
option(WITH_LAYER_pixelshuffle "" ON)
|
||||
option(WITH_LAYER_deepcopy "" OFF)
|
||||
option(WITH_LAYER_mish "" OFF)
|
||||
option(WITH_LAYER_statisticspooling "" OFF)
|
||||
option(WITH_LAYER_swish "" OFF)
|
||||
option(WITH_LAYER_gemm "" OFF)
|
||||
option(WITH_LAYER_groupnorm "" OFF)
|
||||
option(WITH_LAYER_layernorm "" OFF)
|
||||
option(WITH_LAYER_softplus "" OFF)
|
||||
|
||||
add_subdirectory(third_party/ncnn)
|
||||
endif()
|
||||
|
||||
# spdlog
|
||||
if(USE_SYSTEM_SPDLOG)
|
||||
find_package(spdlog REQUIRED)
|
||||
list(APPEND ALL_INCLUDE_DIRS ${spdlog_INCLUDE_DIRS})
|
||||
set(SPDLOG_LIB spdlog::spdlog)
|
||||
else()
|
||||
add_subdirectory(third_party/spdlog)
|
||||
set(SPDLOG_LIB spdlog::spdlog_header_only)
|
||||
endif()
|
||||
list(APPEND ALL_LIBRARIES ${SPDLOG_LIB})
|
||||
|
||||
# Boost
|
||||
if(USE_SYSTEM_BOOST)
|
||||
find_package(Boost REQUIRED COMPONENTS program_options)
|
||||
list(APPEND ALL_INCLUDE_DIRS ${Boost_INCLUDE_DIRS})
|
||||
else()
|
||||
option(Boost_USE_STATIC_LIBS "" ON)
|
||||
option(Boost_USE_STATIC_RUNTIME "" ON)
|
||||
option(Boost_COMPONENTS "program_options")
|
||||
|
||||
add_subdirectory(third_party/boost)
|
||||
include_directories(${PROJECT_SOURCE_DIR}/third_party/boost/libs/program_options/include)
|
||||
set(BOOST_BASE_PATH ${CMAKE_BINARY_DIR}/third_party/boost/libs/program_options/${CMAKE_BUILD_TYPE})
|
||||
endif()
|
||||
set(BOOST_LIB Boost::program_options)
|
||||
|
||||
if(BUILD_VIDEO2X_CLI)
|
||||
find_package(Vulkan REQUIRED)
|
||||
set(VULKAN_LIB Vulkan::Vulkan)
|
||||
endif()
|
||||
|
||||
# Include ExternalProject module
|
||||
include(ExternalProject)
|
||||
|
||||
# Add librealesrgan-ncnn-vulkan as an external project
|
||||
ExternalProject_Add(
|
||||
realesrgan
|
||||
SOURCE_DIR ${PROJECT_SOURCE_DIR}/third_party/librealesrgan_ncnn_vulkan/src
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
||||
-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/realesrgan_install
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||
-DUSE_SYSTEM_NCNN=${USE_SYSTEM_NCNN}
|
||||
BUILD_ALWAYS ON
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE}
|
||||
)
|
||||
|
||||
# Add librealesrgan-ncnn-vulkan as an external project
|
||||
ExternalProject_Add(
|
||||
rife
|
||||
SOURCE_DIR ${PROJECT_SOURCE_DIR}/third_party/librife_ncnn_vulkan/src
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
||||
-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/rife_install
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||
-DUSE_SYSTEM_NCNN=${USE_SYSTEM_NCNN}
|
||||
BUILD_ALWAYS ON
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE}
|
||||
)
|
||||
|
||||
# Remove duplicate entries
|
||||
list(REMOVE_DUPLICATES ALL_INCLUDE_DIRS)
|
||||
list(REMOVE_DUPLICATES ALL_LIBRARIES)
|
||||
|
||||
# Create the shared library 'libvideo2x'
|
||||
file(GLOB LIBVIDEO2X_SOURCES src/*.cpp)
|
||||
add_library(libvideo2x ${LIBVIDEO2X_SOURCES})
|
||||
target_compile_definitions(libvideo2x PRIVATE LIBVIDEO2X_EXPORTS)
|
||||
if(WIN32)
|
||||
set_target_properties(libvideo2x PROPERTIES OUTPUT_NAME libvideo2x)
|
||||
else()
|
||||
set_target_properties(libvideo2x PROPERTIES OUTPUT_NAME video2x)
|
||||
endif()
|
||||
|
||||
# Ensure that the shared library is built after the external projects
|
||||
add_dependencies(libvideo2x realesrgan rife)
|
||||
|
||||
# Include directories for the shared library
|
||||
target_include_directories(libvideo2x PRIVATE
|
||||
${ALL_INCLUDE_DIRS}
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${PROJECT_SOURCE_DIR}/include
|
||||
${PROJECT_SOURCE_DIR}/include/libvideo2x
|
||||
${PROJECT_SOURCE_DIR}/third_party/librealesrgan_ncnn_vulkan/src
|
||||
${PROJECT_SOURCE_DIR}/third_party/librife_ncnn_vulkan/src
|
||||
)
|
||||
|
||||
# Compile options for the shared library
|
||||
target_compile_options(libvideo2x PRIVATE
|
||||
-fPIC
|
||||
$<$<CONFIG:Release>:-Ofast>
|
||||
$<$<CONFIG:Debug>:-g -DDEBUG>
|
||||
)
|
||||
|
||||
# Define the paths to the shared libraries
|
||||
if(WIN32)
|
||||
set(REALESRGAN_LIB ${CMAKE_BINARY_DIR}/realesrgan_install/lib/librealesrgan-ncnn-vulkan.lib)
|
||||
set(RIFE_LIB ${CMAKE_BINARY_DIR}/rife_install/lib/librife-ncnn-vulkan.lib)
|
||||
else()
|
||||
set(REALESRGAN_LIB ${CMAKE_BINARY_DIR}/realesrgan_install/lib/librealesrgan-ncnn-vulkan.so)
|
||||
set(RIFE_LIB ${CMAKE_BINARY_DIR}/rife_install/lib/librife-ncnn-vulkan.so)
|
||||
endif()
|
||||
list(APPEND ALL_LIBRARIES ${REALESRGAN_LIB} ${RIFE_LIB})
|
||||
|
||||
# Link the shared library with the dependencies
|
||||
target_link_libraries(libvideo2x PRIVATE ${ALL_LIBRARIES})
|
||||
|
||||
if(NOT WIN32)
|
||||
if(USE_SYSTEM_NCNN)
|
||||
target_link_libraries(libvideo2x PUBLIC ncnn)
|
||||
else()
|
||||
target_link_libraries(libvideo2x PRIVATE ncnn)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Create the executable 'video2x'
|
||||
if(BUILD_VIDEO2X_CLI)
|
||||
file(GLOB VIDEO2X_SOURCES tools/video2x/src/*.cpp)
|
||||
add_executable(video2x ${VIDEO2X_SOURCES})
|
||||
set_target_properties(video2x PROPERTIES OUTPUT_NAME video2x)
|
||||
|
||||
# Include directories for the executable
|
||||
target_include_directories(video2x PRIVATE
|
||||
${ALL_INCLUDE_DIRS}
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${PROJECT_SOURCE_DIR}/include
|
||||
${PROJECT_SOURCE_DIR}/tools/video2x/include
|
||||
)
|
||||
|
||||
# Compile options for the executable
|
||||
target_compile_options(video2x PRIVATE $<$<CONFIG:Debug>:-g -DDEBUG>)
|
||||
|
||||
# Link the executable with the shared library
|
||||
target_link_libraries(video2x PRIVATE
|
||||
libvideo2x
|
||||
${FFMPEG_LIB}
|
||||
${SPDLOG_LIB}
|
||||
${BOOST_LIB}
|
||||
${VULKAN_LIB}
|
||||
)
|
||||
endif()
|
||||
|
||||
# Define the default installation directories
|
||||
if(WIN32)
|
||||
set(BIN_DESTINATION_DEFAULT ".")
|
||||
set(INCLUDE_DESTINATION_DEFAULT "include/libvideo2x")
|
||||
set(LIB_DESTINATION_DEFAULT ".")
|
||||
set(MODEL_DESTINATION_DEFAULT ".")
|
||||
else()
|
||||
set(BIN_DESTINATION_DEFAULT "bin")
|
||||
set(INCLUDE_DESTINATION_DEFAULT "include/libvideo2x")
|
||||
set(LIB_DESTINATION_DEFAULT "lib")
|
||||
set(MODEL_DESTINATION_DEFAULT "share/video2x")
|
||||
endif()
|
||||
|
||||
# Set the installation directories
|
||||
set(INSTALL_BIN_DESTINATION ${BIN_DESTINATION_DEFAULT} CACHE STRING "")
|
||||
set(INSTALL_INCLUDE_DESTINATION ${INCLUDE_DESTINATION_DEFAULT} CACHE STRING "")
|
||||
set(INSTALL_LIB_DESTINATION ${LIB_DESTINATION_DEFAULT} CACHE STRING "")
|
||||
set(INSTALL_MODEL_DESTINATION ${MODEL_DESTINATION_DEFAULT} CACHE STRING "")
|
||||
|
||||
# Common installation rules for libvideo2x and models
|
||||
install(TARGETS libvideo2x
|
||||
LIBRARY DESTINATION ${INSTALL_LIB_DESTINATION}
|
||||
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
|
||||
GROUP_READ GROUP_EXECUTE
|
||||
WORLD_READ WORLD_EXECUTE
|
||||
ARCHIVE DESTINATION ${INSTALL_LIB_DESTINATION}
|
||||
RUNTIME DESTINATION ${INSTALL_BIN_DESTINATION}
|
||||
)
|
||||
|
||||
# Install model files
|
||||
install(DIRECTORY ${CMAKE_SOURCE_DIR}/models DESTINATION ${INSTALL_MODEL_DESTINATION})
|
||||
|
||||
# Install the executable if BUILD_VIDEO2X_CLI is enabled
|
||||
if(BUILD_VIDEO2X_CLI)
|
||||
install(TARGETS video2x RUNTIME DESTINATION ${INSTALL_BIN_DESTINATION})
|
||||
endif()
|
||||
|
||||
# Install the header files
|
||||
file(GLOB HEADER_FILES ${PROJECT_SOURCE_DIR}/include/libvideo2x/*.h)
|
||||
install(FILES
|
||||
${HEADER_FILES}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/libvideo2x/version.h
|
||||
DESTINATION ${INSTALL_INCLUDE_DESTINATION}
|
||||
)
|
||||
|
||||
# Platform-specific installation rules
|
||||
if(WIN32)
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||
set(BOOST_DLL_PATH ${BOOST_BASE_PATH}/boost_program_options-vc143-mt-x64-1_86.dll)
|
||||
else()
|
||||
set(BOOST_DLL_PATH ${BOOST_BASE_PATH}/boost_program_options-vc143-mt-gd-x64-1_86.dll)
|
||||
endif()
|
||||
|
||||
file(GLOB FFMPEG_DLLS "${FFMPEG_BASE_PATH}/bin/*.dll")
|
||||
install(FILES
|
||||
${CMAKE_BINARY_DIR}/realesrgan_install/bin/librealesrgan-ncnn-vulkan.dll
|
||||
${CMAKE_BINARY_DIR}/rife_install/bin/librife-ncnn-vulkan.dll
|
||||
${FFMPEG_DLLS}
|
||||
${NCNN_BASE_PATH}/bin/ncnn.dll
|
||||
${BOOST_DLL_PATH}
|
||||
DESTINATION ${INSTALL_BIN_DESTINATION}
|
||||
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
|
||||
GROUP_READ GROUP_EXECUTE
|
||||
WORLD_READ WORLD_EXECUTE
|
||||
)
|
||||
else()
|
||||
install(FILES ${REALESRGAN_LIB} ${RIFE_LIB}
|
||||
DESTINATION ${INSTALL_LIB_DESTINATION}
|
||||
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
|
||||
GROUP_READ GROUP_EXECUTE
|
||||
WORLD_READ WORLD_EXECUTE
|
||||
)
|
||||
endif()
|
||||
20
CODE_OF_CONDUCT.md
Normal file
20
CODE_OF_CONDUCT.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# Code of Conduct
|
||||
|
||||
## Our Goal
|
||||
|
||||
Our goal is to create a respectful and inclusive environment for everyone involved in our project.
|
||||
|
||||
## Our Standards
|
||||
|
||||
- **Respect Others**: Treat everyone with respect, regardless of their background or beliefs.
|
||||
- **Resolve Peacefully**: Address disagreements constructively and aim for peaceful resolutions.
|
||||
- **Report Problems**: If you witness or experience any issues, report them to [github@k4yt3x.com](mailto:github@k4yt3x.com).
|
||||
|
||||
## Enforcement
|
||||
|
||||
- **Confidentiality**: Reports will be handled confidentially.
|
||||
- **Action**: The project team will review and address reported issues promptly and appropriately.
|
||||
|
||||
## Contact
|
||||
|
||||
For any questions or concerns, please contact us at [github@k4yt3x.com](mailto:github@k4yt3x.com).
|
||||
147
LICENSE
147
LICENSE
@@ -1,23 +1,21 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
Version 3, 19 November 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
The GNU Affero General Public License is a free, copyleft license for
|
||||
software and other kinds of works, specifically designed to ensure
|
||||
cooperation with the community in the case of network server software.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
our General Public Licenses are intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
software for all its users.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
@@ -26,44 +24,34 @@ them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
Developers that use our General Public Licenses protect your rights
|
||||
with two steps: (1) assert copyright on the software, and (2) offer
|
||||
you this License which gives you legal permission to copy, distribute
|
||||
and/or modify the software.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
A secondary benefit of defending all users' freedom is that
|
||||
improvements made in alternate versions of the program, if they
|
||||
receive widespread use, become available for other developers to
|
||||
incorporate. Many developers of free software are heartened and
|
||||
encouraged by the resulting cooperation. However, in the case of
|
||||
software used on network servers, this result may fail to come about.
|
||||
The GNU General Public License permits making a modified version and
|
||||
letting the public access it on a server without ever releasing its
|
||||
source code to the public.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
The GNU Affero General Public License is designed specifically to
|
||||
ensure that, in such cases, the modified source code becomes available
|
||||
to the community. It requires the operator of a network server to
|
||||
provide the source code of the modified version running there to the
|
||||
users of that server. Therefore, public use of a modified version, on
|
||||
a publicly accessible server, gives the public access to the source
|
||||
code of the modified version.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
An older license, called the Affero General Public License and
|
||||
published by Affero, was designed to accomplish similar goals. This is
|
||||
a different license, not a version of the Affero GPL, but Affero has
|
||||
released a new version of the Affero GPL which permits relicensing under
|
||||
this license.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
@@ -72,7 +60,7 @@ modification follow.
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
"This License" refers to version 3 of the GNU Affero General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
@@ -549,35 +537,45 @@ to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
13. Remote Network Interaction; Use with the GNU General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, if you modify the
|
||||
Program, your modified version must prominently offer all users
|
||||
interacting with it remotely through a computer network (if your version
|
||||
supports such interaction) an opportunity to receive the Corresponding
|
||||
Source of your version by providing access to the Corresponding Source
|
||||
from a network server at no charge, through some standard or customary
|
||||
means of facilitating copying of software. This Corresponding Source
|
||||
shall include the Corresponding Source for any work covered by version 3
|
||||
of the GNU General Public License that is incorporated pursuant to the
|
||||
following paragraph.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
under version 3 of the GNU General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
but the work with which it is combined will remain governed by version
|
||||
3 of the GNU General Public License.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
the GNU Affero General Public License from time to time. Such new versions
|
||||
will be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Program specifies that a certain numbered version of the GNU Affero General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
GNU Affero General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
versions of the GNU Affero General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
@@ -635,40 +633,29 @@ the "copyright" line and a pointer to where the full notice is found.
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
If your software can interact with users remotely through a computer
|
||||
network, you should also make sure that it provides a way for users to
|
||||
get its source. For example, if your program is a web application, its
|
||||
interface could display a "Source" link that leads users to an archive
|
||||
of the code. There are many ways you could offer source, and different
|
||||
solutions will be better for different programs; see section 13 for the
|
||||
specific requirements.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<http://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
For more information on this, and how to apply and follow the GNU AGPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
||||
|
||||
201
Makefile
Normal file
201
Makefile
Normal file
@@ -0,0 +1,201 @@
|
||||
.PHONY: build static debug windows windows-debug debian ubuntu clean \
|
||||
test-realesrgan test-libplacebo test-rife \
|
||||
memcheck-realesrgan memcheck-libplacebo memcheck-rife \
|
||||
heaptrack-realesrgan heaptrack-libplacebo heaptrack-rife
|
||||
|
||||
BINDIR=build
|
||||
CC=clang
|
||||
CXX=clang++
|
||||
|
||||
TEST_VIDEO=data/standard-test.mp4
|
||||
TEST_OUTPUT=data/output.mp4
|
||||
|
||||
build:
|
||||
cmake -S . -B $(BINDIR) \
|
||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||
-DCMAKE_C_COMPILER=$(CC) \
|
||||
-DCMAKE_CXX_COMPILER=$(CXX) \
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
cmake --build $(BINDIR) --config Release --parallel
|
||||
cp $(BINDIR)/compile_commands.json .
|
||||
|
||||
static:
|
||||
cmake -S . -B $(BINDIR) \
|
||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||
-DCMAKE_C_COMPILER=$(CC) \
|
||||
-DCMAKE_CXX_COMPILER=$(CXX) \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
cmake --build $(BINDIR) --config Release --parallel
|
||||
cp $(BINDIR)/compile_commands.json .
|
||||
|
||||
debug:
|
||||
cmake -S . -B $(BINDIR) \
|
||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||
-DCMAKE_C_COMPILER=$(CC) \
|
||||
-DCMAKE_CXX_COMPILER=$(CXX) \
|
||||
-DCMAKE_BUILD_TYPE=Debug
|
||||
cmake --build $(BINDIR) --config Debug --parallel
|
||||
cp $(BINDIR)/compile_commands.json .
|
||||
|
||||
windows:
|
||||
cmake -S . -B $(BINDIR) \
|
||||
-DUSE_SYSTEM_NCNN=OFF \
|
||||
-DUSE_SYSTEM_SPDLOG=OFF \
|
||||
-DUSE_SYSTEM_BOOST=OFF \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_INSTALL_PREFIX=build/libvideo2x-shared
|
||||
cmake --build $(BINDIR) --config Release --parallel --target install
|
||||
|
||||
windows-debug:
|
||||
cmake -S . -B $(BINDIR) \
|
||||
-DUSE_SYSTEM_NCNN=OFF \
|
||||
-DUSE_SYSTEM_SPDLOG=OFF \
|
||||
-DUSE_SYSTEM_BOOST=OFF \
|
||||
-DCMAKE_BUILD_TYPE=Debug \
|
||||
-DCMAKE_INSTALL_PREFIX=build/libvideo2x-shared
|
||||
cmake --build $(BINDIR) --config Debug --parallel --target install
|
||||
|
||||
debian:
|
||||
apt-get update
|
||||
apt-get install -y --no-install-recommends \
|
||||
build-essential cmake clang pkg-config \
|
||||
libavcodec-dev \
|
||||
libavdevice-dev \
|
||||
libavfilter-dev \
|
||||
libavformat-dev \
|
||||
libavutil-dev \
|
||||
libswscale-dev \
|
||||
libvulkan-dev \
|
||||
glslang-tools \
|
||||
libomp-dev \
|
||||
libspdlog-dev \
|
||||
libboost-program-options-dev
|
||||
cmake -B /tmp/build -S . -DUSE_SYSTEM_NCNN=OFF \
|
||||
-DCMAKE_C_COMPILER=$(CC) -DCMAKE_CXX_COMPILER=$(CXX) \
|
||||
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/tmp/install \
|
||||
-DINSTALL_BIN_DESTINATION=. -DINSTALL_INCLUDE_DESTINATION=include \
|
||||
-DINSTALL_LIB_DESTINATION=. -DINSTALL_MODEL_DESTINATION=.
|
||||
cmake --build /tmp/build --config Release --target install --parallel
|
||||
|
||||
ubuntu2404:
|
||||
apt-get update
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
||||
build-essential cmake pkg-config \
|
||||
libavcodec-dev \
|
||||
libavdevice-dev \
|
||||
libavfilter-dev \
|
||||
libavformat-dev \
|
||||
libavutil-dev \
|
||||
libswscale-dev \
|
||||
libvulkan-dev \
|
||||
glslang-tools \
|
||||
libomp-dev \
|
||||
libboost-program-options-dev
|
||||
cmake -B build -S . -DUSE_SYSTEM_NCNN=OFF -DUSE_SYSTEM_SPDLOG=OFF -DSPDLOG_NO_EXCEPTIONS=ON \
|
||||
-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ \
|
||||
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=video2x-linux-ubuntu-amd64/usr
|
||||
cmake --build build --config Release --target install --parallel
|
||||
mkdir -p video2x-linux-ubuntu-amd64/DEBIAN
|
||||
cp packaging/debian/control.ubuntu2404 video2x-linux-ubuntu-amd64/DEBIAN/control
|
||||
dpkg-deb --build video2x-linux-ubuntu-amd64
|
||||
|
||||
ubuntu2204:
|
||||
apt-get update
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common
|
||||
add-apt-repository -y ppa:ubuntuhandbook1/ffmpeg7
|
||||
apt-get update
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
||||
build-essential cmake \
|
||||
libavcodec-dev \
|
||||
libavdevice-dev \
|
||||
libavfilter-dev \
|
||||
libavformat-dev \
|
||||
libavutil-dev \
|
||||
libswscale-dev \
|
||||
libvulkan-dev \
|
||||
glslang-tools \
|
||||
libomp-dev \
|
||||
libboost-program-options-dev
|
||||
cmake -B build -S . -DUSE_SYSTEM_NCNN=OFF -DUSE_SYSTEM_SPDLOG=OFF -DSPDLOG_NO_EXCEPTIONS=ON \
|
||||
-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ \
|
||||
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=video2x-linux-ubuntu-amd64/usr
|
||||
cmake --build build --config Release --target install --parallel
|
||||
mkdir -p video2x-linux-ubuntu-amd64/DEBIAN
|
||||
cp packaging/debian/control.ubuntu2204 video2x-linux-ubuntu-amd64/DEBIAN/control
|
||||
dpkg-deb --build video2x-linux-ubuntu-amd64
|
||||
|
||||
clean:
|
||||
rm -vrf $(BINDIR) data/output*.* heaptrack*.zst valgrind.log
|
||||
|
||||
test-realesrgan:
|
||||
LD_LIBRARY_PATH=$(BINDIR) $(BINDIR)/video2x -i $(TEST_VIDEO) -o $(TEST_OUTPUT) \
|
||||
-p realesrgan -s 4 --realesrgan-model realesr-animevideov3
|
||||
|
||||
test-libplacebo:
|
||||
LD_LIBRARY_PATH=$(BINDIR) $(BINDIR)/video2x -i $(TEST_VIDEO) -o $(TEST_OUTPUT) \
|
||||
-p libplacebo -w 1920 -h 1080 --libplacebo-shader anime4k-v4-a
|
||||
|
||||
test-rife:
|
||||
LD_LIBRARY_PATH=$(BINDIR) $(BINDIR)/video2x -i $(TEST_VIDEO) -o $(TEST_OUTPUT) \
|
||||
-p rife -m 4 --rife-model rife-v4.6
|
||||
|
||||
memcheck-realesrgan:
|
||||
LD_LIBRARY_PATH=$(BINDIR) valgrind \
|
||||
--tool=memcheck \
|
||||
--leak-check=full \
|
||||
--show-leak-kinds=all \
|
||||
--track-origins=yes \
|
||||
--show-reachable=yes \
|
||||
--verbose --log-file="valgrind.log" \
|
||||
$(BINDIR)/video2x \
|
||||
-i $(TEST_VIDEO) -o $(TEST_OUTPUT) \
|
||||
-p realesrgan -s 2 --realesrgan-model realesr-animevideov3 \
|
||||
-e preset=veryfast -e crf=30
|
||||
|
||||
memcheck-libplacebo:
|
||||
LD_LIBRARY_PATH=$(BINDIR) valgrind \
|
||||
--tool=memcheck \
|
||||
--leak-check=full \
|
||||
--show-leak-kinds=all \
|
||||
--track-origins=yes \
|
||||
--show-reachable=yes \
|
||||
--verbose --log-file="valgrind.log" \
|
||||
$(BINDIR)/video2x \
|
||||
-i $(TEST_VIDEO) -o $(TEST_OUTPUT) \
|
||||
-p libplacebo -w 1920 -h 1080 --libplacebo-shader anime4k-v4-a \
|
||||
-e preset=veryfast -e crf=30
|
||||
|
||||
memcheck-rife:
|
||||
LD_LIBRARY_PATH=$(BINDIR) valgrind \
|
||||
--tool=memcheck \
|
||||
--leak-check=full \
|
||||
--show-leak-kinds=all \
|
||||
--track-origins=yes \
|
||||
--show-reachable=yes \
|
||||
--verbose --log-file="valgrind.log" \
|
||||
$(BINDIR)/video2x \
|
||||
-i $(TEST_VIDEO) -o $(TEST_OUTPUT) \
|
||||
-p rife -m 4 --rife-model rife-v4.6 \
|
||||
-e preset=veryfast -e crf=30
|
||||
|
||||
heaptrack-realesrgan:
|
||||
LD_LIBRARY_PATH=$(BINDIR) HEAPTRACK_ENABLE_DEBUGINFOD=1 heaptrack \
|
||||
$(BINDIR)/video2x \
|
||||
-i $(TEST_VIDEO) -o $(TEST_OUTPUT) \
|
||||
-p realesrgan -s 4 --realesrgan-model realesr-animevideov3 \
|
||||
-e preset=veryfast -e crf=30
|
||||
|
||||
heaptrack-libplacebo:
|
||||
LD_LIBRARY_PATH=$(BINDIR) HEAPTRACK_ENABLE_DEBUGINFOD=1 heaptrack \
|
||||
$(BINDIR)/video2x \
|
||||
-i $(TEST_VIDEO) -o $(TEST_OUTPUT) \
|
||||
-p libplacebo -w 1920 -h 1080 --libplacebo-shader anime4k-v4-a \
|
||||
-e preset=veryfast -e crf=30
|
||||
|
||||
heaptrack-rife:
|
||||
LD_LIBRARY_PATH=$(BINDIR) HEAPTRACK_ENABLE_DEBUGINFOD=1 heaptrack \
|
||||
$(BINDIR)/video2x \
|
||||
-i $(TEST_VIDEO) -o $(TEST_OUTPUT) \
|
||||
-p rife -m 4 --rife-model rife-v4.6 \
|
||||
-e preset=veryfast -e crf=30
|
||||
11
NOTICE
Normal file
11
NOTICE
Normal file
@@ -0,0 +1,11 @@
|
||||
Video2X
|
||||
Copyright (C) 2018-2024 K4YT3X and contributors.
|
||||
|
||||
This product depends on FFmpeg, which is available under the GNU Lesser General Public License 2.1.
|
||||
The source code can be found at https://github.com/FFmpeg/FFmpeg.
|
||||
|
||||
This product depends on Real-ESRGAN ncnn Vulkan, which is available under the MIT License.
|
||||
The source code can be found at https://github.com/xinntao/Real-ESRGAN-ncnn-vulkan.
|
||||
|
||||
This product depends on ncnn, which is available under the BSD 3-Clause License.
|
||||
The source code can be found at https://github.com/Tencent/ncnn.
|
||||
343
README.md
343
README.md
@@ -1,279 +1,128 @@
|
||||
<p align="center">
|
||||
<img src="https://user-images.githubusercontent.com/21986859/81626588-ae5ab800-93eb-11ea-918f-ebe98c2de40a.png"/>
|
||||
<img src="https://github.com/user-attachments/assets/5cd63373-e806-474f-94ec-6e04963bf90f"
|
||||
alt="Video2X: A machine learning-based video super resolution and frame interpolation framework."/>
|
||||
</br>
|
||||
<img src="https://img.shields.io/github/v/release/k4yt3x/video2x?style=flat-square"/>
|
||||
<img src="https://img.shields.io/github/downloads/k4yt3x/video2x/total?style=flat-square"/>
|
||||
<img src="https://img.shields.io/github/license/k4yt3x/video2x?style=flat-square"/>
|
||||
<img src="https://img.shields.io/github/sponsors/k4yt3x?style=flat-square&link=https%3A%2F%2Fgithub.com%2Fsponsors%2Fk4yt3x"/>
|
||||
<img src="https://img.shields.io/badge/dynamic/json?color=%23e85b46&label=Patreon&query=data.attributes.patron_count&suffix=%20patrons&url=https%3A%2F%2Fwww.patreon.com%2Fapi%2Fcampaigns%2F4507807&style=flat-square"/>
|
||||
</p>
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
<img alt="Become a Patron!" src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" href="https://www.patreon.com/bePatron?u=34970782" height=20>
|
||||
## 🌟 Version 6.0.0
|
||||
|
||||
<!--# Video2X Lossless Video Enlarger-->
|
||||
Video2X 6.0.0 highlights:
|
||||
|
||||
### Official Discussion Group (Telegram): https://t.me/video2x
|
||||
- Complete rewrite of the Video2X project in C/C++.
|
||||
- Faster and more efficient architecture.
|
||||
- Cross-platform support for Windows and Linux.
|
||||
- Vastly improved output quality.
|
||||
- New GUI and installer for easy setup on Windows.
|
||||
|
||||
## [Download Stable/Beta Builds](https://github.com/k4yt3x/video2x/releases) (Windows)
|
||||
<details>
|
||||
<summary>Click to see more details</summary>
|
||||
|
||||
- **`Full`**: full package comes pre-configured with **all** dependencies like `FFmpeg` and `waifu2x-caffe`.
|
||||
- **`Light`**: ligt package comes with only Video2X binaries and a template configuration file. The user will either have to run the setup script or install and configure dependencies themselves.
|
||||
Version 6.0.0 is a complete rewrite of this project in C/C++. It:
|
||||
|
||||
Go to the **[Quick Start](#quick-start)** section for usages.
|
||||
- genuinely works this time, with much less hassle compared to the 5.0.0 beta;
|
||||
- is blazing fast, thanks to the new optimized pipeline and the efficiency of C/C++;
|
||||
- is cross-platform, available now for both Windows and Linux;
|
||||
- offers significantly better output quality with Anime4K v4, RealESRGAN, and RIFE;
|
||||
- supports two modes: filtering (upscaling) and frame interpolation;
|
||||
- supports Anime4K v4 and all custom MPV-compatible GLSL shaders;
|
||||
- supports RealESRGAN (all three models) via ncnn and Vulkan;
|
||||
- supports RIFE via ncnn and Vulkan;
|
||||
- requires zero additional disk space during processing, just space for the final output; and
|
||||
- exports a standard C function for easy integration into other projects! (documentation is on the way)
|
||||
|
||||
### [Download From Mirror](https://files.k4yt3x.com/Projects/Video2X/)
|
||||
Support for RealCUGAN is coming soon.
|
||||
|
||||
In case you're unable to download the releases directly from GitHub, you can try downloading from the mirror site hosted by the author. Only releases will be updated in this directory, not nightly builds.
|
||||
</details>
|
||||
|
||||
## [Download Nightly Builds](https://github.com/k4yt3x/video2x/actions) (Windows)
|
||||

|
||||
|
||||
Nightly builds are built automatically every time a new commit is pushed to the master branch. The lates nightly build is always up-to-date with the latest version of the code, but is less stable and may contain bugs. Nightly builds are handled by GitHub's integrated CI/CD tool, GitHub Actions.
|
||||
## [🪟 Install on Windows](https://docs.video2x.org/installing/windows-qt6.html)
|
||||
|
||||
To download the latest nightly build, go to the [GitHub Actions](https://github.com/k4yt3x/video2x/actions) tab, enter the last run of workflow "Video2X Nightly Build, and download the artifacts generated from the run.
|
||||
**[Download the Latest Windows Installer Executable (6.1.1)](https://github.com/k4yt3x/video2x/releases/download/6.1.1/video2x-qt6-windows-amd64-installer.exe)**
|
||||
|
||||
## Introduction
|
||||
You can download the latest Windows release on the [releases page](https://github.com/k4yt3x/video2x/releases/latest). For basic GUI usage, refer to the [documentation](https://docs.video2x.org/running/desktop.html). If you're unable to download directly from GitHub, try the [mirror site](https://files.k4yt3x.com/Projects/Video2X). The GUI currently supports the following languages:
|
||||
|
||||
Video2X is a video/GIF/image upscaling software based on Waifu2X, Anime4K and SRMD written in Python 3. It upscales videos, GIFs and images, restoring details from low-resolution inputs. Video2X also accepts GIF input to video output and video input to GIF output.
|
||||
- English (United States)
|
||||
- 简体中文(中国)
|
||||
- 日本語(日本)
|
||||
- Português (Portugal)
|
||||
|
||||
### Video Upscaling
|
||||
## [🐧 Install on Linux](https://docs.video2x.org/installing/linux.html)
|
||||
|
||||
You can install Video2X on Arch Linux using the [video2x-git](https://aur.archlinux.org/packages/video2x-git) AUR package or on Ubuntu/Debian using the `.deb` package from the [releases page](https://github.com/k4yt3x/video2x/releases/latest). If you'd like to build from source, refer to the [PKGBUILD](packaging/arch/PKGBUILD) file for a general overview of the required packages and commands. If you'd prefer not to compile the program from source, consider using the container image below.
|
||||
|
||||
## [📦 Container Image](https://docs.video2x.org/running/container.html)
|
||||
|
||||
Video2X [container images](https://github.com/k4yt3x/video2x/pkgs/container/video2x) are available on the GitHub Container Registry for easy deployment on Linux and macOS. If you already have Docker/Podman installed, only one command is needed to start upscaling a video. For more information on how to use Video2X's Docker image, please refer to the [documentation](https://docs.video2x.org/running/container.html).
|
||||
|
||||
## [📔 Google Colab](https://colab.research.google.com/drive/1gWEwcA9y57EsxwOjmLNmNMXPsafw0kGo)
|
||||
|
||||
You can use Video2X on [Google Colab](https://colab.research.google.com/) **for free** if you don't have a powerful GPU of your own. You can borrow a powerful GPU (NVIDIA T4, L4, or A100) on Google's server for free for a maximum of 12 hours per session. **Please use the free resource fairly** and do not create sessions back-to-back and run upscaling 24/7. This might result in you getting banned. You can get [Colab Pro/Pro+](https://colab.research.google.com/signup/pricing) if you'd like to use better GPUs and get longer runtimes. Usage instructions are embedded in the [Colab Notebook](https://colab.research.google.com/drive/1gWEwcA9y57EsxwOjmLNmNMXPsafw0kGo).
|
||||
|
||||
## [💬 Telegram Discussion Group](https://t.me/video2x)
|
||||
|
||||
Join our Telegram discussion group to ask any questions you have about Video2X, chat directly with the developers, or discuss super resolution, frame interpolation technologies, or the future of Video2X in general.
|
||||
|
||||
## [📖 Documentation](https://docs.video2x.org/)
|
||||
|
||||
Comprehensive documentation for Video2X is available at [https://docs.video2x.org/](https://docs.video2x.org/). It offers detailed instructions on how to [build](https://docs.video2x.org/building/index.html), [install](https://docs.video2x.org/installing/index.html), [use](https://docs.video2x.org/running/index.html), and [develop](https://docs.video2x.org/developing/index.html) with this program.
|
||||
|
||||
## 📽️ Video Demos (Outdated)
|
||||
|
||||
\
|
||||
*Upscale Comparison Demonstration*
|
||||
_Upscale demo: Spirited Away's movie trailer_
|
||||
|
||||
**You can watch the whole demo video on YouTube: https://youtu.be/mGEfasQl2Zo**
|
||||
- **Spirited Away**: [YouTube](https://youtu.be/mGEfasQl2Zo) | [Bilibili](https://www.bilibili.com/video/BV1V5411471i/)
|
||||
- 360P to 4K
|
||||
- The [original video](https://www.youtube.com/watch?v=ByXuk9QqQkk)'s copyright belongs to 株式会社スタジオジブリ
|
||||
- **Bad Apple!!**: [YouTube](https://youtu.be/A81rW_FI3cw) | [Bilibili](https://www.bilibili.com/video/BV16K411K7ue)
|
||||
- 384P 30 FPS to 4K 120 FPS with waifu2x and DAIN
|
||||
- The [original video](https://www.nicovideo.jp/watch/sm8628149)'s copyright belongs to あにら
|
||||
- **The Pet Girl of Sakurasou**: [YouTube](https://youtu.be/M0vDI1HH2_Y) | [Bilibili](https://www.bilibili.com/video/BV14k4y167KP/)
|
||||
- 240P 29.97 to 1080P 60 FPS with waifu2x and DAIN
|
||||
- The original video's copyright belongs to ASCII Media Works
|
||||
|
||||
Clip is from trailer of animated movie "千と千尋の神隠し". Copyright belongs to "株式会社スタジオジブリ (STUDIO GHIBLI INC.)". Will delete immediately if use of clip is in violation of copyright.
|
||||
### Standard Test Clip
|
||||
|
||||
### GIF Upscaling
|
||||
The following clip can be used to test if your setup works properly. This is also the standard clip used for running performance benchmarks.
|
||||
|
||||
This original input GIF is 160x120 in size. This image is downsized and accelerated to 20 FPS from its [original image](https://gfycat.com/craftyeasygoingankole-capoo-bug-cat).
|
||||
- [Standard Test Clip (240P)](https://files.k4yt3x.com/Resources/Videos/standard-test.mp4) 4.54 MiB
|
||||
- [waifu2x Upscaled Sample (1080P)](https://files.k4yt3x.com/Resources/Videos/standard-waifu2x.mp4) 4.54 MiB
|
||||
- [Ground Truth (1080P)](https://files.k4yt3x.com/Resources/Videos/standard-original.mp4) 22.2 MiB
|
||||
|
||||
\
|
||||
*Catfru original 160x120 GIF image*
|
||||
The original clip came from the anime "さくら荘のペットな彼女."\
|
||||
Copyright of this clip belongs to 株式会社アニプレックス.
|
||||
|
||||
Below is what it looks like after getting upscaled to 640x480 (4x) using Video2X.
|
||||
## ⚖️ License
|
||||
|
||||
\
|
||||
*Catfru 4x upscaled GIF*
|
||||
This project is licensed under [GNU AGPL version 3](https://www.gnu.org/licenses/agpl-3.0.txt).\
|
||||
Copyright (C) 2018-2024 K4YT3X and [contributors](https://github.com/k4yt3x/video2x/graphs/contributors).
|
||||
|
||||
### Image Upscaling
|
||||

|
||||
|
||||
\
|
||||
*Image upscaling example*
|
||||
This project includes or depends on these following projects:
|
||||
|
||||
[Original image](https://72915.tumblr.com/post/173793265673) from [nananicu@twitter](https://twitter.com/nananicu/status/994546266968281088), edited by K4YT3X.
|
||||
| Project | License |
|
||||
| ------------------------------------------------------------------------------------- | --------------- |
|
||||
| [bloc97/Anime4K](https://github.com/bloc97/Anime4K) | MIT License |
|
||||
| [FFmpeg/FFmpeg](https://www.ffmpeg.org/) | LGPLv2.1, GPLv2 |
|
||||
| [xinntao/Real-ESRGAN-ncnn-vulkan](https://github.com/xinntao/Real-ESRGAN-ncnn-vulkan) | MIT License |
|
||||
| [Tencent/ncnn](https://github.com/Tencent/ncnn) | BSD 3-Clause |
|
||||
|
||||
## All Demo Videos
|
||||
More licensing information can be found in the [NOTICE](NOTICE) file.
|
||||
|
||||
Below is a list of all the demo videos available.
|
||||
The list is sorted from new to old.
|
||||
## 🌺 Special Thanks
|
||||
|
||||
- **Bad Apple!!**
|
||||
- YouTube: https://youtu.be/-RKLdCELgkQ
|
||||
- Bilibili: https://www.bilibili.com/video/BV1s5411s7xV/
|
||||
- **The Pet Girl of Sakurasou 240P to 1080P 60FPS**
|
||||
- Original name: さくら荘のペットな彼女
|
||||
- YouTube: https://youtu.be/M0vDI1HH2_Y
|
||||
- Bilibili: https://www.bilibili.com/video/BV14k4y167KP/
|
||||
- **Spirited Away (360P to 4K)**
|
||||
- Original name: 千と千尋の神隠し
|
||||
- YouTube: https://youtu.be/mGEfasQl2Zo
|
||||
- Bilibili: https://www.bilibili.com/video/BV1V5411471i/
|
||||
Special thanks to the following individuals for their significant contributions to the project, listed in alphabetical order.
|
||||
|
||||
---
|
||||
|
||||
## Screenshots
|
||||
|
||||
### Video2X GUI
|
||||
|
||||
\
|
||||
*Video2X GUI Screenshot*
|
||||
|
||||
### Video2X CLI
|
||||
|
||||
\
|
||||
*Video2X CLI Screenshot*
|
||||
|
||||
---
|
||||
|
||||
### Sample Videos
|
||||
|
||||
If you can't find a video clip to begin with, or if you want to see a before-after comparison, we have prepared some sample clips for you. The quick start guide down below will also be based on the name of the sample clips.
|
||||
|
||||
\
|
||||
*Sample Upscale Videos*
|
||||
|
||||
- [Sample Video (240P) 4.54MB](https://files.k4yt3x.com/Resources/Videos/sample_input.mp4)
|
||||
- [Sample Video Upscaled (1080P) 4.54MB](https://files.k4yt3x.com/Resources/Videos/sample_output.mp4)
|
||||
- [Sample Video Original (1080P) 22.2MB](https://files.k4yt3x.com/Resources/Videos/sample_original.mp4)
|
||||
|
||||
Clip is from anime "さくら荘のペットな彼女". Copyright belongs to "株式会社アニプレックス (Aniplex Inc.)". Will delete immediately if use of clip is in violation of copyright.
|
||||
|
||||
---
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Prerequisites
|
||||
|
||||
Before running Video2X, you'll need to ensure you have installed the drivers' external dependencies such as GPU drivers.
|
||||
|
||||
- waifu2x-caffe
|
||||
- GPU mode: Nvidia graphics card driver
|
||||
- cuDNN mode: Nvidia CUDA and [cuDNN](https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#install-windows)
|
||||
- Other Drivers
|
||||
- GPU driver if you want to use GPU for processing
|
||||
|
||||
### Running Video2X (GUI)
|
||||
|
||||
The easiest way to run Video2X is to use the full build. Extract the full release zip file and you'll get these files.
|
||||
|
||||
\
|
||||
*Video2X release files*
|
||||
|
||||
Simply double click on video2x_gui.exe to launch the GUI.
|
||||
|
||||
\
|
||||
*Video2X GUI main tab*
|
||||
|
||||
Then, drag the videos you wish to upscale into the window and select the appropriate output path.
|
||||
|
||||
\
|
||||
*Drag and drop file into Video2X GUI*
|
||||
|
||||
Tweak the settings if you want to, then hit the start button at the bottom and the upscale will start. Now you'll just have to wait for it to complete.
|
||||
|
||||
\
|
||||
*Video2X started processing input files*
|
||||
|
||||
### Running Video2X (CLI)
|
||||
|
||||
#### Basic Upscale Example
|
||||
|
||||
This example command below uses `waifu2x-caffe` to enlarge the video `sample-input.mp4` two double its original size.
|
||||
|
||||
```shell
|
||||
python video2x.py -i sample-input.mp4 -o sample-output.mp4 -r 2 -d waifu2x_caffe
|
||||
```
|
||||
|
||||
#### Advanced Upscale Example
|
||||
|
||||
If you would like to tweak engine-specific settings, either specify the corresponding argument after `--`, or edit the corresponding field in the configuration file `video2x.yaml`. **Command line arguments will overwrite default values in the config file.**
|
||||
|
||||
This example below adds enables TTA for `waifu2x-caffe`.
|
||||
|
||||
```shell
|
||||
python video2x.py -i sample-input.mp4 -o sample-output.mp4 -r 2 -d waifu2x_caffe -- --tta 1
|
||||
```
|
||||
|
||||
To see a help page for driver-specific settings, use `-d` to select the driver and append `-- --help` as demonstrated below. This will print all driver-specific settings and descriptions.
|
||||
|
||||
```shell
|
||||
python video2x.py -d waifu2x_caffe -- --help
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Documentations
|
||||
|
||||
### [Video2X Wiki](https://github.com/k4yt3x/video2x/wiki)
|
||||
|
||||
You can find all detailed user-facing and developer-facing documentations in the [Video2X Wiki](https://github.com/k4yt3x/video2x/wiki). It covers everything from step-by-step instructions for beginners, to the code structure of this program for advanced users and developers. If this README page doesn't answer all your questions, the wiki page is where you should head to.
|
||||
|
||||
### [Step-By-Step Tutorial](https://github.com/k4yt3x/video2x/wiki/Step-By-Step-Tutorial)
|
||||
|
||||
For those who want a detailed walk-through of how to use Video2X, you can head to the [Step-By-Step Tutorial](https://github.com/k4yt3x/video2x/wiki/Step-By-Step-Tutorial) wiki page. It includes almost every step you need to perform in order to enlarge your first video.
|
||||
|
||||
### [Run From Source Code](https://github.com/k4yt3x/video2x/wiki/Run-From-Source-Code)
|
||||
|
||||
This wiki page contains all instructions for how you can run Video2X directly from Python source code.
|
||||
|
||||
### [Drivers](https://github.com/k4yt3x/video2x/wiki/Drivers)
|
||||
|
||||
Go to the [Drivers](https://github.com/k4yt3x/video2x/wiki/Drivers) wiki page if you want to see a detailed description on the different types of drivers implemented by Video2X. This wiki page contains detailed difference between different drivers, and how to download and set each of them up for Video2X.
|
||||
|
||||
### [Q&A](https://github.com/k4yt3x/video2x/wiki/Q&A)
|
||||
|
||||
If you have any questions, first try visiting our [Q&A](https://github.com/k4yt3x/video2x/wiki/Q&A) page to see if your question is answered there. If not, open an issue and we will respond to your questions ASAP. Alternatively, you can also join our [Telegram discussion group](https://t.me/video2x) and ask your questions there.
|
||||
|
||||
### [History](https://github.com/k4yt3x/video2x/wiki/History)
|
||||
|
||||
Are you interested in how the idea of Video2X was born? Do you want to know the stories and histories behind Video2X's development? Come into this page.
|
||||
|
||||
---
|
||||
|
||||
# Full Usage
|
||||
|
||||
## Video2X Options
|
||||
|
||||
### -h, --help
|
||||
show this help message and exit
|
||||
|
||||
### -i INPUT, --input INPUT
|
||||
source video file/directory
|
||||
|
||||
### -o OUTPUT, --output OUTPUT
|
||||
output video file/directory
|
||||
|
||||
### -c CONFIG, --config CONFIG
|
||||
video2x config file path
|
||||
|
||||
### -v, --version
|
||||
display version, lawful information and exit
|
||||
|
||||
## Upscaling Options
|
||||
|
||||
### -d DRIVER, --driver DRIVER
|
||||
upscaling driver (default: waifu2x_caffe)
|
||||
|
||||
Available options are:
|
||||
|
||||
- waifu2x_caffe
|
||||
- waifu2x_converter_cpp
|
||||
- waifu2x_ncnn_vulkan
|
||||
- srmd_ncnn_vulkan
|
||||
- anime4kcpp
|
||||
|
||||
### -r RATIO, --ratio RATIO
|
||||
scaling ratio
|
||||
|
||||
### -p PROCESSES, --processes PROCESSES
|
||||
number of processes to use for upscaling (default: 1)
|
||||
|
||||
### --preserve_frames
|
||||
preserve extracted and upscaled frames (default: False)
|
||||
|
||||
---
|
||||
|
||||
## License
|
||||
|
||||
Licensed under the GNU General Public License Version 3 (GNU GPL v3)
|
||||
https://www.gnu.org/licenses/gpl-3.0.txt
|
||||
|
||||

|
||||
|
||||
(C) 2018-2020 K4YT3X
|
||||
|
||||
## Credits
|
||||
|
||||
This project relies on the following software and projects.
|
||||
|
||||
- [FFmpeg](https://www.ffmpeg.org/)
|
||||
- [waifu2x-caffe](https://github.com/lltcggie/waifu2x-caffe)
|
||||
- [waifu2x-converter-cpp](https://github.com/DeadSix27/waifu2x-converter-cpp)
|
||||
- [waifu2x-ncnn-vulkan](https://github.com/nihui/waifu2x-ncnn-vulkan)
|
||||
- [srmd-ncnn-vulkan](https://github.com/nihui/srmd-ncnn-vulkan)
|
||||
- [Anime4K](https://github.com/bloc97/Anime4K)
|
||||
- [Anime4KCPP](https://github.com/TianZerL/Anime4KCPP)
|
||||
- [Gifski](https://github.com/ImageOptim/gifski)
|
||||
|
||||
## Special Thanks
|
||||
|
||||
Appreciations given to the following code contributors:
|
||||
|
||||
- @BrianPetkovsek
|
||||
- @SAT3LL
|
||||
|
||||
## Related Projects
|
||||
|
||||
- [Dandere2x](https://github.com/CardinalPanda/dandere2x): A lossy video upscaler also built around `waifu2x`, but with video compression techniques to shorten the time needed to process a video.
|
||||
- [Waifu2x-Extension-GUI](https://github.com/AaronFeng753/Waifu2x-Extension-GUI): A similar project that focuses more and only on building a better graphical user interface. It is built using C++ and Qt5, and currently only supports the Windows platform.
|
||||
- [@ArchieMeng](https://github.com/archiemeng)
|
||||
- [@BrianPetkovsek](https://github.com/BrianPetkovsek)
|
||||
- [@ddouglas87](https://github.com/ddouglas87)
|
||||
- [@lhanjian](https://github.com/lhanjian)
|
||||
- [@nihui](https://github.com/nihui)
|
||||
- [@sat3ll](https://github.com/sat3ll)
|
||||
|
||||
14
SECURITY.md
Normal file
14
SECURITY.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Security Policy
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
- **Email**: Send vulnerability reports via email to [github@k4yt3x.com](mailto:github@k4yt3x.com).
|
||||
- **Details**: Include description, impact, reproduction steps, and proof-of-concept if applicable.
|
||||
- **Confidentiality**: Do not disclose vulnerabilities publicly until a fix is released.
|
||||
|
||||
## Response Process
|
||||
|
||||
1. **Acknowledge**: We will acknowledge receipt within 48 hours.
|
||||
2. **Assess**: Initial assessment and response within 7 days.
|
||||
3. **Fix**: Develop and release a patch promptly.
|
||||
4. **Credit**: Acknowledge contributors unless anonymity is requested.
|
||||
20
_config.yml
20
_config.yml
@@ -1,20 +0,0 @@
|
||||
# site settings
|
||||
locale: "en-US"
|
||||
title: "Video2X"
|
||||
title_separator: "-"
|
||||
subtitle: "Machine learning video/GIF/image upscaling"
|
||||
name: "K4YT3X"
|
||||
description: "An amazing website."
|
||||
url: "https://video2x.org"
|
||||
repository: "k4yt3x/video2x"
|
||||
|
||||
# set rendering style to be GitHub flavor
|
||||
kramdown:
|
||||
input: GFM
|
||||
|
||||
# use Minimal Mistakes theme
|
||||
remote_theme: mmistakes/minimal-mistakes
|
||||
|
||||
# plugin required for the Minimal Mistakes theme
|
||||
plugins:
|
||||
- jekyll-include-cache
|
||||
1
docs/book/.gitignore
vendored
Normal file
1
docs/book/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
book
|
||||
11
docs/book/book.toml
Normal file
11
docs/book/book.toml
Normal file
@@ -0,0 +1,11 @@
|
||||
[book]
|
||||
authors = ["k4yt3x"]
|
||||
language = "en"
|
||||
multilingual = false
|
||||
title = "Video2X Documentation"
|
||||
|
||||
[output.html]
|
||||
default-theme = "ayu"
|
||||
preferred-dark-theme = "ayu"
|
||||
git-repository-url = "https://github.com/k4yt3x/video2x"
|
||||
edit-url-template = "https://github.com/k4yt3x/video2x/edit/master/docs/book/{path}"
|
||||
13
docs/book/src/README.md
Normal file
13
docs/book/src/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Introduction
|
||||
|
||||
<p align="center">
|
||||
<img src="https://github.com/user-attachments/assets/5cd63373-e806-474f-94ec-6e04963bf90f"/>
|
||||
</p>
|
||||
|
||||
This site hosts the documentation for the Video2X project, a machine learning-based lossless video super-resolution and frame interpolation framework.
|
||||
|
||||
The project's homepage is located on GitHub at: [https://github.com/k4yt3x/video2x](https://github.com/k4yt3x/video2x).
|
||||
|
||||
If you have any questions, suggestions, or found any issues in the documentation, please [open an issue](https://github.com/k4yt3x/video2x/issues/new/choose) on GitHub.
|
||||
|
||||
> 🚧 Some pages are still under construction.
|
||||
35
docs/book/src/SUMMARY.md
Normal file
35
docs/book/src/SUMMARY.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# Summary
|
||||
|
||||
[Introduction](README.md)
|
||||
|
||||
# Building
|
||||
|
||||
- [Building](building/README.md)
|
||||
- [Windows](building/windows.md)
|
||||
- [Windows (Qt6)](building/windows-qt6.md)
|
||||
- [Linux](building/linux.md)
|
||||
|
||||
# Installing
|
||||
|
||||
- [Installing](installing/README.md)
|
||||
- [Windows (Command Line)](installing/windows.md)
|
||||
- [Windows (Qt6 GUI)](installing/windows-qt6.md)
|
||||
- [Linux](installing/linux.md)
|
||||
|
||||
# Running
|
||||
|
||||
- [Running](running/README.md)
|
||||
- [Desktop](running/desktop.md)]
|
||||
- [Command Line](running/command-line.md)
|
||||
- [Container](running/container.md)
|
||||
|
||||
# Developing
|
||||
|
||||
- [Developing](developing/README.md)
|
||||
- [Architecture](developing/architecture.md)
|
||||
- [libvideo2x](developing/libvideo2x.md)
|
||||
|
||||
# Other
|
||||
|
||||
- [Other](other/README.md)
|
||||
- [History](other/history.md)
|
||||
3
docs/book/src/building/README.md
Normal file
3
docs/book/src/building/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Building
|
||||
|
||||
Instructions for building the project.
|
||||
50
docs/book/src/building/linux.md
Normal file
50
docs/book/src/building/linux.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# Linux
|
||||
|
||||
Instructions for building this project on Linux.
|
||||
|
||||
## Arch Linux
|
||||
|
||||
Arch users can build the latest version of the project from the AUR package `video2x-git`. The project's repository also contains another PKGBUILD example at `packaging/arch/PKGBUILD`.
|
||||
|
||||
```bash
|
||||
# Build only
|
||||
git clone https://aur.archlinux.org/video2x-git.git
|
||||
cd video2x-git
|
||||
makepkg -s
|
||||
```
|
||||
|
||||
To build manually from the source, follow the instructions below.
|
||||
|
||||
```bash
|
||||
# Install build and runtime dependencies
|
||||
# See the PKGBUILD file for the list of up-to-date dependencies
|
||||
pacman -Sy ffmpeg ncnn vulkan-driver opencv spdlog boost-libs
|
||||
pacman -Sy git cmake make clang pkgconf vulkan-headers openmp boost
|
||||
|
||||
# Clone the repository
|
||||
git clone --recurse-submodules https://github.com/k4yt3x/video2x.git
|
||||
cd video2x
|
||||
|
||||
# Build the project
|
||||
make build
|
||||
```
|
||||
|
||||
The built binaries will be located in the `build` directory.
|
||||
|
||||
## Ubuntu
|
||||
|
||||
Ubuntu users can use the `Makefile` to build the project automatically. The `ubuntu2404` and `ubuntu2204` targets are available for Ubuntu 24.04 and 22.04, respectively. `make` will automatically install the required dependencies, build the project, and package it into a `.deb` package file. It is recommended to perform the build in a container to ensure the environment's consistency and to avoid leaving extra build packages on your system.
|
||||
|
||||
```bash
|
||||
# make needs to be installed manually
|
||||
sudo apt-get update && sudo apt-get install make
|
||||
|
||||
# Clone the repository
|
||||
git clone --recurse-submodules https://github.com/k4yt3x/video2x.git
|
||||
cd video2x
|
||||
|
||||
# Build the project
|
||||
make ubuntu2404
|
||||
```
|
||||
|
||||
The built `.deb` package will be located under the current directory.
|
||||
55
docs/book/src/building/windows-qt6.md
Normal file
55
docs/book/src/building/windows-qt6.md
Normal file
@@ -0,0 +1,55 @@
|
||||
# Windows (Qt6)
|
||||
|
||||
Instructions for building the Qt6 GUI of this project on Windows.
|
||||
|
||||
## 1. Prerequisites
|
||||
|
||||
These dependencies must be installed before building the project. This tutorial assumes that Qt6 has been installed to the default location (`C:\Qt`).
|
||||
|
||||
- [Visual Studio 2022](https://visualstudio.microsoft.com/vs/)
|
||||
- Workload: Desktop development with C++
|
||||
- [winget-cli](https://github.com/microsoft/winget-cli)
|
||||
- [Qt6](https://www.qt.io/download)
|
||||
- Component: Qt6 with MSVC 2022 64-bit
|
||||
- Component: Qt Creator
|
||||
|
||||
## 1. Clone the Repository
|
||||
|
||||
```bash
|
||||
# Install Git if not already installed
|
||||
winget install -e --id=Git.Git
|
||||
|
||||
# Clone the repository
|
||||
git clone --recurse-submodules https://github.com/k4yt3x/video2x-qt6.git
|
||||
cd video2x-qt6
|
||||
```
|
||||
|
||||
## 2. Install Dependencies
|
||||
|
||||
You need to have the `libvideo2x` shared library built before building the Qt6 GUI. Put the built binaries in `third_party/libvideo2x-shared`.
|
||||
|
||||
```bash
|
||||
# Versions of manually installed dependencies
|
||||
$ffmpegVersion = "7.1"
|
||||
|
||||
# Download and extract FFmpeg
|
||||
curl -Lo ffmpeg-shared.zip "https://github.com/GyanD/codexffmpeg/releases/download/$ffmpegVersion/ffmpeg-$ffmpegVersion-full_build-shared.zip"
|
||||
Expand-Archive -Path ffmpeg-shared.zip -DestinationPath third_party
|
||||
Rename-Item -Path "third_party/ffmpeg-$ffmpegVersion-full_build-shared" -NewName ffmpeg-shared
|
||||
```
|
||||
|
||||
## 3. Build the Project
|
||||
|
||||
1. Open the `CMakeLists.txt` file in Qt Creator as the project file.
|
||||
2. Click on the hammer icon at the bottom left of the window to build the project.
|
||||
3. Built binaries will be located in the `build` directory.
|
||||
|
||||
After the build finishes, you will need to copy the Qt6 DLLs and other dependencies to the build directory to run the application. Before you run the following commands, remove everything in the release directory except for `video2x-qt6.exe` and the `.qm` files as they are not required for running the application. Then, run the following command to copy the Qt6 runtime DLLs:
|
||||
|
||||
```bash
|
||||
C:\Qt\6.8.0\msvc2022_64\bin\windeployqt.exe --release --compiler-runtime .\build\Desktop_Qt_6_8_0_MSVC2022_64bit-Release\video2x-qt6.exe
|
||||
```
|
||||
|
||||
You will also need to copy the `libvideo2x` shared library to the build directory. Copy all files under `third_party/libvideo2x-shared` to the release directory except for `include`, `libvideo2x.lib`, and `video2x.exe`.
|
||||
|
||||
Now you should be able to run the application by double-clicking on `video2x-qt6.exe`.
|
||||
56
docs/book/src/building/windows.md
Normal file
56
docs/book/src/building/windows.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# Windows
|
||||
|
||||
Instructions for building this project on Windows.
|
||||
|
||||
## 1. Prerequisites
|
||||
|
||||
The following tools must be installed manually:
|
||||
|
||||
- [Visual Studio 2022](https://visualstudio.microsoft.com/vs/)
|
||||
- Workload: Desktop development with C++
|
||||
- [winget-cli](https://github.com/microsoft/winget-cli)
|
||||
|
||||
## 2. Clone the Repository
|
||||
|
||||
```bash
|
||||
# Install Git if not already installed
|
||||
winget install -e --id=Git.Git
|
||||
|
||||
# Clone the repository
|
||||
git clone --recurse-submodules https://github.com/k4yt3x/video2x.git
|
||||
cd video2x
|
||||
```
|
||||
|
||||
## 3. Install Dependencies
|
||||
|
||||
```bash
|
||||
# Install CMake
|
||||
winget install -e --id=Kitware.CMake
|
||||
|
||||
# Install Vulkan SDK
|
||||
winget install -e --id=KhronosGroup.VulkanSDK
|
||||
|
||||
# Versions of manually installed dependencies
|
||||
$ffmpegVersion = "7.1"
|
||||
$ncnnVersion = "20240820"
|
||||
|
||||
# Download and extract FFmpeg
|
||||
curl -Lo ffmpeg-shared.zip "https://github.com/GyanD/codexffmpeg/releases/download/$ffmpegVersion/ffmpeg-$ffmpegVersion-full_build-shared.zip"
|
||||
Expand-Archive -Path ffmpeg-shared.zip -DestinationPath third_party
|
||||
Rename-Item -Path "third_party/ffmpeg-$ffmpegVersion-full_build-shared" -NewName ffmpeg-shared
|
||||
|
||||
# Download and extract ncnn
|
||||
curl -Lo ncnn-shared.zip "https://github.com/Tencent/ncnn/releases/download/$ncnnVersion/ncnn-$ncnnVersion-windows-vs2022-shared.zip"
|
||||
Expand-Archive -Path ncnn-shared.zip -DestinationPath third_party
|
||||
Rename-Item -Path "third_party/ncnn-$ncnnVersion-windows-vs2022-shared" -NewName ncnn-shared
|
||||
```
|
||||
|
||||
## 4. Build the Project
|
||||
|
||||
```bash
|
||||
cmake -S . -B build -DUSE_SYSTEM_NCNN=OFF -DUSE_SYSTEM_SPDLOG=OFF -DUSE_SYSTEM_BOOST=OFF `
|
||||
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=build/libvideo2x-shared
|
||||
cmake --build build --config Release --parallel --target install
|
||||
```
|
||||
|
||||
The built binaries will be located in `build/libvideo2x-shared`.
|
||||
3
docs/book/src/developing/README.md
Normal file
3
docs/book/src/developing/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Developing
|
||||
|
||||
Development-related instructions and guidelines for this project.
|
||||
38
docs/book/src/developing/architecture.md
Normal file
38
docs/book/src/developing/architecture.md
Normal file
@@ -0,0 +1,38 @@
|
||||
# Architecture
|
||||
|
||||
The basic working principals of Video2X and its historical architectures.
|
||||
|
||||
## Video2X <=4.0.0 (Legacy)
|
||||
|
||||
Below is the earliest architecture of Video2X. It extracts all of the frames from the video using FFmpeg, processes all frames, and stores them into a folder before running FFmpeg again to convert all of the frames back into a video. The drawbacks of this approach are apparent:
|
||||
|
||||
- Storing all frames of the video on disk twice requires a huge amount of storage, often hundreds of gigabytes.
|
||||
- A lot of disk I/O (reading from/writing to disks) operations occur, which is inefficient. Each step stores its processing results to disk, and the next step has to read them from disk again.
|
||||
|
||||
\
|
||||
_Video2X architecture before version 5.0.0_
|
||||
|
||||
## Video2X 5.0.0 (Legacy)
|
||||
|
||||
Video2X 5.0.0's architecture was designed to address the inefficient disk I/O issues. This version uses frame serving and streamlines the process. All stages are started simultaneously, and frames are passed between stages through stdin/stdout pipes. However, this architecture also has several issues:
|
||||
|
||||
- At least two instances of FFmpeg will be started, three in the case of Anime4K.
|
||||
- Passing frames through stdin/stdout is unstable. If frame sizes are incorrect, FFmpeg will hang waiting for the next frame.
|
||||
- The frames entering and leaving each stage must be RGB24, even if they don't need to be. For instance, if the upscaler used is Anime4K, yuv420p is acceptable, but the frame is first converted by the decoder to RGB24, then converted back into YUV colorspace for libplacebo.
|
||||
|
||||
\
|
||||
_Video2X 5.x.x architecture_
|
||||
|
||||
## Video2X 6.0.0 (Current)
|
||||
|
||||
Video2X 6.0.0 (Current)
|
||||
|
||||
The newest version of Video2X's architecture addresses the issues of the previous architecture while improving efficiency.
|
||||
|
||||
- Frames are only decoded once and encoded once with FFmpeg's libavformat.
|
||||
- Frames are passed as `AVFrame` structs. Their pixel formats are only converted when needed.
|
||||
- Frames always stay in RAM, avoiding bottlenecks from disk I/O and pipes.
|
||||
- Frames always stay in the hardware (GPU) unless they need to be downloaded to be processed by software (partially implemented).
|
||||
|
||||
\
|
||||
_Video2X 6.0.0 architecture_
|
||||
5
docs/book/src/developing/libvideo2x.md
Normal file
5
docs/book/src/developing/libvideo2x.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# libvideo2x
|
||||
|
||||
Instructions for using libvideo2x's C API in your own projects.
|
||||
|
||||
libvideo2x's API is still highly volatile. This document will be updated as the API stabilizes.
|
||||
3
docs/book/src/installing/README.md
Normal file
3
docs/book/src/installing/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Installing
|
||||
|
||||
Instructions for installing this project.
|
||||
19
docs/book/src/installing/linux.md
Normal file
19
docs/book/src/installing/linux.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# Linux
|
||||
|
||||
Instructions for installing this project on Linux systems.
|
||||
|
||||
## Arch Linux
|
||||
|
||||
Arch users can install the project from the AUR.
|
||||
|
||||
```bash
|
||||
yay -S video2x-git
|
||||
```
|
||||
|
||||
## Ubuntu
|
||||
|
||||
Ubuntu users can download the `.deb` packages from the [releases page](https://github.com/k4yt3x/video2x/releases/latest). Install the package with the APT package manager:
|
||||
|
||||
```bash
|
||||
apt-get install ./video2x-linux-ubuntu2404-amd64.deb
|
||||
```
|
||||
7
docs/book/src/installing/windows-qt6.md
Normal file
7
docs/book/src/installing/windows-qt6.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# Windows (Qt6)
|
||||
|
||||
You can download the installer for Video2X Qt6 from the [releases page](https://github.com/k4yt3x/video2x/releases/latest). The installer file's name is `video2x-qt6-windows-amd64-installer.exe`.
|
||||
|
||||
Download then double-click the installer to start the installation process. The installer will guide you through the installation process. You can choose the installation directory and whether to create a desktop shortcut during the installation.
|
||||
|
||||
After the installation is complete, you can start Video2X Qt6 by double-clicking the desktop shortcut.
|
||||
12
docs/book/src/installing/windows.md
Normal file
12
docs/book/src/installing/windows.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# Windows
|
||||
|
||||
You can download the latest version of the Windows build from the [releases page](https://github.com/k4yt3x/video2x/releases/latest). Here are the steps to download and install the pre-built binaries to `%LOCALAPPDATA%\Programs`.
|
||||
|
||||
```bash
|
||||
$latestTag = (Invoke-RestMethod -Uri https://api.github.com/repos/k4yt3x/video2x/releases/latest).tag_name
|
||||
curl -LO "https://github.com/k4yt3x/video2x/releases/download/$latestTag/video2x-windows-amd64.zip"
|
||||
New-Item -Path "$env:LOCALAPPDATA\Programs\video2x" -ItemType Directory -Force
|
||||
Expand-Archive -Path .\video2x-windows-amd64.zip -DestinationPath "$env:LOCALAPPDATA\Programs\video2x"
|
||||
```
|
||||
|
||||
You can then add `%LOCALAPPDATA%\Programs\video2x` to your `PATH` environment variable to run `video2x` from the command line.
|
||||
1
docs/book/src/other/README.md
Normal file
1
docs/book/src/other/README.md
Normal file
@@ -0,0 +1 @@
|
||||
# Other
|
||||
47
docs/book/src/other/history.md
Normal file
47
docs/book/src/other/history.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# History
|
||||
|
||||
Video2X came a long way from its original concepts to what it has become today. It started as a simple concept of "waifu2x can upscale images, and a video is just a sequence of images". Then, a PoC was made which can barely upscale a single video with waifu2x-caffe and with fixed settings. Now, Video2X has become a comprehensive and customizable video upscaling tool with a nice GUI and a community around it. This article documents in detail how Video2X's concept was born, and what happened during its development.
|
||||
|
||||
## Origin
|
||||
|
||||
The story started with me watching Bad Apple!!'s PV in early 2017. The original PV has a size of `512x384`, which is quite small and thus, quite blurry.
|
||||
|
||||
\
|
||||
_A screenshot of the original Bad Apple!! PV_
|
||||
|
||||
Around the same time, I was introduced to this amazing project named waifu2x, which upscales (mostly anime) images using machine learning. This created a spark in my head: **if images can be upscaled, aren't videos just a sequence of images?** Then, I started making a proof-of-concept by manually extracting all frames from the original PV using FFmpeg, putting them through waifu2x-caffe, and assembling the frames back into a video again using FFmpeg. This was how the ["4K BadApple!! waifu2x Lossless Upscaled"](https://www.youtube.com/watch?v=FiX7ygnbAHw) video was created.
|
||||
|
||||
\
|
||||
_Thumbnail of the "4K BadApple!! waifu2x Lossless Upscaled" video_
|
||||
|
||||
After this experiment completed successfully, I started thinking about making an automation pipeline, where this manual process will be streamlined, and each of the steps will be handled automatically.
|
||||
|
||||
## Proof-of-Concept
|
||||
|
||||
When I signed up for Hack the Valley II in late 2017, I didn't know what I was going to make during that hackathon. Our team sat down and thought about what to make for around an hour, but no one came up with anything interesting. All of a sudden, I remembered, "Hey, isn't there a PoC I wanted to make? How about making that our hackathon project?" I then temporarily name the project Video2X, following waifu2x's scheme. Video2X was then born.
|
||||
|
||||
I originally wanted to write Video2X for Linux, but it's too complicated to get the original [nagadomi/waifu2x](https://github.com/nagadomi/waifu2x)'s version of waifu2x running, so waifu2x-caffe written for Windows was used to save time. This is why the first version of Video2X only supports Windows, and can only use waifu2x-caffe as its upscaling driver.
|
||||
|
||||
\
|
||||
_video2x.py file in the first version of Video2X_
|
||||
|
||||
At the end of the hackathon, we managed to make a [sample comparison video](https://www.youtube.com/watch?v=mGEfasQl2Zo) based on [Spirited Away's official trailer](https://www.youtube.com/watch?v=ByXuk9QqQkk). This video was then published on YouTube and is the same demo video showcased in Video2X's repository. The original link was at [https://www.youtube.com/watch?v=PG94iPoeoZk](https://www.youtube.com/watch?v=PG94iPoeoZk), but it has been moved lately to another account under K4YT3X's name.
|
||||
|
||||
\
|
||||
_Upscale Comparison Demonstration_
|
||||
|
||||
When we demoed this project, there wasn't so much interest expressed by the judges. We were, however, suggested to pitch our project to Adobe. That didn't end up going anywhere, either. Like most of the other projects in a hackathon, this project didn't win any awards, and just almost vanished after the hackathon was over.
|
||||
|
||||
<!--\-->
|
||||
|
||||
_[Image Removed]_\
|
||||
_Our team in Hack the Valley II. You can see Video2X's demo video on the computer screens. Image blurred for privacy._
|
||||
|
||||
## Video2X 2.0
|
||||
|
||||
Roughly three months after the hackathon, I came back to this project and decided it was worth continuing. Although not many people in the hackathon found this project interesting or useful, I saw value in this project. This was further reinforced by the stars I've received in the project's repository.
|
||||
|
||||
I continued working on enhancing Video2X and fixing bugs, and Video2X 2.0 was released. The original version of Video2X was only made as a proof-of-concept for the hackathon. A lot of the usability and convenience aspects are ignored in exchange for development speed. The 2.0 version addressed a lot of these issues and made Video2X usable for regular users. Video2X has then also been converted from a hackathon project to a personal open-source project.
|
||||
|
||||
\
|
||||
_Screenshot of Video2X 2.0_
|
||||
3
docs/book/src/running/README.md
Normal file
3
docs/book/src/running/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Running
|
||||
|
||||
Instructions for running and using this project.
|
||||
49
docs/book/src/running/command-line.md
Normal file
49
docs/book/src/running/command-line.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# Command Line
|
||||
|
||||
Instructions for running Video2X from the command line.
|
||||
|
||||
This page does not cover all the options available. For help with more options available, run Video2X with the `--help` argument.
|
||||
|
||||
## Basics
|
||||
|
||||
Use the following command to upscale a video by 4x with RealESRGAN:
|
||||
|
||||
```bash
|
||||
video2x -i input.mp4 -o output.mp4 -f realesrgan -r 4 -m realesr-animevideov3
|
||||
```
|
||||
|
||||
Use the following command to upscale a video to with libplacebo + Anime4Kv4 Mode A+A:
|
||||
|
||||
```bash
|
||||
video2x -i input.mp4 -o output.mp4 -f libplacebo -s anime4k-v4-a+a -w 3840 -h 2160
|
||||
```
|
||||
|
||||
## Advanced
|
||||
|
||||
It is possible to specify custom MPV-compatible GLSL shader files with the `--shader, -s` argument:
|
||||
|
||||
```bash
|
||||
video2x -i input.mp4 -o output.mp4 -f libplacebo -s path/to/custom/shader.glsl -w 3840 -h 2160
|
||||
```
|
||||
|
||||
List the available GPUs with `--list-gpus, -l`:
|
||||
|
||||
```bash
|
||||
$video2x --list-gpus
|
||||
0. NVIDIA RTX A6000
|
||||
Type: Discrete GPU
|
||||
Vulkan API Version: 1.3.289
|
||||
Driver Version: 565.228.64
|
||||
```
|
||||
|
||||
Select which GPU to use with the `--gpu, -g` argument:
|
||||
|
||||
```bash
|
||||
video2x -i input.mp4 -o output.mp4 -f realesrgan -r 4 -m realesr-animevideov3 -g 1
|
||||
```
|
||||
|
||||
Specify arbitrary extra FFmepg encoder options with the `--extra-encoder-options, -e` argument:
|
||||
|
||||
```bash
|
||||
video2x -i input.mkv -o output.mkv -f realesrgan -m realesrgan-plus -r 4 -c libx264rgb -e crf=17 -e preset=veryslow -e tune=film
|
||||
```
|
||||
57
docs/book/src/running/container.md
Normal file
57
docs/book/src/running/container.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# Container
|
||||
|
||||
Instructions for running the Video2X container.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Docker, Podman, or another OCI-compatible runtime
|
||||
- A GPU that supports the Vulkan API
|
||||
- Check the [Vulkan Hardware Database](https://vulkan.gpuinfo.org/) to see if your GPU supports Vulkan
|
||||
|
||||
## Upscaling a Video
|
||||
|
||||
This section documents how to upscale a video. Replace `$TAG` with an appropriate container tag. A list of available tags can be found [here](https://github.com/k4yt3x/video2x/pkgs/container/video2x) (e.g., `6.1.1`).
|
||||
|
||||
### AMD GPUs
|
||||
|
||||
Make sure your host has the proper GPU and Vulkan libraries and drivers, then use the following command to launch the container:
|
||||
|
||||
```shell
|
||||
docker run --gpus all -it --rm -v $PWD/data:/host ghcr.io/k4yt3x/video2x:$TAG -i standard-test.mp4 -o output.mp4 -f realesrgan -r 4 -m realesr-animevideov3
|
||||
```
|
||||
|
||||
### NVIDIA GPUs
|
||||
|
||||
In addition to installing the proper drivers on your host, `nvidia-docker2` (NVIDIA Container Toolkit) must also be installed on the host to use NVIDIA GPUs in containers. Below are instructions for how to install it on some popular Linux distributions:
|
||||
|
||||
- Debian/Ubuntu
|
||||
- Follow the [official guide](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit) to install `nvidia-docker2`
|
||||
- Arch/Manjaro
|
||||
- Install `nvidia-container-toolkit` from the AUR
|
||||
- E.g., `yay -S nvidia-container-toolkit`
|
||||
|
||||
Once all the prerequisites are installed, you can launch the container:
|
||||
|
||||
```shell
|
||||
docker run --gpus all -it --rm -v $PWD:/host ghcr.io/k4yt3x/video2x:$TAG -i standard-test.mp4 -o output.mp4 -f realesrgan -r 4 -m realesr-animevideov3
|
||||
```
|
||||
|
||||
Depending on the version of your nvidia-docker and some other mysterious factors, you can also try setting `no-cgroups = true` in `/etc/nvidia-container-runtime/config.toml` and adding the NVIDIA devices into the container if the command above doesn't work:
|
||||
|
||||
```shell
|
||||
docker run --gpus all --device=/dev/nvidia0 --device=/dev/nvidiactl --runtime nvidia -it --rm -v $PWD:/host ghcr.io/k4yt3x/video2x:$TAG -i standard-test.mp4 -o output.mp4 -f realesrgan -r 4 -m realesr-animevideov3
|
||||
```
|
||||
|
||||
If you are still getting a `vkEnumeratePhysicalDevices failed -3` error at this point, try adding the `--privileged` flag to give the container the same level of permissions as the host:
|
||||
|
||||
```shell
|
||||
docker run --gpus all --privileged -it --rm -v $PWD:/host ghcr.io/k4yt3x/video2x:$TAG -i standard-test.mp4 -o output.mp4 -f realesrgan -r 4 -m realesr-animevideov3
|
||||
```
|
||||
|
||||
### Intel GPUs
|
||||
|
||||
Similar to NVIDIA GPUs, you can add `--gpus all` or `--device /dev/dri` to pass the GPU into the container. Adding `--privileged` might help with the performance (thanks @NukeninDark).
|
||||
|
||||
```shell
|
||||
docker run --gpus all --privileged -it --rm -v $PWD:/host ghcr.io/k4yt3x/video2x:$TAG -i standard-test.mp4 -o output.mp4 -f realesrgan -r 4 -m realesr-animevideov3
|
||||
```
|
||||
3
docs/book/src/running/desktop.md
Normal file
3
docs/book/src/running/desktop.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Desktop
|
||||
|
||||
TODO.
|
||||
19
include/libvideo2x/avutils.h
Normal file
19
include/libvideo2x/avutils.h
Normal file
@@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
|
||||
extern "C" {
|
||||
#include <libavformat/avformat.h>
|
||||
}
|
||||
|
||||
AVRational get_video_frame_rate(AVFormatContext *ifmt_ctx, int in_vstream_idx);
|
||||
|
||||
int64_t get_video_frame_count(AVFormatContext *ifmt_ctx, int in_vstream_idx);
|
||||
|
||||
AVPixelFormat get_encoder_default_pix_fmt(const AVCodec *encoder, AVPixelFormat target_pix_fmt);
|
||||
|
||||
float get_frame_diff(AVFrame *frame1, AVFrame *frame2);
|
||||
|
||||
void av_bufferref_deleter(AVBufferRef *bufferref);
|
||||
|
||||
void av_frame_deleter(AVFrame *frame);
|
||||
|
||||
void av_packet_deleter(AVPacket *packet);
|
||||
17
include/libvideo2x/conversions.h
Normal file
17
include/libvideo2x/conversions.h
Normal file
@@ -0,0 +1,17 @@
|
||||
#pragma once
|
||||
|
||||
extern "C" {
|
||||
#include <libavutil/frame.h>
|
||||
#include <libswscale/swscale.h>
|
||||
}
|
||||
|
||||
#include <mat.h>
|
||||
|
||||
// Convert AVFrame to another pixel format
|
||||
AVFrame *convert_avframe_pix_fmt(AVFrame *src_frame, AVPixelFormat pix_fmt);
|
||||
|
||||
// Convert AVFrame to ncnn::Mat
|
||||
ncnn::Mat avframe_to_ncnn_mat(AVFrame *frame);
|
||||
|
||||
// Convert ncnn::Mat to AVFrame
|
||||
AVFrame *ncnn_mat_to_avframe(const ncnn::Mat &mat, AVPixelFormat pix_fmt);
|
||||
28
include/libvideo2x/decoder.h
Normal file
28
include/libvideo2x/decoder.h
Normal file
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#include <filesystem>
|
||||
|
||||
extern "C" {
|
||||
#include <libavcodec/avcodec.h>
|
||||
#include <libavformat/avformat.h>
|
||||
}
|
||||
|
||||
class Decoder {
|
||||
public:
|
||||
Decoder();
|
||||
~Decoder();
|
||||
|
||||
int init(AVHWDeviceType hw_type, AVBufferRef *hw_ctx, const std::filesystem::path &in_fpath);
|
||||
|
||||
AVFormatContext *get_format_context() const;
|
||||
AVCodecContext *get_codec_context() const;
|
||||
int get_video_stream_index() const;
|
||||
|
||||
private:
|
||||
static AVPixelFormat hw_pix_fmt_;
|
||||
static AVPixelFormat get_hw_format(AVCodecContext *ctx, const AVPixelFormat *pix_fmts);
|
||||
|
||||
AVFormatContext *fmt_ctx_;
|
||||
AVCodecContext *dec_ctx_;
|
||||
int in_vstream_idx_;
|
||||
};
|
||||
78
include/libvideo2x/encoder.h
Normal file
78
include/libvideo2x/encoder.h
Normal file
@@ -0,0 +1,78 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <filesystem>
|
||||
#include <vector>
|
||||
|
||||
extern "C" {
|
||||
#include <libavcodec/avcodec.h>
|
||||
#include <libavformat/avformat.h>
|
||||
#include <libavutil/pixdesc.h>
|
||||
}
|
||||
|
||||
#include "fsutils.h"
|
||||
|
||||
// Encoder configurations
|
||||
struct EncoderConfig {
|
||||
// Non-AVCodecContext options
|
||||
AVCodecID codec = AV_CODEC_ID_NONE;
|
||||
bool copy_streams = true;
|
||||
|
||||
// Basic video options
|
||||
AVPixelFormat pix_fmt = AV_PIX_FMT_NONE;
|
||||
|
||||
// Rate control and compression
|
||||
int64_t bit_rate = 0;
|
||||
int rc_buffer_size = 0;
|
||||
int rc_min_rate = 0;
|
||||
int rc_max_rate = 0;
|
||||
int qmin = -1;
|
||||
int qmax = -1;
|
||||
|
||||
// GOP and frame structure
|
||||
int gop_size = -1;
|
||||
int max_b_frames = -1;
|
||||
int keyint_min = -1;
|
||||
int refs = -1;
|
||||
|
||||
// Performance and threading
|
||||
int thread_count = 0;
|
||||
|
||||
// Latency and buffering
|
||||
int delay = -1;
|
||||
|
||||
// Extra AVOptions
|
||||
std::vector<std::pair<StringType, StringType>> extra_opts;
|
||||
};
|
||||
|
||||
class Encoder {
|
||||
public:
|
||||
Encoder();
|
||||
~Encoder();
|
||||
|
||||
int init(
|
||||
AVBufferRef *hw_ctx,
|
||||
const std::filesystem::path &out_fpath,
|
||||
AVFormatContext *ifmt_ctx,
|
||||
AVCodecContext *dec_ctx,
|
||||
EncoderConfig &enc_cfg,
|
||||
int width,
|
||||
int height,
|
||||
int frm_rate_mul,
|
||||
int in_vstream_idx
|
||||
);
|
||||
|
||||
int write_frame(AVFrame *frame, int64_t frame_idx);
|
||||
int flush();
|
||||
|
||||
AVCodecContext *get_encoder_context() const;
|
||||
AVFormatContext *get_format_context() const;
|
||||
int *get_stream_map() const;
|
||||
int get_output_video_stream_index() const;
|
||||
|
||||
private:
|
||||
AVFormatContext *ofmt_ctx_;
|
||||
AVCodecContext *enc_ctx_;
|
||||
int out_vstream_idx_;
|
||||
int *stream_map_;
|
||||
};
|
||||
58
include/libvideo2x/filter_libplacebo.h
Normal file
58
include/libvideo2x/filter_libplacebo.h
Normal file
@@ -0,0 +1,58 @@
|
||||
#pragma once
|
||||
|
||||
#include <filesystem>
|
||||
|
||||
extern "C" {
|
||||
#include <libavcodec/avcodec.h>
|
||||
#include <libavfilter/buffersink.h>
|
||||
#include <libavfilter/buffersrc.h>
|
||||
}
|
||||
|
||||
#include "processor.h"
|
||||
|
||||
// FilterLibplacebo class definition
|
||||
class FilterLibplacebo : public Filter {
|
||||
public:
|
||||
// Constructor
|
||||
FilterLibplacebo(
|
||||
uint32_t vk_device_index,
|
||||
const std::filesystem::path &shader_path,
|
||||
int width,
|
||||
int height
|
||||
);
|
||||
|
||||
// Destructor
|
||||
virtual ~FilterLibplacebo() override;
|
||||
|
||||
// Initializes the filter with decoder and encoder contexts
|
||||
int init(AVCodecContext *dec_ctx, AVCodecContext *enc_ctx, AVBufferRef *hw_ctx) override;
|
||||
|
||||
// Processes an input frame and returns the processed frame
|
||||
int filter(AVFrame *in_frame, AVFrame **out_frame) override;
|
||||
|
||||
// Flushes any remaining frames
|
||||
int flush(std::vector<AVFrame *> &flushed_frames) override;
|
||||
|
||||
// Returns the filter's type
|
||||
ProcessorType get_processor_type() const override { return ProcessorType::Libplacebo; }
|
||||
|
||||
// Returns the filter's output dimensions
|
||||
void get_output_dimensions(
|
||||
const ProcessorConfig &proc_cfg,
|
||||
int in_width,
|
||||
int in_height,
|
||||
int &out_width,
|
||||
int &out_height
|
||||
) const override;
|
||||
|
||||
private:
|
||||
AVFilterGraph *filter_graph_;
|
||||
AVFilterContext *buffersrc_ctx_;
|
||||
AVFilterContext *buffersink_ctx_;
|
||||
uint32_t vk_device_index_;
|
||||
const std::filesystem::path shader_path_;
|
||||
int width_;
|
||||
int height_;
|
||||
AVRational in_time_base_;
|
||||
AVRational out_time_base_;
|
||||
};
|
||||
51
include/libvideo2x/filter_realesrgan.h
Normal file
51
include/libvideo2x/filter_realesrgan.h
Normal file
@@ -0,0 +1,51 @@
|
||||
#pragma once
|
||||
|
||||
extern "C" {
|
||||
#include <libavcodec/avcodec.h>
|
||||
}
|
||||
|
||||
#include "processor.h"
|
||||
#include "realesrgan.h"
|
||||
|
||||
// FilterRealesrgan class definition
|
||||
class FilterRealesrgan : public Filter {
|
||||
public:
|
||||
// Constructor
|
||||
FilterRealesrgan(
|
||||
int gpuid = 0,
|
||||
bool tta_mode = false,
|
||||
int scaling_factor = 4,
|
||||
const StringType model_name = STR("realesr-animevideov3")
|
||||
);
|
||||
|
||||
// Destructor
|
||||
virtual ~FilterRealesrgan() override;
|
||||
|
||||
// Initializes the filter with decoder and encoder contexts
|
||||
int init(AVCodecContext *dec_ctx, AVCodecContext *enc_ctx, AVBufferRef *hw_ctx) override;
|
||||
|
||||
// Processes an input frame and returns the processed frame
|
||||
int filter(AVFrame *in_frame, AVFrame **out_frame) override;
|
||||
|
||||
// Returns the filter's type
|
||||
ProcessorType get_processor_type() const override { return ProcessorType::RealESRGAN; }
|
||||
|
||||
// Returns the filter's output dimensions
|
||||
void get_output_dimensions(
|
||||
const ProcessorConfig &proc_cfg,
|
||||
int in_width,
|
||||
int in_height,
|
||||
int &out_width,
|
||||
int &out_height
|
||||
) const override;
|
||||
|
||||
private:
|
||||
RealESRGAN *realesrgan_;
|
||||
int gpuid_;
|
||||
bool tta_mode_;
|
||||
int scaling_factor_;
|
||||
const StringType model_name_;
|
||||
AVRational in_time_base_;
|
||||
AVRational out_time_base_;
|
||||
AVPixelFormat out_pix_fmt_;
|
||||
};
|
||||
30
include/libvideo2x/fsutils.h
Normal file
30
include/libvideo2x/fsutils.h
Normal file
@@ -0,0 +1,30 @@
|
||||
#pragma once
|
||||
|
||||
#include <filesystem>
|
||||
#include <string>
|
||||
|
||||
#ifdef _WIN32
|
||||
typedef wchar_t CharType;
|
||||
#define STR(x) L##x
|
||||
#else
|
||||
typedef char CharType;
|
||||
#define STR(x) x
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
typedef std::wstring StringType;
|
||||
#else
|
||||
typedef std::string StringType;
|
||||
#endif
|
||||
|
||||
bool filepath_is_readable(const std::filesystem::path &path);
|
||||
|
||||
std::filesystem::path find_resource_file(const std::filesystem::path &path);
|
||||
|
||||
std::string path_to_u8string(const std::filesystem::path &path);
|
||||
|
||||
std::string wstring_to_u8string(const StringType &wstr);
|
||||
|
||||
StringType path_to_string_type(const std::filesystem::path &path);
|
||||
|
||||
StringType to_string_type(int value);
|
||||
56
include/libvideo2x/interpolator_rife.h
Normal file
56
include/libvideo2x/interpolator_rife.h
Normal file
@@ -0,0 +1,56 @@
|
||||
#pragma once
|
||||
|
||||
extern "C" {
|
||||
#include <libavcodec/avcodec.h>
|
||||
}
|
||||
|
||||
#include "processor.h"
|
||||
#include "rife.h"
|
||||
|
||||
// InterpolatorRIFE class definition
|
||||
class InterpolatorRIFE : public Interpolator {
|
||||
public:
|
||||
// Constructor
|
||||
InterpolatorRIFE(
|
||||
int gpuid = 0,
|
||||
bool tta_mode = false,
|
||||
bool tta_temporal_mode = false,
|
||||
bool uhd_mode = false,
|
||||
int num_threads = 1,
|
||||
const StringType model_name = STR("rife-v4.6")
|
||||
);
|
||||
|
||||
// Destructor
|
||||
virtual ~InterpolatorRIFE() override;
|
||||
|
||||
// Initializes the interpolator with decoder and encoder contexts
|
||||
int init(AVCodecContext *dec_ctx, AVCodecContext *enc_ctx, AVBufferRef *hw_ctx) override;
|
||||
|
||||
// Processes an input frame and returns the processed frame
|
||||
int interpolate(AVFrame *prev_frame, AVFrame *in_frame, AVFrame **out_frame, float time_step)
|
||||
override;
|
||||
|
||||
// Returns the interpolator's type
|
||||
ProcessorType get_processor_type() const override { return ProcessorType::RIFE; }
|
||||
|
||||
// Returns the interpolator's output dimensions
|
||||
void get_output_dimensions(
|
||||
const ProcessorConfig &proc_cfg,
|
||||
int in_width,
|
||||
int in_height,
|
||||
int &out_width,
|
||||
int &out_height
|
||||
) const override;
|
||||
|
||||
private:
|
||||
RIFE *rife_;
|
||||
int gpuid_;
|
||||
bool tta_mode_;
|
||||
bool tta_temporal_mode_;
|
||||
bool uhd_mode_;
|
||||
int num_threads_;
|
||||
const StringType model_name_;
|
||||
AVRational in_time_base_;
|
||||
AVRational out_time_base_;
|
||||
AVPixelFormat out_pix_fmt_;
|
||||
};
|
||||
19
include/libvideo2x/libplacebo.h
Normal file
19
include/libvideo2x/libplacebo.h
Normal file
@@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
|
||||
#include <filesystem>
|
||||
|
||||
extern "C" {
|
||||
#include <libavcodec/avcodec.h>
|
||||
#include <libavfilter/avfilter.h>
|
||||
}
|
||||
|
||||
int init_libplacebo(
|
||||
AVFilterGraph **filter_graph,
|
||||
AVFilterContext **buffersrc_ctx,
|
||||
AVFilterContext **buffersink_ctx,
|
||||
AVCodecContext *dec_ctx,
|
||||
int out_width,
|
||||
int out_height,
|
||||
uint32_t vk_device_index,
|
||||
const std::filesystem::path &shader_path
|
||||
);
|
||||
98
include/libvideo2x/libvideo2x.h
Normal file
98
include/libvideo2x/libvideo2x.h
Normal file
@@ -0,0 +1,98 @@
|
||||
#pragma once
|
||||
|
||||
#include <atomic>
|
||||
#include <cstdint>
|
||||
#include <memory>
|
||||
|
||||
extern "C" {
|
||||
#include <libavcodec/avcodec.h>
|
||||
#include <libavformat/avformat.h>
|
||||
}
|
||||
|
||||
#include "avutils.h"
|
||||
#include "decoder.h"
|
||||
#include "encoder.h"
|
||||
#include "logging.h"
|
||||
#include "processor.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#ifdef LIBVIDEO2X_EXPORTS
|
||||
#define LIBVIDEO2X_API __declspec(dllexport)
|
||||
#else
|
||||
#define LIBVIDEO2X_API __declspec(dllimport)
|
||||
#endif
|
||||
#else
|
||||
#define LIBVIDEO2X_API
|
||||
#endif
|
||||
|
||||
enum class VideoProcessorState {
|
||||
Idle,
|
||||
Running,
|
||||
Paused,
|
||||
Failed,
|
||||
Aborted,
|
||||
Completed
|
||||
};
|
||||
|
||||
class LIBVIDEO2X_API VideoProcessor {
|
||||
public:
|
||||
VideoProcessor(
|
||||
const ProcessorConfig proc_cfg,
|
||||
const EncoderConfig enc_cfg,
|
||||
const uint32_t vk_device_index = 0,
|
||||
const AVHWDeviceType hw_device_type = AV_HWDEVICE_TYPE_NONE,
|
||||
const Video2xLogLevel = Video2xLogLevel::Info,
|
||||
const bool benchmark = false
|
||||
);
|
||||
|
||||
virtual ~VideoProcessor() = default;
|
||||
|
||||
[[nodiscard]] int
|
||||
process(const std::filesystem::path in_fname, const std::filesystem::path out_fname);
|
||||
|
||||
void pause() { state_.store(VideoProcessorState::Paused); }
|
||||
void resume() { state_.store(VideoProcessorState::Running); }
|
||||
void abort() { state_.store(VideoProcessorState::Aborted); }
|
||||
|
||||
VideoProcessorState get_state() const { return state_.load(); }
|
||||
int64_t get_processed_frames() const { return frame_index_.load(); }
|
||||
int64_t get_total_frames() const { return total_frames_.load(); }
|
||||
|
||||
private:
|
||||
[[nodiscard]] int
|
||||
process_frames(Decoder &decoder, Encoder &encoder, std::unique_ptr<Processor> &processor);
|
||||
|
||||
[[nodiscard]] int write_frame(AVFrame *frame, Encoder &encoder);
|
||||
|
||||
[[nodiscard]] inline int write_raw_packet(
|
||||
AVPacket *packet,
|
||||
AVFormatContext *ifmt_ctx,
|
||||
AVFormatContext *ofmt_ctx,
|
||||
int *stream_map
|
||||
);
|
||||
|
||||
[[nodiscard]] inline int process_filtering(
|
||||
std::unique_ptr<Processor> &processor,
|
||||
Encoder &encoder,
|
||||
AVFrame *frame,
|
||||
AVFrame *proc_frame
|
||||
);
|
||||
|
||||
[[nodiscard]] inline int process_interpolation(
|
||||
std::unique_ptr<Processor> &processor,
|
||||
Encoder &encoder,
|
||||
std::unique_ptr<AVFrame, decltype(&av_frame_deleter)> &prev_frame,
|
||||
AVFrame *frame,
|
||||
AVFrame *proc_frame
|
||||
);
|
||||
|
||||
ProcessorConfig proc_cfg_;
|
||||
EncoderConfig enc_cfg_;
|
||||
uint32_t vk_device_index_ = 0;
|
||||
AVHWDeviceType hw_device_type_ = AV_HWDEVICE_TYPE_NONE;
|
||||
bool benchmark_ = false;
|
||||
|
||||
std::atomic<VideoProcessorState> state_ = VideoProcessorState::Idle;
|
||||
std::atomic<int64_t> frame_index_ = 0;
|
||||
std::atomic<int64_t> total_frames_ = 0;
|
||||
};
|
||||
20
include/libvideo2x/logging.h
Normal file
20
include/libvideo2x/logging.h
Normal file
@@ -0,0 +1,20 @@
|
||||
#pragma once
|
||||
|
||||
#include <optional>
|
||||
|
||||
#include "fsutils.h"
|
||||
|
||||
enum class Video2xLogLevel {
|
||||
Unknown,
|
||||
Trace,
|
||||
Debug,
|
||||
Info,
|
||||
Warning,
|
||||
Error,
|
||||
Critical,
|
||||
Off
|
||||
};
|
||||
|
||||
void set_log_level(Video2xLogLevel log_level);
|
||||
|
||||
std::optional<Video2xLogLevel> find_log_level_by_name(const StringType &log_level_name);
|
||||
83
include/libvideo2x/processor.h
Normal file
83
include/libvideo2x/processor.h
Normal file
@@ -0,0 +1,83 @@
|
||||
#pragma once
|
||||
|
||||
#include <variant>
|
||||
#include <vector>
|
||||
|
||||
extern "C" {
|
||||
#include <libavcodec/avcodec.h>
|
||||
#include <libavfilter/avfilter.h>
|
||||
#include <libavutil/buffer.h>
|
||||
}
|
||||
|
||||
#include "fsutils.h"
|
||||
|
||||
enum class ProcessingMode {
|
||||
Filter,
|
||||
Interpolate,
|
||||
};
|
||||
|
||||
enum class ProcessorType {
|
||||
None,
|
||||
Libplacebo,
|
||||
RealESRGAN,
|
||||
RIFE,
|
||||
};
|
||||
|
||||
struct LibplaceboConfig {
|
||||
StringType shader_path;
|
||||
};
|
||||
|
||||
struct RealESRGANConfig {
|
||||
bool tta_mode = false;
|
||||
StringType model_name;
|
||||
};
|
||||
|
||||
struct RIFEConfig {
|
||||
bool tta_mode = false;
|
||||
bool tta_temporal_mode = false;
|
||||
bool uhd_mode = false;
|
||||
int num_threads = 0;
|
||||
StringType model_name;
|
||||
};
|
||||
|
||||
// Unified filter configuration
|
||||
struct ProcessorConfig {
|
||||
ProcessorType processor_type = ProcessorType::None;
|
||||
int width = 0;
|
||||
int height = 0;
|
||||
int scaling_factor = 0;
|
||||
int frm_rate_mul = 0;
|
||||
float scn_det_thresh = 0.0f;
|
||||
std::variant<LibplaceboConfig, RealESRGANConfig, RIFEConfig> config;
|
||||
};
|
||||
|
||||
class Processor {
|
||||
public:
|
||||
virtual ~Processor() = default;
|
||||
virtual int init(AVCodecContext *dec_ctx, AVCodecContext *enc_ctx, AVBufferRef *hw_ctx) = 0;
|
||||
virtual int flush(std::vector<AVFrame *> &_) { return 0; }
|
||||
virtual ProcessingMode get_processing_mode() const = 0;
|
||||
virtual ProcessorType get_processor_type() const = 0;
|
||||
virtual void get_output_dimensions(
|
||||
const ProcessorConfig &proc_cfg,
|
||||
int in_width,
|
||||
int in_height,
|
||||
int &width,
|
||||
int &height
|
||||
) const = 0;
|
||||
};
|
||||
|
||||
// Abstract base class for filters
|
||||
class Filter : public Processor {
|
||||
public:
|
||||
ProcessingMode get_processing_mode() const override { return ProcessingMode::Filter; }
|
||||
virtual int filter(AVFrame *in_frame, AVFrame **out_frame) = 0;
|
||||
};
|
||||
|
||||
// Abstract base class for interpolators
|
||||
class Interpolator : public Processor {
|
||||
public:
|
||||
ProcessingMode get_processing_mode() const override { return ProcessingMode::Interpolate; }
|
||||
virtual int
|
||||
interpolate(AVFrame *prev_frame, AVFrame *in_frame, AVFrame **out_frame, float time_step) = 0;
|
||||
};
|
||||
33
include/libvideo2x/processor_factory.h
Normal file
33
include/libvideo2x/processor_factory.h
Normal file
@@ -0,0 +1,33 @@
|
||||
#pragma once
|
||||
|
||||
#include <functional>
|
||||
#include <memory>
|
||||
#include <unordered_map>
|
||||
|
||||
#include "processor.h"
|
||||
|
||||
// Processor Factory Class
|
||||
class ProcessorFactory {
|
||||
public:
|
||||
using Creator = std::function<std::unique_ptr<Processor>(const ProcessorConfig &, uint32_t)>;
|
||||
|
||||
// Singleton instance accessor
|
||||
static ProcessorFactory &instance();
|
||||
|
||||
// Register a processor type with its creation function
|
||||
void register_processor(ProcessorType type, Creator creator);
|
||||
|
||||
// Create a processor instance based on configuration
|
||||
std::unique_ptr<Processor>
|
||||
create_processor(const ProcessorConfig &proc_cfg, uint32_t vk_device_index) const;
|
||||
|
||||
private:
|
||||
// Private constructor for Singleton
|
||||
ProcessorFactory() = default;
|
||||
|
||||
// Map of processor types to their creation functions
|
||||
std::unordered_map<ProcessorType, Creator> creators;
|
||||
|
||||
// Static initializer for default processors
|
||||
static void init_default_processors(ProcessorFactory &factory);
|
||||
};
|
||||
3
include/libvideo2x/version.h.in
Normal file
3
include/libvideo2x/version.h.in
Normal file
@@ -0,0 +1,3 @@
|
||||
#pragma once
|
||||
|
||||
#define LIBVIDEO2X_VERSION_STRING "@PROJECT_VERSION@"
|
||||
2585
models/libplacebo/anime4k-v4-a+a.glsl
vendored
Normal file
2585
models/libplacebo/anime4k-v4-a+a.glsl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2309
models/libplacebo/anime4k-v4-a.glsl
vendored
Normal file
2309
models/libplacebo/anime4k-v4-a.glsl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2585
models/libplacebo/anime4k-v4-b+b.glsl
vendored
Normal file
2585
models/libplacebo/anime4k-v4-b+b.glsl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2309
models/libplacebo/anime4k-v4-b.glsl
vendored
Normal file
2309
models/libplacebo/anime4k-v4-b.glsl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1711
models/libplacebo/anime4k-v4-c+a.glsl
vendored
Normal file
1711
models/libplacebo/anime4k-v4-c+a.glsl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1435
models/libplacebo/anime4k-v4-c.glsl
vendored
Normal file
1435
models/libplacebo/anime4k-v4-c.glsl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
9173
models/libplacebo/anime4k-v4.1-gan.glsl
vendored
Normal file
9173
models/libplacebo/anime4k-v4.1-gan.glsl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
models/realesrgan/realesr-animevideov3-x2.bin
vendored
Normal file
BIN
models/realesrgan/realesr-animevideov3-x2.bin
vendored
Normal file
Binary file not shown.
43
models/realesrgan/realesr-animevideov3-x2.param
vendored
Normal file
43
models/realesrgan/realesr-animevideov3-x2.param
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
7767517
|
||||
41 42
|
||||
Input input.1 0 1 data
|
||||
Split splitncnn_input0 1 2 data input.1_splitncnn_0 input.1_splitncnn_1
|
||||
Convolution Conv_0 1 1 input.1_splitncnn_1 54 0=64 1=3 4=1 5=1 6=1728
|
||||
PReLU PRelu_1 1 1 54 56 0=64
|
||||
Convolution Conv_2 1 1 56 57 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_3 1 1 57 59 0=64
|
||||
Convolution Conv_4 1 1 59 60 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_5 1 1 60 62 0=64
|
||||
Convolution Conv_6 1 1 62 63 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_7 1 1 63 65 0=64
|
||||
Convolution Conv_8 1 1 65 66 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_9 1 1 66 68 0=64
|
||||
Convolution Conv_10 1 1 68 69 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_11 1 1 69 71 0=64
|
||||
Convolution Conv_12 1 1 71 72 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_13 1 1 72 74 0=64
|
||||
Convolution Conv_14 1 1 74 75 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_15 1 1 75 77 0=64
|
||||
Convolution Conv_16 1 1 77 78 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_17 1 1 78 80 0=64
|
||||
Convolution Conv_18 1 1 80 81 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_19 1 1 81 83 0=64
|
||||
Convolution Conv_20 1 1 83 84 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_21 1 1 84 86 0=64
|
||||
Convolution Conv_22 1 1 86 87 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_23 1 1 87 89 0=64
|
||||
Convolution Conv_24 1 1 89 90 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_25 1 1 90 92 0=64
|
||||
Convolution Conv_26 1 1 92 93 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_27 1 1 93 95 0=64
|
||||
Convolution Conv_28 1 1 95 96 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_29 1 1 96 98 0=64
|
||||
Convolution Conv_30 1 1 98 99 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_31 1 1 99 101 0=64
|
||||
Convolution Conv_32 1 1 101 102 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_33 1 1 102 104 0=64
|
||||
Convolution Conv_34 1 1 104 105 0=48 1=3 4=1 5=1 6=27648
|
||||
PixelShuffle DepthToSpace_35 1 1 105 106 0=4
|
||||
Interp Resize_37 1 1 input.1_splitncnn_0 111 0=1 1=4.000000e+00 2=4.000000e+00
|
||||
BinaryOp Add_38 2 1 106 111 112
|
||||
Interp Resize_40 1 1 112 output 0=3 1=5.000000e-01 2=5.000000e-01
|
||||
BIN
models/realesrgan/realesr-animevideov3-x3.bin
vendored
Normal file
BIN
models/realesrgan/realesr-animevideov3-x3.bin
vendored
Normal file
Binary file not shown.
43
models/realesrgan/realesr-animevideov3-x3.param
vendored
Normal file
43
models/realesrgan/realesr-animevideov3-x3.param
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
7767517
|
||||
41 42
|
||||
Input input.1 0 1 data
|
||||
Split splitncnn_input0 1 2 data input.1_splitncnn_0 input.1_splitncnn_1
|
||||
Convolution Conv_0 1 1 input.1_splitncnn_1 54 0=64 1=3 4=1 5=1 6=1728
|
||||
PReLU PRelu_1 1 1 54 56 0=64
|
||||
Convolution Conv_2 1 1 56 57 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_3 1 1 57 59 0=64
|
||||
Convolution Conv_4 1 1 59 60 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_5 1 1 60 62 0=64
|
||||
Convolution Conv_6 1 1 62 63 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_7 1 1 63 65 0=64
|
||||
Convolution Conv_8 1 1 65 66 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_9 1 1 66 68 0=64
|
||||
Convolution Conv_10 1 1 68 69 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_11 1 1 69 71 0=64
|
||||
Convolution Conv_12 1 1 71 72 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_13 1 1 72 74 0=64
|
||||
Convolution Conv_14 1 1 74 75 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_15 1 1 75 77 0=64
|
||||
Convolution Conv_16 1 1 77 78 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_17 1 1 78 80 0=64
|
||||
Convolution Conv_18 1 1 80 81 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_19 1 1 81 83 0=64
|
||||
Convolution Conv_20 1 1 83 84 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_21 1 1 84 86 0=64
|
||||
Convolution Conv_22 1 1 86 87 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_23 1 1 87 89 0=64
|
||||
Convolution Conv_24 1 1 89 90 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_25 1 1 90 92 0=64
|
||||
Convolution Conv_26 1 1 92 93 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_27 1 1 93 95 0=64
|
||||
Convolution Conv_28 1 1 95 96 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_29 1 1 96 98 0=64
|
||||
Convolution Conv_30 1 1 98 99 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_31 1 1 99 101 0=64
|
||||
Convolution Conv_32 1 1 101 102 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_33 1 1 102 104 0=64
|
||||
Convolution Conv_34 1 1 104 105 0=48 1=3 4=1 5=1 6=27648
|
||||
PixelShuffle DepthToSpace_35 1 1 105 106 0=4
|
||||
Interp Resize_37 1 1 input.1_splitncnn_0 111 0=1 1=4.000000e+00 2=4.000000e+00
|
||||
BinaryOp Add_38 2 1 106 111 112
|
||||
Interp Resize_40 1 1 112 output 0=3 1=7.500000e-01 2=7.500000e-01
|
||||
BIN
models/realesrgan/realesr-animevideov3-x4.bin
vendored
Normal file
BIN
models/realesrgan/realesr-animevideov3-x4.bin
vendored
Normal file
Binary file not shown.
42
models/realesrgan/realesr-animevideov3-x4.param
vendored
Normal file
42
models/realesrgan/realesr-animevideov3-x4.param
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
7767517
|
||||
40 41
|
||||
Input input.1 0 1 data
|
||||
Split splitncnn_input0 1 2 data input.1_splitncnn_0 input.1_splitncnn_1
|
||||
Convolution Conv_0 1 1 input.1_splitncnn_1 54 0=64 1=3 4=1 5=1 6=1728
|
||||
PReLU PRelu_1 1 1 54 56 0=64
|
||||
Convolution Conv_2 1 1 56 57 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_3 1 1 57 59 0=64
|
||||
Convolution Conv_4 1 1 59 60 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_5 1 1 60 62 0=64
|
||||
Convolution Conv_6 1 1 62 63 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_7 1 1 63 65 0=64
|
||||
Convolution Conv_8 1 1 65 66 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_9 1 1 66 68 0=64
|
||||
Convolution Conv_10 1 1 68 69 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_11 1 1 69 71 0=64
|
||||
Convolution Conv_12 1 1 71 72 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_13 1 1 72 74 0=64
|
||||
Convolution Conv_14 1 1 74 75 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_15 1 1 75 77 0=64
|
||||
Convolution Conv_16 1 1 77 78 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_17 1 1 78 80 0=64
|
||||
Convolution Conv_18 1 1 80 81 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_19 1 1 81 83 0=64
|
||||
Convolution Conv_20 1 1 83 84 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_21 1 1 84 86 0=64
|
||||
Convolution Conv_22 1 1 86 87 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_23 1 1 87 89 0=64
|
||||
Convolution Conv_24 1 1 89 90 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_25 1 1 90 92 0=64
|
||||
Convolution Conv_26 1 1 92 93 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_27 1 1 93 95 0=64
|
||||
Convolution Conv_28 1 1 95 96 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_29 1 1 96 98 0=64
|
||||
Convolution Conv_30 1 1 98 99 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_31 1 1 99 101 0=64
|
||||
Convolution Conv_32 1 1 101 102 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_33 1 1 102 104 0=64
|
||||
Convolution Conv_34 1 1 104 105 0=48 1=3 4=1 5=1 6=27648
|
||||
PixelShuffle DepthToSpace_35 1 1 105 106 0=4
|
||||
Interp Resize_37 1 1 input.1_splitncnn_0 111 0=1 1=4.000000e+00 2=4.000000e+00
|
||||
BinaryOp Add_38 2 1 106 111 output
|
||||
BIN
models/realesrgan/realesrgan-plus-anime-x4.bin
vendored
Normal file
BIN
models/realesrgan/realesrgan-plus-anime-x4.bin
vendored
Normal file
Binary file not shown.
270
models/realesrgan/realesrgan-plus-anime-x4.param
vendored
Normal file
270
models/realesrgan/realesrgan-plus-anime-x4.param
vendored
Normal file
@@ -0,0 +1,270 @@
|
||||
7767517
|
||||
268 473
|
||||
Input input.1 0 1 data
|
||||
Convolution Conv_0 1 1 data 193 0=64 1=3 4=1 5=1 6=1728
|
||||
Split splitncnn_0 1 8 193 193_splitncnn_0 193_splitncnn_1 193_splitncnn_2 193_splitncnn_3 193_splitncnn_4 193_splitncnn_5 193_splitncnn_6 193_splitncnn_7
|
||||
Convolution Conv_1 1 1 193_splitncnn_7 195 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_1 1 4 195 195_splitncnn_0 195_splitncnn_1 195_splitncnn_2 195_splitncnn_3
|
||||
Concat Concat_3 2 1 193_splitncnn_6 195_splitncnn_3 196
|
||||
Convolution Conv_4 1 1 196 198 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_2 1 3 198 198_splitncnn_0 198_splitncnn_1 198_splitncnn_2
|
||||
Concat Concat_6 3 1 193_splitncnn_5 195_splitncnn_2 198_splitncnn_2 199
|
||||
Convolution Conv_7 1 1 199 201 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_3 1 2 201 201_splitncnn_0 201_splitncnn_1
|
||||
Concat Concat_9 4 1 193_splitncnn_4 195_splitncnn_1 198_splitncnn_1 201_splitncnn_1 202
|
||||
Convolution Conv_10 1 1 202 204 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_12 5 1 193_splitncnn_3 195_splitncnn_0 198_splitncnn_0 201_splitncnn_0 204 205
|
||||
Convolution Conv_13 1 1 205 206 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_16 2 1 206 193_splitncnn_2 209 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_4 1 6 209 209_splitncnn_0 209_splitncnn_1 209_splitncnn_2 209_splitncnn_3 209_splitncnn_4 209_splitncnn_5
|
||||
Convolution Conv_17 1 1 209_splitncnn_5 211 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_5 1 4 211 211_splitncnn_0 211_splitncnn_1 211_splitncnn_2 211_splitncnn_3
|
||||
Concat Concat_19 2 1 209_splitncnn_4 211_splitncnn_3 212
|
||||
Convolution Conv_20 1 1 212 214 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_6 1 3 214 214_splitncnn_0 214_splitncnn_1 214_splitncnn_2
|
||||
Concat Concat_22 3 1 209_splitncnn_3 211_splitncnn_2 214_splitncnn_2 215
|
||||
Convolution Conv_23 1 1 215 217 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_7 1 2 217 217_splitncnn_0 217_splitncnn_1
|
||||
Concat Concat_25 4 1 209_splitncnn_2 211_splitncnn_1 214_splitncnn_1 217_splitncnn_1 218
|
||||
Convolution Conv_26 1 1 218 220 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_28 5 1 209_splitncnn_1 211_splitncnn_0 214_splitncnn_0 217_splitncnn_0 220 221
|
||||
Convolution Conv_29 1 1 221 222 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_32 2 1 222 209_splitncnn_0 225 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_8 1 6 225 225_splitncnn_0 225_splitncnn_1 225_splitncnn_2 225_splitncnn_3 225_splitncnn_4 225_splitncnn_5
|
||||
Convolution Conv_33 1 1 225_splitncnn_5 227 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_9 1 4 227 227_splitncnn_0 227_splitncnn_1 227_splitncnn_2 227_splitncnn_3
|
||||
Concat Concat_35 2 1 225_splitncnn_4 227_splitncnn_3 228
|
||||
Convolution Conv_36 1 1 228 230 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_10 1 3 230 230_splitncnn_0 230_splitncnn_1 230_splitncnn_2
|
||||
Concat Concat_38 3 1 225_splitncnn_3 227_splitncnn_2 230_splitncnn_2 231
|
||||
Convolution Conv_39 1 1 231 233 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_11 1 2 233 233_splitncnn_0 233_splitncnn_1
|
||||
Concat Concat_41 4 1 225_splitncnn_2 227_splitncnn_1 230_splitncnn_1 233_splitncnn_1 234
|
||||
Convolution Conv_42 1 1 234 236 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_44 5 1 225_splitncnn_1 227_splitncnn_0 230_splitncnn_0 233_splitncnn_0 236 237
|
||||
Convolution Conv_45 1 1 237 238 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_48 2 1 238 225_splitncnn_0 241 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Eltwise Add_51 2 1 241 193_splitncnn_1 244 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_12 1 7 244 244_splitncnn_0 244_splitncnn_1 244_splitncnn_2 244_splitncnn_3 244_splitncnn_4 244_splitncnn_5 244_splitncnn_6
|
||||
Convolution Conv_52 1 1 244_splitncnn_6 246 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_13 1 4 246 246_splitncnn_0 246_splitncnn_1 246_splitncnn_2 246_splitncnn_3
|
||||
Concat Concat_54 2 1 244_splitncnn_5 246_splitncnn_3 247
|
||||
Convolution Conv_55 1 1 247 249 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_14 1 3 249 249_splitncnn_0 249_splitncnn_1 249_splitncnn_2
|
||||
Concat Concat_57 3 1 244_splitncnn_4 246_splitncnn_2 249_splitncnn_2 250
|
||||
Convolution Conv_58 1 1 250 252 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_15 1 2 252 252_splitncnn_0 252_splitncnn_1
|
||||
Concat Concat_60 4 1 244_splitncnn_3 246_splitncnn_1 249_splitncnn_1 252_splitncnn_1 253
|
||||
Convolution Conv_61 1 1 253 255 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_63 5 1 244_splitncnn_2 246_splitncnn_0 249_splitncnn_0 252_splitncnn_0 255 256
|
||||
Convolution Conv_64 1 1 256 257 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_67 2 1 257 244_splitncnn_1 260 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_16 1 6 260 260_splitncnn_0 260_splitncnn_1 260_splitncnn_2 260_splitncnn_3 260_splitncnn_4 260_splitncnn_5
|
||||
Convolution Conv_68 1 1 260_splitncnn_5 262 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_17 1 4 262 262_splitncnn_0 262_splitncnn_1 262_splitncnn_2 262_splitncnn_3
|
||||
Concat Concat_70 2 1 260_splitncnn_4 262_splitncnn_3 263
|
||||
Convolution Conv_71 1 1 263 265 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_18 1 3 265 265_splitncnn_0 265_splitncnn_1 265_splitncnn_2
|
||||
Concat Concat_73 3 1 260_splitncnn_3 262_splitncnn_2 265_splitncnn_2 266
|
||||
Convolution Conv_74 1 1 266 268 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_19 1 2 268 268_splitncnn_0 268_splitncnn_1
|
||||
Concat Concat_76 4 1 260_splitncnn_2 262_splitncnn_1 265_splitncnn_1 268_splitncnn_1 269
|
||||
Convolution Conv_77 1 1 269 271 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_79 5 1 260_splitncnn_1 262_splitncnn_0 265_splitncnn_0 268_splitncnn_0 271 272
|
||||
Convolution Conv_80 1 1 272 273 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_83 2 1 273 260_splitncnn_0 276 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_20 1 6 276 276_splitncnn_0 276_splitncnn_1 276_splitncnn_2 276_splitncnn_3 276_splitncnn_4 276_splitncnn_5
|
||||
Convolution Conv_84 1 1 276_splitncnn_5 278 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_21 1 4 278 278_splitncnn_0 278_splitncnn_1 278_splitncnn_2 278_splitncnn_3
|
||||
Concat Concat_86 2 1 276_splitncnn_4 278_splitncnn_3 279
|
||||
Convolution Conv_87 1 1 279 281 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_22 1 3 281 281_splitncnn_0 281_splitncnn_1 281_splitncnn_2
|
||||
Concat Concat_89 3 1 276_splitncnn_3 278_splitncnn_2 281_splitncnn_2 282
|
||||
Convolution Conv_90 1 1 282 284 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_23 1 2 284 284_splitncnn_0 284_splitncnn_1
|
||||
Concat Concat_92 4 1 276_splitncnn_2 278_splitncnn_1 281_splitncnn_1 284_splitncnn_1 285
|
||||
Convolution Conv_93 1 1 285 287 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_95 5 1 276_splitncnn_1 278_splitncnn_0 281_splitncnn_0 284_splitncnn_0 287 288
|
||||
Convolution Conv_96 1 1 288 289 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_99 2 1 289 276_splitncnn_0 292 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Eltwise Add_102 2 1 292 244_splitncnn_0 295 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_24 1 7 295 295_splitncnn_0 295_splitncnn_1 295_splitncnn_2 295_splitncnn_3 295_splitncnn_4 295_splitncnn_5 295_splitncnn_6
|
||||
Convolution Conv_103 1 1 295_splitncnn_6 297 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_25 1 4 297 297_splitncnn_0 297_splitncnn_1 297_splitncnn_2 297_splitncnn_3
|
||||
Concat Concat_105 2 1 295_splitncnn_5 297_splitncnn_3 298
|
||||
Convolution Conv_106 1 1 298 300 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_26 1 3 300 300_splitncnn_0 300_splitncnn_1 300_splitncnn_2
|
||||
Concat Concat_108 3 1 295_splitncnn_4 297_splitncnn_2 300_splitncnn_2 301
|
||||
Convolution Conv_109 1 1 301 303 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_27 1 2 303 303_splitncnn_0 303_splitncnn_1
|
||||
Concat Concat_111 4 1 295_splitncnn_3 297_splitncnn_1 300_splitncnn_1 303_splitncnn_1 304
|
||||
Convolution Conv_112 1 1 304 306 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_114 5 1 295_splitncnn_2 297_splitncnn_0 300_splitncnn_0 303_splitncnn_0 306 307
|
||||
Convolution Conv_115 1 1 307 308 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_118 2 1 308 295_splitncnn_1 311 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_28 1 6 311 311_splitncnn_0 311_splitncnn_1 311_splitncnn_2 311_splitncnn_3 311_splitncnn_4 311_splitncnn_5
|
||||
Convolution Conv_119 1 1 311_splitncnn_5 313 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_29 1 4 313 313_splitncnn_0 313_splitncnn_1 313_splitncnn_2 313_splitncnn_3
|
||||
Concat Concat_121 2 1 311_splitncnn_4 313_splitncnn_3 314
|
||||
Convolution Conv_122 1 1 314 316 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_30 1 3 316 316_splitncnn_0 316_splitncnn_1 316_splitncnn_2
|
||||
Concat Concat_124 3 1 311_splitncnn_3 313_splitncnn_2 316_splitncnn_2 317
|
||||
Convolution Conv_125 1 1 317 319 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_31 1 2 319 319_splitncnn_0 319_splitncnn_1
|
||||
Concat Concat_127 4 1 311_splitncnn_2 313_splitncnn_1 316_splitncnn_1 319_splitncnn_1 320
|
||||
Convolution Conv_128 1 1 320 322 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_130 5 1 311_splitncnn_1 313_splitncnn_0 316_splitncnn_0 319_splitncnn_0 322 323
|
||||
Convolution Conv_131 1 1 323 324 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_134 2 1 324 311_splitncnn_0 327 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_32 1 6 327 327_splitncnn_0 327_splitncnn_1 327_splitncnn_2 327_splitncnn_3 327_splitncnn_4 327_splitncnn_5
|
||||
Convolution Conv_135 1 1 327_splitncnn_5 329 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_33 1 4 329 329_splitncnn_0 329_splitncnn_1 329_splitncnn_2 329_splitncnn_3
|
||||
Concat Concat_137 2 1 327_splitncnn_4 329_splitncnn_3 330
|
||||
Convolution Conv_138 1 1 330 332 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_34 1 3 332 332_splitncnn_0 332_splitncnn_1 332_splitncnn_2
|
||||
Concat Concat_140 3 1 327_splitncnn_3 329_splitncnn_2 332_splitncnn_2 333
|
||||
Convolution Conv_141 1 1 333 335 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_35 1 2 335 335_splitncnn_0 335_splitncnn_1
|
||||
Concat Concat_143 4 1 327_splitncnn_2 329_splitncnn_1 332_splitncnn_1 335_splitncnn_1 336
|
||||
Convolution Conv_144 1 1 336 338 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_146 5 1 327_splitncnn_1 329_splitncnn_0 332_splitncnn_0 335_splitncnn_0 338 339
|
||||
Convolution Conv_147 1 1 339 340 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_150 2 1 340 327_splitncnn_0 343 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Eltwise Add_153 2 1 343 295_splitncnn_0 346 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_36 1 7 346 346_splitncnn_0 346_splitncnn_1 346_splitncnn_2 346_splitncnn_3 346_splitncnn_4 346_splitncnn_5 346_splitncnn_6
|
||||
Convolution Conv_154 1 1 346_splitncnn_6 348 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_37 1 4 348 348_splitncnn_0 348_splitncnn_1 348_splitncnn_2 348_splitncnn_3
|
||||
Concat Concat_156 2 1 346_splitncnn_5 348_splitncnn_3 349
|
||||
Convolution Conv_157 1 1 349 351 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_38 1 3 351 351_splitncnn_0 351_splitncnn_1 351_splitncnn_2
|
||||
Concat Concat_159 3 1 346_splitncnn_4 348_splitncnn_2 351_splitncnn_2 352
|
||||
Convolution Conv_160 1 1 352 354 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_39 1 2 354 354_splitncnn_0 354_splitncnn_1
|
||||
Concat Concat_162 4 1 346_splitncnn_3 348_splitncnn_1 351_splitncnn_1 354_splitncnn_1 355
|
||||
Convolution Conv_163 1 1 355 357 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_165 5 1 346_splitncnn_2 348_splitncnn_0 351_splitncnn_0 354_splitncnn_0 357 358
|
||||
Convolution Conv_166 1 1 358 359 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_169 2 1 359 346_splitncnn_1 362 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_40 1 6 362 362_splitncnn_0 362_splitncnn_1 362_splitncnn_2 362_splitncnn_3 362_splitncnn_4 362_splitncnn_5
|
||||
Convolution Conv_170 1 1 362_splitncnn_5 364 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_41 1 4 364 364_splitncnn_0 364_splitncnn_1 364_splitncnn_2 364_splitncnn_3
|
||||
Concat Concat_172 2 1 362_splitncnn_4 364_splitncnn_3 365
|
||||
Convolution Conv_173 1 1 365 367 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_42 1 3 367 367_splitncnn_0 367_splitncnn_1 367_splitncnn_2
|
||||
Concat Concat_175 3 1 362_splitncnn_3 364_splitncnn_2 367_splitncnn_2 368
|
||||
Convolution Conv_176 1 1 368 370 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_43 1 2 370 370_splitncnn_0 370_splitncnn_1
|
||||
Concat Concat_178 4 1 362_splitncnn_2 364_splitncnn_1 367_splitncnn_1 370_splitncnn_1 371
|
||||
Convolution Conv_179 1 1 371 373 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_181 5 1 362_splitncnn_1 364_splitncnn_0 367_splitncnn_0 370_splitncnn_0 373 374
|
||||
Convolution Conv_182 1 1 374 375 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_185 2 1 375 362_splitncnn_0 378 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_44 1 6 378 378_splitncnn_0 378_splitncnn_1 378_splitncnn_2 378_splitncnn_3 378_splitncnn_4 378_splitncnn_5
|
||||
Convolution Conv_186 1 1 378_splitncnn_5 380 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_45 1 4 380 380_splitncnn_0 380_splitncnn_1 380_splitncnn_2 380_splitncnn_3
|
||||
Concat Concat_188 2 1 378_splitncnn_4 380_splitncnn_3 381
|
||||
Convolution Conv_189 1 1 381 383 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_46 1 3 383 383_splitncnn_0 383_splitncnn_1 383_splitncnn_2
|
||||
Concat Concat_191 3 1 378_splitncnn_3 380_splitncnn_2 383_splitncnn_2 384
|
||||
Convolution Conv_192 1 1 384 386 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_47 1 2 386 386_splitncnn_0 386_splitncnn_1
|
||||
Concat Concat_194 4 1 378_splitncnn_2 380_splitncnn_1 383_splitncnn_1 386_splitncnn_1 387
|
||||
Convolution Conv_195 1 1 387 389 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_197 5 1 378_splitncnn_1 380_splitncnn_0 383_splitncnn_0 386_splitncnn_0 389 390
|
||||
Convolution Conv_198 1 1 390 391 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_201 2 1 391 378_splitncnn_0 394 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Eltwise Add_204 2 1 394 346_splitncnn_0 397 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_48 1 7 397 397_splitncnn_0 397_splitncnn_1 397_splitncnn_2 397_splitncnn_3 397_splitncnn_4 397_splitncnn_5 397_splitncnn_6
|
||||
Convolution Conv_205 1 1 397_splitncnn_6 399 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_49 1 4 399 399_splitncnn_0 399_splitncnn_1 399_splitncnn_2 399_splitncnn_3
|
||||
Concat Concat_207 2 1 397_splitncnn_5 399_splitncnn_3 400
|
||||
Convolution Conv_208 1 1 400 402 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_50 1 3 402 402_splitncnn_0 402_splitncnn_1 402_splitncnn_2
|
||||
Concat Concat_210 3 1 397_splitncnn_4 399_splitncnn_2 402_splitncnn_2 403
|
||||
Convolution Conv_211 1 1 403 405 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_51 1 2 405 405_splitncnn_0 405_splitncnn_1
|
||||
Concat Concat_213 4 1 397_splitncnn_3 399_splitncnn_1 402_splitncnn_1 405_splitncnn_1 406
|
||||
Convolution Conv_214 1 1 406 408 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_216 5 1 397_splitncnn_2 399_splitncnn_0 402_splitncnn_0 405_splitncnn_0 408 409
|
||||
Convolution Conv_217 1 1 409 410 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_220 2 1 410 397_splitncnn_1 413 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_52 1 6 413 413_splitncnn_0 413_splitncnn_1 413_splitncnn_2 413_splitncnn_3 413_splitncnn_4 413_splitncnn_5
|
||||
Convolution Conv_221 1 1 413_splitncnn_5 415 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_53 1 4 415 415_splitncnn_0 415_splitncnn_1 415_splitncnn_2 415_splitncnn_3
|
||||
Concat Concat_223 2 1 413_splitncnn_4 415_splitncnn_3 416
|
||||
Convolution Conv_224 1 1 416 418 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_54 1 3 418 418_splitncnn_0 418_splitncnn_1 418_splitncnn_2
|
||||
Concat Concat_226 3 1 413_splitncnn_3 415_splitncnn_2 418_splitncnn_2 419
|
||||
Convolution Conv_227 1 1 419 421 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_55 1 2 421 421_splitncnn_0 421_splitncnn_1
|
||||
Concat Concat_229 4 1 413_splitncnn_2 415_splitncnn_1 418_splitncnn_1 421_splitncnn_1 422
|
||||
Convolution Conv_230 1 1 422 424 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_232 5 1 413_splitncnn_1 415_splitncnn_0 418_splitncnn_0 421_splitncnn_0 424 425
|
||||
Convolution Conv_233 1 1 425 426 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_236 2 1 426 413_splitncnn_0 429 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_56 1 6 429 429_splitncnn_0 429_splitncnn_1 429_splitncnn_2 429_splitncnn_3 429_splitncnn_4 429_splitncnn_5
|
||||
Convolution Conv_237 1 1 429_splitncnn_5 431 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_57 1 4 431 431_splitncnn_0 431_splitncnn_1 431_splitncnn_2 431_splitncnn_3
|
||||
Concat Concat_239 2 1 429_splitncnn_4 431_splitncnn_3 432
|
||||
Convolution Conv_240 1 1 432 434 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_58 1 3 434 434_splitncnn_0 434_splitncnn_1 434_splitncnn_2
|
||||
Concat Concat_242 3 1 429_splitncnn_3 431_splitncnn_2 434_splitncnn_2 435
|
||||
Convolution Conv_243 1 1 435 437 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_59 1 2 437 437_splitncnn_0 437_splitncnn_1
|
||||
Concat Concat_245 4 1 429_splitncnn_2 431_splitncnn_1 434_splitncnn_1 437_splitncnn_1 438
|
||||
Convolution Conv_246 1 1 438 440 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_248 5 1 429_splitncnn_1 431_splitncnn_0 434_splitncnn_0 437_splitncnn_0 440 441
|
||||
Convolution Conv_249 1 1 441 442 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_252 2 1 442 429_splitncnn_0 445 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Eltwise Add_255 2 1 445 397_splitncnn_0 448 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_60 1 7 448 448_splitncnn_0 448_splitncnn_1 448_splitncnn_2 448_splitncnn_3 448_splitncnn_4 448_splitncnn_5 448_splitncnn_6
|
||||
Convolution Conv_256 1 1 448_splitncnn_6 450 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_61 1 4 450 450_splitncnn_0 450_splitncnn_1 450_splitncnn_2 450_splitncnn_3
|
||||
Concat Concat_258 2 1 448_splitncnn_5 450_splitncnn_3 451
|
||||
Convolution Conv_259 1 1 451 453 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_62 1 3 453 453_splitncnn_0 453_splitncnn_1 453_splitncnn_2
|
||||
Concat Concat_261 3 1 448_splitncnn_4 450_splitncnn_2 453_splitncnn_2 454
|
||||
Convolution Conv_262 1 1 454 456 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_63 1 2 456 456_splitncnn_0 456_splitncnn_1
|
||||
Concat Concat_264 4 1 448_splitncnn_3 450_splitncnn_1 453_splitncnn_1 456_splitncnn_1 457
|
||||
Convolution Conv_265 1 1 457 459 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_267 5 1 448_splitncnn_2 450_splitncnn_0 453_splitncnn_0 456_splitncnn_0 459 460
|
||||
Convolution Conv_268 1 1 460 461 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_271 2 1 461 448_splitncnn_1 464 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_64 1 6 464 464_splitncnn_0 464_splitncnn_1 464_splitncnn_2 464_splitncnn_3 464_splitncnn_4 464_splitncnn_5
|
||||
Convolution Conv_272 1 1 464_splitncnn_5 466 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_65 1 4 466 466_splitncnn_0 466_splitncnn_1 466_splitncnn_2 466_splitncnn_3
|
||||
Concat Concat_274 2 1 464_splitncnn_4 466_splitncnn_3 467
|
||||
Convolution Conv_275 1 1 467 469 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_66 1 3 469 469_splitncnn_0 469_splitncnn_1 469_splitncnn_2
|
||||
Concat Concat_277 3 1 464_splitncnn_3 466_splitncnn_2 469_splitncnn_2 470
|
||||
Convolution Conv_278 1 1 470 472 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_67 1 2 472 472_splitncnn_0 472_splitncnn_1
|
||||
Concat Concat_280 4 1 464_splitncnn_2 466_splitncnn_1 469_splitncnn_1 472_splitncnn_1 473
|
||||
Convolution Conv_281 1 1 473 475 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_283 5 1 464_splitncnn_1 466_splitncnn_0 469_splitncnn_0 472_splitncnn_0 475 476
|
||||
Convolution Conv_284 1 1 476 477 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_287 2 1 477 464_splitncnn_0 480 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_68 1 6 480 480_splitncnn_0 480_splitncnn_1 480_splitncnn_2 480_splitncnn_3 480_splitncnn_4 480_splitncnn_5
|
||||
Convolution Conv_288 1 1 480_splitncnn_5 482 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_69 1 4 482 482_splitncnn_0 482_splitncnn_1 482_splitncnn_2 482_splitncnn_3
|
||||
Concat Concat_290 2 1 480_splitncnn_4 482_splitncnn_3 483
|
||||
Convolution Conv_291 1 1 483 485 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_70 1 3 485 485_splitncnn_0 485_splitncnn_1 485_splitncnn_2
|
||||
Concat Concat_293 3 1 480_splitncnn_3 482_splitncnn_2 485_splitncnn_2 486
|
||||
Convolution Conv_294 1 1 486 488 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_71 1 2 488 488_splitncnn_0 488_splitncnn_1
|
||||
Concat Concat_296 4 1 480_splitncnn_2 482_splitncnn_1 485_splitncnn_1 488_splitncnn_1 489
|
||||
Convolution Conv_297 1 1 489 491 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_299 5 1 480_splitncnn_1 482_splitncnn_0 485_splitncnn_0 488_splitncnn_0 491 492
|
||||
Convolution Conv_300 1 1 492 493 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_303 2 1 493 480_splitncnn_0 496 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Eltwise Add_306 2 1 496 448_splitncnn_0 499 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Convolution Conv_307 1 1 499 500 0=64 1=3 4=1 5=1 6=36864
|
||||
BinaryOp Add_308 2 1 193_splitncnn_0 500 501
|
||||
Interp Resize_310 1 1 501 506 0=1 1=2.000000e+00 2=2.000000e+00
|
||||
Convolution Conv_311 1 1 506 508 0=64 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Interp Resize_314 1 1 508 513 0=1 1=2.000000e+00 2=2.000000e+00
|
||||
Convolution Conv_315 1 1 513 515 0=64 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Convolution Conv_317 1 1 515 517 0=64 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Convolution Conv_319 1 1 517 output 0=3 1=3 4=1 5=1 6=1728
|
||||
BIN
models/realesrgan/realesrgan-plus-x4.bin
vendored
Normal file
BIN
models/realesrgan/realesrgan-plus-x4.bin
vendored
Normal file
Binary file not shown.
1001
models/realesrgan/realesrgan-plus-x4.param
vendored
Normal file
1001
models/realesrgan/realesrgan-plus-x4.param
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
models/rife/rife-HD/contextnet.bin
vendored
Normal file
BIN
models/rife/rife-HD/contextnet.bin
vendored
Normal file
Binary file not shown.
70
models/rife/rife-HD/contextnet.param
vendored
Normal file
70
models/rife/rife-HD/contextnet.param
vendored
Normal file
@@ -0,0 +1,70 @@
|
||||
7767517
|
||||
68 82
|
||||
Input input.1 0 1 input.1
|
||||
Input flow.1 0 1 flow.1
|
||||
UnaryOp flow.0 1 1 flow.1 flow.0 0=1
|
||||
Convolution Conv_0 1 1 input.1 45 0=32 1=3 3=2 4=1 5=1 6=864
|
||||
PReLU PRelu_1 1 1 45 47 0=32
|
||||
Split splitncnn_0 1 2 47 47_splitncnn_0 47_splitncnn_1
|
||||
Convolution Conv_2 1 1 47_splitncnn_1 48 0=32 1=3 3=2 4=1 6=9216
|
||||
Convolution Conv_3 1 1 47_splitncnn_0 49 0=32 1=3 3=2 4=1 5=1 6=9216
|
||||
PReLU PRelu_4 1 1 49 51 0=32
|
||||
Convolution Conv_5 1 1 51 52 0=32 1=3 4=1 5=1 6=9216
|
||||
Split splitncnn_1 1 2 52 52_splitncnn_0 52_splitncnn_1
|
||||
Pooling ReduceMean_7 1 1 52_splitncnn_1 54 0=1 4=1
|
||||
InnerProduct Conv_8 1 1 54 57 0=16 2=512 9=2 -23310=1,1.143919e+00
|
||||
InnerProduct Conv_10 1 1 57 59 0=32 2=512 9=4
|
||||
BinaryOp Mul_12 2 1 52_splitncnn_0 59 60 0=2
|
||||
BinaryOp Add_13 2 1 60 48 61
|
||||
PReLU PRelu_14 1 1 61 63 0=32
|
||||
Split splitncnn_2 1 3 63 63_splitncnn_0 63_splitncnn_1 63_splitncnn_2
|
||||
Interp Resize_16 1 1 flow.0 73 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
BinaryOp Mul_18 1 1 73 75 0=2 1=1 2=5.000000e-01
|
||||
Split splitncnn_3 1 2 75 75_splitncnn_0 75_splitncnn_1
|
||||
rife.Warp Warp_24 2 1 63_splitncnn_2 75_splitncnn_1 f1
|
||||
Convolution Conv_25 1 1 63_splitncnn_1 82 0=64 1=3 3=2 4=1 6=18432
|
||||
Convolution Conv_26 1 1 63_splitncnn_0 83 0=64 1=3 3=2 4=1 5=1 6=18432
|
||||
PReLU PRelu_27 1 1 83 85 0=64
|
||||
Convolution Conv_28 1 1 85 86 0=64 1=3 4=1 5=1 6=36864
|
||||
Split splitncnn_4 1 2 86 86_splitncnn_0 86_splitncnn_1
|
||||
Pooling ReduceMean_30 1 1 86_splitncnn_1 88 0=1 4=1
|
||||
InnerProduct Conv_31 1 1 88 91 0=16 2=1024 9=2 -23310=1,3.006833e-01
|
||||
InnerProduct Conv_33 1 1 91 93 0=64 2=1024 9=4
|
||||
BinaryOp Mul_35 2 1 86_splitncnn_0 93 94 0=2
|
||||
BinaryOp Add_36 2 1 94 82 95
|
||||
PReLU PRelu_37 1 1 95 97 0=64
|
||||
Split splitncnn_5 1 3 97 97_splitncnn_0 97_splitncnn_1 97_splitncnn_2
|
||||
Interp Resize_39 1 1 75_splitncnn_0 107 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
BinaryOp Mul_41 1 1 107 109 0=2 1=1 2=5.000000e-01
|
||||
Split splitncnn_6 1 2 109 109_splitncnn_0 109_splitncnn_1
|
||||
rife.Warp Warp_47 2 1 97_splitncnn_2 109_splitncnn_1 f2
|
||||
Convolution Conv_48 1 1 97_splitncnn_1 116 0=128 1=3 3=2 4=1 6=73728
|
||||
Convolution Conv_49 1 1 97_splitncnn_0 117 0=128 1=3 3=2 4=1 5=1 6=73728
|
||||
PReLU PRelu_50 1 1 117 119 0=128
|
||||
Convolution Conv_51 1 1 119 120 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_7 1 2 120 120_splitncnn_0 120_splitncnn_1
|
||||
Pooling ReduceMean_53 1 1 120_splitncnn_1 122 0=1 4=1
|
||||
InnerProduct Conv_54 1 1 122 125 0=16 2=2048 9=2 -23310=1,7.002444e-02
|
||||
InnerProduct Conv_56 1 1 125 127 0=128 2=2048 9=4
|
||||
BinaryOp Mul_58 2 1 120_splitncnn_0 127 128 0=2
|
||||
BinaryOp Add_59 2 1 128 116 129
|
||||
PReLU PRelu_60 1 1 129 131 0=128
|
||||
Split splitncnn_8 1 3 131 131_splitncnn_0 131_splitncnn_1 131_splitncnn_2
|
||||
Interp Resize_62 1 1 109_splitncnn_0 141 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
BinaryOp Mul_64 1 1 141 143 0=2 1=1 2=5.000000e-01
|
||||
Split splitncnn_9 1 2 143 143_splitncnn_0 143_splitncnn_1
|
||||
rife.Warp Warp_70 2 1 131_splitncnn_2 143_splitncnn_1 f3
|
||||
Convolution Conv_71 1 1 131_splitncnn_1 150 0=256 1=3 3=2 4=1 6=294912
|
||||
Convolution Conv_72 1 1 131_splitncnn_0 151 0=256 1=3 3=2 4=1 5=1 6=294912
|
||||
PReLU PRelu_73 1 1 151 153 0=256
|
||||
Convolution Conv_74 1 1 153 154 0=256 1=3 4=1 5=1 6=589824
|
||||
Split splitncnn_10 1 2 154 154_splitncnn_0 154_splitncnn_1
|
||||
Pooling ReduceMean_76 1 1 154_splitncnn_1 156 0=1 4=1
|
||||
InnerProduct Conv_77 1 1 156 159 0=16 2=4096 9=2 -23310=1,6.568319e-02
|
||||
InnerProduct Conv_79 1 1 159 161 0=256 2=4096 9=4
|
||||
BinaryOp Mul_81 2 1 154_splitncnn_0 161 162 0=2
|
||||
BinaryOp Add_82 2 1 162 150 163
|
||||
PReLU PRelu_83 1 1 163 165 0=256
|
||||
Interp Resize_85 1 1 143_splitncnn_0 175 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
BinaryOp Mul_87 1 1 175 177 0=2 1=1 2=5.000000e-01
|
||||
rife.Warp Warp_93 2 1 165 177 f4
|
||||
BIN
models/rife/rife-HD/flownet.bin
vendored
Normal file
BIN
models/rife/rife-HD/flownet.bin
vendored
Normal file
Binary file not shown.
322
models/rife/rife-HD/flownet.param
vendored
Normal file
322
models/rife/rife-HD/flownet.param
vendored
Normal file
@@ -0,0 +1,322 @@
|
||||
7767517
|
||||
320 386
|
||||
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 454 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
Split splitncnn_0 1 7 454 454_splitncnn_0 454_splitncnn_1 454_splitncnn_2 454_splitncnn_3 454_splitncnn_4 454_splitncnn_5 454_splitncnn_6
|
||||
Interp Resize_3 1 1 454_splitncnn_6 464 0=2 1=1.250000e-01 2=1.250000e-01
|
||||
Convolution Conv_4 1 1 464 466 0=192 1=5 3=2 4=2 5=1 6=28800
|
||||
PReLU PRelu_6 1 1 466 468 0=192
|
||||
Split splitncnn_1 1 2 468 468_splitncnn_0 468_splitncnn_1
|
||||
Convolution Conv_7 1 1 468_splitncnn_1 470 0=192 1=5 4=2 5=1 6=921600
|
||||
PReLU PRelu_9 1 1 470 472 0=192
|
||||
Convolution Conv_10 1 1 472 474 0=192 1=3 4=1 5=1 6=331776
|
||||
Split splitncnn_2 1 2 474 474_splitncnn_0 474_splitncnn_1
|
||||
Pooling ReduceMean_13 1 1 474_splitncnn_1 476 0=1 4=1
|
||||
InnerProduct Conv_14 1 1 476 479 0=16 2=3072 9=2 -23310=1,1.428942e-02
|
||||
InnerProduct Conv_16 1 1 479 481 0=192 2=3072 9=4
|
||||
BinaryOp Mul_18 2 1 474_splitncnn_0 481 482 0=2
|
||||
BinaryOp Add_19 2 1 482 468_splitncnn_0 483
|
||||
PReLU PRelu_20 1 1 483 485 0=192
|
||||
Split splitncnn_3 1 2 485 485_splitncnn_0 485_splitncnn_1
|
||||
Convolution Conv_21 1 1 485_splitncnn_1 487 0=192 1=5 4=2 5=1 6=921600
|
||||
PReLU PRelu_23 1 1 487 489 0=192
|
||||
Convolution Conv_24 1 1 489 491 0=192 1=3 4=1 5=1 6=331776
|
||||
Split splitncnn_4 1 2 491 491_splitncnn_0 491_splitncnn_1
|
||||
Pooling ReduceMean_27 1 1 491_splitncnn_1 493 0=1 4=1
|
||||
InnerProduct Conv_28 1 1 493 496 0=16 2=3072 9=2 -23310=1,3.543398e-01
|
||||
InnerProduct Conv_30 1 1 496 498 0=192 2=3072 9=4
|
||||
BinaryOp Mul_32 2 1 491_splitncnn_0 498 499 0=2
|
||||
BinaryOp Add_33 2 1 499 485_splitncnn_0 500
|
||||
PReLU PRelu_34 1 1 500 502 0=192
|
||||
Split splitncnn_5 1 2 502 502_splitncnn_0 502_splitncnn_1
|
||||
Convolution Conv_35 1 1 502_splitncnn_1 504 0=192 1=5 4=2 5=1 6=921600
|
||||
PReLU PRelu_37 1 1 504 506 0=192
|
||||
Convolution Conv_38 1 1 506 508 0=192 1=3 4=1 5=1 6=331776
|
||||
Split splitncnn_6 1 2 508 508_splitncnn_0 508_splitncnn_1
|
||||
Pooling ReduceMean_41 1 1 508_splitncnn_1 510 0=1 4=1
|
||||
InnerProduct Conv_42 1 1 510 513 0=16 2=3072 9=2 -23310=1,5.366787e-01
|
||||
InnerProduct Conv_44 1 1 513 515 0=192 2=3072 9=4
|
||||
BinaryOp Mul_46 2 1 508_splitncnn_0 515 516 0=2
|
||||
BinaryOp Add_47 2 1 516 502_splitncnn_0 517
|
||||
PReLU PRelu_48 1 1 517 519 0=192
|
||||
Split splitncnn_7 1 2 519 519_splitncnn_0 519_splitncnn_1
|
||||
Convolution Conv_49 1 1 519_splitncnn_1 521 0=192 1=5 4=2 5=1 6=921600
|
||||
PReLU PRelu_51 1 1 521 523 0=192
|
||||
Convolution Conv_52 1 1 523 525 0=192 1=3 4=1 5=1 6=331776
|
||||
Split splitncnn_8 1 2 525 525_splitncnn_0 525_splitncnn_1
|
||||
Pooling ReduceMean_55 1 1 525_splitncnn_1 527 0=1 4=1
|
||||
InnerProduct Conv_56 1 1 527 530 0=16 2=3072 9=2 -23310=1,-4.889974e-03
|
||||
InnerProduct Conv_58 1 1 530 532 0=192 2=3072 9=4
|
||||
BinaryOp Mul_60 2 1 525_splitncnn_0 532 533 0=2
|
||||
BinaryOp Add_61 2 1 533 519_splitncnn_0 534
|
||||
PReLU PRelu_62 1 1 534 536 0=192
|
||||
Split splitncnn_9 1 2 536 536_splitncnn_0 536_splitncnn_1
|
||||
Convolution Conv_63 1 1 536_splitncnn_1 538 0=192 1=5 4=2 5=1 6=921600
|
||||
PReLU PRelu_65 1 1 538 540 0=192
|
||||
Convolution Conv_66 1 1 540 542 0=192 1=3 4=1 5=1 6=331776
|
||||
Split splitncnn_10 1 2 542 542_splitncnn_0 542_splitncnn_1
|
||||
Pooling ReduceMean_69 1 1 542_splitncnn_1 544 0=1 4=1
|
||||
InnerProduct Conv_70 1 1 544 547 0=16 2=3072 9=2 -23310=1,-1.182169e-02
|
||||
InnerProduct Conv_72 1 1 547 549 0=192 2=3072 9=4
|
||||
BinaryOp Mul_74 2 1 542_splitncnn_0 549 550 0=2
|
||||
BinaryOp Add_75 2 1 550 536_splitncnn_0 551
|
||||
PReLU PRelu_76 1 1 551 553 0=192
|
||||
Split splitncnn_11 1 2 553 553_splitncnn_0 553_splitncnn_1
|
||||
Convolution Conv_77 1 1 553_splitncnn_1 555 0=192 1=5 4=2 5=1 6=921600
|
||||
PReLU PRelu_79 1 1 555 557 0=192
|
||||
Convolution Conv_80 1 1 557 559 0=192 1=3 4=1 5=1 6=331776
|
||||
Split splitncnn_12 1 2 559 559_splitncnn_0 559_splitncnn_1
|
||||
Pooling ReduceMean_83 1 1 559_splitncnn_1 561 0=1 4=1
|
||||
InnerProduct Conv_84 1 1 561 564 0=16 2=3072 9=2 -23310=1,2.179182e-01
|
||||
InnerProduct Conv_86 1 1 564 566 0=192 2=3072 9=4
|
||||
BinaryOp Mul_88 2 1 559_splitncnn_0 566 567 0=2
|
||||
BinaryOp Add_89 2 1 567 553_splitncnn_0 568
|
||||
PReLU PRelu_90 1 1 568 570 0=192
|
||||
Convolution Conv_91 1 1 570 571 0=8 1=3 4=1 5=1 6=13824
|
||||
PixelShuffle DepthToSpace_92 1 1 571 572 0=2
|
||||
Interp Resize_94 1 1 572 582 0=2 1=8.000000e+00 2=8.000000e+00
|
||||
Split splitncnn_13 1 6 582 582_splitncnn_0 582_splitncnn_1 582_splitncnn_2 582_splitncnn_3 582_splitncnn_4 582_splitncnn_5
|
||||
Crop Slice_99 1 1 454_splitncnn_5 587 -23309=1,0 -23310=1,3 -23311=1,0
|
||||
rife.Warp Warp_105 2 1 587 582_splitncnn_5 593
|
||||
Crop Slice_110 1 1 454_splitncnn_4 598 -23309=1,3 -23310=1,2147483647 -23311=1,0
|
||||
UnaryOp Neg_111 1 1 582_splitncnn_4 599 0=1
|
||||
rife.Warp Warp_117 2 1 598 599 605
|
||||
Concat Concat_118 3 1 593 605 582_splitncnn_3 606
|
||||
Interp Resize_120 1 1 606 616 0=2 1=2.500000e-01 2=2.500000e-01
|
||||
Convolution Conv_121 1 1 616 618 0=128 1=5 3=2 4=2 5=1 6=25600
|
||||
PReLU PRelu_123 1 1 618 620 0=128
|
||||
Split splitncnn_14 1 2 620 620_splitncnn_0 620_splitncnn_1
|
||||
Convolution Conv_124 1 1 620_splitncnn_1 622 0=128 1=5 4=2 5=1 6=409600
|
||||
PReLU PRelu_126 1 1 622 624 0=128
|
||||
Convolution Conv_127 1 1 624 626 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_15 1 2 626 626_splitncnn_0 626_splitncnn_1
|
||||
Pooling ReduceMean_130 1 1 626_splitncnn_1 628 0=1 4=1
|
||||
InnerProduct Conv_131 1 1 628 631 0=16 2=2048 9=2 -23310=1,-3.599843e-03
|
||||
InnerProduct Conv_133 1 1 631 633 0=128 2=2048 9=4
|
||||
BinaryOp Mul_135 2 1 626_splitncnn_0 633 634 0=2
|
||||
BinaryOp Add_136 2 1 634 620_splitncnn_0 635
|
||||
PReLU PRelu_137 1 1 635 637 0=128
|
||||
Split splitncnn_16 1 2 637 637_splitncnn_0 637_splitncnn_1
|
||||
Convolution Conv_138 1 1 637_splitncnn_1 639 0=128 1=5 4=2 5=1 6=409600
|
||||
PReLU PRelu_140 1 1 639 641 0=128
|
||||
Convolution Conv_141 1 1 641 643 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_17 1 2 643 643_splitncnn_0 643_splitncnn_1
|
||||
Pooling ReduceMean_144 1 1 643_splitncnn_1 645 0=1 4=1
|
||||
InnerProduct Conv_145 1 1 645 648 0=16 2=2048 9=2 -23310=1,2.117399e-01
|
||||
InnerProduct Conv_147 1 1 648 650 0=128 2=2048 9=4
|
||||
BinaryOp Mul_149 2 1 643_splitncnn_0 650 651 0=2
|
||||
BinaryOp Add_150 2 1 651 637_splitncnn_0 652
|
||||
PReLU PRelu_151 1 1 652 654 0=128
|
||||
Split splitncnn_18 1 2 654 654_splitncnn_0 654_splitncnn_1
|
||||
Convolution Conv_152 1 1 654_splitncnn_1 656 0=128 1=5 4=2 5=1 6=409600
|
||||
PReLU PRelu_154 1 1 656 658 0=128
|
||||
Convolution Conv_155 1 1 658 660 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_19 1 2 660 660_splitncnn_0 660_splitncnn_1
|
||||
Pooling ReduceMean_158 1 1 660_splitncnn_1 662 0=1 4=1
|
||||
InnerProduct Conv_159 1 1 662 665 0=16 2=2048 9=2 -23310=1,2.712289e-01
|
||||
InnerProduct Conv_161 1 1 665 667 0=128 2=2048 9=4
|
||||
BinaryOp Mul_163 2 1 660_splitncnn_0 667 668 0=2
|
||||
BinaryOp Add_164 2 1 668 654_splitncnn_0 669
|
||||
PReLU PRelu_165 1 1 669 671 0=128
|
||||
Split splitncnn_20 1 2 671 671_splitncnn_0 671_splitncnn_1
|
||||
Convolution Conv_166 1 1 671_splitncnn_1 673 0=128 1=5 4=2 5=1 6=409600
|
||||
PReLU PRelu_168 1 1 673 675 0=128
|
||||
Convolution Conv_169 1 1 675 677 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_21 1 2 677 677_splitncnn_0 677_splitncnn_1
|
||||
Pooling ReduceMean_172 1 1 677_splitncnn_1 679 0=1 4=1
|
||||
InnerProduct Conv_173 1 1 679 682 0=16 2=2048 9=2 -23310=1,8.141350e-02
|
||||
InnerProduct Conv_175 1 1 682 684 0=128 2=2048 9=4
|
||||
BinaryOp Mul_177 2 1 677_splitncnn_0 684 685 0=2
|
||||
BinaryOp Add_178 2 1 685 671_splitncnn_0 686
|
||||
PReLU PRelu_179 1 1 686 688 0=128
|
||||
Split splitncnn_22 1 2 688 688_splitncnn_0 688_splitncnn_1
|
||||
Convolution Conv_180 1 1 688_splitncnn_1 690 0=128 1=5 4=2 5=1 6=409600
|
||||
PReLU PRelu_182 1 1 690 692 0=128
|
||||
Convolution Conv_183 1 1 692 694 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_23 1 2 694 694_splitncnn_0 694_splitncnn_1
|
||||
Pooling ReduceMean_186 1 1 694_splitncnn_1 696 0=1 4=1
|
||||
InnerProduct Conv_187 1 1 696 699 0=16 2=2048 9=2 -23310=1,4.956326e-02
|
||||
InnerProduct Conv_189 1 1 699 701 0=128 2=2048 9=4
|
||||
BinaryOp Mul_191 2 1 694_splitncnn_0 701 702 0=2
|
||||
BinaryOp Add_192 2 1 702 688_splitncnn_0 703
|
||||
PReLU PRelu_193 1 1 703 705 0=128
|
||||
Split splitncnn_24 1 2 705 705_splitncnn_0 705_splitncnn_1
|
||||
Convolution Conv_194 1 1 705_splitncnn_1 707 0=128 1=5 4=2 5=1 6=409600
|
||||
PReLU PRelu_196 1 1 707 709 0=128
|
||||
Convolution Conv_197 1 1 709 711 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_25 1 2 711 711_splitncnn_0 711_splitncnn_1
|
||||
Pooling ReduceMean_200 1 1 711_splitncnn_1 713 0=1 4=1
|
||||
InnerProduct Conv_201 1 1 713 716 0=16 2=2048 9=2 -23310=1,1.553750e-01
|
||||
InnerProduct Conv_203 1 1 716 718 0=128 2=2048 9=4
|
||||
BinaryOp Mul_205 2 1 711_splitncnn_0 718 719 0=2
|
||||
BinaryOp Add_206 2 1 719 705_splitncnn_0 720
|
||||
PReLU PRelu_207 1 1 720 722 0=128
|
||||
Convolution Conv_208 1 1 722 723 0=8 1=3 4=1 5=1 6=9216
|
||||
PixelShuffle DepthToSpace_209 1 1 723 724 0=2
|
||||
Interp Resize_211 1 1 724 734 0=2 1=4.000000e+00 2=4.000000e+00
|
||||
Split splitncnn_26 1 3 734 734_splitncnn_0 734_splitncnn_1 734_splitncnn_2
|
||||
BinaryOp Add_212 2 1 582_splitncnn_2 734_splitncnn_2 735
|
||||
Split splitncnn_27 1 3 735 735_splitncnn_0 735_splitncnn_1 735_splitncnn_2
|
||||
Crop Slice_217 1 1 454_splitncnn_3 740 -23309=1,0 -23310=1,3 -23311=1,0
|
||||
rife.Warp Warp_223 2 1 740 735_splitncnn_2 746
|
||||
Crop Slice_228 1 1 454_splitncnn_2 751 -23309=1,3 -23310=1,2147483647 -23311=1,0
|
||||
UnaryOp Neg_229 1 1 735_splitncnn_1 752 0=1
|
||||
rife.Warp Warp_235 2 1 751 752 758
|
||||
Concat Concat_236 3 1 746 758 735_splitncnn_0 759
|
||||
Interp Resize_238 1 1 759 769 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
Convolution Conv_239 1 1 769 771 0=96 1=5 3=2 4=2 5=1 6=19200
|
||||
PReLU PRelu_241 1 1 771 773 0=96
|
||||
Split splitncnn_28 1 2 773 773_splitncnn_0 773_splitncnn_1
|
||||
Convolution Conv_242 1 1 773_splitncnn_1 775 0=96 1=5 4=2 5=1 6=230400
|
||||
PReLU PRelu_244 1 1 775 777 0=96
|
||||
Convolution Conv_245 1 1 777 779 0=96 1=3 4=1 5=1 6=82944
|
||||
Split splitncnn_29 1 2 779 779_splitncnn_0 779_splitncnn_1
|
||||
Pooling ReduceMean_248 1 1 779_splitncnn_1 781 0=1 4=1
|
||||
InnerProduct Conv_249 1 1 781 784 0=16 2=1536 9=2 -23310=1,1.670981e-03
|
||||
InnerProduct Conv_251 1 1 784 786 0=96 2=1536 9=4
|
||||
BinaryOp Mul_253 2 1 779_splitncnn_0 786 787 0=2
|
||||
BinaryOp Add_254 2 1 787 773_splitncnn_0 788
|
||||
PReLU PRelu_255 1 1 788 790 0=96
|
||||
Split splitncnn_30 1 2 790 790_splitncnn_0 790_splitncnn_1
|
||||
Convolution Conv_256 1 1 790_splitncnn_1 792 0=96 1=5 4=2 5=1 6=230400
|
||||
PReLU PRelu_258 1 1 792 794 0=96
|
||||
Convolution Conv_259 1 1 794 796 0=96 1=3 4=1 5=1 6=82944
|
||||
Split splitncnn_31 1 2 796 796_splitncnn_0 796_splitncnn_1
|
||||
Pooling ReduceMean_262 1 1 796_splitncnn_1 798 0=1 4=1
|
||||
InnerProduct Conv_263 1 1 798 801 0=16 2=1536 9=2 -23310=1,3.868800e-01
|
||||
InnerProduct Conv_265 1 1 801 803 0=96 2=1536 9=4
|
||||
BinaryOp Mul_267 2 1 796_splitncnn_0 803 804 0=2
|
||||
BinaryOp Add_268 2 1 804 790_splitncnn_0 805
|
||||
PReLU PRelu_269 1 1 805 807 0=96
|
||||
Split splitncnn_32 1 2 807 807_splitncnn_0 807_splitncnn_1
|
||||
Convolution Conv_270 1 1 807_splitncnn_1 809 0=96 1=5 4=2 5=1 6=230400
|
||||
PReLU PRelu_272 1 1 809 811 0=96
|
||||
Convolution Conv_273 1 1 811 813 0=96 1=3 4=1 5=1 6=82944
|
||||
Split splitncnn_33 1 2 813 813_splitncnn_0 813_splitncnn_1
|
||||
Pooling ReduceMean_276 1 1 813_splitncnn_1 815 0=1 4=1
|
||||
InnerProduct Conv_277 1 1 815 818 0=16 2=1536 9=2 -23310=1,3.475277e-01
|
||||
InnerProduct Conv_279 1 1 818 820 0=96 2=1536 9=4
|
||||
BinaryOp Mul_281 2 1 813_splitncnn_0 820 821 0=2
|
||||
BinaryOp Add_282 2 1 821 807_splitncnn_0 822
|
||||
PReLU PRelu_283 1 1 822 824 0=96
|
||||
Split splitncnn_34 1 2 824 824_splitncnn_0 824_splitncnn_1
|
||||
Convolution Conv_284 1 1 824_splitncnn_1 826 0=96 1=5 4=2 5=1 6=230400
|
||||
PReLU PRelu_286 1 1 826 828 0=96
|
||||
Convolution Conv_287 1 1 828 830 0=96 1=3 4=1 5=1 6=82944
|
||||
Split splitncnn_35 1 2 830 830_splitncnn_0 830_splitncnn_1
|
||||
Pooling ReduceMean_290 1 1 830_splitncnn_1 832 0=1 4=1
|
||||
InnerProduct Conv_291 1 1 832 835 0=16 2=1536 9=2 -23310=1,7.044167e-02
|
||||
InnerProduct Conv_293 1 1 835 837 0=96 2=1536 9=4
|
||||
BinaryOp Mul_295 2 1 830_splitncnn_0 837 838 0=2
|
||||
BinaryOp Add_296 2 1 838 824_splitncnn_0 839
|
||||
PReLU PRelu_297 1 1 839 841 0=96
|
||||
Split splitncnn_36 1 2 841 841_splitncnn_0 841_splitncnn_1
|
||||
Convolution Conv_298 1 1 841_splitncnn_1 843 0=96 1=5 4=2 5=1 6=230400
|
||||
PReLU PRelu_300 1 1 843 845 0=96
|
||||
Convolution Conv_301 1 1 845 847 0=96 1=3 4=1 5=1 6=82944
|
||||
Split splitncnn_37 1 2 847 847_splitncnn_0 847_splitncnn_1
|
||||
Pooling ReduceMean_304 1 1 847_splitncnn_1 849 0=1 4=1
|
||||
InnerProduct Conv_305 1 1 849 852 0=16 2=1536 9=2 -23310=1,1.834324e-01
|
||||
InnerProduct Conv_307 1 1 852 854 0=96 2=1536 9=4
|
||||
BinaryOp Mul_309 2 1 847_splitncnn_0 854 855 0=2
|
||||
BinaryOp Add_310 2 1 855 841_splitncnn_0 856
|
||||
PReLU PRelu_311 1 1 856 858 0=96
|
||||
Split splitncnn_38 1 2 858 858_splitncnn_0 858_splitncnn_1
|
||||
Convolution Conv_312 1 1 858_splitncnn_1 860 0=96 1=5 4=2 5=1 6=230400
|
||||
PReLU PRelu_314 1 1 860 862 0=96
|
||||
Convolution Conv_315 1 1 862 864 0=96 1=3 4=1 5=1 6=82944
|
||||
Split splitncnn_39 1 2 864 864_splitncnn_0 864_splitncnn_1
|
||||
Pooling ReduceMean_318 1 1 864_splitncnn_1 866 0=1 4=1
|
||||
InnerProduct Conv_319 1 1 866 869 0=16 2=1536 9=2 -23310=1,3.572731e-01
|
||||
InnerProduct Conv_321 1 1 869 871 0=96 2=1536 9=4
|
||||
BinaryOp Mul_323 2 1 864_splitncnn_0 871 872 0=2
|
||||
BinaryOp Add_324 2 1 872 858_splitncnn_0 873
|
||||
PReLU PRelu_325 1 1 873 875 0=96
|
||||
Convolution Conv_326 1 1 875 876 0=8 1=3 4=1 5=1 6=6912
|
||||
PixelShuffle DepthToSpace_327 1 1 876 877 0=2
|
||||
Interp Resize_329 1 1 877 887 0=2 1=2.000000e+00 2=2.000000e+00
|
||||
Split splitncnn_40 1 2 887 887_splitncnn_0 887_splitncnn_1
|
||||
BinaryOp Add_330 2 1 582_splitncnn_1 734_splitncnn_1 888
|
||||
BinaryOp Add_331 2 1 888 887_splitncnn_1 889
|
||||
Split splitncnn_41 1 3 889 889_splitncnn_0 889_splitncnn_1 889_splitncnn_2
|
||||
Crop Slice_336 1 1 454_splitncnn_1 894 -23309=1,0 -23310=1,3 -23311=1,0
|
||||
rife.Warp Warp_342 2 1 894 889_splitncnn_2 900
|
||||
Crop Slice_347 1 1 454_splitncnn_0 905 -23309=1,3 -23310=1,2147483647 -23311=1,0
|
||||
UnaryOp Neg_348 1 1 889_splitncnn_1 906 0=1
|
||||
rife.Warp Warp_354 2 1 905 906 912
|
||||
Concat Concat_355 3 1 900 912 889_splitncnn_0 913
|
||||
Convolution Conv_356 1 1 913 915 0=48 1=5 3=2 4=2 5=1 6=9600
|
||||
PReLU PRelu_358 1 1 915 917 0=48
|
||||
Split splitncnn_42 1 2 917 917_splitncnn_0 917_splitncnn_1
|
||||
Convolution Conv_359 1 1 917_splitncnn_1 919 0=48 1=5 4=2 5=1 6=57600
|
||||
PReLU PRelu_361 1 1 919 921 0=48
|
||||
Convolution Conv_362 1 1 921 923 0=48 1=3 4=1 5=1 6=20736
|
||||
Split splitncnn_43 1 2 923 923_splitncnn_0 923_splitncnn_1
|
||||
Pooling ReduceMean_365 1 1 923_splitncnn_1 925 0=1 4=1
|
||||
InnerProduct Conv_366 1 1 925 928 0=16 2=768 9=2 -23310=1,2.075541e-02
|
||||
InnerProduct Conv_368 1 1 928 930 0=48 2=768 9=4
|
||||
BinaryOp Mul_370 2 1 923_splitncnn_0 930 931 0=2
|
||||
BinaryOp Add_371 2 1 931 917_splitncnn_0 932
|
||||
PReLU PRelu_372 1 1 932 934 0=48
|
||||
Split splitncnn_44 1 2 934 934_splitncnn_0 934_splitncnn_1
|
||||
Convolution Conv_373 1 1 934_splitncnn_1 936 0=48 1=5 4=2 5=1 6=57600
|
||||
PReLU PRelu_375 1 1 936 938 0=48
|
||||
Convolution Conv_376 1 1 938 940 0=48 1=3 4=1 5=1 6=20736
|
||||
Split splitncnn_45 1 2 940 940_splitncnn_0 940_splitncnn_1
|
||||
Pooling ReduceMean_379 1 1 940_splitncnn_1 942 0=1 4=1
|
||||
InnerProduct Conv_380 1 1 942 945 0=16 2=768 9=2 -23310=1,7.201483e-01
|
||||
InnerProduct Conv_382 1 1 945 947 0=48 2=768 9=4
|
||||
BinaryOp Mul_384 2 1 940_splitncnn_0 947 948 0=2
|
||||
BinaryOp Add_385 2 1 948 934_splitncnn_0 949
|
||||
PReLU PRelu_386 1 1 949 951 0=48
|
||||
Split splitncnn_46 1 2 951 951_splitncnn_0 951_splitncnn_1
|
||||
Convolution Conv_387 1 1 951_splitncnn_1 953 0=48 1=5 4=2 5=1 6=57600
|
||||
PReLU PRelu_389 1 1 953 955 0=48
|
||||
Convolution Conv_390 1 1 955 957 0=48 1=3 4=1 5=1 6=20736
|
||||
Split splitncnn_47 1 2 957 957_splitncnn_0 957_splitncnn_1
|
||||
Pooling ReduceMean_393 1 1 957_splitncnn_1 959 0=1 4=1
|
||||
InnerProduct Conv_394 1 1 959 962 0=16 2=768 9=2 -23310=1,2.671039e-01
|
||||
InnerProduct Conv_396 1 1 962 964 0=48 2=768 9=4
|
||||
BinaryOp Mul_398 2 1 957_splitncnn_0 964 965 0=2
|
||||
BinaryOp Add_399 2 1 965 951_splitncnn_0 966
|
||||
PReLU PRelu_400 1 1 966 968 0=48
|
||||
Split splitncnn_48 1 2 968 968_splitncnn_0 968_splitncnn_1
|
||||
Convolution Conv_401 1 1 968_splitncnn_1 970 0=48 1=5 4=2 5=1 6=57600
|
||||
PReLU PRelu_403 1 1 970 972 0=48
|
||||
Convolution Conv_404 1 1 972 974 0=48 1=3 4=1 5=1 6=20736
|
||||
Split splitncnn_49 1 2 974 974_splitncnn_0 974_splitncnn_1
|
||||
Pooling ReduceMean_407 1 1 974_splitncnn_1 976 0=1 4=1
|
||||
InnerProduct Conv_408 1 1 976 979 0=16 2=768 9=2 -23310=1,1.908224e-01
|
||||
InnerProduct Conv_410 1 1 979 981 0=48 2=768 9=4
|
||||
BinaryOp Mul_412 2 1 974_splitncnn_0 981 982 0=2
|
||||
BinaryOp Add_413 2 1 982 968_splitncnn_0 983
|
||||
PReLU PRelu_414 1 1 983 985 0=48
|
||||
Split splitncnn_50 1 2 985 985_splitncnn_0 985_splitncnn_1
|
||||
Convolution Conv_415 1 1 985_splitncnn_1 987 0=48 1=5 4=2 5=1 6=57600
|
||||
PReLU PRelu_417 1 1 987 989 0=48
|
||||
Convolution Conv_418 1 1 989 991 0=48 1=3 4=1 5=1 6=20736
|
||||
Split splitncnn_51 1 2 991 991_splitncnn_0 991_splitncnn_1
|
||||
Pooling ReduceMean_421 1 1 991_splitncnn_1 993 0=1 4=1
|
||||
InnerProduct Conv_422 1 1 993 996 0=16 2=768 9=2 -23310=1,6.525763e-01
|
||||
InnerProduct Conv_424 1 1 996 998 0=48 2=768 9=4
|
||||
BinaryOp Mul_426 2 1 991_splitncnn_0 998 999 0=2
|
||||
BinaryOp Add_427 2 1 999 985_splitncnn_0 1000
|
||||
PReLU PRelu_428 1 1 1000 1002 0=48
|
||||
Split splitncnn_52 1 2 1002 1002_splitncnn_0 1002_splitncnn_1
|
||||
Convolution Conv_429 1 1 1002_splitncnn_1 1004 0=48 1=5 4=2 5=1 6=57600
|
||||
PReLU PRelu_431 1 1 1004 1006 0=48
|
||||
Convolution Conv_432 1 1 1006 1008 0=48 1=3 4=1 5=1 6=20736
|
||||
Split splitncnn_53 1 2 1008 1008_splitncnn_0 1008_splitncnn_1
|
||||
Pooling ReduceMean_435 1 1 1008_splitncnn_1 1010 0=1 4=1
|
||||
InnerProduct Conv_436 1 1 1010 1013 0=16 2=768 9=2 -23310=1,5.485489e-01
|
||||
InnerProduct Conv_438 1 1 1013 1015 0=48 2=768 9=4
|
||||
BinaryOp Mul_440 2 1 1008_splitncnn_0 1015 1016 0=2
|
||||
BinaryOp Add_441 2 1 1016 1002_splitncnn_0 1017
|
||||
PReLU PRelu_442 1 1 1017 1019 0=48
|
||||
Convolution Conv_443 1 1 1019 1020 0=8 1=3 4=1 5=1 6=3456
|
||||
PixelShuffle DepthToSpace_444 1 1 1020 1021 0=2
|
||||
BinaryOp Add_445 2 1 582_splitncnn_0 734_splitncnn_0 1022
|
||||
BinaryOp Add_446 2 1 1022 887_splitncnn_0 1023
|
||||
BinaryOp Add_447 2 1 1023 1021 flow
|
||||
BIN
models/rife/rife-HD/fusionnet.bin
vendored
Normal file
BIN
models/rife/rife-HD/fusionnet.bin
vendored
Normal file
Binary file not shown.
105
models/rife/rife-HD/fusionnet.param
vendored
Normal file
105
models/rife/rife-HD/fusionnet.param
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
7767517
|
||||
103 120
|
||||
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 77 0=2 1=2.000000e+00 2=2.000000e+00
|
||||
BinaryOp Mul_3 1 1 77 79 0=2 1=1 2=2.000000e+00
|
||||
Split splitncnn_0 1 3 79 79_splitncnn_0 79_splitncnn_1 79_splitncnn_2
|
||||
rife.Warp Warp_9 2 1 img0 79_splitncnn_2 85
|
||||
Split splitncnn_1 1 2 85 85_splitncnn_0 85_splitncnn_1
|
||||
UnaryOp Neg_10 1 1 79_splitncnn_1 86 0=1
|
||||
rife.Warp Warp_16 2 1 img1 86 92
|
||||
Split splitncnn_2 1 2 92 92_splitncnn_0 92_splitncnn_1
|
||||
Concat Concat_17 3 1 85_splitncnn_1 92_splitncnn_1 79_splitncnn_0 93
|
||||
Convolution Conv_18 1 1 93 94 0=32 1=3 3=2 4=1 5=1 6=2304
|
||||
PReLU PRelu_19 1 1 94 96 0=32
|
||||
Split splitncnn_3 1 2 96 96_splitncnn_0 96_splitncnn_1
|
||||
Convolution Conv_20 1 1 96_splitncnn_1 97 0=64 1=3 3=2 4=1 6=18432
|
||||
Convolution Conv_21 1 1 96_splitncnn_0 98 0=64 1=3 3=2 4=1 5=1 6=18432
|
||||
PReLU PRelu_22 1 1 98 100 0=64
|
||||
Convolution Conv_23 1 1 100 101 0=64 1=3 4=1 5=1 6=36864
|
||||
Split splitncnn_4 1 2 101 101_splitncnn_0 101_splitncnn_1
|
||||
Pooling ReduceMean_25 1 1 101_splitncnn_1 103 0=1 4=1
|
||||
InnerProduct Conv_26 1 1 103 106 0=16 2=1024 9=2 -23310=1,1.541520e-01
|
||||
InnerProduct Conv_28 1 1 106 108 0=64 2=1024 9=4
|
||||
BinaryOp Mul_30 2 1 101_splitncnn_0 108 109 0=2
|
||||
BinaryOp Add_31 2 1 109 97 110
|
||||
PReLU PRelu_32 1 1 110 112 0=64
|
||||
Split splitncnn_5 1 2 112 112_splitncnn_0 112_splitncnn_1
|
||||
Concat Concat_33 3 1 112_splitncnn_1 3 7 113
|
||||
Split splitncnn_6 1 2 113 113_splitncnn_0 113_splitncnn_1
|
||||
Convolution Conv_34 1 1 113_splitncnn_1 114 0=128 1=3 3=2 4=1 6=147456
|
||||
Convolution Conv_35 1 1 113_splitncnn_0 115 0=128 1=3 3=2 4=1 5=1 6=147456
|
||||
PReLU PRelu_36 1 1 115 117 0=128
|
||||
Convolution Conv_37 1 1 117 118 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_7 1 2 118 118_splitncnn_0 118_splitncnn_1
|
||||
Pooling ReduceMean_39 1 1 118_splitncnn_1 120 0=1 4=1
|
||||
InnerProduct Conv_40 1 1 120 123 0=16 2=2048 9=2 -23310=1,4.722085e-02
|
||||
InnerProduct Conv_42 1 1 123 125 0=128 2=2048 9=4
|
||||
BinaryOp Mul_44 2 1 118_splitncnn_0 125 126 0=2
|
||||
BinaryOp Add_45 2 1 126 114 127
|
||||
PReLU PRelu_46 1 1 127 129 0=128
|
||||
Split splitncnn_8 1 2 129 129_splitncnn_0 129_splitncnn_1
|
||||
Concat Concat_47 3 1 129_splitncnn_1 4 8 130
|
||||
Split splitncnn_9 1 2 130 130_splitncnn_0 130_splitncnn_1
|
||||
Convolution Conv_48 1 1 130_splitncnn_1 131 0=256 1=3 3=2 4=1 6=589824
|
||||
Convolution Conv_49 1 1 130_splitncnn_0 132 0=256 1=3 3=2 4=1 5=1 6=589824
|
||||
PReLU PRelu_50 1 1 132 134 0=256
|
||||
Convolution Conv_51 1 1 134 135 0=256 1=3 4=1 5=1 6=589824
|
||||
Split splitncnn_10 1 2 135 135_splitncnn_0 135_splitncnn_1
|
||||
Pooling ReduceMean_53 1 1 135_splitncnn_1 137 0=1 4=1
|
||||
InnerProduct Conv_54 1 1 137 140 0=16 2=4096 9=2 -23310=1,8.144739e-02
|
||||
InnerProduct Conv_56 1 1 140 142 0=256 2=4096 9=4
|
||||
BinaryOp Mul_58 2 1 135_splitncnn_0 142 143 0=2
|
||||
BinaryOp Add_59 2 1 143 131 144
|
||||
PReLU PRelu_60 1 1 144 146 0=256
|
||||
Split splitncnn_11 1 2 146 146_splitncnn_0 146_splitncnn_1
|
||||
Concat Concat_61 3 1 146_splitncnn_1 5 9 147
|
||||
Split splitncnn_12 1 2 147 147_splitncnn_0 147_splitncnn_1
|
||||
Convolution Conv_62 1 1 147_splitncnn_1 148 0=512 1=3 3=2 4=1 6=2359296
|
||||
Convolution Conv_63 1 1 147_splitncnn_0 149 0=512 1=3 3=2 4=1 5=1 6=2359296
|
||||
PReLU PRelu_64 1 1 149 151 0=512
|
||||
Convolution Conv_65 1 1 151 152 0=512 1=3 4=1 5=1 6=2359296
|
||||
Split splitncnn_13 1 2 152 152_splitncnn_0 152_splitncnn_1
|
||||
Pooling ReduceMean_67 1 1 152_splitncnn_1 154 0=1 4=1
|
||||
InnerProduct Conv_68 1 1 154 157 0=16 2=8192 9=2 -23310=1,7.700763e-02
|
||||
InnerProduct Conv_70 1 1 157 159 0=512 2=8192 9=4
|
||||
BinaryOp Mul_72 2 1 152_splitncnn_0 159 160 0=2
|
||||
BinaryOp Add_73 2 1 160 148 161
|
||||
PReLU PRelu_74 1 1 161 163 0=512
|
||||
Concat Concat_75 3 1 163 6 10 164
|
||||
Deconvolution ConvTranspose_76 1 1 164 165 0=256 1=4 3=2 4=1 5=1 6=4194304
|
||||
PReLU PRelu_77 1 1 165 167 0=256
|
||||
Concat Concat_78 2 1 167 146_splitncnn_0 168
|
||||
Deconvolution ConvTranspose_79 1 1 168 169 0=128 1=4 3=2 4=1 5=1 6=1048576
|
||||
PReLU PRelu_80 1 1 169 171 0=128
|
||||
Concat Concat_81 2 1 171 129_splitncnn_0 172
|
||||
Deconvolution ConvTranspose_82 1 1 172 173 0=64 1=4 3=2 4=1 5=1 6=262144
|
||||
PReLU PRelu_83 1 1 173 175 0=64
|
||||
Concat Concat_84 2 1 175 112_splitncnn_0 176
|
||||
Deconvolution ConvTranspose_85 1 1 176 177 0=32 1=4 3=2 4=1 5=1 6=65536
|
||||
PReLU PRelu_86 1 1 177 179 0=32
|
||||
Convolution Conv_87 1 1 179 180 0=16 1=3 4=1 5=1 6=4608
|
||||
PixelShuffle DepthToSpace_88 1 1 180 181 0=2
|
||||
Sigmoid Sigmoid_89 1 1 181 182
|
||||
Split splitncnn_14 1 2 182 182_splitncnn_0 182_splitncnn_1
|
||||
Crop Slice_94 1 1 182_splitncnn_1 187 -23309=1,0 -23310=1,3 -23311=1,0
|
||||
BinaryOp Mul_96 1 1 187 189 0=2 1=1 2=2.000000e+00
|
||||
BinaryOp Sub_98 1 1 189 191 0=1 1=1 2=1.000000e+00
|
||||
Crop Slice_103 1 1 182_splitncnn_0 196 -23309=1,3 -23310=1,4 -23311=1,0
|
||||
Split splitncnn_15 1 2 196 196_splitncnn_0 196_splitncnn_1
|
||||
BinaryOp Mul_104 2 1 85_splitncnn_0 196_splitncnn_1 197 0=2
|
||||
BinaryOp Sub_106 1 1 196_splitncnn_0 199 0=7 1=1 2=1.000000e+00
|
||||
BinaryOp Mul_107 2 1 92_splitncnn_0 199 200 0=2
|
||||
BinaryOp Add_108 2 1 197 200 201
|
||||
BinaryOp Add_109 2 1 201 191 202
|
||||
Clip Clip_110 1 1 202 output 0=0.000000e+00 1=1.000000e+00
|
||||
BIN
models/rife/rife-UHD/contextnet.bin
vendored
Normal file
BIN
models/rife/rife-UHD/contextnet.bin
vendored
Normal file
Binary file not shown.
70
models/rife/rife-UHD/contextnet.param
vendored
Normal file
70
models/rife/rife-UHD/contextnet.param
vendored
Normal file
@@ -0,0 +1,70 @@
|
||||
7767517
|
||||
68 82
|
||||
Input input.1 0 1 input.1
|
||||
Input flow.1 0 1 flow.1
|
||||
UnaryOp flow.0 1 1 flow.1 flow.0 0=1
|
||||
Convolution Conv_0 1 1 input.1 45 0=32 1=3 3=2 4=1 5=1 6=864
|
||||
PReLU PRelu_1 1 1 45 47 0=32
|
||||
Split splitncnn_0 1 2 47 47_splitncnn_0 47_splitncnn_1
|
||||
Convolution Conv_2 1 1 47_splitncnn_1 48 0=32 1=3 3=2 4=1 6=9216
|
||||
Convolution Conv_3 1 1 47_splitncnn_0 49 0=32 1=3 3=2 4=1 5=1 6=9216
|
||||
PReLU PRelu_4 1 1 49 51 0=32
|
||||
Convolution Conv_5 1 1 51 52 0=32 1=3 4=1 5=1 6=9216
|
||||
Split splitncnn_1 1 2 52 52_splitncnn_0 52_splitncnn_1
|
||||
Pooling ReduceMean_7 1 1 52_splitncnn_1 54 0=1 4=1
|
||||
InnerProduct Conv_8 1 1 54 57 0=16 2=512 9=2 -23310=1,1.143919e+00
|
||||
InnerProduct Conv_10 1 1 57 59 0=32 2=512 9=4
|
||||
BinaryOp Mul_12 2 1 52_splitncnn_0 59 60 0=2
|
||||
BinaryOp Add_13 2 1 60 48 61
|
||||
PReLU PRelu_14 1 1 61 63 0=32
|
||||
Split splitncnn_2 1 3 63 63_splitncnn_0 63_splitncnn_1 63_splitncnn_2
|
||||
Interp Resize_16 1 1 flow.0 73 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
BinaryOp Mul_18 1 1 73 75 0=2 1=1 2=5.000000e-01
|
||||
Split splitncnn_3 1 2 75 75_splitncnn_0 75_splitncnn_1
|
||||
rife.Warp Warp_24 2 1 63_splitncnn_2 75_splitncnn_1 f1
|
||||
Convolution Conv_25 1 1 63_splitncnn_1 82 0=64 1=3 3=2 4=1 6=18432
|
||||
Convolution Conv_26 1 1 63_splitncnn_0 83 0=64 1=3 3=2 4=1 5=1 6=18432
|
||||
PReLU PRelu_27 1 1 83 85 0=64
|
||||
Convolution Conv_28 1 1 85 86 0=64 1=3 4=1 5=1 6=36864
|
||||
Split splitncnn_4 1 2 86 86_splitncnn_0 86_splitncnn_1
|
||||
Pooling ReduceMean_30 1 1 86_splitncnn_1 88 0=1 4=1
|
||||
InnerProduct Conv_31 1 1 88 91 0=16 2=1024 9=2 -23310=1,3.006833e-01
|
||||
InnerProduct Conv_33 1 1 91 93 0=64 2=1024 9=4
|
||||
BinaryOp Mul_35 2 1 86_splitncnn_0 93 94 0=2
|
||||
BinaryOp Add_36 2 1 94 82 95
|
||||
PReLU PRelu_37 1 1 95 97 0=64
|
||||
Split splitncnn_5 1 3 97 97_splitncnn_0 97_splitncnn_1 97_splitncnn_2
|
||||
Interp Resize_39 1 1 75_splitncnn_0 107 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
BinaryOp Mul_41 1 1 107 109 0=2 1=1 2=5.000000e-01
|
||||
Split splitncnn_6 1 2 109 109_splitncnn_0 109_splitncnn_1
|
||||
rife.Warp Warp_47 2 1 97_splitncnn_2 109_splitncnn_1 f2
|
||||
Convolution Conv_48 1 1 97_splitncnn_1 116 0=128 1=3 3=2 4=1 6=73728
|
||||
Convolution Conv_49 1 1 97_splitncnn_0 117 0=128 1=3 3=2 4=1 5=1 6=73728
|
||||
PReLU PRelu_50 1 1 117 119 0=128
|
||||
Convolution Conv_51 1 1 119 120 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_7 1 2 120 120_splitncnn_0 120_splitncnn_1
|
||||
Pooling ReduceMean_53 1 1 120_splitncnn_1 122 0=1 4=1
|
||||
InnerProduct Conv_54 1 1 122 125 0=16 2=2048 9=2 -23310=1,7.002444e-02
|
||||
InnerProduct Conv_56 1 1 125 127 0=128 2=2048 9=4
|
||||
BinaryOp Mul_58 2 1 120_splitncnn_0 127 128 0=2
|
||||
BinaryOp Add_59 2 1 128 116 129
|
||||
PReLU PRelu_60 1 1 129 131 0=128
|
||||
Split splitncnn_8 1 3 131 131_splitncnn_0 131_splitncnn_1 131_splitncnn_2
|
||||
Interp Resize_62 1 1 109_splitncnn_0 141 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
BinaryOp Mul_64 1 1 141 143 0=2 1=1 2=5.000000e-01
|
||||
Split splitncnn_9 1 2 143 143_splitncnn_0 143_splitncnn_1
|
||||
rife.Warp Warp_70 2 1 131_splitncnn_2 143_splitncnn_1 f3
|
||||
Convolution Conv_71 1 1 131_splitncnn_1 150 0=256 1=3 3=2 4=1 6=294912
|
||||
Convolution Conv_72 1 1 131_splitncnn_0 151 0=256 1=3 3=2 4=1 5=1 6=294912
|
||||
PReLU PRelu_73 1 1 151 153 0=256
|
||||
Convolution Conv_74 1 1 153 154 0=256 1=3 4=1 5=1 6=589824
|
||||
Split splitncnn_10 1 2 154 154_splitncnn_0 154_splitncnn_1
|
||||
Pooling ReduceMean_76 1 1 154_splitncnn_1 156 0=1 4=1
|
||||
InnerProduct Conv_77 1 1 156 159 0=16 2=4096 9=2 -23310=1,6.568319e-02
|
||||
InnerProduct Conv_79 1 1 159 161 0=256 2=4096 9=4
|
||||
BinaryOp Mul_81 2 1 154_splitncnn_0 161 162 0=2
|
||||
BinaryOp Add_82 2 1 162 150 163
|
||||
PReLU PRelu_83 1 1 163 165 0=256
|
||||
Interp Resize_85 1 1 143_splitncnn_0 175 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
BinaryOp Mul_87 1 1 175 177 0=2 1=1 2=5.000000e-01
|
||||
rife.Warp Warp_93 2 1 165 177 f4
|
||||
BIN
models/rife/rife-UHD/flownet.bin
vendored
Normal file
BIN
models/rife/rife-UHD/flownet.bin
vendored
Normal file
Binary file not shown.
322
models/rife/rife-UHD/flownet.param
vendored
Normal file
322
models/rife/rife-UHD/flownet.param
vendored
Normal file
@@ -0,0 +1,322 @@
|
||||
7767517
|
||||
320 386
|
||||
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 454 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
Split splitncnn_0 1 7 454 454_splitncnn_0 454_splitncnn_1 454_splitncnn_2 454_splitncnn_3 454_splitncnn_4 454_splitncnn_5 454_splitncnn_6
|
||||
Interp Resize_3 1 1 454_splitncnn_6 464 0=2 1=1.250000e-01 2=1.250000e-01
|
||||
Convolution Conv_4 1 1 464 466 0=192 1=5 3=2 4=2 5=1 6=28800
|
||||
PReLU PRelu_6 1 1 466 468 0=192
|
||||
Split splitncnn_1 1 2 468 468_splitncnn_0 468_splitncnn_1
|
||||
Convolution Conv_7 1 1 468_splitncnn_1 470 0=192 1=5 4=2 5=1 6=921600
|
||||
PReLU PRelu_9 1 1 470 472 0=192
|
||||
Convolution Conv_10 1 1 472 474 0=192 1=3 4=1 5=1 6=331776
|
||||
Split splitncnn_2 1 2 474 474_splitncnn_0 474_splitncnn_1
|
||||
Pooling ReduceMean_13 1 1 474_splitncnn_1 476 0=1 4=1
|
||||
InnerProduct Conv_14 1 1 476 479 0=16 2=3072 9=2 -23310=1,1.428942e-02
|
||||
InnerProduct Conv_16 1 1 479 481 0=192 2=3072 9=4
|
||||
BinaryOp Mul_18 2 1 474_splitncnn_0 481 482 0=2
|
||||
BinaryOp Add_19 2 1 482 468_splitncnn_0 483
|
||||
PReLU PRelu_20 1 1 483 485 0=192
|
||||
Split splitncnn_3 1 2 485 485_splitncnn_0 485_splitncnn_1
|
||||
Convolution Conv_21 1 1 485_splitncnn_1 487 0=192 1=5 4=2 5=1 6=921600
|
||||
PReLU PRelu_23 1 1 487 489 0=192
|
||||
Convolution Conv_24 1 1 489 491 0=192 1=3 4=1 5=1 6=331776
|
||||
Split splitncnn_4 1 2 491 491_splitncnn_0 491_splitncnn_1
|
||||
Pooling ReduceMean_27 1 1 491_splitncnn_1 493 0=1 4=1
|
||||
InnerProduct Conv_28 1 1 493 496 0=16 2=3072 9=2 -23310=1,3.543398e-01
|
||||
InnerProduct Conv_30 1 1 496 498 0=192 2=3072 9=4
|
||||
BinaryOp Mul_32 2 1 491_splitncnn_0 498 499 0=2
|
||||
BinaryOp Add_33 2 1 499 485_splitncnn_0 500
|
||||
PReLU PRelu_34 1 1 500 502 0=192
|
||||
Split splitncnn_5 1 2 502 502_splitncnn_0 502_splitncnn_1
|
||||
Convolution Conv_35 1 1 502_splitncnn_1 504 0=192 1=5 4=2 5=1 6=921600
|
||||
PReLU PRelu_37 1 1 504 506 0=192
|
||||
Convolution Conv_38 1 1 506 508 0=192 1=3 4=1 5=1 6=331776
|
||||
Split splitncnn_6 1 2 508 508_splitncnn_0 508_splitncnn_1
|
||||
Pooling ReduceMean_41 1 1 508_splitncnn_1 510 0=1 4=1
|
||||
InnerProduct Conv_42 1 1 510 513 0=16 2=3072 9=2 -23310=1,5.366787e-01
|
||||
InnerProduct Conv_44 1 1 513 515 0=192 2=3072 9=4
|
||||
BinaryOp Mul_46 2 1 508_splitncnn_0 515 516 0=2
|
||||
BinaryOp Add_47 2 1 516 502_splitncnn_0 517
|
||||
PReLU PRelu_48 1 1 517 519 0=192
|
||||
Split splitncnn_7 1 2 519 519_splitncnn_0 519_splitncnn_1
|
||||
Convolution Conv_49 1 1 519_splitncnn_1 521 0=192 1=5 4=2 5=1 6=921600
|
||||
PReLU PRelu_51 1 1 521 523 0=192
|
||||
Convolution Conv_52 1 1 523 525 0=192 1=3 4=1 5=1 6=331776
|
||||
Split splitncnn_8 1 2 525 525_splitncnn_0 525_splitncnn_1
|
||||
Pooling ReduceMean_55 1 1 525_splitncnn_1 527 0=1 4=1
|
||||
InnerProduct Conv_56 1 1 527 530 0=16 2=3072 9=2 -23310=1,-4.889974e-03
|
||||
InnerProduct Conv_58 1 1 530 532 0=192 2=3072 9=4
|
||||
BinaryOp Mul_60 2 1 525_splitncnn_0 532 533 0=2
|
||||
BinaryOp Add_61 2 1 533 519_splitncnn_0 534
|
||||
PReLU PRelu_62 1 1 534 536 0=192
|
||||
Split splitncnn_9 1 2 536 536_splitncnn_0 536_splitncnn_1
|
||||
Convolution Conv_63 1 1 536_splitncnn_1 538 0=192 1=5 4=2 5=1 6=921600
|
||||
PReLU PRelu_65 1 1 538 540 0=192
|
||||
Convolution Conv_66 1 1 540 542 0=192 1=3 4=1 5=1 6=331776
|
||||
Split splitncnn_10 1 2 542 542_splitncnn_0 542_splitncnn_1
|
||||
Pooling ReduceMean_69 1 1 542_splitncnn_1 544 0=1 4=1
|
||||
InnerProduct Conv_70 1 1 544 547 0=16 2=3072 9=2 -23310=1,-1.182169e-02
|
||||
InnerProduct Conv_72 1 1 547 549 0=192 2=3072 9=4
|
||||
BinaryOp Mul_74 2 1 542_splitncnn_0 549 550 0=2
|
||||
BinaryOp Add_75 2 1 550 536_splitncnn_0 551
|
||||
PReLU PRelu_76 1 1 551 553 0=192
|
||||
Split splitncnn_11 1 2 553 553_splitncnn_0 553_splitncnn_1
|
||||
Convolution Conv_77 1 1 553_splitncnn_1 555 0=192 1=5 4=2 5=1 6=921600
|
||||
PReLU PRelu_79 1 1 555 557 0=192
|
||||
Convolution Conv_80 1 1 557 559 0=192 1=3 4=1 5=1 6=331776
|
||||
Split splitncnn_12 1 2 559 559_splitncnn_0 559_splitncnn_1
|
||||
Pooling ReduceMean_83 1 1 559_splitncnn_1 561 0=1 4=1
|
||||
InnerProduct Conv_84 1 1 561 564 0=16 2=3072 9=2 -23310=1,2.179182e-01
|
||||
InnerProduct Conv_86 1 1 564 566 0=192 2=3072 9=4
|
||||
BinaryOp Mul_88 2 1 559_splitncnn_0 566 567 0=2
|
||||
BinaryOp Add_89 2 1 567 553_splitncnn_0 568
|
||||
PReLU PRelu_90 1 1 568 570 0=192
|
||||
Convolution Conv_91 1 1 570 571 0=8 1=3 4=1 5=1 6=13824
|
||||
PixelShuffle DepthToSpace_92 1 1 571 572 0=2
|
||||
Interp Resize_94 1 1 572 582 0=2 1=8.000000e+00 2=8.000000e+00
|
||||
Split splitncnn_13 1 6 582 582_splitncnn_0 582_splitncnn_1 582_splitncnn_2 582_splitncnn_3 582_splitncnn_4 582_splitncnn_5
|
||||
Crop Slice_99 1 1 454_splitncnn_5 587 -23309=1,0 -23310=1,3 -23311=1,0
|
||||
rife.Warp Warp_105 2 1 587 582_splitncnn_5 593
|
||||
Crop Slice_110 1 1 454_splitncnn_4 598 -23309=1,3 -23310=1,2147483647 -23311=1,0
|
||||
UnaryOp Neg_111 1 1 582_splitncnn_4 599 0=1
|
||||
rife.Warp Warp_117 2 1 598 599 605
|
||||
Concat Concat_118 3 1 593 605 582_splitncnn_3 606
|
||||
Interp Resize_120 1 1 606 616 0=2 1=2.500000e-01 2=2.500000e-01
|
||||
Convolution Conv_121 1 1 616 618 0=128 1=5 3=2 4=2 5=1 6=25600
|
||||
PReLU PRelu_123 1 1 618 620 0=128
|
||||
Split splitncnn_14 1 2 620 620_splitncnn_0 620_splitncnn_1
|
||||
Convolution Conv_124 1 1 620_splitncnn_1 622 0=128 1=5 4=2 5=1 6=409600
|
||||
PReLU PRelu_126 1 1 622 624 0=128
|
||||
Convolution Conv_127 1 1 624 626 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_15 1 2 626 626_splitncnn_0 626_splitncnn_1
|
||||
Pooling ReduceMean_130 1 1 626_splitncnn_1 628 0=1 4=1
|
||||
InnerProduct Conv_131 1 1 628 631 0=16 2=2048 9=2 -23310=1,-3.599843e-03
|
||||
InnerProduct Conv_133 1 1 631 633 0=128 2=2048 9=4
|
||||
BinaryOp Mul_135 2 1 626_splitncnn_0 633 634 0=2
|
||||
BinaryOp Add_136 2 1 634 620_splitncnn_0 635
|
||||
PReLU PRelu_137 1 1 635 637 0=128
|
||||
Split splitncnn_16 1 2 637 637_splitncnn_0 637_splitncnn_1
|
||||
Convolution Conv_138 1 1 637_splitncnn_1 639 0=128 1=5 4=2 5=1 6=409600
|
||||
PReLU PRelu_140 1 1 639 641 0=128
|
||||
Convolution Conv_141 1 1 641 643 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_17 1 2 643 643_splitncnn_0 643_splitncnn_1
|
||||
Pooling ReduceMean_144 1 1 643_splitncnn_1 645 0=1 4=1
|
||||
InnerProduct Conv_145 1 1 645 648 0=16 2=2048 9=2 -23310=1,2.117399e-01
|
||||
InnerProduct Conv_147 1 1 648 650 0=128 2=2048 9=4
|
||||
BinaryOp Mul_149 2 1 643_splitncnn_0 650 651 0=2
|
||||
BinaryOp Add_150 2 1 651 637_splitncnn_0 652
|
||||
PReLU PRelu_151 1 1 652 654 0=128
|
||||
Split splitncnn_18 1 2 654 654_splitncnn_0 654_splitncnn_1
|
||||
Convolution Conv_152 1 1 654_splitncnn_1 656 0=128 1=5 4=2 5=1 6=409600
|
||||
PReLU PRelu_154 1 1 656 658 0=128
|
||||
Convolution Conv_155 1 1 658 660 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_19 1 2 660 660_splitncnn_0 660_splitncnn_1
|
||||
Pooling ReduceMean_158 1 1 660_splitncnn_1 662 0=1 4=1
|
||||
InnerProduct Conv_159 1 1 662 665 0=16 2=2048 9=2 -23310=1,2.712289e-01
|
||||
InnerProduct Conv_161 1 1 665 667 0=128 2=2048 9=4
|
||||
BinaryOp Mul_163 2 1 660_splitncnn_0 667 668 0=2
|
||||
BinaryOp Add_164 2 1 668 654_splitncnn_0 669
|
||||
PReLU PRelu_165 1 1 669 671 0=128
|
||||
Split splitncnn_20 1 2 671 671_splitncnn_0 671_splitncnn_1
|
||||
Convolution Conv_166 1 1 671_splitncnn_1 673 0=128 1=5 4=2 5=1 6=409600
|
||||
PReLU PRelu_168 1 1 673 675 0=128
|
||||
Convolution Conv_169 1 1 675 677 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_21 1 2 677 677_splitncnn_0 677_splitncnn_1
|
||||
Pooling ReduceMean_172 1 1 677_splitncnn_1 679 0=1 4=1
|
||||
InnerProduct Conv_173 1 1 679 682 0=16 2=2048 9=2 -23310=1,8.141350e-02
|
||||
InnerProduct Conv_175 1 1 682 684 0=128 2=2048 9=4
|
||||
BinaryOp Mul_177 2 1 677_splitncnn_0 684 685 0=2
|
||||
BinaryOp Add_178 2 1 685 671_splitncnn_0 686
|
||||
PReLU PRelu_179 1 1 686 688 0=128
|
||||
Split splitncnn_22 1 2 688 688_splitncnn_0 688_splitncnn_1
|
||||
Convolution Conv_180 1 1 688_splitncnn_1 690 0=128 1=5 4=2 5=1 6=409600
|
||||
PReLU PRelu_182 1 1 690 692 0=128
|
||||
Convolution Conv_183 1 1 692 694 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_23 1 2 694 694_splitncnn_0 694_splitncnn_1
|
||||
Pooling ReduceMean_186 1 1 694_splitncnn_1 696 0=1 4=1
|
||||
InnerProduct Conv_187 1 1 696 699 0=16 2=2048 9=2 -23310=1,4.956326e-02
|
||||
InnerProduct Conv_189 1 1 699 701 0=128 2=2048 9=4
|
||||
BinaryOp Mul_191 2 1 694_splitncnn_0 701 702 0=2
|
||||
BinaryOp Add_192 2 1 702 688_splitncnn_0 703
|
||||
PReLU PRelu_193 1 1 703 705 0=128
|
||||
Split splitncnn_24 1 2 705 705_splitncnn_0 705_splitncnn_1
|
||||
Convolution Conv_194 1 1 705_splitncnn_1 707 0=128 1=5 4=2 5=1 6=409600
|
||||
PReLU PRelu_196 1 1 707 709 0=128
|
||||
Convolution Conv_197 1 1 709 711 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_25 1 2 711 711_splitncnn_0 711_splitncnn_1
|
||||
Pooling ReduceMean_200 1 1 711_splitncnn_1 713 0=1 4=1
|
||||
InnerProduct Conv_201 1 1 713 716 0=16 2=2048 9=2 -23310=1,1.553750e-01
|
||||
InnerProduct Conv_203 1 1 716 718 0=128 2=2048 9=4
|
||||
BinaryOp Mul_205 2 1 711_splitncnn_0 718 719 0=2
|
||||
BinaryOp Add_206 2 1 719 705_splitncnn_0 720
|
||||
PReLU PRelu_207 1 1 720 722 0=128
|
||||
Convolution Conv_208 1 1 722 723 0=8 1=3 4=1 5=1 6=9216
|
||||
PixelShuffle DepthToSpace_209 1 1 723 724 0=2
|
||||
Interp Resize_211 1 1 724 734 0=2 1=4.000000e+00 2=4.000000e+00
|
||||
Split splitncnn_26 1 3 734 734_splitncnn_0 734_splitncnn_1 734_splitncnn_2
|
||||
BinaryOp Add_212 2 1 582_splitncnn_2 734_splitncnn_2 735
|
||||
Split splitncnn_27 1 3 735 735_splitncnn_0 735_splitncnn_1 735_splitncnn_2
|
||||
Crop Slice_217 1 1 454_splitncnn_3 740 -23309=1,0 -23310=1,3 -23311=1,0
|
||||
rife.Warp Warp_223 2 1 740 735_splitncnn_2 746
|
||||
Crop Slice_228 1 1 454_splitncnn_2 751 -23309=1,3 -23310=1,2147483647 -23311=1,0
|
||||
UnaryOp Neg_229 1 1 735_splitncnn_1 752 0=1
|
||||
rife.Warp Warp_235 2 1 751 752 758
|
||||
Concat Concat_236 3 1 746 758 735_splitncnn_0 759
|
||||
Interp Resize_238 1 1 759 769 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
Convolution Conv_239 1 1 769 771 0=96 1=5 3=2 4=2 5=1 6=19200
|
||||
PReLU PRelu_241 1 1 771 773 0=96
|
||||
Split splitncnn_28 1 2 773 773_splitncnn_0 773_splitncnn_1
|
||||
Convolution Conv_242 1 1 773_splitncnn_1 775 0=96 1=5 4=2 5=1 6=230400
|
||||
PReLU PRelu_244 1 1 775 777 0=96
|
||||
Convolution Conv_245 1 1 777 779 0=96 1=3 4=1 5=1 6=82944
|
||||
Split splitncnn_29 1 2 779 779_splitncnn_0 779_splitncnn_1
|
||||
Pooling ReduceMean_248 1 1 779_splitncnn_1 781 0=1 4=1
|
||||
InnerProduct Conv_249 1 1 781 784 0=16 2=1536 9=2 -23310=1,1.670981e-03
|
||||
InnerProduct Conv_251 1 1 784 786 0=96 2=1536 9=4
|
||||
BinaryOp Mul_253 2 1 779_splitncnn_0 786 787 0=2
|
||||
BinaryOp Add_254 2 1 787 773_splitncnn_0 788
|
||||
PReLU PRelu_255 1 1 788 790 0=96
|
||||
Split splitncnn_30 1 2 790 790_splitncnn_0 790_splitncnn_1
|
||||
Convolution Conv_256 1 1 790_splitncnn_1 792 0=96 1=5 4=2 5=1 6=230400
|
||||
PReLU PRelu_258 1 1 792 794 0=96
|
||||
Convolution Conv_259 1 1 794 796 0=96 1=3 4=1 5=1 6=82944
|
||||
Split splitncnn_31 1 2 796 796_splitncnn_0 796_splitncnn_1
|
||||
Pooling ReduceMean_262 1 1 796_splitncnn_1 798 0=1 4=1
|
||||
InnerProduct Conv_263 1 1 798 801 0=16 2=1536 9=2 -23310=1,3.868800e-01
|
||||
InnerProduct Conv_265 1 1 801 803 0=96 2=1536 9=4
|
||||
BinaryOp Mul_267 2 1 796_splitncnn_0 803 804 0=2
|
||||
BinaryOp Add_268 2 1 804 790_splitncnn_0 805
|
||||
PReLU PRelu_269 1 1 805 807 0=96
|
||||
Split splitncnn_32 1 2 807 807_splitncnn_0 807_splitncnn_1
|
||||
Convolution Conv_270 1 1 807_splitncnn_1 809 0=96 1=5 4=2 5=1 6=230400
|
||||
PReLU PRelu_272 1 1 809 811 0=96
|
||||
Convolution Conv_273 1 1 811 813 0=96 1=3 4=1 5=1 6=82944
|
||||
Split splitncnn_33 1 2 813 813_splitncnn_0 813_splitncnn_1
|
||||
Pooling ReduceMean_276 1 1 813_splitncnn_1 815 0=1 4=1
|
||||
InnerProduct Conv_277 1 1 815 818 0=16 2=1536 9=2 -23310=1,3.475277e-01
|
||||
InnerProduct Conv_279 1 1 818 820 0=96 2=1536 9=4
|
||||
BinaryOp Mul_281 2 1 813_splitncnn_0 820 821 0=2
|
||||
BinaryOp Add_282 2 1 821 807_splitncnn_0 822
|
||||
PReLU PRelu_283 1 1 822 824 0=96
|
||||
Split splitncnn_34 1 2 824 824_splitncnn_0 824_splitncnn_1
|
||||
Convolution Conv_284 1 1 824_splitncnn_1 826 0=96 1=5 4=2 5=1 6=230400
|
||||
PReLU PRelu_286 1 1 826 828 0=96
|
||||
Convolution Conv_287 1 1 828 830 0=96 1=3 4=1 5=1 6=82944
|
||||
Split splitncnn_35 1 2 830 830_splitncnn_0 830_splitncnn_1
|
||||
Pooling ReduceMean_290 1 1 830_splitncnn_1 832 0=1 4=1
|
||||
InnerProduct Conv_291 1 1 832 835 0=16 2=1536 9=2 -23310=1,7.044167e-02
|
||||
InnerProduct Conv_293 1 1 835 837 0=96 2=1536 9=4
|
||||
BinaryOp Mul_295 2 1 830_splitncnn_0 837 838 0=2
|
||||
BinaryOp Add_296 2 1 838 824_splitncnn_0 839
|
||||
PReLU PRelu_297 1 1 839 841 0=96
|
||||
Split splitncnn_36 1 2 841 841_splitncnn_0 841_splitncnn_1
|
||||
Convolution Conv_298 1 1 841_splitncnn_1 843 0=96 1=5 4=2 5=1 6=230400
|
||||
PReLU PRelu_300 1 1 843 845 0=96
|
||||
Convolution Conv_301 1 1 845 847 0=96 1=3 4=1 5=1 6=82944
|
||||
Split splitncnn_37 1 2 847 847_splitncnn_0 847_splitncnn_1
|
||||
Pooling ReduceMean_304 1 1 847_splitncnn_1 849 0=1 4=1
|
||||
InnerProduct Conv_305 1 1 849 852 0=16 2=1536 9=2 -23310=1,1.834324e-01
|
||||
InnerProduct Conv_307 1 1 852 854 0=96 2=1536 9=4
|
||||
BinaryOp Mul_309 2 1 847_splitncnn_0 854 855 0=2
|
||||
BinaryOp Add_310 2 1 855 841_splitncnn_0 856
|
||||
PReLU PRelu_311 1 1 856 858 0=96
|
||||
Split splitncnn_38 1 2 858 858_splitncnn_0 858_splitncnn_1
|
||||
Convolution Conv_312 1 1 858_splitncnn_1 860 0=96 1=5 4=2 5=1 6=230400
|
||||
PReLU PRelu_314 1 1 860 862 0=96
|
||||
Convolution Conv_315 1 1 862 864 0=96 1=3 4=1 5=1 6=82944
|
||||
Split splitncnn_39 1 2 864 864_splitncnn_0 864_splitncnn_1
|
||||
Pooling ReduceMean_318 1 1 864_splitncnn_1 866 0=1 4=1
|
||||
InnerProduct Conv_319 1 1 866 869 0=16 2=1536 9=2 -23310=1,3.572731e-01
|
||||
InnerProduct Conv_321 1 1 869 871 0=96 2=1536 9=4
|
||||
BinaryOp Mul_323 2 1 864_splitncnn_0 871 872 0=2
|
||||
BinaryOp Add_324 2 1 872 858_splitncnn_0 873
|
||||
PReLU PRelu_325 1 1 873 875 0=96
|
||||
Convolution Conv_326 1 1 875 876 0=8 1=3 4=1 5=1 6=6912
|
||||
PixelShuffle DepthToSpace_327 1 1 876 877 0=2
|
||||
Interp Resize_329 1 1 877 887 0=2 1=2.000000e+00 2=2.000000e+00
|
||||
Split splitncnn_40 1 2 887 887_splitncnn_0 887_splitncnn_1
|
||||
BinaryOp Add_330 2 1 582_splitncnn_1 734_splitncnn_1 888
|
||||
BinaryOp Add_331 2 1 888 887_splitncnn_1 889
|
||||
Split splitncnn_41 1 3 889 889_splitncnn_0 889_splitncnn_1 889_splitncnn_2
|
||||
Crop Slice_336 1 1 454_splitncnn_1 894 -23309=1,0 -23310=1,3 -23311=1,0
|
||||
rife.Warp Warp_342 2 1 894 889_splitncnn_2 900
|
||||
Crop Slice_347 1 1 454_splitncnn_0 905 -23309=1,3 -23310=1,2147483647 -23311=1,0
|
||||
UnaryOp Neg_348 1 1 889_splitncnn_1 906 0=1
|
||||
rife.Warp Warp_354 2 1 905 906 912
|
||||
Concat Concat_355 3 1 900 912 889_splitncnn_0 913
|
||||
Convolution Conv_356 1 1 913 915 0=48 1=5 3=2 4=2 5=1 6=9600
|
||||
PReLU PRelu_358 1 1 915 917 0=48
|
||||
Split splitncnn_42 1 2 917 917_splitncnn_0 917_splitncnn_1
|
||||
Convolution Conv_359 1 1 917_splitncnn_1 919 0=48 1=5 4=2 5=1 6=57600
|
||||
PReLU PRelu_361 1 1 919 921 0=48
|
||||
Convolution Conv_362 1 1 921 923 0=48 1=3 4=1 5=1 6=20736
|
||||
Split splitncnn_43 1 2 923 923_splitncnn_0 923_splitncnn_1
|
||||
Pooling ReduceMean_365 1 1 923_splitncnn_1 925 0=1 4=1
|
||||
InnerProduct Conv_366 1 1 925 928 0=16 2=768 9=2 -23310=1,2.075541e-02
|
||||
InnerProduct Conv_368 1 1 928 930 0=48 2=768 9=4
|
||||
BinaryOp Mul_370 2 1 923_splitncnn_0 930 931 0=2
|
||||
BinaryOp Add_371 2 1 931 917_splitncnn_0 932
|
||||
PReLU PRelu_372 1 1 932 934 0=48
|
||||
Split splitncnn_44 1 2 934 934_splitncnn_0 934_splitncnn_1
|
||||
Convolution Conv_373 1 1 934_splitncnn_1 936 0=48 1=5 4=2 5=1 6=57600
|
||||
PReLU PRelu_375 1 1 936 938 0=48
|
||||
Convolution Conv_376 1 1 938 940 0=48 1=3 4=1 5=1 6=20736
|
||||
Split splitncnn_45 1 2 940 940_splitncnn_0 940_splitncnn_1
|
||||
Pooling ReduceMean_379 1 1 940_splitncnn_1 942 0=1 4=1
|
||||
InnerProduct Conv_380 1 1 942 945 0=16 2=768 9=2 -23310=1,7.201483e-01
|
||||
InnerProduct Conv_382 1 1 945 947 0=48 2=768 9=4
|
||||
BinaryOp Mul_384 2 1 940_splitncnn_0 947 948 0=2
|
||||
BinaryOp Add_385 2 1 948 934_splitncnn_0 949
|
||||
PReLU PRelu_386 1 1 949 951 0=48
|
||||
Split splitncnn_46 1 2 951 951_splitncnn_0 951_splitncnn_1
|
||||
Convolution Conv_387 1 1 951_splitncnn_1 953 0=48 1=5 4=2 5=1 6=57600
|
||||
PReLU PRelu_389 1 1 953 955 0=48
|
||||
Convolution Conv_390 1 1 955 957 0=48 1=3 4=1 5=1 6=20736
|
||||
Split splitncnn_47 1 2 957 957_splitncnn_0 957_splitncnn_1
|
||||
Pooling ReduceMean_393 1 1 957_splitncnn_1 959 0=1 4=1
|
||||
InnerProduct Conv_394 1 1 959 962 0=16 2=768 9=2 -23310=1,2.671039e-01
|
||||
InnerProduct Conv_396 1 1 962 964 0=48 2=768 9=4
|
||||
BinaryOp Mul_398 2 1 957_splitncnn_0 964 965 0=2
|
||||
BinaryOp Add_399 2 1 965 951_splitncnn_0 966
|
||||
PReLU PRelu_400 1 1 966 968 0=48
|
||||
Split splitncnn_48 1 2 968 968_splitncnn_0 968_splitncnn_1
|
||||
Convolution Conv_401 1 1 968_splitncnn_1 970 0=48 1=5 4=2 5=1 6=57600
|
||||
PReLU PRelu_403 1 1 970 972 0=48
|
||||
Convolution Conv_404 1 1 972 974 0=48 1=3 4=1 5=1 6=20736
|
||||
Split splitncnn_49 1 2 974 974_splitncnn_0 974_splitncnn_1
|
||||
Pooling ReduceMean_407 1 1 974_splitncnn_1 976 0=1 4=1
|
||||
InnerProduct Conv_408 1 1 976 979 0=16 2=768 9=2 -23310=1,1.908224e-01
|
||||
InnerProduct Conv_410 1 1 979 981 0=48 2=768 9=4
|
||||
BinaryOp Mul_412 2 1 974_splitncnn_0 981 982 0=2
|
||||
BinaryOp Add_413 2 1 982 968_splitncnn_0 983
|
||||
PReLU PRelu_414 1 1 983 985 0=48
|
||||
Split splitncnn_50 1 2 985 985_splitncnn_0 985_splitncnn_1
|
||||
Convolution Conv_415 1 1 985_splitncnn_1 987 0=48 1=5 4=2 5=1 6=57600
|
||||
PReLU PRelu_417 1 1 987 989 0=48
|
||||
Convolution Conv_418 1 1 989 991 0=48 1=3 4=1 5=1 6=20736
|
||||
Split splitncnn_51 1 2 991 991_splitncnn_0 991_splitncnn_1
|
||||
Pooling ReduceMean_421 1 1 991_splitncnn_1 993 0=1 4=1
|
||||
InnerProduct Conv_422 1 1 993 996 0=16 2=768 9=2 -23310=1,6.525763e-01
|
||||
InnerProduct Conv_424 1 1 996 998 0=48 2=768 9=4
|
||||
BinaryOp Mul_426 2 1 991_splitncnn_0 998 999 0=2
|
||||
BinaryOp Add_427 2 1 999 985_splitncnn_0 1000
|
||||
PReLU PRelu_428 1 1 1000 1002 0=48
|
||||
Split splitncnn_52 1 2 1002 1002_splitncnn_0 1002_splitncnn_1
|
||||
Convolution Conv_429 1 1 1002_splitncnn_1 1004 0=48 1=5 4=2 5=1 6=57600
|
||||
PReLU PRelu_431 1 1 1004 1006 0=48
|
||||
Convolution Conv_432 1 1 1006 1008 0=48 1=3 4=1 5=1 6=20736
|
||||
Split splitncnn_53 1 2 1008 1008_splitncnn_0 1008_splitncnn_1
|
||||
Pooling ReduceMean_435 1 1 1008_splitncnn_1 1010 0=1 4=1
|
||||
InnerProduct Conv_436 1 1 1010 1013 0=16 2=768 9=2 -23310=1,5.485489e-01
|
||||
InnerProduct Conv_438 1 1 1013 1015 0=48 2=768 9=4
|
||||
BinaryOp Mul_440 2 1 1008_splitncnn_0 1015 1016 0=2
|
||||
BinaryOp Add_441 2 1 1016 1002_splitncnn_0 1017
|
||||
PReLU PRelu_442 1 1 1017 1019 0=48
|
||||
Convolution Conv_443 1 1 1019 1020 0=8 1=3 4=1 5=1 6=3456
|
||||
PixelShuffle DepthToSpace_444 1 1 1020 1021 0=2
|
||||
BinaryOp Add_445 2 1 582_splitncnn_0 734_splitncnn_0 1022
|
||||
BinaryOp Add_446 2 1 1022 887_splitncnn_0 1023
|
||||
BinaryOp Add_447 2 1 1023 1021 flow
|
||||
BIN
models/rife/rife-UHD/fusionnet.bin
vendored
Normal file
BIN
models/rife/rife-UHD/fusionnet.bin
vendored
Normal file
Binary file not shown.
105
models/rife/rife-UHD/fusionnet.param
vendored
Normal file
105
models/rife/rife-UHD/fusionnet.param
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
7767517
|
||||
103 120
|
||||
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 77 0=2 1=2.000000e+00 2=2.000000e+00
|
||||
BinaryOp Mul_3 1 1 77 79 0=2 1=1 2=2.000000e+00
|
||||
Split splitncnn_0 1 3 79 79_splitncnn_0 79_splitncnn_1 79_splitncnn_2
|
||||
rife.Warp Warp_9 2 1 img0 79_splitncnn_2 85
|
||||
Split splitncnn_1 1 2 85 85_splitncnn_0 85_splitncnn_1
|
||||
UnaryOp Neg_10 1 1 79_splitncnn_1 86 0=1
|
||||
rife.Warp Warp_16 2 1 img1 86 92
|
||||
Split splitncnn_2 1 2 92 92_splitncnn_0 92_splitncnn_1
|
||||
Concat Concat_17 3 1 85_splitncnn_1 92_splitncnn_1 79_splitncnn_0 93
|
||||
Convolution Conv_18 1 1 93 94 0=32 1=3 3=2 4=1 5=1 6=2304
|
||||
PReLU PRelu_19 1 1 94 96 0=32
|
||||
Split splitncnn_3 1 2 96 96_splitncnn_0 96_splitncnn_1
|
||||
Convolution Conv_20 1 1 96_splitncnn_1 97 0=64 1=3 3=2 4=1 6=18432
|
||||
Convolution Conv_21 1 1 96_splitncnn_0 98 0=64 1=3 3=2 4=1 5=1 6=18432
|
||||
PReLU PRelu_22 1 1 98 100 0=64
|
||||
Convolution Conv_23 1 1 100 101 0=64 1=3 4=1 5=1 6=36864
|
||||
Split splitncnn_4 1 2 101 101_splitncnn_0 101_splitncnn_1
|
||||
Pooling ReduceMean_25 1 1 101_splitncnn_1 103 0=1 4=1
|
||||
InnerProduct Conv_26 1 1 103 106 0=16 2=1024 9=2 -23310=1,1.541520e-01
|
||||
InnerProduct Conv_28 1 1 106 108 0=64 2=1024 9=4
|
||||
BinaryOp Mul_30 2 1 101_splitncnn_0 108 109 0=2
|
||||
BinaryOp Add_31 2 1 109 97 110
|
||||
PReLU PRelu_32 1 1 110 112 0=64
|
||||
Split splitncnn_5 1 2 112 112_splitncnn_0 112_splitncnn_1
|
||||
Concat Concat_33 3 1 112_splitncnn_1 3 7 113
|
||||
Split splitncnn_6 1 2 113 113_splitncnn_0 113_splitncnn_1
|
||||
Convolution Conv_34 1 1 113_splitncnn_1 114 0=128 1=3 3=2 4=1 6=147456
|
||||
Convolution Conv_35 1 1 113_splitncnn_0 115 0=128 1=3 3=2 4=1 5=1 6=147456
|
||||
PReLU PRelu_36 1 1 115 117 0=128
|
||||
Convolution Conv_37 1 1 117 118 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_7 1 2 118 118_splitncnn_0 118_splitncnn_1
|
||||
Pooling ReduceMean_39 1 1 118_splitncnn_1 120 0=1 4=1
|
||||
InnerProduct Conv_40 1 1 120 123 0=16 2=2048 9=2 -23310=1,4.722085e-02
|
||||
InnerProduct Conv_42 1 1 123 125 0=128 2=2048 9=4
|
||||
BinaryOp Mul_44 2 1 118_splitncnn_0 125 126 0=2
|
||||
BinaryOp Add_45 2 1 126 114 127
|
||||
PReLU PRelu_46 1 1 127 129 0=128
|
||||
Split splitncnn_8 1 2 129 129_splitncnn_0 129_splitncnn_1
|
||||
Concat Concat_47 3 1 129_splitncnn_1 4 8 130
|
||||
Split splitncnn_9 1 2 130 130_splitncnn_0 130_splitncnn_1
|
||||
Convolution Conv_48 1 1 130_splitncnn_1 131 0=256 1=3 3=2 4=1 6=589824
|
||||
Convolution Conv_49 1 1 130_splitncnn_0 132 0=256 1=3 3=2 4=1 5=1 6=589824
|
||||
PReLU PRelu_50 1 1 132 134 0=256
|
||||
Convolution Conv_51 1 1 134 135 0=256 1=3 4=1 5=1 6=589824
|
||||
Split splitncnn_10 1 2 135 135_splitncnn_0 135_splitncnn_1
|
||||
Pooling ReduceMean_53 1 1 135_splitncnn_1 137 0=1 4=1
|
||||
InnerProduct Conv_54 1 1 137 140 0=16 2=4096 9=2 -23310=1,8.144739e-02
|
||||
InnerProduct Conv_56 1 1 140 142 0=256 2=4096 9=4
|
||||
BinaryOp Mul_58 2 1 135_splitncnn_0 142 143 0=2
|
||||
BinaryOp Add_59 2 1 143 131 144
|
||||
PReLU PRelu_60 1 1 144 146 0=256
|
||||
Split splitncnn_11 1 2 146 146_splitncnn_0 146_splitncnn_1
|
||||
Concat Concat_61 3 1 146_splitncnn_1 5 9 147
|
||||
Split splitncnn_12 1 2 147 147_splitncnn_0 147_splitncnn_1
|
||||
Convolution Conv_62 1 1 147_splitncnn_1 148 0=512 1=3 3=2 4=1 6=2359296
|
||||
Convolution Conv_63 1 1 147_splitncnn_0 149 0=512 1=3 3=2 4=1 5=1 6=2359296
|
||||
PReLU PRelu_64 1 1 149 151 0=512
|
||||
Convolution Conv_65 1 1 151 152 0=512 1=3 4=1 5=1 6=2359296
|
||||
Split splitncnn_13 1 2 152 152_splitncnn_0 152_splitncnn_1
|
||||
Pooling ReduceMean_67 1 1 152_splitncnn_1 154 0=1 4=1
|
||||
InnerProduct Conv_68 1 1 154 157 0=16 2=8192 9=2 -23310=1,7.700763e-02
|
||||
InnerProduct Conv_70 1 1 157 159 0=512 2=8192 9=4
|
||||
BinaryOp Mul_72 2 1 152_splitncnn_0 159 160 0=2
|
||||
BinaryOp Add_73 2 1 160 148 161
|
||||
PReLU PRelu_74 1 1 161 163 0=512
|
||||
Concat Concat_75 3 1 163 6 10 164
|
||||
Deconvolution ConvTranspose_76 1 1 164 165 0=256 1=4 3=2 4=1 5=1 6=4194304
|
||||
PReLU PRelu_77 1 1 165 167 0=256
|
||||
Concat Concat_78 2 1 167 146_splitncnn_0 168
|
||||
Deconvolution ConvTranspose_79 1 1 168 169 0=128 1=4 3=2 4=1 5=1 6=1048576
|
||||
PReLU PRelu_80 1 1 169 171 0=128
|
||||
Concat Concat_81 2 1 171 129_splitncnn_0 172
|
||||
Deconvolution ConvTranspose_82 1 1 172 173 0=64 1=4 3=2 4=1 5=1 6=262144
|
||||
PReLU PRelu_83 1 1 173 175 0=64
|
||||
Concat Concat_84 2 1 175 112_splitncnn_0 176
|
||||
Deconvolution ConvTranspose_85 1 1 176 177 0=32 1=4 3=2 4=1 5=1 6=65536
|
||||
PReLU PRelu_86 1 1 177 179 0=32
|
||||
Convolution Conv_87 1 1 179 180 0=16 1=3 4=1 5=1 6=4608
|
||||
PixelShuffle DepthToSpace_88 1 1 180 181 0=2
|
||||
Sigmoid Sigmoid_89 1 1 181 182
|
||||
Split splitncnn_14 1 2 182 182_splitncnn_0 182_splitncnn_1
|
||||
Crop Slice_94 1 1 182_splitncnn_1 187 -23309=1,0 -23310=1,3 -23311=1,0
|
||||
BinaryOp Mul_96 1 1 187 189 0=2 1=1 2=2.000000e+00
|
||||
BinaryOp Sub_98 1 1 189 191 0=1 1=1 2=1.000000e+00
|
||||
Crop Slice_103 1 1 182_splitncnn_0 196 -23309=1,3 -23310=1,4 -23311=1,0
|
||||
Split splitncnn_15 1 2 196 196_splitncnn_0 196_splitncnn_1
|
||||
BinaryOp Mul_104 2 1 85_splitncnn_0 196_splitncnn_1 197 0=2
|
||||
BinaryOp Sub_106 1 1 196_splitncnn_0 199 0=7 1=1 2=1.000000e+00
|
||||
BinaryOp Mul_107 2 1 92_splitncnn_0 199 200 0=2
|
||||
BinaryOp Add_108 2 1 197 200 201
|
||||
BinaryOp Add_109 2 1 201 191 202
|
||||
Clip Clip_110 1 1 202 output 0=0.000000e+00 1=1.000000e+00
|
||||
BIN
models/rife/rife-anime/contextnet.bin
vendored
Normal file
BIN
models/rife/rife-anime/contextnet.bin
vendored
Normal file
Binary file not shown.
70
models/rife/rife-anime/contextnet.param
vendored
Normal file
70
models/rife/rife-anime/contextnet.param
vendored
Normal file
@@ -0,0 +1,70 @@
|
||||
7767517
|
||||
68 82
|
||||
Input input.1 0 1 input.1
|
||||
Input flow.1 0 1 flow.1
|
||||
UnaryOp flow.0 1 1 flow.1 flow.0 0=1
|
||||
Convolution Conv_0 1 1 input.1 45 0=32 1=3 3=2 4=1 5=1 6=864
|
||||
PReLU PRelu_1 1 1 45 47 0=32
|
||||
Split splitncnn_0 1 2 47 47_splitncnn_0 47_splitncnn_1
|
||||
Convolution Conv_2 1 1 47_splitncnn_1 48 0=32 1=3 3=2 4=1 6=9216
|
||||
Convolution Conv_3 1 1 47_splitncnn_0 49 0=32 1=3 3=2 4=1 5=1 6=9216
|
||||
PReLU PRelu_4 1 1 49 51 0=32
|
||||
Convolution Conv_5 1 1 51 52 0=32 1=3 4=1 5=1 6=9216
|
||||
Split splitncnn_1 1 2 52 52_splitncnn_0 52_splitncnn_1
|
||||
Pooling ReduceMean_7 1 1 52_splitncnn_1 54 0=1 4=1
|
||||
InnerProduct Conv_8 1 1 54 57 0=16 2=512 9=2 -23310=1,1.143919e+00
|
||||
InnerProduct Conv_10 1 1 57 59 0=32 2=512 9=4
|
||||
BinaryOp Mul_12 2 1 52_splitncnn_0 59 60 0=2
|
||||
BinaryOp Add_13 2 1 60 48 61
|
||||
PReLU PRelu_14 1 1 61 63 0=32
|
||||
Split splitncnn_2 1 3 63 63_splitncnn_0 63_splitncnn_1 63_splitncnn_2
|
||||
Interp Resize_16 1 1 flow.0 73 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
BinaryOp Mul_18 1 1 73 75 0=2 1=1 2=5.000000e-01
|
||||
Split splitncnn_3 1 2 75 75_splitncnn_0 75_splitncnn_1
|
||||
rife.Warp Warp_24 2 1 63_splitncnn_2 75_splitncnn_1 f1
|
||||
Convolution Conv_25 1 1 63_splitncnn_1 82 0=64 1=3 3=2 4=1 6=18432
|
||||
Convolution Conv_26 1 1 63_splitncnn_0 83 0=64 1=3 3=2 4=1 5=1 6=18432
|
||||
PReLU PRelu_27 1 1 83 85 0=64
|
||||
Convolution Conv_28 1 1 85 86 0=64 1=3 4=1 5=1 6=36864
|
||||
Split splitncnn_4 1 2 86 86_splitncnn_0 86_splitncnn_1
|
||||
Pooling ReduceMean_30 1 1 86_splitncnn_1 88 0=1 4=1
|
||||
InnerProduct Conv_31 1 1 88 91 0=16 2=1024 9=2 -23310=1,3.006833e-01
|
||||
InnerProduct Conv_33 1 1 91 93 0=64 2=1024 9=4
|
||||
BinaryOp Mul_35 2 1 86_splitncnn_0 93 94 0=2
|
||||
BinaryOp Add_36 2 1 94 82 95
|
||||
PReLU PRelu_37 1 1 95 97 0=64
|
||||
Split splitncnn_5 1 3 97 97_splitncnn_0 97_splitncnn_1 97_splitncnn_2
|
||||
Interp Resize_39 1 1 75_splitncnn_0 107 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
BinaryOp Mul_41 1 1 107 109 0=2 1=1 2=5.000000e-01
|
||||
Split splitncnn_6 1 2 109 109_splitncnn_0 109_splitncnn_1
|
||||
rife.Warp Warp_47 2 1 97_splitncnn_2 109_splitncnn_1 f2
|
||||
Convolution Conv_48 1 1 97_splitncnn_1 116 0=128 1=3 3=2 4=1 6=73728
|
||||
Convolution Conv_49 1 1 97_splitncnn_0 117 0=128 1=3 3=2 4=1 5=1 6=73728
|
||||
PReLU PRelu_50 1 1 117 119 0=128
|
||||
Convolution Conv_51 1 1 119 120 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_7 1 2 120 120_splitncnn_0 120_splitncnn_1
|
||||
Pooling ReduceMean_53 1 1 120_splitncnn_1 122 0=1 4=1
|
||||
InnerProduct Conv_54 1 1 122 125 0=16 2=2048 9=2 -23310=1,7.002444e-02
|
||||
InnerProduct Conv_56 1 1 125 127 0=128 2=2048 9=4
|
||||
BinaryOp Mul_58 2 1 120_splitncnn_0 127 128 0=2
|
||||
BinaryOp Add_59 2 1 128 116 129
|
||||
PReLU PRelu_60 1 1 129 131 0=128
|
||||
Split splitncnn_8 1 3 131 131_splitncnn_0 131_splitncnn_1 131_splitncnn_2
|
||||
Interp Resize_62 1 1 109_splitncnn_0 141 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
BinaryOp Mul_64 1 1 141 143 0=2 1=1 2=5.000000e-01
|
||||
Split splitncnn_9 1 2 143 143_splitncnn_0 143_splitncnn_1
|
||||
rife.Warp Warp_70 2 1 131_splitncnn_2 143_splitncnn_1 f3
|
||||
Convolution Conv_71 1 1 131_splitncnn_1 150 0=256 1=3 3=2 4=1 6=294912
|
||||
Convolution Conv_72 1 1 131_splitncnn_0 151 0=256 1=3 3=2 4=1 5=1 6=294912
|
||||
PReLU PRelu_73 1 1 151 153 0=256
|
||||
Convolution Conv_74 1 1 153 154 0=256 1=3 4=1 5=1 6=589824
|
||||
Split splitncnn_10 1 2 154 154_splitncnn_0 154_splitncnn_1
|
||||
Pooling ReduceMean_76 1 1 154_splitncnn_1 156 0=1 4=1
|
||||
InnerProduct Conv_77 1 1 156 159 0=16 2=4096 9=2 -23310=1,6.568319e-02
|
||||
InnerProduct Conv_79 1 1 159 161 0=256 2=4096 9=4
|
||||
BinaryOp Mul_81 2 1 154_splitncnn_0 161 162 0=2
|
||||
BinaryOp Add_82 2 1 162 150 163
|
||||
PReLU PRelu_83 1 1 163 165 0=256
|
||||
Interp Resize_85 1 1 143_splitncnn_0 175 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
BinaryOp Mul_87 1 1 175 177 0=2 1=1 2=5.000000e-01
|
||||
rife.Warp Warp_93 2 1 165 177 f4
|
||||
BIN
models/rife/rife-anime/flownet.bin
vendored
Normal file
BIN
models/rife/rife-anime/flownet.bin
vendored
Normal file
Binary file not shown.
322
models/rife/rife-anime/flownet.param
vendored
Normal file
322
models/rife/rife-anime/flownet.param
vendored
Normal file
@@ -0,0 +1,322 @@
|
||||
7767517
|
||||
320 386
|
||||
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 454 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
Split splitncnn_0 1 7 454 454_splitncnn_0 454_splitncnn_1 454_splitncnn_2 454_splitncnn_3 454_splitncnn_4 454_splitncnn_5 454_splitncnn_6
|
||||
Interp Resize_3 1 1 454_splitncnn_6 464 0=2 1=1.250000e-01 2=1.250000e-01
|
||||
Convolution Conv_4 1 1 464 466 0=192 1=5 3=2 4=2 5=1 6=28800
|
||||
PReLU PRelu_6 1 1 466 468 0=192
|
||||
Split splitncnn_1 1 2 468 468_splitncnn_0 468_splitncnn_1
|
||||
Convolution Conv_7 1 1 468_splitncnn_1 470 0=192 1=5 4=2 5=1 6=921600
|
||||
PReLU PRelu_9 1 1 470 472 0=192
|
||||
Convolution Conv_10 1 1 472 474 0=192 1=3 4=1 5=1 6=331776
|
||||
Split splitncnn_2 1 2 474 474_splitncnn_0 474_splitncnn_1
|
||||
Pooling ReduceMean_13 1 1 474_splitncnn_1 476 0=1 4=1
|
||||
InnerProduct Conv_14 1 1 476 479 0=16 2=3072 9=2 -23310=1,1.428942e-02
|
||||
InnerProduct Conv_16 1 1 479 481 0=192 2=3072 9=4
|
||||
BinaryOp Mul_18 2 1 474_splitncnn_0 481 482 0=2
|
||||
BinaryOp Add_19 2 1 482 468_splitncnn_0 483
|
||||
PReLU PRelu_20 1 1 483 485 0=192
|
||||
Split splitncnn_3 1 2 485 485_splitncnn_0 485_splitncnn_1
|
||||
Convolution Conv_21 1 1 485_splitncnn_1 487 0=192 1=5 4=2 5=1 6=921600
|
||||
PReLU PRelu_23 1 1 487 489 0=192
|
||||
Convolution Conv_24 1 1 489 491 0=192 1=3 4=1 5=1 6=331776
|
||||
Split splitncnn_4 1 2 491 491_splitncnn_0 491_splitncnn_1
|
||||
Pooling ReduceMean_27 1 1 491_splitncnn_1 493 0=1 4=1
|
||||
InnerProduct Conv_28 1 1 493 496 0=16 2=3072 9=2 -23310=1,3.543398e-01
|
||||
InnerProduct Conv_30 1 1 496 498 0=192 2=3072 9=4
|
||||
BinaryOp Mul_32 2 1 491_splitncnn_0 498 499 0=2
|
||||
BinaryOp Add_33 2 1 499 485_splitncnn_0 500
|
||||
PReLU PRelu_34 1 1 500 502 0=192
|
||||
Split splitncnn_5 1 2 502 502_splitncnn_0 502_splitncnn_1
|
||||
Convolution Conv_35 1 1 502_splitncnn_1 504 0=192 1=5 4=2 5=1 6=921600
|
||||
PReLU PRelu_37 1 1 504 506 0=192
|
||||
Convolution Conv_38 1 1 506 508 0=192 1=3 4=1 5=1 6=331776
|
||||
Split splitncnn_6 1 2 508 508_splitncnn_0 508_splitncnn_1
|
||||
Pooling ReduceMean_41 1 1 508_splitncnn_1 510 0=1 4=1
|
||||
InnerProduct Conv_42 1 1 510 513 0=16 2=3072 9=2 -23310=1,5.366787e-01
|
||||
InnerProduct Conv_44 1 1 513 515 0=192 2=3072 9=4
|
||||
BinaryOp Mul_46 2 1 508_splitncnn_0 515 516 0=2
|
||||
BinaryOp Add_47 2 1 516 502_splitncnn_0 517
|
||||
PReLU PRelu_48 1 1 517 519 0=192
|
||||
Split splitncnn_7 1 2 519 519_splitncnn_0 519_splitncnn_1
|
||||
Convolution Conv_49 1 1 519_splitncnn_1 521 0=192 1=5 4=2 5=1 6=921600
|
||||
PReLU PRelu_51 1 1 521 523 0=192
|
||||
Convolution Conv_52 1 1 523 525 0=192 1=3 4=1 5=1 6=331776
|
||||
Split splitncnn_8 1 2 525 525_splitncnn_0 525_splitncnn_1
|
||||
Pooling ReduceMean_55 1 1 525_splitncnn_1 527 0=1 4=1
|
||||
InnerProduct Conv_56 1 1 527 530 0=16 2=3072 9=2 -23310=1,-4.889974e-03
|
||||
InnerProduct Conv_58 1 1 530 532 0=192 2=3072 9=4
|
||||
BinaryOp Mul_60 2 1 525_splitncnn_0 532 533 0=2
|
||||
BinaryOp Add_61 2 1 533 519_splitncnn_0 534
|
||||
PReLU PRelu_62 1 1 534 536 0=192
|
||||
Split splitncnn_9 1 2 536 536_splitncnn_0 536_splitncnn_1
|
||||
Convolution Conv_63 1 1 536_splitncnn_1 538 0=192 1=5 4=2 5=1 6=921600
|
||||
PReLU PRelu_65 1 1 538 540 0=192
|
||||
Convolution Conv_66 1 1 540 542 0=192 1=3 4=1 5=1 6=331776
|
||||
Split splitncnn_10 1 2 542 542_splitncnn_0 542_splitncnn_1
|
||||
Pooling ReduceMean_69 1 1 542_splitncnn_1 544 0=1 4=1
|
||||
InnerProduct Conv_70 1 1 544 547 0=16 2=3072 9=2 -23310=1,-1.182169e-02
|
||||
InnerProduct Conv_72 1 1 547 549 0=192 2=3072 9=4
|
||||
BinaryOp Mul_74 2 1 542_splitncnn_0 549 550 0=2
|
||||
BinaryOp Add_75 2 1 550 536_splitncnn_0 551
|
||||
PReLU PRelu_76 1 1 551 553 0=192
|
||||
Split splitncnn_11 1 2 553 553_splitncnn_0 553_splitncnn_1
|
||||
Convolution Conv_77 1 1 553_splitncnn_1 555 0=192 1=5 4=2 5=1 6=921600
|
||||
PReLU PRelu_79 1 1 555 557 0=192
|
||||
Convolution Conv_80 1 1 557 559 0=192 1=3 4=1 5=1 6=331776
|
||||
Split splitncnn_12 1 2 559 559_splitncnn_0 559_splitncnn_1
|
||||
Pooling ReduceMean_83 1 1 559_splitncnn_1 561 0=1 4=1
|
||||
InnerProduct Conv_84 1 1 561 564 0=16 2=3072 9=2 -23310=1,2.179182e-01
|
||||
InnerProduct Conv_86 1 1 564 566 0=192 2=3072 9=4
|
||||
BinaryOp Mul_88 2 1 559_splitncnn_0 566 567 0=2
|
||||
BinaryOp Add_89 2 1 567 553_splitncnn_0 568
|
||||
PReLU PRelu_90 1 1 568 570 0=192
|
||||
Convolution Conv_91 1 1 570 571 0=8 1=3 4=1 5=1 6=13824
|
||||
PixelShuffle DepthToSpace_92 1 1 571 572 0=2
|
||||
Interp Resize_94 1 1 572 582 0=2 1=8.000000e+00 2=8.000000e+00
|
||||
Split splitncnn_13 1 6 582 582_splitncnn_0 582_splitncnn_1 582_splitncnn_2 582_splitncnn_3 582_splitncnn_4 582_splitncnn_5
|
||||
Crop Slice_99 1 1 454_splitncnn_5 587 -23309=1,0 -23310=1,3 -23311=1,0
|
||||
rife.Warp Warp_105 2 1 587 582_splitncnn_5 593
|
||||
Crop Slice_110 1 1 454_splitncnn_4 598 -23309=1,3 -23310=1,2147483647 -23311=1,0
|
||||
UnaryOp Neg_111 1 1 582_splitncnn_4 599 0=1
|
||||
rife.Warp Warp_117 2 1 598 599 605
|
||||
Concat Concat_118 3 1 593 605 582_splitncnn_3 606
|
||||
Interp Resize_120 1 1 606 616 0=2 1=2.500000e-01 2=2.500000e-01
|
||||
Convolution Conv_121 1 1 616 618 0=128 1=5 3=2 4=2 5=1 6=25600
|
||||
PReLU PRelu_123 1 1 618 620 0=128
|
||||
Split splitncnn_14 1 2 620 620_splitncnn_0 620_splitncnn_1
|
||||
Convolution Conv_124 1 1 620_splitncnn_1 622 0=128 1=5 4=2 5=1 6=409600
|
||||
PReLU PRelu_126 1 1 622 624 0=128
|
||||
Convolution Conv_127 1 1 624 626 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_15 1 2 626 626_splitncnn_0 626_splitncnn_1
|
||||
Pooling ReduceMean_130 1 1 626_splitncnn_1 628 0=1 4=1
|
||||
InnerProduct Conv_131 1 1 628 631 0=16 2=2048 9=2 -23310=1,-3.599843e-03
|
||||
InnerProduct Conv_133 1 1 631 633 0=128 2=2048 9=4
|
||||
BinaryOp Mul_135 2 1 626_splitncnn_0 633 634 0=2
|
||||
BinaryOp Add_136 2 1 634 620_splitncnn_0 635
|
||||
PReLU PRelu_137 1 1 635 637 0=128
|
||||
Split splitncnn_16 1 2 637 637_splitncnn_0 637_splitncnn_1
|
||||
Convolution Conv_138 1 1 637_splitncnn_1 639 0=128 1=5 4=2 5=1 6=409600
|
||||
PReLU PRelu_140 1 1 639 641 0=128
|
||||
Convolution Conv_141 1 1 641 643 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_17 1 2 643 643_splitncnn_0 643_splitncnn_1
|
||||
Pooling ReduceMean_144 1 1 643_splitncnn_1 645 0=1 4=1
|
||||
InnerProduct Conv_145 1 1 645 648 0=16 2=2048 9=2 -23310=1,2.117399e-01
|
||||
InnerProduct Conv_147 1 1 648 650 0=128 2=2048 9=4
|
||||
BinaryOp Mul_149 2 1 643_splitncnn_0 650 651 0=2
|
||||
BinaryOp Add_150 2 1 651 637_splitncnn_0 652
|
||||
PReLU PRelu_151 1 1 652 654 0=128
|
||||
Split splitncnn_18 1 2 654 654_splitncnn_0 654_splitncnn_1
|
||||
Convolution Conv_152 1 1 654_splitncnn_1 656 0=128 1=5 4=2 5=1 6=409600
|
||||
PReLU PRelu_154 1 1 656 658 0=128
|
||||
Convolution Conv_155 1 1 658 660 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_19 1 2 660 660_splitncnn_0 660_splitncnn_1
|
||||
Pooling ReduceMean_158 1 1 660_splitncnn_1 662 0=1 4=1
|
||||
InnerProduct Conv_159 1 1 662 665 0=16 2=2048 9=2 -23310=1,2.712289e-01
|
||||
InnerProduct Conv_161 1 1 665 667 0=128 2=2048 9=4
|
||||
BinaryOp Mul_163 2 1 660_splitncnn_0 667 668 0=2
|
||||
BinaryOp Add_164 2 1 668 654_splitncnn_0 669
|
||||
PReLU PRelu_165 1 1 669 671 0=128
|
||||
Split splitncnn_20 1 2 671 671_splitncnn_0 671_splitncnn_1
|
||||
Convolution Conv_166 1 1 671_splitncnn_1 673 0=128 1=5 4=2 5=1 6=409600
|
||||
PReLU PRelu_168 1 1 673 675 0=128
|
||||
Convolution Conv_169 1 1 675 677 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_21 1 2 677 677_splitncnn_0 677_splitncnn_1
|
||||
Pooling ReduceMean_172 1 1 677_splitncnn_1 679 0=1 4=1
|
||||
InnerProduct Conv_173 1 1 679 682 0=16 2=2048 9=2 -23310=1,8.141350e-02
|
||||
InnerProduct Conv_175 1 1 682 684 0=128 2=2048 9=4
|
||||
BinaryOp Mul_177 2 1 677_splitncnn_0 684 685 0=2
|
||||
BinaryOp Add_178 2 1 685 671_splitncnn_0 686
|
||||
PReLU PRelu_179 1 1 686 688 0=128
|
||||
Split splitncnn_22 1 2 688 688_splitncnn_0 688_splitncnn_1
|
||||
Convolution Conv_180 1 1 688_splitncnn_1 690 0=128 1=5 4=2 5=1 6=409600
|
||||
PReLU PRelu_182 1 1 690 692 0=128
|
||||
Convolution Conv_183 1 1 692 694 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_23 1 2 694 694_splitncnn_0 694_splitncnn_1
|
||||
Pooling ReduceMean_186 1 1 694_splitncnn_1 696 0=1 4=1
|
||||
InnerProduct Conv_187 1 1 696 699 0=16 2=2048 9=2 -23310=1,4.956326e-02
|
||||
InnerProduct Conv_189 1 1 699 701 0=128 2=2048 9=4
|
||||
BinaryOp Mul_191 2 1 694_splitncnn_0 701 702 0=2
|
||||
BinaryOp Add_192 2 1 702 688_splitncnn_0 703
|
||||
PReLU PRelu_193 1 1 703 705 0=128
|
||||
Split splitncnn_24 1 2 705 705_splitncnn_0 705_splitncnn_1
|
||||
Convolution Conv_194 1 1 705_splitncnn_1 707 0=128 1=5 4=2 5=1 6=409600
|
||||
PReLU PRelu_196 1 1 707 709 0=128
|
||||
Convolution Conv_197 1 1 709 711 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_25 1 2 711 711_splitncnn_0 711_splitncnn_1
|
||||
Pooling ReduceMean_200 1 1 711_splitncnn_1 713 0=1 4=1
|
||||
InnerProduct Conv_201 1 1 713 716 0=16 2=2048 9=2 -23310=1,1.553750e-01
|
||||
InnerProduct Conv_203 1 1 716 718 0=128 2=2048 9=4
|
||||
BinaryOp Mul_205 2 1 711_splitncnn_0 718 719 0=2
|
||||
BinaryOp Add_206 2 1 719 705_splitncnn_0 720
|
||||
PReLU PRelu_207 1 1 720 722 0=128
|
||||
Convolution Conv_208 1 1 722 723 0=8 1=3 4=1 5=1 6=9216
|
||||
PixelShuffle DepthToSpace_209 1 1 723 724 0=2
|
||||
Interp Resize_211 1 1 724 734 0=2 1=4.000000e+00 2=4.000000e+00
|
||||
Split splitncnn_26 1 3 734 734_splitncnn_0 734_splitncnn_1 734_splitncnn_2
|
||||
BinaryOp Add_212 2 1 582_splitncnn_2 734_splitncnn_2 735
|
||||
Split splitncnn_27 1 3 735 735_splitncnn_0 735_splitncnn_1 735_splitncnn_2
|
||||
Crop Slice_217 1 1 454_splitncnn_3 740 -23309=1,0 -23310=1,3 -23311=1,0
|
||||
rife.Warp Warp_223 2 1 740 735_splitncnn_2 746
|
||||
Crop Slice_228 1 1 454_splitncnn_2 751 -23309=1,3 -23310=1,2147483647 -23311=1,0
|
||||
UnaryOp Neg_229 1 1 735_splitncnn_1 752 0=1
|
||||
rife.Warp Warp_235 2 1 751 752 758
|
||||
Concat Concat_236 3 1 746 758 735_splitncnn_0 759
|
||||
Interp Resize_238 1 1 759 769 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
Convolution Conv_239 1 1 769 771 0=96 1=5 3=2 4=2 5=1 6=19200
|
||||
PReLU PRelu_241 1 1 771 773 0=96
|
||||
Split splitncnn_28 1 2 773 773_splitncnn_0 773_splitncnn_1
|
||||
Convolution Conv_242 1 1 773_splitncnn_1 775 0=96 1=5 4=2 5=1 6=230400
|
||||
PReLU PRelu_244 1 1 775 777 0=96
|
||||
Convolution Conv_245 1 1 777 779 0=96 1=3 4=1 5=1 6=82944
|
||||
Split splitncnn_29 1 2 779 779_splitncnn_0 779_splitncnn_1
|
||||
Pooling ReduceMean_248 1 1 779_splitncnn_1 781 0=1 4=1
|
||||
InnerProduct Conv_249 1 1 781 784 0=16 2=1536 9=2 -23310=1,1.670981e-03
|
||||
InnerProduct Conv_251 1 1 784 786 0=96 2=1536 9=4
|
||||
BinaryOp Mul_253 2 1 779_splitncnn_0 786 787 0=2
|
||||
BinaryOp Add_254 2 1 787 773_splitncnn_0 788
|
||||
PReLU PRelu_255 1 1 788 790 0=96
|
||||
Split splitncnn_30 1 2 790 790_splitncnn_0 790_splitncnn_1
|
||||
Convolution Conv_256 1 1 790_splitncnn_1 792 0=96 1=5 4=2 5=1 6=230400
|
||||
PReLU PRelu_258 1 1 792 794 0=96
|
||||
Convolution Conv_259 1 1 794 796 0=96 1=3 4=1 5=1 6=82944
|
||||
Split splitncnn_31 1 2 796 796_splitncnn_0 796_splitncnn_1
|
||||
Pooling ReduceMean_262 1 1 796_splitncnn_1 798 0=1 4=1
|
||||
InnerProduct Conv_263 1 1 798 801 0=16 2=1536 9=2 -23310=1,3.868800e-01
|
||||
InnerProduct Conv_265 1 1 801 803 0=96 2=1536 9=4
|
||||
BinaryOp Mul_267 2 1 796_splitncnn_0 803 804 0=2
|
||||
BinaryOp Add_268 2 1 804 790_splitncnn_0 805
|
||||
PReLU PRelu_269 1 1 805 807 0=96
|
||||
Split splitncnn_32 1 2 807 807_splitncnn_0 807_splitncnn_1
|
||||
Convolution Conv_270 1 1 807_splitncnn_1 809 0=96 1=5 4=2 5=1 6=230400
|
||||
PReLU PRelu_272 1 1 809 811 0=96
|
||||
Convolution Conv_273 1 1 811 813 0=96 1=3 4=1 5=1 6=82944
|
||||
Split splitncnn_33 1 2 813 813_splitncnn_0 813_splitncnn_1
|
||||
Pooling ReduceMean_276 1 1 813_splitncnn_1 815 0=1 4=1
|
||||
InnerProduct Conv_277 1 1 815 818 0=16 2=1536 9=2 -23310=1,3.475277e-01
|
||||
InnerProduct Conv_279 1 1 818 820 0=96 2=1536 9=4
|
||||
BinaryOp Mul_281 2 1 813_splitncnn_0 820 821 0=2
|
||||
BinaryOp Add_282 2 1 821 807_splitncnn_0 822
|
||||
PReLU PRelu_283 1 1 822 824 0=96
|
||||
Split splitncnn_34 1 2 824 824_splitncnn_0 824_splitncnn_1
|
||||
Convolution Conv_284 1 1 824_splitncnn_1 826 0=96 1=5 4=2 5=1 6=230400
|
||||
PReLU PRelu_286 1 1 826 828 0=96
|
||||
Convolution Conv_287 1 1 828 830 0=96 1=3 4=1 5=1 6=82944
|
||||
Split splitncnn_35 1 2 830 830_splitncnn_0 830_splitncnn_1
|
||||
Pooling ReduceMean_290 1 1 830_splitncnn_1 832 0=1 4=1
|
||||
InnerProduct Conv_291 1 1 832 835 0=16 2=1536 9=2 -23310=1,7.044167e-02
|
||||
InnerProduct Conv_293 1 1 835 837 0=96 2=1536 9=4
|
||||
BinaryOp Mul_295 2 1 830_splitncnn_0 837 838 0=2
|
||||
BinaryOp Add_296 2 1 838 824_splitncnn_0 839
|
||||
PReLU PRelu_297 1 1 839 841 0=96
|
||||
Split splitncnn_36 1 2 841 841_splitncnn_0 841_splitncnn_1
|
||||
Convolution Conv_298 1 1 841_splitncnn_1 843 0=96 1=5 4=2 5=1 6=230400
|
||||
PReLU PRelu_300 1 1 843 845 0=96
|
||||
Convolution Conv_301 1 1 845 847 0=96 1=3 4=1 5=1 6=82944
|
||||
Split splitncnn_37 1 2 847 847_splitncnn_0 847_splitncnn_1
|
||||
Pooling ReduceMean_304 1 1 847_splitncnn_1 849 0=1 4=1
|
||||
InnerProduct Conv_305 1 1 849 852 0=16 2=1536 9=2 -23310=1,1.834324e-01
|
||||
InnerProduct Conv_307 1 1 852 854 0=96 2=1536 9=4
|
||||
BinaryOp Mul_309 2 1 847_splitncnn_0 854 855 0=2
|
||||
BinaryOp Add_310 2 1 855 841_splitncnn_0 856
|
||||
PReLU PRelu_311 1 1 856 858 0=96
|
||||
Split splitncnn_38 1 2 858 858_splitncnn_0 858_splitncnn_1
|
||||
Convolution Conv_312 1 1 858_splitncnn_1 860 0=96 1=5 4=2 5=1 6=230400
|
||||
PReLU PRelu_314 1 1 860 862 0=96
|
||||
Convolution Conv_315 1 1 862 864 0=96 1=3 4=1 5=1 6=82944
|
||||
Split splitncnn_39 1 2 864 864_splitncnn_0 864_splitncnn_1
|
||||
Pooling ReduceMean_318 1 1 864_splitncnn_1 866 0=1 4=1
|
||||
InnerProduct Conv_319 1 1 866 869 0=16 2=1536 9=2 -23310=1,3.572731e-01
|
||||
InnerProduct Conv_321 1 1 869 871 0=96 2=1536 9=4
|
||||
BinaryOp Mul_323 2 1 864_splitncnn_0 871 872 0=2
|
||||
BinaryOp Add_324 2 1 872 858_splitncnn_0 873
|
||||
PReLU PRelu_325 1 1 873 875 0=96
|
||||
Convolution Conv_326 1 1 875 876 0=8 1=3 4=1 5=1 6=6912
|
||||
PixelShuffle DepthToSpace_327 1 1 876 877 0=2
|
||||
Interp Resize_329 1 1 877 887 0=2 1=2.000000e+00 2=2.000000e+00
|
||||
Split splitncnn_40 1 2 887 887_splitncnn_0 887_splitncnn_1
|
||||
BinaryOp Add_330 2 1 582_splitncnn_1 734_splitncnn_1 888
|
||||
BinaryOp Add_331 2 1 888 887_splitncnn_1 889
|
||||
Split splitncnn_41 1 3 889 889_splitncnn_0 889_splitncnn_1 889_splitncnn_2
|
||||
Crop Slice_336 1 1 454_splitncnn_1 894 -23309=1,0 -23310=1,3 -23311=1,0
|
||||
rife.Warp Warp_342 2 1 894 889_splitncnn_2 900
|
||||
Crop Slice_347 1 1 454_splitncnn_0 905 -23309=1,3 -23310=1,2147483647 -23311=1,0
|
||||
UnaryOp Neg_348 1 1 889_splitncnn_1 906 0=1
|
||||
rife.Warp Warp_354 2 1 905 906 912
|
||||
Concat Concat_355 3 1 900 912 889_splitncnn_0 913
|
||||
Convolution Conv_356 1 1 913 915 0=48 1=5 3=2 4=2 5=1 6=9600
|
||||
PReLU PRelu_358 1 1 915 917 0=48
|
||||
Split splitncnn_42 1 2 917 917_splitncnn_0 917_splitncnn_1
|
||||
Convolution Conv_359 1 1 917_splitncnn_1 919 0=48 1=5 4=2 5=1 6=57600
|
||||
PReLU PRelu_361 1 1 919 921 0=48
|
||||
Convolution Conv_362 1 1 921 923 0=48 1=3 4=1 5=1 6=20736
|
||||
Split splitncnn_43 1 2 923 923_splitncnn_0 923_splitncnn_1
|
||||
Pooling ReduceMean_365 1 1 923_splitncnn_1 925 0=1 4=1
|
||||
InnerProduct Conv_366 1 1 925 928 0=16 2=768 9=2 -23310=1,2.075541e-02
|
||||
InnerProduct Conv_368 1 1 928 930 0=48 2=768 9=4
|
||||
BinaryOp Mul_370 2 1 923_splitncnn_0 930 931 0=2
|
||||
BinaryOp Add_371 2 1 931 917_splitncnn_0 932
|
||||
PReLU PRelu_372 1 1 932 934 0=48
|
||||
Split splitncnn_44 1 2 934 934_splitncnn_0 934_splitncnn_1
|
||||
Convolution Conv_373 1 1 934_splitncnn_1 936 0=48 1=5 4=2 5=1 6=57600
|
||||
PReLU PRelu_375 1 1 936 938 0=48
|
||||
Convolution Conv_376 1 1 938 940 0=48 1=3 4=1 5=1 6=20736
|
||||
Split splitncnn_45 1 2 940 940_splitncnn_0 940_splitncnn_1
|
||||
Pooling ReduceMean_379 1 1 940_splitncnn_1 942 0=1 4=1
|
||||
InnerProduct Conv_380 1 1 942 945 0=16 2=768 9=2 -23310=1,7.201483e-01
|
||||
InnerProduct Conv_382 1 1 945 947 0=48 2=768 9=4
|
||||
BinaryOp Mul_384 2 1 940_splitncnn_0 947 948 0=2
|
||||
BinaryOp Add_385 2 1 948 934_splitncnn_0 949
|
||||
PReLU PRelu_386 1 1 949 951 0=48
|
||||
Split splitncnn_46 1 2 951 951_splitncnn_0 951_splitncnn_1
|
||||
Convolution Conv_387 1 1 951_splitncnn_1 953 0=48 1=5 4=2 5=1 6=57600
|
||||
PReLU PRelu_389 1 1 953 955 0=48
|
||||
Convolution Conv_390 1 1 955 957 0=48 1=3 4=1 5=1 6=20736
|
||||
Split splitncnn_47 1 2 957 957_splitncnn_0 957_splitncnn_1
|
||||
Pooling ReduceMean_393 1 1 957_splitncnn_1 959 0=1 4=1
|
||||
InnerProduct Conv_394 1 1 959 962 0=16 2=768 9=2 -23310=1,2.671039e-01
|
||||
InnerProduct Conv_396 1 1 962 964 0=48 2=768 9=4
|
||||
BinaryOp Mul_398 2 1 957_splitncnn_0 964 965 0=2
|
||||
BinaryOp Add_399 2 1 965 951_splitncnn_0 966
|
||||
PReLU PRelu_400 1 1 966 968 0=48
|
||||
Split splitncnn_48 1 2 968 968_splitncnn_0 968_splitncnn_1
|
||||
Convolution Conv_401 1 1 968_splitncnn_1 970 0=48 1=5 4=2 5=1 6=57600
|
||||
PReLU PRelu_403 1 1 970 972 0=48
|
||||
Convolution Conv_404 1 1 972 974 0=48 1=3 4=1 5=1 6=20736
|
||||
Split splitncnn_49 1 2 974 974_splitncnn_0 974_splitncnn_1
|
||||
Pooling ReduceMean_407 1 1 974_splitncnn_1 976 0=1 4=1
|
||||
InnerProduct Conv_408 1 1 976 979 0=16 2=768 9=2 -23310=1,1.908224e-01
|
||||
InnerProduct Conv_410 1 1 979 981 0=48 2=768 9=4
|
||||
BinaryOp Mul_412 2 1 974_splitncnn_0 981 982 0=2
|
||||
BinaryOp Add_413 2 1 982 968_splitncnn_0 983
|
||||
PReLU PRelu_414 1 1 983 985 0=48
|
||||
Split splitncnn_50 1 2 985 985_splitncnn_0 985_splitncnn_1
|
||||
Convolution Conv_415 1 1 985_splitncnn_1 987 0=48 1=5 4=2 5=1 6=57600
|
||||
PReLU PRelu_417 1 1 987 989 0=48
|
||||
Convolution Conv_418 1 1 989 991 0=48 1=3 4=1 5=1 6=20736
|
||||
Split splitncnn_51 1 2 991 991_splitncnn_0 991_splitncnn_1
|
||||
Pooling ReduceMean_421 1 1 991_splitncnn_1 993 0=1 4=1
|
||||
InnerProduct Conv_422 1 1 993 996 0=16 2=768 9=2 -23310=1,6.525763e-01
|
||||
InnerProduct Conv_424 1 1 996 998 0=48 2=768 9=4
|
||||
BinaryOp Mul_426 2 1 991_splitncnn_0 998 999 0=2
|
||||
BinaryOp Add_427 2 1 999 985_splitncnn_0 1000
|
||||
PReLU PRelu_428 1 1 1000 1002 0=48
|
||||
Split splitncnn_52 1 2 1002 1002_splitncnn_0 1002_splitncnn_1
|
||||
Convolution Conv_429 1 1 1002_splitncnn_1 1004 0=48 1=5 4=2 5=1 6=57600
|
||||
PReLU PRelu_431 1 1 1004 1006 0=48
|
||||
Convolution Conv_432 1 1 1006 1008 0=48 1=3 4=1 5=1 6=20736
|
||||
Split splitncnn_53 1 2 1008 1008_splitncnn_0 1008_splitncnn_1
|
||||
Pooling ReduceMean_435 1 1 1008_splitncnn_1 1010 0=1 4=1
|
||||
InnerProduct Conv_436 1 1 1010 1013 0=16 2=768 9=2 -23310=1,5.485489e-01
|
||||
InnerProduct Conv_438 1 1 1013 1015 0=48 2=768 9=4
|
||||
BinaryOp Mul_440 2 1 1008_splitncnn_0 1015 1016 0=2
|
||||
BinaryOp Add_441 2 1 1016 1002_splitncnn_0 1017
|
||||
PReLU PRelu_442 1 1 1017 1019 0=48
|
||||
Convolution Conv_443 1 1 1019 1020 0=8 1=3 4=1 5=1 6=3456
|
||||
PixelShuffle DepthToSpace_444 1 1 1020 1021 0=2
|
||||
BinaryOp Add_445 2 1 582_splitncnn_0 734_splitncnn_0 1022
|
||||
BinaryOp Add_446 2 1 1022 887_splitncnn_0 1023
|
||||
BinaryOp Add_447 2 1 1023 1021 flow
|
||||
BIN
models/rife/rife-anime/fusionnet.bin
vendored
Normal file
BIN
models/rife/rife-anime/fusionnet.bin
vendored
Normal file
Binary file not shown.
105
models/rife/rife-anime/fusionnet.param
vendored
Normal file
105
models/rife/rife-anime/fusionnet.param
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
7767517
|
||||
103 120
|
||||
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 77 0=2 1=2.000000e+00 2=2.000000e+00
|
||||
BinaryOp Mul_3 1 1 77 79 0=2 1=1 2=2.000000e+00
|
||||
Split splitncnn_0 1 3 79 79_splitncnn_0 79_splitncnn_1 79_splitncnn_2
|
||||
rife.Warp Warp_9 2 1 img0 79_splitncnn_2 85
|
||||
Split splitncnn_1 1 2 85 85_splitncnn_0 85_splitncnn_1
|
||||
UnaryOp Neg_10 1 1 79_splitncnn_1 86 0=1
|
||||
rife.Warp Warp_16 2 1 img1 86 92
|
||||
Split splitncnn_2 1 2 92 92_splitncnn_0 92_splitncnn_1
|
||||
Concat Concat_17 3 1 85_splitncnn_1 92_splitncnn_1 79_splitncnn_0 93
|
||||
Convolution Conv_18 1 1 93 94 0=32 1=3 3=2 4=1 5=1 6=2304
|
||||
PReLU PRelu_19 1 1 94 96 0=32
|
||||
Split splitncnn_3 1 2 96 96_splitncnn_0 96_splitncnn_1
|
||||
Convolution Conv_20 1 1 96_splitncnn_1 97 0=64 1=3 3=2 4=1 6=18432
|
||||
Convolution Conv_21 1 1 96_splitncnn_0 98 0=64 1=3 3=2 4=1 5=1 6=18432
|
||||
PReLU PRelu_22 1 1 98 100 0=64
|
||||
Convolution Conv_23 1 1 100 101 0=64 1=3 4=1 5=1 6=36864
|
||||
Split splitncnn_4 1 2 101 101_splitncnn_0 101_splitncnn_1
|
||||
Pooling ReduceMean_25 1 1 101_splitncnn_1 103 0=1 4=1
|
||||
InnerProduct Conv_26 1 1 103 106 0=16 2=1024 9=2 -23310=1,1.541520e-01
|
||||
InnerProduct Conv_28 1 1 106 108 0=64 2=1024 9=4
|
||||
BinaryOp Mul_30 2 1 101_splitncnn_0 108 109 0=2
|
||||
BinaryOp Add_31 2 1 109 97 110
|
||||
PReLU PRelu_32 1 1 110 112 0=64
|
||||
Split splitncnn_5 1 2 112 112_splitncnn_0 112_splitncnn_1
|
||||
Concat Concat_33 3 1 112_splitncnn_1 3 7 113
|
||||
Split splitncnn_6 1 2 113 113_splitncnn_0 113_splitncnn_1
|
||||
Convolution Conv_34 1 1 113_splitncnn_1 114 0=128 1=3 3=2 4=1 6=147456
|
||||
Convolution Conv_35 1 1 113_splitncnn_0 115 0=128 1=3 3=2 4=1 5=1 6=147456
|
||||
PReLU PRelu_36 1 1 115 117 0=128
|
||||
Convolution Conv_37 1 1 117 118 0=128 1=3 4=1 5=1 6=147456
|
||||
Split splitncnn_7 1 2 118 118_splitncnn_0 118_splitncnn_1
|
||||
Pooling ReduceMean_39 1 1 118_splitncnn_1 120 0=1 4=1
|
||||
InnerProduct Conv_40 1 1 120 123 0=16 2=2048 9=2 -23310=1,4.722085e-02
|
||||
InnerProduct Conv_42 1 1 123 125 0=128 2=2048 9=4
|
||||
BinaryOp Mul_44 2 1 118_splitncnn_0 125 126 0=2
|
||||
BinaryOp Add_45 2 1 126 114 127
|
||||
PReLU PRelu_46 1 1 127 129 0=128
|
||||
Split splitncnn_8 1 2 129 129_splitncnn_0 129_splitncnn_1
|
||||
Concat Concat_47 3 1 129_splitncnn_1 4 8 130
|
||||
Split splitncnn_9 1 2 130 130_splitncnn_0 130_splitncnn_1
|
||||
Convolution Conv_48 1 1 130_splitncnn_1 131 0=256 1=3 3=2 4=1 6=589824
|
||||
Convolution Conv_49 1 1 130_splitncnn_0 132 0=256 1=3 3=2 4=1 5=1 6=589824
|
||||
PReLU PRelu_50 1 1 132 134 0=256
|
||||
Convolution Conv_51 1 1 134 135 0=256 1=3 4=1 5=1 6=589824
|
||||
Split splitncnn_10 1 2 135 135_splitncnn_0 135_splitncnn_1
|
||||
Pooling ReduceMean_53 1 1 135_splitncnn_1 137 0=1 4=1
|
||||
InnerProduct Conv_54 1 1 137 140 0=16 2=4096 9=2 -23310=1,8.144739e-02
|
||||
InnerProduct Conv_56 1 1 140 142 0=256 2=4096 9=4
|
||||
BinaryOp Mul_58 2 1 135_splitncnn_0 142 143 0=2
|
||||
BinaryOp Add_59 2 1 143 131 144
|
||||
PReLU PRelu_60 1 1 144 146 0=256
|
||||
Split splitncnn_11 1 2 146 146_splitncnn_0 146_splitncnn_1
|
||||
Concat Concat_61 3 1 146_splitncnn_1 5 9 147
|
||||
Split splitncnn_12 1 2 147 147_splitncnn_0 147_splitncnn_1
|
||||
Convolution Conv_62 1 1 147_splitncnn_1 148 0=512 1=3 3=2 4=1 6=2359296
|
||||
Convolution Conv_63 1 1 147_splitncnn_0 149 0=512 1=3 3=2 4=1 5=1 6=2359296
|
||||
PReLU PRelu_64 1 1 149 151 0=512
|
||||
Convolution Conv_65 1 1 151 152 0=512 1=3 4=1 5=1 6=2359296
|
||||
Split splitncnn_13 1 2 152 152_splitncnn_0 152_splitncnn_1
|
||||
Pooling ReduceMean_67 1 1 152_splitncnn_1 154 0=1 4=1
|
||||
InnerProduct Conv_68 1 1 154 157 0=16 2=8192 9=2 -23310=1,7.700763e-02
|
||||
InnerProduct Conv_70 1 1 157 159 0=512 2=8192 9=4
|
||||
BinaryOp Mul_72 2 1 152_splitncnn_0 159 160 0=2
|
||||
BinaryOp Add_73 2 1 160 148 161
|
||||
PReLU PRelu_74 1 1 161 163 0=512
|
||||
Concat Concat_75 3 1 163 6 10 164
|
||||
Deconvolution ConvTranspose_76 1 1 164 165 0=256 1=4 3=2 4=1 5=1 6=4194304
|
||||
PReLU PRelu_77 1 1 165 167 0=256
|
||||
Concat Concat_78 2 1 167 146_splitncnn_0 168
|
||||
Deconvolution ConvTranspose_79 1 1 168 169 0=128 1=4 3=2 4=1 5=1 6=1048576
|
||||
PReLU PRelu_80 1 1 169 171 0=128
|
||||
Concat Concat_81 2 1 171 129_splitncnn_0 172
|
||||
Deconvolution ConvTranspose_82 1 1 172 173 0=64 1=4 3=2 4=1 5=1 6=262144
|
||||
PReLU PRelu_83 1 1 173 175 0=64
|
||||
Concat Concat_84 2 1 175 112_splitncnn_0 176
|
||||
Deconvolution ConvTranspose_85 1 1 176 177 0=32 1=4 3=2 4=1 5=1 6=65536
|
||||
PReLU PRelu_86 1 1 177 179 0=32
|
||||
Convolution Conv_87 1 1 179 180 0=16 1=3 4=1 5=1 6=4608
|
||||
PixelShuffle DepthToSpace_88 1 1 180 181 0=2
|
||||
Sigmoid Sigmoid_89 1 1 181 182
|
||||
Split splitncnn_14 1 2 182 182_splitncnn_0 182_splitncnn_1
|
||||
Crop Slice_94 1 1 182_splitncnn_1 187 -23309=1,0 -23310=1,3 -23311=1,0
|
||||
BinaryOp Mul_96 1 1 187 189 0=2 1=1 2=2.000000e+00
|
||||
BinaryOp Sub_98 1 1 189 191 0=1 1=1 2=1.000000e+00
|
||||
Crop Slice_103 1 1 182_splitncnn_0 196 -23309=1,3 -23310=1,4 -23311=1,0
|
||||
Split splitncnn_15 1 2 196 196_splitncnn_0 196_splitncnn_1
|
||||
BinaryOp Mul_104 2 1 85_splitncnn_0 196_splitncnn_1 197 0=2
|
||||
BinaryOp Sub_106 1 1 196_splitncnn_0 199 0=7 1=1 2=1.000000e+00
|
||||
BinaryOp Mul_107 2 1 92_splitncnn_0 199 200 0=2
|
||||
BinaryOp Add_108 2 1 197 200 201
|
||||
BinaryOp Add_109 2 1 201 191 202
|
||||
Clip Clip_110 1 1 202 output 0=0.000000e+00 1=1.000000e+00
|
||||
BIN
models/rife/rife-v2.3/contextnet.bin
vendored
Normal file
BIN
models/rife/rife-v2.3/contextnet.bin
vendored
Normal file
Binary file not shown.
42
models/rife/rife-v2.3/contextnet.param
vendored
Normal file
42
models/rife/rife-v2.3/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_31a 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_ss 2 1 115 127 f4
|
||||
BIN
models/rife/rife-v2.3/flownet.bin
vendored
Normal file
BIN
models/rife/rife-v2.3/flownet.bin
vendored
Normal file
Binary file not shown.
119
models/rife/rife-v2.3/flownet.param
vendored
Normal file
119
models/rife/rife-v2.3/flownet.param
vendored
Normal file
@@ -0,0 +1,119 @@
|
||||
7767517
|
||||
117 135
|
||||
Input input0 0 1 input0
|
||||
Input input1 0 1 input1
|
||||
Concat input.1 2 1 input0 input1 input.1
|
||||
Split splitncnn_input0 1 7 input.1 input.1_splitncnn_0 input.1_splitncnn_1 input.1_splitncnn_2 input.1_splitncnn_3 input.1_splitncnn_4 input.1_splitncnn_5 input.1_splitncnn_6
|
||||
Interp Resize_1 1 1 input.1_splitncnn_6 114 0=2 1=1.250000e-01 2=1.250000e-01
|
||||
Convolution Conv_2 1 1 114 115 0=192 1=3 3=2 4=1 5=1 6=10368
|
||||
PReLU PRelu_3 1 1 115 117 0=192
|
||||
Convolution Conv_4 1 1 117 118 0=384 1=3 3=2 4=1 5=1 6=663552
|
||||
PReLU PRelu_5 1 1 118 120 0=384
|
||||
Convolution Conv_6 1 1 120 121 0=384 1=3 4=1 5=1 6=1327104
|
||||
PReLU PRelu_7 1 1 121 123 0=384
|
||||
Convolution Conv_8 1 1 123 124 0=384 1=3 4=1 5=1 6=1327104
|
||||
PReLU PRelu_9 1 1 124 126 0=384
|
||||
Convolution Conv_10 1 1 126 127 0=384 1=3 4=1 5=1 6=1327104
|
||||
PReLU PRelu_11 1 1 127 129 0=384
|
||||
Convolution Conv_12 1 1 129 130 0=384 1=3 4=1 5=1 6=1327104
|
||||
PReLU PRelu_13 1 1 130 132 0=384
|
||||
Convolution Conv_14 1 1 132 133 0=384 1=3 4=1 5=1 6=1327104
|
||||
PReLU PRelu_15 1 1 133 135 0=384
|
||||
Convolution Conv_16 1 1 135 136 0=384 1=3 4=1 5=1 6=1327104
|
||||
PReLU PRelu_17 1 1 136 138 0=384
|
||||
Deconvolution ConvTranspose_18 1 1 138 139 0=4 1=4 3=2 4=1 5=1 6=24576
|
||||
Interp Resize_20 1 1 139 149 0=2 1=8.000000e+00 2=8.000000e+00
|
||||
Split splitncnn_0 1 4 149 149_splitncnn_0 149_splitncnn_1 149_splitncnn_2 149_splitncnn_3
|
||||
Interp Resize_22 1 1 149_splitncnn_3 159 0=2 1=2.000000e+00 2=2.000000e+00
|
||||
BinaryOp Mul_24 1 1 159 161 0=2 1=1 2=2.000000e+00
|
||||
Split splitncnn_1 1 3 161 161_splitncnn_0 161_splitncnn_1 161_splitncnn_2
|
||||
Crop Slice_29 1 1 input.1_splitncnn_5 166 -23309=1,0 -23310=1,3 -23311=1,0
|
||||
Crop Slice_34 1 1 161_splitncnn_2 171 -23309=1,0 -23310=1,2 -23311=1,0
|
||||
rife.Warp Warp_40 2 1 166 171 177
|
||||
Crop Slice_45 1 1 input.1_splitncnn_4 182 -23309=1,3 -23310=1,2147483647 -23311=1,0
|
||||
Crop Slice_50 1 1 161_splitncnn_1 187 -23309=1,2 -23310=1,4 -23311=1,0
|
||||
rife.Warp Warp_56 2 1 182 187 193
|
||||
Concat Concat_57 3 1 177 193 161_splitncnn_0 194
|
||||
Interp Resize_59 1 1 194 204 0=2 1=2.500000e-01 2=2.500000e-01
|
||||
Convolution Conv_60 1 1 204 205 0=128 1=3 3=2 4=1 5=1 6=11520
|
||||
PReLU PRelu_61 1 1 205 207 0=128
|
||||
Convolution Conv_62 1 1 207 208 0=256 1=3 3=2 4=1 5=1 6=294912
|
||||
PReLU PRelu_63 1 1 208 210 0=256
|
||||
Convolution Conv_64 1 1 210 211 0=256 1=3 4=1 5=1 6=589824
|
||||
PReLU PRelu_65 1 1 211 213 0=256
|
||||
Convolution Conv_66 1 1 213 214 0=256 1=3 4=1 5=1 6=589824
|
||||
PReLU PRelu_67 1 1 214 216 0=256
|
||||
Convolution Conv_68 1 1 216 217 0=256 1=3 4=1 5=1 6=589824
|
||||
PReLU PRelu_69 1 1 217 219 0=256
|
||||
Convolution Conv_70 1 1 219 220 0=256 1=3 4=1 5=1 6=589824
|
||||
PReLU PRelu_71 1 1 220 222 0=256
|
||||
Convolution Conv_72 1 1 222 223 0=256 1=3 4=1 5=1 6=589824
|
||||
PReLU PRelu_73 1 1 223 225 0=256
|
||||
Convolution Conv_74 1 1 225 226 0=256 1=3 4=1 5=1 6=589824
|
||||
PReLU PRelu_75 1 1 226 228 0=256
|
||||
Deconvolution ConvTranspose_76 1 1 228 229 0=4 1=4 3=2 4=1 5=1 6=16384
|
||||
Interp Resize_78 1 1 229 239 0=2 1=4.000000e+00 2=4.000000e+00
|
||||
Split splitncnn_2 1 3 239 239_splitncnn_0 239_splitncnn_1 239_splitncnn_2
|
||||
BinaryOp Add_79 2 1 149_splitncnn_2 239_splitncnn_2 240
|
||||
Interp Resize_81 1 1 240 250 0=2 1=2.000000e+00 2=2.000000e+00
|
||||
BinaryOp Mul_83 1 1 250 252 0=2 1=1 2=2.000000e+00
|
||||
Split splitncnn_3 1 3 252 252_splitncnn_0 252_splitncnn_1 252_splitncnn_2
|
||||
Crop Slice_88 1 1 input.1_splitncnn_3 257 -23309=1,0 -23310=1,3 -23311=1,0
|
||||
Crop Slice_93 1 1 252_splitncnn_2 262 -23309=1,0 -23310=1,2 -23311=1,0
|
||||
rife.Warp Warp_99 2 1 257 262 268
|
||||
Crop Slice_104 1 1 input.1_splitncnn_2 273 -23309=1,3 -23310=1,2147483647 -23311=1,0
|
||||
Crop Slice_109 1 1 252_splitncnn_1 278 -23309=1,2 -23310=1,4 -23311=1,0
|
||||
rife.Warp Warp_115 2 1 273 278 284
|
||||
Concat Concat_116 3 1 268 284 252_splitncnn_0 285
|
||||
Interp Resize_118 1 1 285 295 0=2 1=5.000000e-01 2=5.000000e-01
|
||||
Convolution Conv_119 1 1 295 296 0=96 1=3 3=2 4=1 5=1 6=8640
|
||||
PReLU PRelu_120 1 1 296 298 0=96
|
||||
Convolution Conv_121 1 1 298 299 0=192 1=3 3=2 4=1 5=1 6=165888
|
||||
PReLU PRelu_122 1 1 299 301 0=192
|
||||
Convolution Conv_123 1 1 301 302 0=192 1=3 4=1 5=1 6=331776
|
||||
PReLU PRelu_124 1 1 302 304 0=192
|
||||
Convolution Conv_125 1 1 304 305 0=192 1=3 4=1 5=1 6=331776
|
||||
PReLU PRelu_126 1 1 305 307 0=192
|
||||
Convolution Conv_127 1 1 307 308 0=192 1=3 4=1 5=1 6=331776
|
||||
PReLU PRelu_128 1 1 308 310 0=192
|
||||
Convolution Conv_129 1 1 310 311 0=192 1=3 4=1 5=1 6=331776
|
||||
PReLU PRelu_130 1 1 311 313 0=192
|
||||
Convolution Conv_131 1 1 313 314 0=192 1=3 4=1 5=1 6=331776
|
||||
PReLU PRelu_132 1 1 314 316 0=192
|
||||
Convolution Conv_133 1 1 316 317 0=192 1=3 4=1 5=1 6=331776
|
||||
PReLU PRelu_134 1 1 317 319 0=192
|
||||
Deconvolution ConvTranspose_135 1 1 319 320 0=4 1=4 3=2 4=1 5=1 6=12288
|
||||
Interp Resize_137 1 1 320 330 0=2 1=2.000000e+00 2=2.000000e+00
|
||||
Split splitncnn_4 1 2 330 330_splitncnn_0 330_splitncnn_1
|
||||
BinaryOp Add_138 2 1 149_splitncnn_1 239_splitncnn_1 331
|
||||
BinaryOp Add_139 2 1 331 330_splitncnn_1 332
|
||||
Interp Resize_141 1 1 332 342 0=2 1=2.000000e+00 2=2.000000e+00
|
||||
BinaryOp Mul_143 1 1 342 344 0=2 1=1 2=2.000000e+00
|
||||
Split splitncnn_5 1 3 344 344_splitncnn_0 344_splitncnn_1 344_splitncnn_2
|
||||
Crop Slice_148 1 1 input.1_splitncnn_1 349 -23309=1,0 -23310=1,3 -23311=1,0
|
||||
Crop Slice_153 1 1 344_splitncnn_2 354 -23309=1,0 -23310=1,2 -23311=1,0
|
||||
rife.Warp Warp_159 2 1 349 354 360
|
||||
Crop Slice_164 1 1 input.1_splitncnn_0 365 -23309=1,3 -23310=1,2147483647 -23311=1,0
|
||||
Crop Slice_169 1 1 344_splitncnn_1 370 -23309=1,2 -23310=1,4 -23311=1,0
|
||||
rife.Warp Warp_175 2 1 365 370 376
|
||||
Concat Concat_176 3 1 360 376 344_splitncnn_0 377
|
||||
Convolution Conv_177 1 1 377 378 0=48 1=3 3=2 4=1 5=1 6=4320
|
||||
PReLU PRelu_178 1 1 378 380 0=48
|
||||
Convolution Conv_179 1 1 380 381 0=96 1=3 3=2 4=1 5=1 6=41472
|
||||
PReLU PRelu_180 1 1 381 383 0=96
|
||||
Convolution Conv_181 1 1 383 384 0=96 1=3 4=1 5=1 6=82944
|
||||
PReLU PRelu_182 1 1 384 386 0=96
|
||||
Convolution Conv_183 1 1 386 387 0=96 1=3 4=1 5=1 6=82944
|
||||
PReLU PRelu_184 1 1 387 389 0=96
|
||||
Convolution Conv_185 1 1 389 390 0=96 1=3 4=1 5=1 6=82944
|
||||
PReLU PRelu_186 1 1 390 392 0=96
|
||||
Convolution Conv_187 1 1 392 393 0=96 1=3 4=1 5=1 6=82944
|
||||
PReLU PRelu_188 1 1 393 395 0=96
|
||||
Convolution Conv_189 1 1 395 396 0=96 1=3 4=1 5=1 6=82944
|
||||
PReLU PRelu_190 1 1 396 398 0=96
|
||||
Convolution Conv_191 1 1 398 399 0=96 1=3 4=1 5=1 6=82944
|
||||
PReLU PRelu_192 1 1 399 401 0=96
|
||||
Deconvolution ConvTranspose_193 1 1 401 402 0=4 1=4 3=2 4=1 5=1 6=6144
|
||||
BinaryOp Add_194 2 1 149_splitncnn_0 239_splitncnn_0 403
|
||||
BinaryOp Add_195 2 1 403 330_splitncnn_0 404
|
||||
BinaryOp Add_196 2 1 404 402 flow
|
||||
BIN
models/rife/rife-v2.3/fusionnet.bin
vendored
Normal file
BIN
models/rife/rife-v2.3/fusionnet.bin
vendored
Normal file
Binary file not shown.
74
models/rife/rife-v2.3/fusionnet.param
vendored
Normal file
74
models/rife/rife-v2.3/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
|
||||
BIN
models/rife/rife-v2.4/contextnet.bin
vendored
Normal file
BIN
models/rife/rife-v2.4/contextnet.bin
vendored
Normal file
Binary file not shown.
42
models/rife/rife-v2.4/contextnet.param
vendored
Normal file
42
models/rife/rife-v2.4/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_31a 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_ss 2 1 115 127 f4
|
||||
BIN
models/rife/rife-v2.4/flownet.bin
vendored
Normal file
BIN
models/rife/rife-v2.4/flownet.bin
vendored
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user