From 1a678360124c82327fae26034d0f6376dac00457 Mon Sep 17 00:00:00 2001 From: Kevin Turner <83819+keturn@users.noreply.github.com> Date: Sat, 10 Dec 2022 08:26:24 -0800 Subject: [PATCH] diffusers: use xformers when available diffusers no longer auto-enables this as of 0.10.2. --- ldm/invoke/generator/diffusers_pipeline.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ldm/invoke/generator/diffusers_pipeline.py b/ldm/invoke/generator/diffusers_pipeline.py index 8f2b4901b8..e1a4b120c7 100644 --- a/ldm/invoke/generator/diffusers_pipeline.py +++ b/ldm/invoke/generator/diffusers_pipeline.py @@ -10,6 +10,7 @@ import einops import torch import torchvision.transforms as T from diffusers.models import attention +from diffusers.utils.import_utils import is_xformers_available from ...models.diffusion import cross_attention_control @@ -239,6 +240,9 @@ class StableDiffusionGeneratorPipeline(StableDiffusionPipeline): self.invokeai_diffuser = InvokeAIDiffuserComponent(self.unet, self._unet_forward) self.embedding_manager = EmbeddingManager(self.clip_embedder, **_default_personalization_config_params) + if is_xformers_available(): + self.enable_xformers_memory_efficient_attention() + def image_from_embeddings(self, latents: torch.Tensor, num_inference_steps: int, text_embeddings: torch.Tensor, unconditioned_embeddings: torch.Tensor, guidance_scale: float,