diff --git a/modules/meta_parser.py b/modules/meta_parser.py index 191d8905..4a14a001 100644 --- a/modules/meta_parser.py +++ b/modules/meta_parser.py @@ -166,10 +166,13 @@ def get_inpaint_method(key: str, fallback: str | None, source_dict: dict, result h = source_dict.get(key, source_dict.get(fallback, default)) assert isinstance(h, str) and h in modules.flags.inpaint_options results.append(h) + for i in range(modules.config.default_enhance_tabs): + results.append(h) return h except: results.append(gr.update()) - return None + for i in range(modules.config.default_enhance_tabs): + results.append(gr.update()) def get_adm_guidance(key: str, fallback: str | None, source_dict: dict, results: list, default=None): diff --git a/webui.py b/webui.py index 6dc4ac1d..f6db5f35 100644 --- a/webui.py +++ b/webui.py @@ -377,6 +377,8 @@ with shared.gradio_root: queue=False, show_progress=False) gr.HTML('\U0001F4D4 Document') enhance_ctrls = [] + enhance_inpaint_mode_ctrls = [] + enhance_inpaint_update_ctrls = [] for index in range(modules.config.default_enhance_tabs): with gr.TabItem(label=f'#{index + 1}') as enhance_tab_item: enhance_enabled = gr.Checkbox(label='Enable', value=False, elem_classes='min_check', @@ -435,7 +437,7 @@ with shared.gradio_root: with gr.Accordion("Inpaint", visible=True, open=False): enhance_inpaint_mode = gr.Dropdown(choices=modules.flags.inpaint_options, - value=modules.flags.inpaint_option_default, + value=modules.config.default_inpaint_method, label='Method', interactive=True) enhance_inpaint_disable_initial_latent = gr.Checkbox( label='Disable initial latent in inpaint', value=False) @@ -485,7 +487,14 @@ with shared.gradio_root: enhance_mask_invert ] - enhance_inpaint_mode.input(inpaint_mode_change, inputs=enhance_inpaint_mode, outputs=[ + enhance_inpaint_mode_ctrls += [enhance_inpaint_mode] + + enhance_inpaint_update_ctrls += [[ + enhance_inpaint_mode, enhance_inpaint_disable_initial_latent, enhance_inpaint_engine, + enhance_inpaint_strength, enhance_inpaint_respective_field + ]] + + enhance_inpaint_mode.change(inpaint_mode_change, inputs=enhance_inpaint_mode, outputs=[ inpaint_additional_prompt, outpaint_selections, example_inpaint_prompts, enhance_inpaint_disable_initial_latent, enhance_inpaint_engine, enhance_inpaint_strength, enhance_inpaint_respective_field @@ -874,8 +883,8 @@ with shared.gradio_root: overwrite_width, overwrite_height, guidance_scale, sharpness, adm_scaler_positive, adm_scaler_negative, adm_scaler_end, refiner_swap_method, adaptive_cfg, clip_skip, base_model, refiner_model, refiner_switch, sampler_name, scheduler_name, vae_name, - seed_random, image_seed, inpaint_mode, generate_button, load_parameter_button - ] + freeu_ctrls + lora_ctrls + seed_random, image_seed, inpaint_mode] + enhance_inpaint_mode_ctrls + [generate_button, + load_parameter_button] + freeu_ctrls + lora_ctrls if not args_manager.args.disable_preset_selection: def preset_selection_change(preset, is_generating): @@ -925,11 +934,12 @@ with shared.gradio_root: ], show_progress=False, queue=False) # load configured default_inpaint_method - shared.gradio_root.load(inpaint_mode_change, inputs=inpaint_mode, outputs=[ - inpaint_additional_prompt, outpaint_selections, example_inpaint_prompts, - inpaint_disable_initial_latent, inpaint_engine, - inpaint_strength, inpaint_respective_field - ], show_progress=False, queue=False) + default_inpaint_ctrls = [inpaint_mode, inpaint_disable_initial_latent, inpaint_engine, inpaint_strength, inpaint_respective_field] + for mode, disable_initial_latent, engine, strength, respective_field in [default_inpaint_ctrls] + enhance_inpaint_update_ctrls: + shared.gradio_root.load(inpaint_mode_change, inputs=mode, outputs=[ + inpaint_additional_prompt, outpaint_selections, example_inpaint_prompts, disable_initial_latent, + engine, strength, respective_field + ], show_progress=False, queue=False) generate_mask_button.click(fn=generate_mask, inputs=[inpaint_input_image, inpaint_mask_model, inpaint_mask_cloth_category,