diff --git a/modules/meta_parser.py b/modules/meta_parser.py index 7ab5a519..ac0dff38 100644 --- a/modules/meta_parser.py +++ b/modules/meta_parser.py @@ -20,7 +20,7 @@ re_param = re.compile(re_param_code) re_imagesize = re.compile(r"^(\d+)x(\d+)$") -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 1ac7b648..cb0f48d5 100644 --- a/webui.py +++ b/webui.py @@ -894,7 +894,7 @@ with shared.gradio_root: 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) @@ -912,7 +912,7 @@ 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) def inpaint_engine_state_change(inpaint_engine_version, *args): @@ -928,7 +928,7 @@ with shared.gradio_root: return result - 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) \ .then(lambda: None, _js='()=>{refresh_style_localization();}') \ .then(inpaint_engine_state_change, inputs=[inpaint_engine_state] + enhance_inpaint_mode_ctrls, outputs=enhance_inpaint_engine_ctrls, queue=False, show_progress=False) @@ -1015,7 +1015,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) @@ -1026,7 +1026,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)