aboutsummaryrefslogtreecommitdiffstats
path: root/modules/sd_hijack.py
diff options
context:
space:
mode:
authorAUTOMATIC1111 <16777216c@gmail.com>2023-11-05 16:46:20 +0000
committerAUTOMATIC1111 <16777216c@gmail.com>2023-11-05 16:46:20 +0000
commit6ad666e4794a57dd65790dd6a259d5d4330d45ed (patch)
tree56cc5ff31c5c0c76a8bd92e8320e77d9eabd39f9 /modules/sd_hijack.py
parent80d639a440929e9effe4620ce74333de283e7efc (diff)
downloadstable-diffusion-webui-gfx803-6ad666e4794a57dd65790dd6a259d5d4330d45ed.tar.gz
stable-diffusion-webui-gfx803-6ad666e4794a57dd65790dd6a259d5d4330d45ed.tar.bz2
stable-diffusion-webui-gfx803-6ad666e4794a57dd65790dd6a259d5d4330d45ed.zip
more changes for #13865: fix formatting, rename the function, add comment and add a readme entry
Diffstat (limited to 'modules/sd_hijack.py')
-rw-r--r--modules/sd_hijack.py24
1 files changed, 13 insertions, 11 deletions
diff --git a/modules/sd_hijack.py b/modules/sd_hijack.py
index c6d17764..fba23c38 100644
--- a/modules/sd_hijack.py
+++ b/modules/sd_hijack.py
@@ -184,17 +184,19 @@ class StableDiffusionModelHijack:
errors.display(e, "applying cross attention optimization")
undo_optimizations()
- def conv_ssd(self, m):
- delattr(m.model.diffusion_model.middle_block, '1')
- delattr(m.model.diffusion_model.middle_block, '2')
- for i in ['9','8','7','6','5','4']:
- delattr(m.model.diffusion_model.input_blocks[7][1].transformer_blocks,i)
- delattr(m.model.diffusion_model.input_blocks[8][1].transformer_blocks,i)
- delattr(m.model.diffusion_model.output_blocks[0][1].transformer_blocks,i)
- delattr(m.model.diffusion_model.output_blocks[1][1].transformer_blocks,i)
- delattr(m.model.diffusion_model.output_blocks[4][1].transformer_blocks,'1')
- delattr(m.model.diffusion_model.output_blocks[5][1].transformer_blocks,'1')
- devices.torch_gc()
+ def convert_sdxl_to_ssd(self, m):
+ """Converts an SDXL model to a Segmind Stable Diffusion model (see https://huggingface.co/segmind/SSD-1B)"""
+
+ delattr(m.model.diffusion_model.middle_block, '1')
+ delattr(m.model.diffusion_model.middle_block, '2')
+ for i in ['9', '8', '7', '6', '5', '4']:
+ delattr(m.model.diffusion_model.input_blocks[7][1].transformer_blocks, i)
+ delattr(m.model.diffusion_model.input_blocks[8][1].transformer_blocks, i)
+ delattr(m.model.diffusion_model.output_blocks[0][1].transformer_blocks, i)
+ delattr(m.model.diffusion_model.output_blocks[1][1].transformer_blocks, i)
+ delattr(m.model.diffusion_model.output_blocks[4][1].transformer_blocks, '1')
+ delattr(m.model.diffusion_model.output_blocks[5][1].transformer_blocks, '1')
+ devices.torch_gc()
def hijack(self, m):
conditioner = getattr(m, 'conditioner', None)