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 1/3] 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) From 14895ebb139cf5c398c23c8b8d3b405e488e3260 Mon Sep 17 00:00:00 2001 From: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> Date: Sun, 11 Aug 2024 17:05:24 +0200 Subject: [PATCH 2/3] hotfix: yield enhance_input_image to correctly preview debug masks (#3497) sort images starts from index , which is 1 if enhance_input_image has been provided --- modules/async_worker.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/async_worker.py b/modules/async_worker.py index f9e277dbf..a0b96a542 100644 --- a/modules/async_worker.py +++ b/modules/async_worker.py @@ -1223,6 +1223,8 @@ def handler(async_task: AsyncTask): height, width, _ = async_task.enhance_input_image.shape # input image already provided, processing is skipped steps = 0 + yield_result(async_task, async_task.enhance_input_image, current_progress, async_task.black_out_nsfw, False, + async_task.disable_intermediate_results) all_steps = steps * async_task.image_number From 082a5262b04063c0af875c3eab1bbca8f16eb42b Mon Sep 17 00:00:00 2001 From: Manuel Schmid Date: Sun, 11 Aug 2024 18:48:31 +0200 Subject: [PATCH 3/3] release: bump version to 2.5.4, update changelog --- fooocus_version.py | 2 +- update_log.md | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/fooocus_version.py b/fooocus_version.py index 326513ef1..9d2c6cf34 100644 --- a/fooocus_version.py +++ b/fooocus_version.py @@ -1 +1 @@ -version = '2.5.3' +version = '2.5.4' \ No newline at end of file diff --git a/update_log.md b/update_log.md index 8dbd653e6..cce133b84 100644 --- a/update_log.md +++ b/update_log.md @@ -1,3 +1,9 @@ +# [2.5.4](https://github.com/lllyasviel/Fooocus/releases/tag/v2.5.4) + +* Fix validation for default_ip_image_* and default_inpaint_mask_sam_model +* Fix enhance mask debugging in combination with image sorting +* Fix loading of checkpoints and LoRAs when using multiple directories in config and then switching presets + # [2.5.3](https://github.com/lllyasviel/Fooocus/releases/tag/v2.5.3) * Only load weights from non-safetensors files, preventing harmful code injection