From 41626d22c3a74a409eea348b34e6bdc873c3ff7b Mon Sep 17 00:00:00 2001 From: DominikDoom Date: Tue, 12 Dec 2023 12:15:58 +0100 Subject: [PATCH] Fix refresh in SD.Next if no model was loaded --- scripts/tag_autocomplete_helper.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/scripts/tag_autocomplete_helper.py b/scripts/tag_autocomplete_helper.py index 029d650..c420075 100644 --- a/scripts/tag_autocomplete_helper.py +++ b/scripts/tag_autocomplete_helper.py @@ -366,9 +366,19 @@ if EMB_PATH.exists(): def refresh_temp_files(*args, **kwargs): global WILDCARD_EXT_PATHS WILDCARD_EXT_PATHS = find_ext_wildcard_paths() - load_textual_inversion_embeddings(force_reload = True) # Instant embedding reload. write_temp_files() - get_embeddings(shared.sd_model) + + try: + # Fix for SD.Next infinite refresh loop due to gradio not updating after model load on demand. + # This will just skip embedding loading if no model is loaded yet (or there really are no embeddings). + # Try catch is just for safety incase sd_hijack access fails for some reason. + loaded = sd_hijack.model_hijack.embedding_db.word_embeddings + skipped = sd_hijack.model_hijack.embedding_db.skipped_embeddings + if len((loaded | skipped)) > 0: + load_textual_inversion_embeddings(force_reload = True) + get_embeddings(None) + except Exception: + pass def write_temp_files(): # Write wildcards to wc.txt if found