updated README for version 4.0.0

This commit is contained in:
k4yt3x 2020-05-05 01:51:24 -04:00
parent 5b3e5604cc
commit ec1327b5d8

137
README.md
View File

@ -6,9 +6,9 @@
You can go to the [releases page](https://github.com/k4yt3x/video2x/releases) to download the latest builds of `Video2X`. The exe files will require no Python or Python module installation. You can go to the [releases page](https://github.com/k4yt3x/video2x/releases) to download the latest builds of `Video2X`. The exe files will require no Python or Python module installation.
The **`full`** package provides all packages that will possibly be needed by `Video2X`, including `FFmpeg`, `waifu2x-caffe`, `waifu2x-converter-cpp`, `waifu2x-ncnn-vulkan`, `Anime4K` and `srmd-ncnn-vulkan`. The config file (`video2x.json`) is also already configured for the environment. All you need to do is just to launch `video2x.exe`. The **`full`** package provides all packages that will possibly be needed by `Video2X`, including `FFmpeg`, `waifu2x-caffe`, `waifu2x-converter-cpp`, `waifu2x-ncnn-vulkan`, `srmd-ncnn-vulkan` and `Anime4KCPP`. The config file (`video2x.yaml`) is also already configured for the environment. All you need to do is just to launch `video2x.exe`.
The **`light`** package provides only the most basic functions of `Video2X`. Only `video2x.exe`, `video2x_setup.exe` and `video2x.json` are included. To setup dependencies (e.g. `FFmpeg` and `Waifu2X`) automatically, simply launch `video2x_setup.exe`. The **`light`** package provides only the most basic functions of `Video2X`. Only `video2x.exe`, `video2x_setup.exe` and `video2x.yaml` are included. To setup dependencies (e.g. `FFmpeg` and `Waifu2X`) automatically, simply launch `video2x_setup.exe`.
## Prerequisites ## Prerequisites
@ -22,11 +22,22 @@ Component names that are **bolded** can be automatically downloaded and configur
- [**waifu2x-caffe**](https://github.com/lltcggie/waifu2x-caffe/releases) - [**waifu2x-caffe**](https://github.com/lltcggie/waifu2x-caffe/releases)
- [**waifu2x-converter-cpp**](https://github.com/DeadSix27/waifu2x-converter-cpp/releases) - [**waifu2x-converter-cpp**](https://github.com/DeadSix27/waifu2x-converter-cpp/releases)
- [**waifu2x-ncnn-vulkan**](https://github.com/nihui/waifu2x-ncnn-vulkan) - [**waifu2x-ncnn-vulkan**](https://github.com/nihui/waifu2x-ncnn-vulkan)
- [**Anime4K**](https://github.com/bloc97/Anime4K)
- [**srmd-ncnn-vulkan**](https://github.com/nihui/srmd-ncnn-vulkan) - [**srmd-ncnn-vulkan**](https://github.com/nihui/srmd-ncnn-vulkan)
- [**Anime4KCPP**](https://github.com/TianZerL/Anime4KCPP)
## Recent Changes ## Recent Changes
### 4.0.0 (May 5, 2020)
- Added internationalization support
- Added language zh_CN (简体中文)
- Language will change automatically according to system locale settings
- Added support for [Anime4KCPP](https://github.com/TianZerL/Anime4KCPP) in replacement for Anime4K (Java)
- Driver-specific settings can now be specified in the command line by specifying them after a `--`
- All driver-specific settings are parsed by the corresponding driver
- Modularized driver wrappers in Video2X
- Cleaned up some clutters in the code
### 3.2.0 (April 26, 2020) ### 3.2.0 (April 26, 2020)
- Added support for [SRMD-NCNN-Vulkan](https://github.com/nihui/srmd-ncnn-vulkan) - Added support for [SRMD-NCNN-Vulkan](https://github.com/nihui/srmd-ncnn-vulkan)
@ -37,22 +48,15 @@ Component names that are **bolded** can be automatically downloaded and configur
- Added support for graceful exit upon `KeyboardInterrupt` or termination signals - Added support for graceful exit upon `KeyboardInterrupt` or termination signals
- Other minor improvements such as replacing `' '.join(execute)` with `shlex.join(execute)` - Other minor improvements such as replacing `' '.join(execute)` with `shlex.join(execute)`
### 3.0.0 (November 26, 2019) ### Setup Script 1.8.0 (May 5, 2020)
- Linux compatibility - Added support for Anime4KCPP
- Configuration file changed to YAML format
- You may still use a JSON-formatted config file. To do so, please specify `-c video2x.json`.
- Other code clean-up and optimization
### Setup Script 1.7.0 (April 26, 2020)
- Added support for srmd-ncnn-vulkan
## Description ## Description
Video2X is an automation software based on waifu2x image enlarging engine. It extracts frames from a video, enlarge it by a number of times without losing any details or quality, keeping lines smooth and edges sharp. Video2X is an automation software based on waifu2x image enlarging engine. It extracts frames from a video, enlarge it by a number of times without losing any details or quality, keeping lines smooth and edges sharp.
For short: **Video2X enlarges your video without losing details** For short: **Video2X enlarges your video without losing details**.
Watch for the sharper edges in this screenshot around the shadows: Watch for the sharper edges in this screenshot around the shadows:
@ -80,9 +84,9 @@ You can find all detailed user-facing and developer-facing documentations in the
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. 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.
### [Waifu2X Drivers](https://github.com/k4yt3x/video2x/wiki/Waifu2X-Drivers) ### [Drivers](https://github.com/k4yt3x/video2x/wiki/Drivers)
Go to the [Waifu2X Drivers](https://github.com/k4yt3x/video2x/wiki/Waifu2X-Drivers) wiki page if you want to see a detailed description on the different types of `waifu2x` 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`. 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) ### [Q&A](https://github.com/k4yt3x/video2x/wiki/Q&A)
@ -98,14 +102,14 @@ If you have any questions, first try visiting our [Q&A](https://github.com/k4yt3
Download: https://www.python.org/downloads/windows/ Download: https://www.python.org/downloads/windows/
- **FFmpeg Windows Build** - **FFmpeg Windows Build**
Download: https://ffmpeg.org/download.html Download: https://ffmpeg.org/download.html
- **waifu2x-caffe** (for Nvidia CUDA/CUDNN) - **waifu2x-caffe** (designed for Nvidia CUDA/cuDNN)
Download: https://github.com/lltcggie/waifu2x-caffe/releases Download: https://github.com/lltcggie/waifu2x-caffe/releases
- **waifu2x-converter-cpp** (required for AMD, OpenCL and OpenGL processing) - **waifu2x-converter-cpp**
Download: https://github.com/DeadSix27/waifu2x-converter-cpp/releases Download: https://github.com/DeadSix27/waifu2x-converter-cpp/releases
- **waifu2x-ncnn-vulkan** - **waifu2x-ncnn-vulkan**
Download: https://github.com/nihui/waifu2x-ncnn-vulkan/releases Download: https://github.com/nihui/waifu2x-ncnn-vulkan/releases
- **Anime4K** - **Anime4KCPP**
Download: https://github.com/bloc97/Anime4K/releases Download: https://github.com/TianZerL/Anime4KCPP/releases
- **srmd-ncnn-vulkan** - **srmd-ncnn-vulkan**
Download: https://github.com/nihui/srmd-ncnn-vulkan/releases Download: https://github.com/nihui/srmd-ncnn-vulkan/releases
@ -115,12 +119,12 @@ First, clone the video2x repository.
```shell ```shell
git clone https://github.com/k4yt3x/video2x.git git clone https://github.com/k4yt3x/video2x.git
cd video2x/bin cd video2x/src
``` ```
Then you may run the `video2x_setup.py` script to install and configure the dependencies automatically. This script is designed and tested on Windows 10. Then you may run the `video2x_setup.py` script to install and configure the dependencies automatically. This script is designed and tested on Windows 10.
This script will install the newest version of `ffmpeg`, any one or all `waifu2x-caffe`, `waifu2x-converter-cpp`, and `waifu2x-ncnn-vulkan` to `%LOCALAPPDATA%\\video2x` and all required python libraries. This script will install the newest version of `ffmpeg`, and all upscaling drivers to `%LOCALAPPDATA%\\video2x` and all required python libraries.
```shell ```shell
python video2x_setup.py python video2x_setup.py
@ -134,112 +138,78 @@ Then you'll need to install python dependencies before start using video2x. Inst
pip install -r requirements.txt pip install -r requirements.txt
``` ```
**Note that all command line arguments/options overwrite configuration file settings.**
### Sample Videos ### 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. 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_video](https://user-images.githubusercontent.com/21986859/52905766-d5512b00-3236-11e9-9aea-077636539679.png) ![sample_video](https://user-images.githubusercontent.com/21986859/52905766-d5512b00-3236-11e9-9aea-077636539679.png)
- [Sample Video Original (240P) 1.7MB](https://files.flexio.org/Resources/Videos/sample_input.mp4) - [Sample Video Original (240P) 1.7MB](https://files.k4yt3x.com/Resources/Videos/sample_input.mp4)
- [Sample Video Upscaled (1080P) 4.8MB](https://files.flexio.org/Resources/Videos/sample_output.mp4) - [Sample Video Upscaled (1080P) 4.8MB](https://files.k4yt3x.com/Resources/Videos/sample_output.mp4)
Clip is from anime "さくら荘のペットな彼女". Copyright belongs to "株式会社アニプレックス (Aniplex Inc.)". Will delete immediately if use of clip is in violation of copyright. Clip is from anime "さくら荘のペットな彼女". Copyright belongs to "株式会社アニプレックス (Aniplex Inc.)". Will delete immediately if use of clip is in violation of copyright.
### Nvidia CUDA (waifu2x-caffe) ### Basic Upscale Example
Enlarge the video to 1920x1080 using CUDA. You may also use the `-r/--ratio` option. This example command below uses `waifu2x-caffe` to enlarge the video `sample-input.mp4` two double its original size.
```shell ```shell
python video2x.py -i sample_input.mp4 -o sample_output.mp4 -m gpu --width=1920 --height=1080 python video2x.py -i sample-input.mp4 -o sample-output.mp4 -r 2 -d waifu2x_caffe
``` ```
### Nvidia CUDNN ### Advanced Upscale Example
Enlarge the video to 1920x1080 using CUDNN. You may also use the `-r/--ratio` option. 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 ```shell
python video2x.py -i sample_input.mp4 -o sample_output.mp4 -m cudnn --width=1920 --height=1080 python video2x.py -i sample-input.mp4 -o sample-output.mp4 -r 2 -d waifu2x_caffe -- --tta 1
``` ```
### AMD or Nvidia (waifu2x-converter-cpp OpenCL) 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.
Enlarge the video by 2 times using OpenCL. Note that `waifu2x-converter-cpp` doesn't support width and height. You'll also have to explicitly specify that the driver to be used is `waifu2x_converter`.
```shell ```shell
python video2x.py -i sample_input.mp4 -o sample_output.mp4 -m gpu -r 2 -d waifu2x_converter python video2x.py -d waifu2x_caffe -- --help
```
### AMD or Nvidia (waifu2x-ncnn-vulkan Vulkan)
```shell
python video2x.py -i sample_input.mp4 -o sample_output.mp4 -m gpu -r 2 -d waifu2x_ncnn_vulkan
```
### Anime4K
Enlarge the video by 2 times using Anime4K. **Remember to install and configure [JRE 12](https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase12-5440181.html) path in the configuration file.**
```shell
python video2x.py -i sample_input.mp4 -o sample_output.mp4 -r 2 -d anime4k
```
### CPU
Enlarge the video to 1920x1080 using the CPU. You may also use the `-r/--ratio` option. **waifu2x-based upscalers potentially run much slower than using a GPU, but Anime4K is more CPU-dependant**. The configuration file for this method is similar to the previous methods.
```shell
python video2x.py -i sample_input.mp4 -o sample_output.mp4 -m cpu --width=1920 --height=1080
``` ```
--- ---
# Full Usage # Full Usage
## General Options ## General Options:
### -h, --help ### -h, --help
show this help message and exit show this help message and exit
## File Options
### -i INPUT, --input INPUT ### -i INPUT, --input INPUT
Source video file/directory (default: None) source video file/directory
### -o OUTPUT, --output OUTPUT ### -o OUTPUT, --output OUTPUT
Output video file/directory (default: None) output video file/directory
## Upscaling Options
### -m {cpu,gpu,cudnn}, --method {cpu,gpu,cudnn}
Upscaling method (default: gpu)
### -d {waifu2x_caffe,waifu2x_converter}, --driver {waifu2x_caffe,waifu2x_converter}
Waifu2x driver (default: waifu2x_caffe)
### -y MODEL_DIR, --model_dir MODEL_DIR
Folder containing model JSON files
### -t THREADS, --threads THREADS
Number of threads to use for upscaling (default: 5)
### -c CONFIG, --config CONFIG ### -c CONFIG, --config CONFIG
Video2X config file location (default: video2x\bin\video2x.json) video2x config file path
### -b, --batch ### -d {waifu2x_caffe,waifu2x_converter_cpp,waifu2x_ncnn_vulkan,srmd_ncnn_vulkan,anime4kcpp}, --driver {waifu2x_caffe,waifu2x_converter_cpp,waifu2x_ncnn_vulkan,srmd_ncnn_vulkan,anime4kcpp}
Enable batch mode (select all default values to questions) upscaling driver (default: waifu2x_caffe)
### -p PROCESSES, --processes PROCESSES
number of processes to use for upscaling (default: 1)
### -v, --version
display version, lawful information and exit
## Scaling Options ## Scaling Options
### --width WIDTH ### --width WIDTH
Output video width output video width
### --height HEIGHT ### --height HEIGHT
Output video height output video height
### -r RATIO, --ratio RATIO ### -r RATIO, --ratio RATIO
Scaling ratio scaling ratio
--- ---
@ -260,7 +230,8 @@ This project relies on the following software and projects.
- [waifu2x-caffe](https://github.com/lltcggie/waifu2x-caffe) - [waifu2x-caffe](https://github.com/lltcggie/waifu2x-caffe)
- [waifu2x-converter-cpp](https://github.com/DeadSix27/waifu2x-converter-cpp) - [waifu2x-converter-cpp](https://github.com/DeadSix27/waifu2x-converter-cpp)
- [waifu2x-ncnn-vulkan](https://github.com/nihui/waifu2x-ncnn-vulkan) - [waifu2x-ncnn-vulkan](https://github.com/nihui/waifu2x-ncnn-vulkan)
- [Anime4K](https://github.com/bloc97/Anime4K) - [srmd-ncnn-vulkan](https://github.com/nihui/srmd-ncnn-vulkan)
- [Anime4KCPP](https://github.com/TianZerL/Anime4KCPP)
## Special Thanks ## Special Thanks