aboutsummaryrefslogtreecommitdiff
path: root/modules/sd_hijack.py
diff options
context:
space:
mode:
authorZac Liu <liuguang@baai.ac.cn>2022-11-30 11:14:04 +0800
committerGitHub <noreply@github.com>2022-11-30 11:14:04 +0800
commita39a57cb1f5964d9af2b541f7b352576adeeac0f (patch)
treeebae98ea40ecc5b34497424bee19310e9fac4068 /modules/sd_hijack.py
parent4b3c5bc24bffdf429c463a465763b3077fe55eb8 (diff)
parent0831ab476c626eb796b609acf8771177692bfab7 (diff)
Merge pull request #1 from 920232796/master
Add AltDiffusion
Diffstat (limited to 'modules/sd_hijack.py')
-rw-r--r--modules/sd_hijack.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/modules/sd_hijack.py b/modules/sd_hijack.py
index b824b5bf..3ec3f98a 100644
--- a/modules/sd_hijack.py
+++ b/modules/sd_hijack.py
@@ -81,17 +81,23 @@ class StableDiffusionModelHijack:
embedding_db = modules.textual_inversion.textual_inversion.EmbeddingDatabase(cmd_opts.embeddings_dir)
def hijack(self, m):
+
if type(m.cond_stage_model) == ldm.modules.encoders.modules.FrozenCLIPEmbedder:
model_embeddings = m.cond_stage_model.transformer.text_model.embeddings
model_embeddings.token_embedding = EmbeddingsWithFixes(model_embeddings.token_embedding, self)
m.cond_stage_model = sd_hijack_clip.FrozenCLIPEmbedderWithCustomWords(m.cond_stage_model, self)
+ apply_optimizations()
elif type(m.cond_stage_model) == ldm.modules.encoders.modules.FrozenOpenCLIPEmbedder:
m.cond_stage_model.model.token_embedding = EmbeddingsWithFixes(m.cond_stage_model.model.token_embedding, self)
m.cond_stage_model = sd_hijack_open_clip.FrozenOpenCLIPEmbedderWithCustomWords(m.cond_stage_model, self)
-
+ apply_optimizations()
+ elif shared.text_model_name == "XLMR-Large":
+ model_embeddings = m.cond_stage_model.roberta.embeddings
+ model_embeddings.token_embedding = EmbeddingsWithFixes(model_embeddings.word_embeddings, self)
+ m.cond_stage_model = sd_hijack_clip.FrozenCLIPEmbedderWithCustomWords(m.cond_stage_model, self)
+
self.clip = m.cond_stage_model
-
- apply_optimizations()
+
fix_checkpoint()
def flatten(el):
@@ -132,8 +138,8 @@ class StableDiffusionModelHijack:
def tokenize(self, text):
_, remade_batch_tokens, _, _, _, token_count = self.clip.process_text([text])
- return remade_batch_tokens[0], token_count, sd_hijack_clip.get_target_prompt_token_count(token_count)
+ return remade_batch_tokens[0], token_count, sd_hijack_clip.get_target_prompt_token_count(token_count)
class EmbeddingsWithFixes(torch.nn.Module):