Skip to content

Commit 9a8e8db

Browse files
authored
Fix Callback Tensor Inputs of the SD Controlnet Pipelines are missing some elements. (#10907)
* Update pipeline_controlnet_img2img.py * Update pipeline_controlnet_inpaint.py * Update pipeline_controlnet.py ---------
1 parent 764d7ed commit 9a8e8db

File tree

3 files changed

+6
-3
lines changed

3 files changed

+6
-3
lines changed

src/diffusers/pipelines/controlnet/pipeline_controlnet.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ class StableDiffusionControlNetPipeline(
207207
model_cpu_offload_seq = "text_encoder->image_encoder->unet->vae"
208208
_optional_components = ["safety_checker", "feature_extractor", "image_encoder"]
209209
_exclude_from_cpu_offload = ["safety_checker"]
210-
_callback_tensor_inputs = ["latents", "prompt_embeds", "negative_prompt_embeds"]
210+
_callback_tensor_inputs = ["latents", "prompt_embeds", "negative_prompt_embeds", "image"]
211211

212212
def __init__(
213213
self,
@@ -1323,6 +1323,7 @@ def __call__(
13231323
latents = callback_outputs.pop("latents", latents)
13241324
prompt_embeds = callback_outputs.pop("prompt_embeds", prompt_embeds)
13251325
negative_prompt_embeds = callback_outputs.pop("negative_prompt_embeds", negative_prompt_embeds)
1326+
image = callback_outputs.pop("image", image)
13261327

13271328
# call the callback, if provided
13281329
if i == len(timesteps) - 1 or ((i + 1) > num_warmup_steps and (i + 1) % self.scheduler.order == 0):

src/diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ class StableDiffusionControlNetImg2ImgPipeline(
185185
model_cpu_offload_seq = "text_encoder->unet->vae"
186186
_optional_components = ["safety_checker", "feature_extractor", "image_encoder"]
187187
_exclude_from_cpu_offload = ["safety_checker"]
188-
_callback_tensor_inputs = ["latents", "prompt_embeds", "negative_prompt_embeds"]
188+
_callback_tensor_inputs = ["latents", "prompt_embeds", "negative_prompt_embeds", "control_image"]
189189

190190
def __init__(
191191
self,
@@ -1294,6 +1294,7 @@ def __call__(
12941294
latents = callback_outputs.pop("latents", latents)
12951295
prompt_embeds = callback_outputs.pop("prompt_embeds", prompt_embeds)
12961296
negative_prompt_embeds = callback_outputs.pop("negative_prompt_embeds", negative_prompt_embeds)
1297+
control_image = callback_outputs.pop("control_image", control_image)
12971298

12981299
# call the callback, if provided
12991300
if i == len(timesteps) - 1 or ((i + 1) > num_warmup_steps and (i + 1) % self.scheduler.order == 0):

src/diffusers/pipelines/controlnet/pipeline_controlnet_inpaint.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ class StableDiffusionControlNetInpaintPipeline(
184184
model_cpu_offload_seq = "text_encoder->image_encoder->unet->vae"
185185
_optional_components = ["safety_checker", "feature_extractor", "image_encoder"]
186186
_exclude_from_cpu_offload = ["safety_checker"]
187-
_callback_tensor_inputs = ["latents", "prompt_embeds", "negative_prompt_embeds"]
187+
_callback_tensor_inputs = ["latents", "prompt_embeds", "negative_prompt_embeds", "control_image"]
188188

189189
def __init__(
190190
self,
@@ -1476,6 +1476,7 @@ def __call__(
14761476
latents = callback_outputs.pop("latents", latents)
14771477
prompt_embeds = callback_outputs.pop("prompt_embeds", prompt_embeds)
14781478
negative_prompt_embeds = callback_outputs.pop("negative_prompt_embeds", negative_prompt_embeds)
1479+
control_image = callback_outputs.pop("control_image", control_image)
14791480

14801481
# call the callback, if provided
14811482
if i == len(timesteps) - 1 or ((i + 1) > num_warmup_steps and (i + 1) % self.scheduler.order == 0):

0 commit comments

Comments
 (0)