aboutsummaryrefslogtreecommitdiff
path: root/modules/ui_extra_networks_textual_inversion.py
diff options
context:
space:
mode:
authorAUTOMATIC1111 <16777216c@gmail.com>2023-11-19 09:09:21 +0300
committerGitHub <noreply@github.com>2023-11-19 09:09:21 +0300
commit337bc4a2fba577d858dfa266860f08ba37ec3039 (patch)
treea49d299a0f9617d58edcdf9ebb6384b4d32bd751 /modules/ui_extra_networks_textual_inversion.py
parent6fac65f33424693d549cddf08c5b3ee5f8413747 (diff)
parent74b80e72115af46bf1c04167a30f9ec5025cb464 (diff)
Merge pull request #13014 from AUTOMATIC1111/thread-safe-extranetworks-list_items
thread safe extra network list_items
Diffstat (limited to 'modules/ui_extra_networks_textual_inversion.py')
-rw-r--r--modules/ui_extra_networks_textual_inversion.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/modules/ui_extra_networks_textual_inversion.py b/modules/ui_extra_networks_textual_inversion.py
index 55ef0ea7..1b334fda 100644
--- a/modules/ui_extra_networks_textual_inversion.py
+++ b/modules/ui_extra_networks_textual_inversion.py
@@ -14,6 +14,8 @@ class ExtraNetworksPageTextualInversion(ui_extra_networks.ExtraNetworksPage):
def create_item(self, name, index=None, enable_filter=True):
embedding = sd_hijack.model_hijack.embedding_db.word_embeddings.get(name)
+ if embedding is None:
+ return
path, ext = os.path.splitext(embedding.filename)
return {
@@ -29,8 +31,12 @@ class ExtraNetworksPageTextualInversion(ui_extra_networks.ExtraNetworksPage):
}
def list_items(self):
- for index, name in enumerate(sd_hijack.model_hijack.embedding_db.word_embeddings):
- yield self.create_item(name, index)
+ # instantiate a list to protect against concurrent modification
+ names = list(sd_hijack.model_hijack.embedding_db.word_embeddings)
+ for index, name in enumerate(names):
+ item = self.create_item(name, index)
+ if item is not None:
+ yield item
def allowed_directories_for_previews(self):
return list(sd_hijack.model_hijack.embedding_db.embedding_dirs)