Skip to content

Commit e89ab5b

Browse files
authored
SDXL ControlNet Union pipelines, make control_image argument immutible (#10663)
controlnet union XL, make control_image immutible when this argument is passed a list, __call__ modifies its content, since it is pass by reference the list passed by the caller gets its content modified unexpectedly make a copy at method intro so this does not happen Co-authored-by: Teriks <[email protected]>
1 parent 8ceec90 commit e89ab5b

File tree

3 files changed

+6
-0
lines changed

3 files changed

+6
-0
lines changed

src/diffusers/pipelines/controlnet/pipeline_controlnet_union_inpaint_sd_xl.py

+2
Original file line numberDiff line numberDiff line change
@@ -1350,6 +1350,8 @@ def __call__(
13501350

13511351
if not isinstance(control_image, list):
13521352
control_image = [control_image]
1353+
else:
1354+
control_image = control_image.copy()
13531355

13541356
if not isinstance(control_mode, list):
13551357
control_mode = [control_mode]

src/diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl.py

+2
Original file line numberDiff line numberDiff line change
@@ -1140,6 +1140,8 @@ def __call__(
11401140

11411141
if not isinstance(control_image, list):
11421142
control_image = [control_image]
1143+
else:
1144+
control_image = control_image.copy()
11431145

11441146
if not isinstance(control_mode, list):
11451147
control_mode = [control_mode]

src/diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl_img2img.py

+2
Original file line numberDiff line numberDiff line change
@@ -1286,6 +1286,8 @@ def __call__(
12861286

12871287
if not isinstance(control_image, list):
12881288
control_image = [control_image]
1289+
else:
1290+
control_image = control_image.copy()
12891291

12901292
if not isinstance(control_mode, list):
12911293
control_mode = [control_mode]

0 commit comments

Comments
 (0)