video2x/waifu2x.py

48 lines
1.5 KiB
Python
Raw Normal View History

2018-02-24 18:34:00 +00:00
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Name: FFMPEG Class
Author: K4YT3X
Date Created: Feb 24, 2018
2018-05-19 04:54:16 +00:00
Last Modified: May 19, 2018
2018-02-24 18:34:00 +00:00
Description: This class controls waifu2x
engine
2018-05-19 04:54:16 +00:00
Version 2.0
2018-02-24 18:34:00 +00:00
"""
2018-05-19 04:54:16 +00:00
import subprocess
2018-02-24 18:34:00 +00:00
class WAIFU2X:
2018-02-25 03:52:04 +00:00
"""This class communicates with waifu2x cui engine
An object will be created for this class, containing information
about the binary address and the processing method. When being called
by the main program, other detailed information will be passed to
the upscale function.
"""
2018-02-24 18:34:00 +00:00
2018-05-19 04:54:16 +00:00
def __init__(self, waifu2x_path, method, model_type):
2018-02-24 21:13:27 +00:00
self.waifu2x_path = waifu2x_path
self.method = method
2018-05-19 04:54:16 +00:00
self.model_type = model_type
2018-02-24 18:34:00 +00:00
2018-05-19 04:54:16 +00:00
def upscale(self, file, upscaled, width, height):
2018-02-25 03:52:04 +00:00
"""This is the core function for WAIFU2X class
[description]
Arguments:
2018-05-19 04:54:16 +00:00
file {string} -- input image
upscaled {string} -- output folder path
2018-02-25 03:52:04 +00:00
width {int} -- output video width
height {int} -- output video height
2018-05-19 04:54:16 +00:00
model_type {string} -- model to use for upscaling
2018-02-25 03:52:04 +00:00
"""
2018-05-19 04:54:16 +00:00
file_id = file.split('extracted_')[-1].split('.png')[0]
output_file = '{}\\{}{}{}'.format(upscaled, 'extracted_', file_id, '.png')
execute = "{} -p {} -I png -i {} -e png -o {} -w {} -h {} -n 3 -m noise_scale -y {}".format(
self.waifu2x_path, self.method, file, output_file, width, height, self.model_type)
subprocess.call(execute, stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT)