From 0d0240314bf04212e200282c613d9176290b430d Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Fri, 15 Sep 2023 09:14:47 -0400 Subject: [PATCH] add process/postprocess logging --- modules/postprocessing.py | 3 +++ modules/scripts_postprocessing.py | 31 ++++--------------------------- 2 files changed, 7 insertions(+), 27 deletions(-) diff --git a/modules/postprocessing.py b/modules/postprocessing.py index c82aac540..d090e00dd 100644 --- a/modules/postprocessing.py +++ b/modules/postprocessing.py @@ -17,6 +17,7 @@ def run_postprocessing(extras_mode, image, image_folder: List[tempfile.NamedTemp outputs = [] params = {} if extras_mode == 1: + shared.log.debug(f'process: mode=batch folder={image_folder}') for img in image_folder: if isinstance(img, Image.Image): image = img @@ -29,6 +30,7 @@ def run_postprocessing(extras_mode, image, image_folder: List[tempfile.NamedTemp image_names.append(fn) image_ext.append(ext) elif extras_mode == 2: + shared.log.debug(f'process: mode=folder folder={input_dir}') assert not shared.cmd_opts.hide_ui_dir_config, '--hide-ui-dir-config option must be disabled' assert input_dir, 'input directory not selected' image_list = shared.listfiles(input_dir) @@ -50,6 +52,7 @@ def run_postprocessing(extras_mode, image, image_folder: List[tempfile.NamedTemp else: outpath = opts.outdir_samples or opts.outdir_extras_samples for image, name, ext in zip(image_data, image_names, image_ext): + shared.log.debug(f'process: image={image} {args}') infotext = '' if shared.state.interrupted: shared.log.debug('Postprocess interrupted') diff --git a/modules/scripts_postprocessing.py b/modules/scripts_postprocessing.py index 7baa4c738..3c8720fc5 100644 --- a/modules/scripts_postprocessing.py +++ b/modules/scripts_postprocessing.py @@ -1,6 +1,5 @@ import os import gradio as gr - from modules import errors, shared @@ -15,15 +14,9 @@ class ScriptPostprocessing: controls = None args_from = None args_to = None - - order = 1000 - """scripts will be ordred by this value in postprocessing UI""" - - name = None - """this function should return the title of the script.""" - - group = None - """A gr.Group component that has all script's UI inside it""" + order = 1000 # scripts will be ordred by this value in postprocessing UI + name = None # this function should return the title of the script + group = None # A gr.Group component that has all script's UI inside it def ui(self): """ @@ -61,25 +54,19 @@ class ScriptPostprocessingRunner: def initialize_scripts(self, scripts_data): self.scripts = [] - for script_class, path, _basedir, _script_module in scripts_data: script: ScriptPostprocessing = script_class() script.filename = path - if script.name == "Simple Upscale": continue - self.scripts.append(script) def create_script_ui(self, script, inputs): script.args_from = len(inputs) script.args_to = len(inputs) - script.controls = wrap_call(script.ui, script.filename, "ui") - for control in script.controls.values(): control.custom_script_source = os.path.basename(script.filename) - inputs += list(script.controls.values()) script.args_to = len(inputs) @@ -87,56 +74,46 @@ class ScriptPostprocessingRunner: if self.scripts is None: import modules.scripts self.initialize_scripts(modules.scripts.postprocessing_scripts_data) - scripts_order = shared.opts.postprocessing_operation_order def script_score(name): for i, possible_match in enumerate(scripts_order): if possible_match == name: return i - return len(self.scripts) script_scores = {script.name: (script_score(script.name), script.order, script.name, original_index) for original_index, script in enumerate(self.scripts)} - return sorted(self.scripts, key=lambda x: script_scores[x.name]) def setup_ui(self): inputs = [] - for script in self.scripts_in_preferred_order(): with gr.Row() as group: self.create_script_ui(script, inputs) - script.group = group - self.ui_created = True return inputs def run(self, pp: PostprocessedImage, args): for script in self.scripts_in_preferred_order(): shared.state.job = script.name - script_args = args[script.args_from:script.args_to] - process_args = {} for (name, _component), value in zip(script.controls.items(), script_args): process_args[name] = value - + shared.log.debug(f'postprocess: script={script.name} args={process_args}') script.process(pp, **process_args) def create_args_for_run(self, scripts_args): if not self.ui_created: with gr.Blocks(analytics_enabled=False): self.setup_ui() - scripts = self.scripts_in_preferred_order() args = [None] * max([x.args_to for x in scripts]) for script in scripts: script_args_dict = scripts_args.get(script.name, None) if script_args_dict is not None: - for i, name in enumerate(script.controls): args[script.args_from + i] = script_args_dict.get(name, None)