From 8cf2325f3082c20cbbcbef0df4973a1b2e2ae7e1 Mon Sep 17 00:00:00 2001 From: Yashal Shakti Kanungo Date: Tue, 22 Aug 2023 16:00:35 -0700 Subject: [PATCH] Use single add_time_ids and add_text_embeds when using guess_mode Chunk and use single add_text_embeds and add_time_ids when using guess_mode and do_classifier_free_guidance --- .../pipelines/controlnet/pipeline_controlnet_sd_xl.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py b/src/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py index 9866875425f7..c5f584d75d2d 100644 --- a/src/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +++ b/src/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py @@ -1067,6 +1067,10 @@ def __call__( add_text_embeds = add_text_embeds.to(device) add_time_ids = add_time_ids.to(device).repeat(batch_size * num_images_per_prompt, 1) + if guess_mode and do_classifier_free_guidance: + add_text_embeds = add_text_embeds.chunk(2)[1] + add_time_ids = add_time_ids.chunk(2)[1] + # 8. Denoising loop num_warmup_steps = len(timesteps) - num_inference_steps * self.scheduler.order with self.progress_bar(total=num_inference_steps) as progress_bar: