aboutsummaryrefslogtreecommitdiff
path: root/modules/sd_hijack.py
diff options
context:
space:
mode:
authorAUTOMATIC1111 <16777216c@gmail.com>2022-10-08 16:29:59 +0300
committerGitHub <noreply@github.com>2022-10-08 16:29:59 +0300
commit48feae37ff36915df9a3502a0a5aa1b7f146ab14 (patch)
tree698e1ad35b2ee6d528ece2f9cdadc96aa22d3e54 /modules/sd_hijack.py
parent5f85a74b00c0154bfd559dc67edfa7e30342b7c9 (diff)
parent970de9ee6891ff586821d0d80dde01c2f6c681b3 (diff)
Merge pull request #1851 from C43H66N12O12S2/flash
xformers attention
Diffstat (limited to 'modules/sd_hijack.py')
-rw-r--r--modules/sd_hijack.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/modules/sd_hijack.py b/modules/sd_hijack.py
index ba808a39..5d93f7f6 100644
--- a/modules/sd_hijack.py
+++ b/modules/sd_hijack.py
@@ -22,11 +22,13 @@ def apply_optimizations():
undo_optimizations()
ldm.modules.diffusionmodules.model.nonlinearity = silu
-
- if cmd_opts.opt_split_attention_v1:
+ if not cmd_opts.disable_opt_xformers_attention and not (cmd_opts.opt_split_attention or torch.version.hip) and shared.xformers_available:
+ ldm.modules.attention.CrossAttention.forward = sd_hijack_optimizations.xformers_attention_forward
+ ldm.modules.diffusionmodules.model.AttnBlock.forward = sd_hijack_optimizations.xformers_attnblock_forward
+ elif cmd_opts.opt_split_attention_v1:
ldm.modules.attention.CrossAttention.forward = sd_hijack_optimizations.split_cross_attention_forward_v1
- elif not cmd_opts.disable_opt_split_attention and (cmd_opts.opt_split_attention or torch.cuda.is_available()):
- ldm.modules.attention.CrossAttention.forward = sd_hijack_optimizations.split_cross_attention_forward
+ elif cmd_opts.opt_split_attention or torch.cuda.is_available():
+ ldm.modules.attention_CrossAttention_forward = sd_hijack_optimizations.split_cross_attention_forward
ldm.modules.diffusionmodules.model.AttnBlock.forward = sd_hijack_optimizations.cross_attention_attnblock_forward