From e72850de70dadc0fe69c0771829c1e5f7f9a62a5 Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Sun, 24 Dec 2023 13:09:20 +0100 Subject: [PATCH] download missing models from preset --- modules/config.py | 6 +++--- modules/meta_parser.py | 2 +- webui.py | 12 ++++++++++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/modules/config.py b/modules/config.py index 336092fa..1b2fdba9 100644 --- a/modules/config.py +++ b/modules/config.py @@ -364,9 +364,9 @@ possible_preset_keys = { "default_prompt_negative": "Negative Prompt", "default_styles": "Styles", "default_aspect_ratio": "Resolution", - "checkpoint_downloads": None, - "embeddings_downloads": None, - "lora_downloads": None, + "checkpoint_downloads": "checkpoint_downloads", + "embeddings_downloads": "embeddings_downloads", + "lora_downloads": "lora_downloads", } diff --git a/modules/meta_parser.py b/modules/meta_parser.py index c5ed176b..ebd72eb4 100644 --- a/modules/meta_parser.py +++ b/modules/meta_parser.py @@ -170,4 +170,4 @@ def parse_meta_from_preset(preset_content): if settings_key == "default_styles" or settings_key == "default_aspect_ratio": preset_prepared[meta_key] = str(preset_prepared[meta_key]) - return load_parameter_button_click(json.dumps(preset_prepared)) \ No newline at end of file + return preset_prepared \ No newline at end of file diff --git a/webui.py b/webui.py index 00396cbe..c849568f 100644 --- a/webui.py +++ b/webui.py @@ -16,6 +16,7 @@ import modules.style_sorter as style_sorter import modules.meta_parser import args_manager import copy +import launch from modules.sdxl_styles import legal_style_names from modules.private_logger import get_current_html_path @@ -465,7 +466,14 @@ with shared.gradio_root: def preset_selection_change(preset): preset_content = modules.config.try_get_preset_content(preset) if preset != 'initial' else {} - return modules.meta_parser.parse_meta_from_preset(preset_content) + preset_prepared = modules.meta_parser.parse_meta_from_preset(preset_content) + + launch.checkpoint_downloads = preset_prepared['checkpoint_downloads'] + launch.embeddings_downloads = preset_prepared['embeddings_downloads'] + launch.lora_downloads = preset_prepared['lora_downloads'] + launch.download_models() + + return modules.meta_parser.load_parameter_button_click(json.dumps(preset_prepared)) preset_selection.change(preset_selection_change, inputs=preset_selection, outputs=[ advanced_checkbox, @@ -491,7 +499,7 @@ with shared.gradio_root: image_seed, generate_button, load_parameter_button - ] + lora_ctrls, queue=False, show_progress=False) \ + ] + lora_ctrls, 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();}')