From 73a98726a193199e6aca75fda4ac71998640f59b Mon Sep 17 00:00:00 2001 From: K4YT3X Date: Fri, 8 Feb 2019 16:48:56 -0500 Subject: [PATCH] renamed waifu2x drivers --- bin/waifu2x_caffe.py | 57 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100755 bin/waifu2x_caffe.py diff --git a/bin/waifu2x_caffe.py b/bin/waifu2x_caffe.py new file mode 100755 index 0000000..fbf9849 --- /dev/null +++ b/bin/waifu2x_caffe.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Name: Waifu2x Caffe Driver +Author: K4YT3X +Date Created: Feb 24, 2018 +Last Modified: February 8, 2019 + +Description: This class controls waifu2x +engine + +Version 2.0.5 +""" +from avalon_framework import Avalon +import subprocess +import threading + + +class Waifu2xCaffe: + """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. + """ + + def __init__(self, waifu2x_path, method, model_type): + self.waifu2x_path = waifu2x_path + self.method = method + self.model_type = model_type + self.print_lock = threading.Lock() + + def upscale(self, folderin, folderout, width, height): + """This is the core function for WAIFU2X class + + Arguments: + folderin {string} -- source folder path + folderout {string} -- output folder path + width {int} -- output video width + height {int} -- output video height + """ + + # Print thread start message + self.print_lock.acquire() + Avalon.debug_info('[upscaler] Thread {} started'.format(threading.current_thread().name)) + self.print_lock.release() + + # Create string for execution + execute = '\"{}\" -p {} -I png -i \"{}\" -e png -o {} -w {} -h {} -n 3 -m noise_scale -y {}'.format( + self.waifu2x_path, self.method, folderin, folderout, width, height, self.model_type) + subprocess.call(execute) + + # Print thread exiting message + self.print_lock.acquire() + Avalon.debug_info('[upscaler] Thread {} exiting'.format(threading.current_thread().name)) + self.print_lock.release()