mirror of
https://github.com/lllyasviel/stable-diffusion-webui-forge.git
synced 2026-01-26 19:09:45 +00:00
make Textual Inversion UI isolated
so that we can replace it soon also removed the extremely annoying SD version filter
This commit is contained in:
@@ -209,7 +209,7 @@ class EmbeddingDatabase:
|
||||
errors.report(f"Error loading embedding {fn}", exc_info=True)
|
||||
continue
|
||||
|
||||
def load_textual_inversion_embeddings(self, force_reload=False):
|
||||
def load_textual_inversion_embeddings(self, force_reload=False, sync_with_sd_model=True):
|
||||
if not force_reload:
|
||||
need_reload = False
|
||||
for embdir in self.embedding_dirs.values():
|
||||
@@ -223,7 +223,9 @@ class EmbeddingDatabase:
|
||||
self.ids_lookup.clear()
|
||||
self.word_embeddings.clear()
|
||||
self.skipped_embeddings.clear()
|
||||
self.expected_shape = self.get_expected_shape()
|
||||
|
||||
if sync_with_sd_model:
|
||||
self.expected_shape = self.get_expected_shape()
|
||||
|
||||
for embdir in self.embedding_dirs.values():
|
||||
self.load_from_dir(embdir)
|
||||
|
||||
@@ -1,19 +1,26 @@
|
||||
import os
|
||||
import modules.textual_inversion.textual_inversion
|
||||
|
||||
from modules import ui_extra_networks, sd_hijack, shared
|
||||
from modules.shared import cmd_opts
|
||||
from modules import ui_extra_networks, shared
|
||||
from modules.ui_extra_networks import quote_js
|
||||
|
||||
|
||||
embedding_db = modules.textual_inversion.textual_inversion.EmbeddingDatabase()
|
||||
embedding_db.add_embedding_dir(cmd_opts.embeddings_dir)
|
||||
embedding_db.load_textual_inversion_embeddings(force_reload=True, sync_with_sd_model=False)
|
||||
|
||||
|
||||
class ExtraNetworksPageTextualInversion(ui_extra_networks.ExtraNetworksPage):
|
||||
def __init__(self):
|
||||
super().__init__('Textual Inversion')
|
||||
self.allow_negative_prompt = True
|
||||
|
||||
def refresh(self):
|
||||
sd_hijack.model_hijack.embedding_db.load_textual_inversion_embeddings(force_reload=True)
|
||||
embedding_db.load_textual_inversion_embeddings(force_reload=True, sync_with_sd_model=False)
|
||||
|
||||
def create_item(self, name, index=None, enable_filter=True):
|
||||
embedding = sd_hijack.model_hijack.embedding_db.word_embeddings.get(name)
|
||||
embedding = embedding_db.word_embeddings.get(name)
|
||||
if embedding is None:
|
||||
return
|
||||
|
||||
@@ -35,11 +42,11 @@ class ExtraNetworksPageTextualInversion(ui_extra_networks.ExtraNetworksPage):
|
||||
|
||||
def list_items(self):
|
||||
# instantiate a list to protect against concurrent modification
|
||||
names = list(sd_hijack.model_hijack.embedding_db.word_embeddings)
|
||||
names = list(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)
|
||||
return list(embedding_db.embedding_dirs)
|
||||
|
||||
Reference in New Issue
Block a user