diff options
author | AUTOMATIC1111 <16777216c@gmail.com> | 2023-08-19 07:16:27 +0000 |
---|---|---|
committer | AUTOMATIC1111 <16777216c@gmail.com> | 2023-08-19 07:16:27 +0000 |
commit | 9d2299ed0bd6c81cae8a7ba4ca22d6a14fb27bef (patch) | |
tree | d517ad77374d149640ac22afb7a9d8c5e5abf5db /modules/sd_hijack.py | |
parent | 35db3665b39c55bfc0ef37e25fe23897ce7345df (diff) | |
download | stable-diffusion-webui-gfx803-9d2299ed0bd6c81cae8a7ba4ca22d6a14fb27bef.tar.gz stable-diffusion-webui-gfx803-9d2299ed0bd6c81cae8a7ba4ca22d6a14fb27bef.tar.bz2 stable-diffusion-webui-gfx803-9d2299ed0bd6c81cae8a7ba4ca22d6a14fb27bef.zip |
implement undo hijack for SDXL
Diffstat (limited to 'modules/sd_hijack.py')
-rw-r--r-- | modules/sd_hijack.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/modules/sd_hijack.py b/modules/sd_hijack.py index 46652fbd..592f0055 100644 --- a/modules/sd_hijack.py +++ b/modules/sd_hijack.py @@ -245,7 +245,21 @@ class StableDiffusionModelHijack: ldm.modules.diffusionmodules.openaimodel.UNetModel.forward = sd_unet.UNetModel_forward
def undo_hijack(self, m):
- if type(m.cond_stage_model) == sd_hijack_xlmr.FrozenXLMREmbedderWithCustomWords:
+ conditioner = getattr(m, 'conditioner', None)
+ if conditioner:
+ for i in range(len(conditioner.embedders)):
+ embedder = conditioner.embedders[i]
+ if isinstance(embedder, (sd_hijack_open_clip.FrozenOpenCLIPEmbedderWithCustomWords, sd_hijack_open_clip.FrozenOpenCLIPEmbedder2WithCustomWords)):
+ embedder.wrapped.model.token_embedding = embedder.wrapped.model.token_embedding.wrapped
+ conditioner.embedders[i] = embedder.wrapped
+ if isinstance(embedder, sd_hijack_clip.FrozenCLIPEmbedderForSDXLWithCustomWords):
+ embedder.wrapped.transformer.text_model.embeddings.token_embedding = embedder.wrapped.transformer.text_model.embeddings.token_embedding.wrapped
+ conditioner.embedders[i] = embedder.wrapped
+
+ if hasattr(m, 'cond_stage_model'):
+ delattr(m, 'cond_stage_model')
+
+ elif type(m.cond_stage_model) == sd_hijack_xlmr.FrozenXLMREmbedderWithCustomWords:
m.cond_stage_model = m.cond_stage_model.wrapped
elif type(m.cond_stage_model) == sd_hijack_clip.FrozenCLIPEmbedderWithCustomWords:
|