From 3a9bfee7fba00cba940c24a44a9a07157fdbe8f2 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Tue, 2 Jul 2024 10:54:31 -0400 Subject: [PATCH] update --- CHANGELOG.md | 4 +++- modules/textual_inversion/textual_inversion.py | 18 +++++++++++------- wiki | 2 +- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ded1b665..9cc3d7ad8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/modules/textual_inversion/textual_inversion.py b/modules/textual_inversion/textual_inversion.py index 292699f2d..29cd5ad21 100644 --- a/modules/textual_inversion/textual_inversion.py +++ b/modules/textual_inversion/textual_inversion.py @@ -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): diff --git a/wiki b/wiki index a9fd0bcb7..33f41e4ce 160000 --- a/wiki +++ b/wiki @@ -1 +1 @@ -Subproject commit a9fd0bcb711184e5df032c99158945e3cbcee72e +Subproject commit 33f41e4ceb3e03271d6f1edc7ce8cef467e7ce4b