From 33d7e89c42e0fe7b4a277d7a5bae12ba14828dd8 Mon Sep 17 00:00:00 2001 From: Lime-Cakes <91322985+Lime-Cakes@users.noreply.github.com> Date: Mon, 14 Nov 2022 20:35:47 +0800 Subject: [PATCH] Edited attention.py for older xformers (#1270) Older versions of xformers require query, key, value to be contiguous, this calls .contiguous() on q/k/v before passing to xformers. --- src/diffusers/models/attention.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/diffusers/models/attention.py b/src/diffusers/models/attention.py index e8ea37970e..be9203b4d6 100644 --- a/src/diffusers/models/attention.py +++ b/src/diffusers/models/attention.py @@ -557,6 +557,9 @@ class CrossAttention(nn.Module): return hidden_states def _memory_efficient_attention_xformers(self, query, key, value): + query = query.contiguous() + key = key.contiguous() + value = value.contiguous() hidden_states = xformers.ops.memory_efficient_attention(query, key, value, attn_bias=None) hidden_states = self.reshape_batch_dim_to_heads(hidden_states) return hidden_states