From b0d16a3aa71dca44835b595ec4ae5ed3c83d405d Mon Sep 17 00:00:00 2001 From: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> Date: Sun, 11 Aug 2024 15:31:24 +0200 Subject: [PATCH] fix: check all dirs instead of only the first one (#3495) * fix: check all checkpoint dirs instead of only the first one for models * fix: use get_file_from_folder_list instead of manually iterating over lists * refactor: code cleanup --- launch.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/launch.py b/launch.py index 77c2e2c29..2f256bac7 100644 --- a/launch.py +++ b/launch.py @@ -21,6 +21,7 @@ from build_launcher import build_launcher from modules.launch_util import is_installed, run, python, run_pip, requirements_met, delete_folder_content from modules.model_loader import load_file_from_url +from modules.util import get_file_from_folder_list REINSTALL_ALL = False TRY_INSTALL_XFORMERS = False @@ -80,12 +81,13 @@ def ini_args(): os.environ['CUDA_VISIBLE_DEVICES'] = str(args.gpu_device_id) print("Set device to:", args.gpu_device_id) -if args.hf_mirror is not None : +if args.hf_mirror is not None: os.environ['HF_MIRROR'] = str(args.hf_mirror) print("Set hf_mirror to:", args.hf_mirror) from modules import config from modules.hash_cache import init_cache + os.environ["U2NET_HOME"] = config.path_inpaint os.environ['GRADIO_TEMP_DIR'] = config.temp_path @@ -114,9 +116,9 @@ def download_models(default_model, previous_default_models, checkpoint_downloads return default_model, checkpoint_downloads if not args.always_download_new_model: - if not os.path.exists(os.path.join(config.paths_checkpoints[0], default_model)): + if not os.path.isfile(get_file_from_folder_list(default_model, config.paths_checkpoints)): for alternative_model_name in previous_default_models: - if os.path.exists(os.path.join(config.paths_checkpoints[0], alternative_model_name)): + if os.path.isfile(get_file_from_folder_list(alternative_model_name, config.paths_checkpoints)): print(f'You do not have [{default_model}] but you have [{alternative_model_name}].') print(f'Fooocus will use [{alternative_model_name}] to avoid downloading new models, ' f'but you are not using the latest models.') @@ -126,11 +128,13 @@ def download_models(default_model, previous_default_models, checkpoint_downloads break for file_name, url in checkpoint_downloads.items(): - load_file_from_url(url=url, model_dir=config.paths_checkpoints[0], file_name=file_name) + model_dir = os.path.dirname(get_file_from_folder_list(file_name, config.paths_checkpoints)) + load_file_from_url(url=url, model_dir=model_dir, file_name=file_name) for file_name, url in embeddings_downloads.items(): load_file_from_url(url=url, model_dir=config.path_embeddings, file_name=file_name) for file_name, url in lora_downloads.items(): - load_file_from_url(url=url, model_dir=config.paths_loras[0], file_name=file_name) + model_dir = os.path.dirname(get_file_from_folder_list(file_name, config.paths_loras)) + load_file_from_url(url=url, model_dir=model_dir, file_name=file_name) for file_name, url in vae_downloads.items(): load_file_from_url(url=url, model_dir=config.path_vae, file_name=file_name)