diff --git a/modules/config.py b/modules/config.py index 952fc602..42386f2f 100644 --- a/modules/config.py +++ b/modules/config.py @@ -81,7 +81,7 @@ try_load_deprecated_user_path_config() def list_presets(): preset_folder = 'presets' - presets = ['None'] + presets = ['initial'] if not os.path.exists(preset_folder): print('No presets found.') return presets; @@ -105,6 +105,7 @@ def try_get_preset_content(preset): except Exception as e: print(f'Load preset [{preset_path}] failed') print(e) + return {} def try_load_preset_global(preset): global config_dict @@ -181,12 +182,12 @@ def get_config_item_or_set_default(key, default_value, validator, disable_empty_ return default_value -default_base_model_name = get_config_item_or_set_default( +default_base_model_name = default_model = get_config_item_or_set_default( key='default_model', default_value='juggernautXL_version6Rundiffusion.safetensors', validator=lambda x: isinstance(x, str) ) -default_refiner_model_name = get_config_item_or_set_default( +default_refiner_model_name = default_refiner = get_config_item_or_set_default( key='default_refiner', default_value='None', validator=lambda x: isinstance(x, str) diff --git a/modules/meta_parser.py b/modules/meta_parser.py index b9ee47de..b9465c48 100644 --- a/modules/meta_parser.py +++ b/modules/meta_parser.py @@ -146,16 +146,16 @@ def load_parameter_button_click(raw_prompt_txt): def parse_meta_from_preset(preset_content): assert isinstance(preset_content, dict) preset_prepared = {} + items = preset_content - for k, v in preset_content.items(): - if k in modules.config.possible_preset_keys: - if modules.config.possible_preset_keys[k] is not None: - if k != "default_loras": - preset_prepared[modules.config.possible_preset_keys[k]] = v - else: - lora_count = 1 - for lora_value in v[:5]: - preset_prepared[f'LoRA {lora_count}'] = ' : '.join(map(str, lora_value)) - lora_count += 1 + for settings_key, meta_key in modules.config.possible_preset_keys.items(): + if settings_key != "default_loras": + preset_prepared[meta_key] = items[settings_key] if settings_key in items and items[settings_key] is not None else getattr(modules.config, settings_key) + else: + loras = getattr(modules.config, settings_key) + if settings_key in items: + loras = items[settings_key] + for index, lora in enumerate(loras[:5]): + preset_prepared[f'LoRA {index + 1}'] = ' : '.join(map(str, lora)) return load_parameter_button_click(json.dumps(preset_prepared)) \ No newline at end of file diff --git a/webui.py b/webui.py index 57ca89ac..f43d39b0 100644 --- a/webui.py +++ b/webui.py @@ -222,7 +222,7 @@ with shared.gradio_root: with gr.Tab(label='Setting'): preset_selection = gr.Radio(label='Preset', choices=modules.config.available_presets, - value=args_manager.args.preset if args_manager.args.preset else "None", + value=args_manager.args.preset if args_manager.args.preset else "initial", interactive=True) performance_selection = gr.Radio(label='Performance', choices=modules.flags.performance_selections, @@ -461,9 +461,8 @@ with shared.gradio_root: queue=False, show_progress=False) def preset_selection_change(preset): - preset_content = modules.config.try_get_preset_content(preset) - if preset_content is not None: - return modules.meta_parser.parse_meta_from_preset(preset_content) + preset_content = modules.config.try_get_preset_content(preset) if preset != 'initial' else {} + return modules.meta_parser.parse_meta_from_preset(preset_content) preset_selection.change(preset_selection_change, inputs=preset_selection, outputs=[ advanced_checkbox,