From f208bc5ca1f38ade90c90687f9c12bf49c168973 Mon Sep 17 00:00:00 2001 From: Devedse Date: Mon, 12 Dec 2022 19:03:52 +0100 Subject: [PATCH] Added support for globs --- buildding/waifu2x-converter-cpp | 1 - src/dandere2x/dandere2x_service/core/merge.py | 2 +- .../dandere2xlib/wrappers/frame/frame.py | 15 +++++++++++---- 3 files changed, 12 insertions(+), 6 deletions(-) delete mode 160000 buildding/waifu2x-converter-cpp diff --git a/buildding/waifu2x-converter-cpp b/buildding/waifu2x-converter-cpp deleted file mode 160000 index 57520b25..00000000 --- a/buildding/waifu2x-converter-cpp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 57520b25864e648c133ea0b2f4e7e07410ddc1f4 diff --git a/src/dandere2x/dandere2x_service/core/merge.py b/src/dandere2x/dandere2x_service/core/merge.py index 7a028411..d155c6cd 100644 --- a/src/dandere2x/dandere2x_service/core/merge.py +++ b/src/dandere2x/dandere2x_service/core/merge.py @@ -148,7 +148,7 @@ def run(self): if not last_frame: # We need to wait until the next upscaled image exists before we move on. while not background_frame_load.load_complete: - wait_on_file(self.context.residual_upscaled_dir + "output_" + get_lexicon_value(6, x + 1) + ".png") + wait_on_file(self.context.residual_upscaled_dir + "output_" + get_lexicon_value(6, x + 1) + "*.png") # Added * here because waifu2x_converter_cpp outputs filenames as: output_000008_[L3][x2.00].png """ Now that we're all done with the current frame, the current `current_frame` is now the frame_previous (with respect to the next iteration). We could obviously manually load frame_previous = Frame(n-1) each diff --git a/src/dandere2x/dandere2xlib/wrappers/frame/frame.py b/src/dandere2x/dandere2xlib/wrappers/frame/frame.py index 3dc2a1da..1cf94686 100644 --- a/src/dandere2x/dandere2xlib/wrappers/frame/frame.py +++ b/src/dandere2x/dandere2xlib/wrappers/frame/frame.py @@ -3,6 +3,7 @@ import logging import os import time +from glob import glob from dataclasses import dataclass import imageio @@ -107,21 +108,27 @@ def load_from_string(self, input_string): from dandere2x.dandere2x_service.dandere2x_service_controller import Dandere2xController def load_from_string_controller(self, input_string, controller=Dandere2xController()): + + actual_file_name = '' logger = logging.getLogger(__name__) - exists = exists = os.path.isfile(input_string) count = 0 - while not exists: + while True: if count % 10000 == 0: logger.debug(input_string + " dne") - exists = os.path.isfile(input_string) + + potential_files = glob(input_string) + if len(potential_files) > 0: + actual_file_name = potential_files[0] + break + count += 1 time.sleep(.2) loaded = False while not loaded: try: - self.load_from_string(input_string) + self.load_from_string(actual_file_name) loaded = True except PermissionError: logger.debug("Permission Error - trying again ")