From d63dbb3acc16a737711fddb3a954238f82deb2fa Mon Sep 17 00:00:00 2001 From: C43H66N12O12S2 <36072735+C43H66N12O12S2@users.noreply.github.com> Date: Sun, 18 Sep 2022 01:05:31 +0300 Subject: [PATCH] Move scale multiplication to the front --- modules/sd_hijack.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/sd_hijack.py b/modules/sd_hijack.py index 654145188..d819c01c6 100644 --- a/modules/sd_hijack.py +++ b/modules/sd_hijack.py @@ -20,7 +20,7 @@ def split_cross_attention_forward_v1(self, x, context=None, mask=None): q = self.to_q(x) context = default(context, x) - k = self.to_k(context) + k = self.to_k(context) * self.scale v = self.to_v(context) del context, x @@ -85,7 +85,7 @@ def split_cross_attention_forward(self, x, context=None, mask=None): slice_size = q.shape[1] // steps if (q.shape[1] % steps) == 0 else q.shape[1] for i in range(0, q.shape[1], slice_size): end = i + slice_size - s1 = einsum('b i d, b j d -> b i j', q[:, i:end], k) * self.scale + s1 = einsum('b i d, b j d -> b i j', q[:, i:end], k) s2 = s1.softmax(dim=-1, dtype=q.dtype) del s1