From 0c2d66e2e582507f6a65a5fba8ad3694c9ad35d7 Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Mon, 1 Jul 2024 23:26:30 +0200 Subject: [PATCH] fix: do not update inpaint engine if inpaint mode is details --- modules/meta_parser.py | 11 +++++++---- webui.py | 10 +++++----- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/modules/meta_parser.py b/modules/meta_parser.py index 628ec402..87a501b3 100644 --- a/modules/meta_parser.py +++ b/modules/meta_parser.py @@ -20,7 +20,7 @@ re_imagesize = re.compile(r"^(\d+)x(\d+)$") hash_cache = {} -def load_parameter_button_click(raw_metadata: dict | str, is_generating: bool): +def load_parameter_button_click(raw_metadata: dict | str, is_generating: bool, inpaint_mode: str): loaded_parameter_dict = raw_metadata if isinstance(raw_metadata, str): loaded_parameter_dict = json.loads(raw_metadata) @@ -49,7 +49,7 @@ def load_parameter_button_click(raw_metadata: dict | str, is_generating: bool): get_str('scheduler', 'Scheduler', loaded_parameter_dict, results) get_str('vae', 'VAE', loaded_parameter_dict, results) get_seed('seed', 'Seed', loaded_parameter_dict, results) - get_inpaint_engine_version('inpaint_engine_version', 'Inpaint Engine Version', loaded_parameter_dict, results) + get_inpaint_engine_version('inpaint_engine_version', 'Inpaint Engine Version', loaded_parameter_dict, results, inpaint_mode) get_inpaint_method('inpaint_method', 'Inpaint Mode', loaded_parameter_dict, results) if is_generating: @@ -162,11 +162,14 @@ def get_seed(key: str, fallback: str | None, source_dict: dict, results: list, d results.append(gr.update()) -def get_inpaint_engine_version(key: str, fallback: str | None, source_dict: dict, results: list, default=None) -> str | None: +def get_inpaint_engine_version(key: str, fallback: str | None, source_dict: dict, results: list, inpaint_mode: str, default=None) -> str | None: try: h = source_dict.get(key, source_dict.get(fallback, default)) assert isinstance(h, str) and h in modules.flags.inpaint_engine_versions - results.append(h) + if inpaint_mode != modules.flags.inpaint_option_detail: + results.append(h) + else: + results.append(gr.update()) results.append(h) return h except: diff --git a/webui.py b/webui.py index 6fd1da7b..bf599af1 100644 --- a/webui.py +++ b/webui.py @@ -594,7 +594,7 @@ with shared.gradio_root: generate_button, load_parameter_button] + freeu_ctrls + lora_ctrls if not args_manager.args.disable_preset_selection: - def preset_selection_change(preset, is_generating): + def preset_selection_change(preset, is_generating, inpaint_mode): preset_content = modules.config.try_get_preset_content(preset) if preset != 'initial' else {} preset_prepared = modules.meta_parser.parse_meta_from_preset(preset_content) @@ -612,9 +612,9 @@ with shared.gradio_root: if 'prompt' in preset_prepared and preset_prepared.get('prompt') == '': del preset_prepared['prompt'] - return modules.meta_parser.load_parameter_button_click(json.dumps(preset_prepared), is_generating) + return modules.meta_parser.load_parameter_button_click(json.dumps(preset_prepared), is_generating, inpaint_mode) - preset_selection.change(preset_selection_change, inputs=[preset_selection, state_is_generating], outputs=load_data_outputs, queue=False, show_progress=True) \ + preset_selection.change(preset_selection_change, inputs=[preset_selection, state_is_generating, inpaint_mode], outputs=load_data_outputs, queue=False, show_progress=True) \ .then(fn=style_sorter.sort_styles, inputs=style_selections, outputs=style_selections, queue=False, show_progress=False) performance_selection.change(lambda x: [gr.update(interactive=not flags.Performance.has_restricted_features(x))] * 11 + @@ -716,7 +716,7 @@ with shared.gradio_root: prompt.input(parse_meta, inputs=[prompt, state_is_generating], outputs=[prompt, generate_button, load_parameter_button], queue=False, show_progress=False) - load_parameter_button.click(modules.meta_parser.load_parameter_button_click, inputs=[prompt, state_is_generating], outputs=load_data_outputs, queue=False, show_progress=False) + load_parameter_button.click(modules.meta_parser.load_parameter_button_click, inputs=[prompt, state_is_generating, inpaint_mode], outputs=load_data_outputs, queue=False, show_progress=False) def trigger_metadata_import(filepath, state_is_generating): parameters, metadata_scheme = modules.meta_parser.read_info_from_image(filepath) @@ -727,7 +727,7 @@ with shared.gradio_root: metadata_parser = modules.meta_parser.get_metadata_parser(metadata_scheme) parsed_parameters = metadata_parser.to_json(parameters) - return modules.meta_parser.load_parameter_button_click(parsed_parameters, state_is_generating) + return modules.meta_parser.load_parameter_button_click(parsed_parameters, state_is_generating, inpaint_mode) metadata_import_button.click(trigger_metadata_import, inputs=[metadata_input_image, state_is_generating], outputs=load_data_outputs, queue=False, show_progress=True) \ .then(style_sorter.sort_styles, inputs=style_selections, outputs=style_selections, queue=False, show_progress=False)