Skip to content

Final2x/Final2x-core

Repository files navigation

Socialify Image

MacOS x64 MacOS arm64 Windows x64 Windows arm64 Linux x64 codecov CI-test CI-build Release pip-test Release-pypi PyPI version GitHub

Final2x-core is a cross-platform image super-resolution CLI tool for Final2x. If you have any questions, please raise an issue in this repository.

Install

Download in Release or use pip (python >= 3.8, >=3.9 for MacOS arm64)

pip install Final2x-core

Use

usage: Final2x-core [-h] [-b BASE64] [-j JSON] [-y YAML] [-l] [-c] [-n]

when para is not specified, the config.yaml file in the directory will be read automatically

optional arguments:
  -h, --help            show this help message and exit
  -b BASE64, --BASE64 BASE64
                        base64 string for config json
  -j JSON, --JSON JSON  JSON string for config
  -y YAML, --YAML YAML  yaml config file path
  -l, --LOG             save log
  -c, --CACHE           cache models
  -n, --NOTOPENFOLDER   don't open output folder

Config

Pass the config json string to the program through the -j parameter.

PLEASE NOTE: the config is JSON, remove the // comments before use.

{
  "gpuid": 0,
  // GPU id, >= -1 (-1 for CPU, may not work for some models.)
  "inputpath": [
    // Input image paths, should be a list.
    "path/to/img1.jpg",
    "path/to/img2.png"
  ],
  "model": "RealCUGAN-pro",
  // model name
  "modelscale": 2,
  // model upscale factor
  "modelnoise": -1,
  // DENOISE level
  "outputpath": "path/to/output",
  // output path
  "targetscale": 2.0,
  // Target upscale factor, upscale multiple times to achieve the target upscale factor.
  // If not invalid, use modelscale.
  "tta": false
  // Test Time Augmentation, default false
}

SUPPORTED MODEL LIST:

- RealCUGAN-se:
    - model: "RealCUGAN-se"
    - scale: 2
               - noise: -1, 0, 1, 2, 3
    - scale: 3, 4
               - noise: -1, 0, 3

- RealCUGAN-pro:
    - model: "RealCUGAN-pro"
    - scale: 2, 3
    - noise: -1, 0, 3

- APISR-RRDB:
    - model: "APISR-RRDB"
    - scale: 4

- RealESRGAN-animevideov3:
    - model: "RealESRGAN-animevideov3"
    - scale: 2, 3, 4

- RealESRGAN:
    - model: "RealESRGAN"
    - scale: 4

- RealESRGAN-anime:
    - model: "RealESRGAN-anime"
    - scale: 4

- Waifu2x-cunet:
    - model: "Waifu2x-cunet"
    - scale: 1
               - noise: 0, 1, 2, 3
    - scale: 2
               - noise: -1, 0, 1, 2, 3

- Waifu2x-upconv_7_anime_style_art_rgb:
    - model: "Waifu2x-upconv_7_anime_style_art_rgb"
    - scale: 2
    - noise: -1, 0, 1, 2, 3

- Waifu2x-upconv_7_photo:
    - model: "Waifu2x-upconv_7_photo"
    - scale: 2
    - noise: -1, 0, 1, 2, 3

Build

Github Action

The project just only been tested in Ubuntu 18+ and Debian 9+ environments on Linux, so if the project does not work on your system, please try building it.

Reference

The following references were used in the development of this project:

  • ncnn - ncnn is a high-performance neural network inference framework developed by Tencent AI Lab.
  • nihui/realcugan-ncnn-vulkan - This project provided the core implementation of the Real-CUGAN algorithm using the ncnn and Vulkan libraries.
  • xinntao/Real-ESRGAN-ncnn-vulkan - This project provided the core implementation of the Real-ESRGAN algorithm using the ncnn and Vulkan libraries.
  • nihui/waifu2x-ncnn-vulkan - This project provided the core implementation of the Waifu2x algorithm using the ncnn and Vulkan libraries.
  • realcugan-ncnn-py - This project provided the Python Binding for realcugan-ncnn-vulkan with PyBind11.
  • realesrgan-ncnn-py - This project provided the Python Binding for realesrgan-ncnn-vulkan with PyBind11.
  • waifu2x-ncnn-py - This project provided the Python Binding for waifu2x-ncnn-vulkan with PyBind11.

License

This project is licensed under the BSD 3-Clause - see the LICENSE file for details.