This commit is contained in:
Vladimir Mandic
2024-07-02 10:54:31 -04:00
parent 55ea007369
commit 3a9bfee7fb
3 changed files with 15 additions and 9 deletions
+3 -1
View File
@@ -5,13 +5,15 @@ TODO:
- Requires `diffusers==0.30.0`
- Alpha Lumina
## Update for 2024-07-01
## Update for 2024-07-02
- support for **HunyuanDiT 1.2**
- add support for [uv](https://pypi.org/project/uv/), extremely fast installer, thanks @Yoinky3000!
to use, simply add `--uv` to your command line params
- enable `florence` VLM for all platforms, thanks @lshqqytiger!
- fix executing extensions with zero params
- add support for embeddings bundled in LoRA, thanks @AI-Casanova!
- fix executing extensions with zero params
- fix nncf for lora, thanks @Disty0!
- fix diffusers version detection for SD3
- fix current step for higher order samplers
+11 -7
View File
@@ -12,6 +12,7 @@ from modules.files_cache import directory_files, directory_mtime, extension_filt
debug = shared.log.trace if os.environ.get('SD_TI_DEBUG', None) is not None else lambda *args, **kwargs: None
debug('Trace: TEXTUAL INVERSION')
def list_embeddings(*dirs):
is_ext = extension_filter(['.SAFETENSORS', '.PT' ] + ( ['.PNG', '.WEBP', '.JXL', '.AVIF', '.BIN' ] if not shared.native else [] ))
is_not_preview = lambda fp: not next(iter(os.path.splitext(fp))).upper().endswith('.PREVIEW') # pylint: disable=unnecessary-lambda-assignment
@@ -48,8 +49,8 @@ def open_embeddings(filename):
vectors = torch.load(fullname, map_location=devices.device)["string_to_param"]["*"]
embedding.vec.append(vectors)
embedding.tokens = [embedding.name if i == 0 else f"{embedding.name}_{i}" for i in range(len(embedding.vec[0]))]
except:
debug(f"Could not load embedding file {fullname}")
except Exception as e:
debug(f"Could not load embedding file {fullname} {e}")
if embedding.vec:
embeddings.append(embedding)
else:
@@ -115,8 +116,8 @@ def deref_tokenizers(tokens, tokenizers):
while last_token.replace(str(suffix), str(newsuffix)) in tokenizer.get_vocab():
idx = tokenizer.convert_tokens_to_ids(last_token.replace(str(suffix), str(newsuffix)))
debug(f"Textual inversion: deref idx={idx}")
del tokenizer._added_tokens_encoder[last_token.replace(str(suffix), str(newsuffix))]
tokenizer._added_tokens_decoder[idx].content = str(time.time())
del tokenizer._added_tokens_encoder[last_token.replace(str(suffix), str(newsuffix))] # pylint: disable=protected-access
tokenizer._added_tokens_decoder[idx].content = str(time.time()) # pylint: disable=protected-access
newsuffix += 1
@@ -277,7 +278,7 @@ class EmbeddingDatabase:
overwrite = bool(data)
if not shared.sd_loaded:
return 0
embeddings, skipped = open_embeddings(filename) or convert_bundled(data)
embeddings, _skipped = open_embeddings(filename) or convert_bundled(data)
if not embeddings:
return 0
text_encoders, tokenizers, hiddensizes = get_text_encoders()
@@ -301,8 +302,11 @@ class EmbeddingDatabase:
insert_tokens(embeddings, tokenizers)
for embedding in embeddings:
if embedding.name not in self.skipped_embeddings:
insert_vectors(embedding, tokenizers, text_encoders, hiddensizes)
self.register_embedding(embedding, shared.sd_model)
try:
insert_vectors(embedding, tokenizers, text_encoders, hiddensizes)
self.register_embedding(embedding, shared.sd_model)
except Exception as e:
shared.log.error(e, f'Embedding load: name={embedding.name} fn={embedding.filename} {e}')
return
def load_from_file(self, path, filename):
+1 -1
Submodule wiki updated: a9fd0bcb71...33f41e4ceb