Skip to content

Commit 4e8dcb7

Browse files
Suggested changes
Co-Authored-By: Ryan Dick <[email protected]>
1 parent 3cb13d6 commit 4e8dcb7

File tree

2 files changed

+13
-11
lines changed

2 files changed

+13
-11
lines changed

invokeai/app/invocations/denoise_latents.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,6 @@ def parse_controlnet_field(
495495
resize_mode=control_info.resize_mode,
496496
)
497497
)
498-
# MultiControlNetModel has been refactored out, just need list[ControlNetData]
499498

500499
def prep_ip_adapter_image_prompts(
501500
self,

invokeai/backend/stable_diffusion/extensions/controlnet.py

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from PIL.Image import Image
99

1010
from invokeai.app.invocations.constants import LATENT_SCALE_FACTOR
11-
from invokeai.app.util.controlnet_utils import prepare_control_image
11+
from invokeai.app.util.controlnet_utils import CONTROLNET_MODE_VALUES, CONTROLNET_RESIZE_VALUES, prepare_control_image
1212
from invokeai.backend.stable_diffusion.denoise_context import UNetKwargs
1313
from invokeai.backend.stable_diffusion.diffusion.conditioning_data import ConditioningMode
1414
from invokeai.backend.stable_diffusion.extension_callback_type import ExtensionCallbackType
@@ -27,8 +27,8 @@ def __init__(
2727
weight: Union[float, List[float]],
2828
begin_step_percent: float,
2929
end_step_percent: float,
30-
control_mode: str,
31-
resize_mode: str,
30+
control_mode: CONTROLNET_MODE_VALUES,
31+
resize_mode: CONTROLNET_RESIZE_VALUES,
3232
):
3333
super().__init__()
3434
self._model = model
@@ -43,8 +43,8 @@ def __init__(
4343

4444
@contextmanager
4545
def patch_extension(self, ctx: DenoiseContext):
46+
original_processors = self._model.attn_processors
4647
try:
47-
original_processors = self._model.attn_processors
4848
self._model.set_attn_processor(ctx.inputs.attention_processor_cls())
4949

5050
yield None
@@ -62,8 +62,6 @@ def resize_image(self, ctx: DenoiseContext):
6262
do_classifier_free_guidance=False,
6363
width=image_width,
6464
height=image_height,
65-
# batch_size=batch_size * num_images_per_prompt,
66-
# num_images_per_prompt=num_images_per_prompt,
6765
device=ctx.latents.device,
6866
dtype=ctx.latents.dtype,
6967
control_mode=self._control_mode,
@@ -125,7 +123,7 @@ def _run(self, ctx: DenoiseContext, soft_injection: bool, conditioning_mode: Con
125123
cn_unet_kwargs = UNetKwargs(
126124
sample=model_input,
127125
timestep=ctx.timestep,
128-
encoder_hidden_states=None, # set later by conditoning
126+
encoder_hidden_states=None, # set later by conditioning
129127
cross_attention_kwargs=dict( # noqa: C408
130128
percent_through=ctx.step_index / total_steps,
131129
),
@@ -139,9 +137,14 @@ def _run(self, ctx: DenoiseContext, soft_injection: bool, conditioning_mode: Con
139137
weight = weight[ctx.step_index]
140138

141139
tmp_kwargs = vars(cn_unet_kwargs)
142-
tmp_kwargs.pop("down_block_additional_residuals", None)
143-
tmp_kwargs.pop("mid_block_additional_residual", None)
144-
tmp_kwargs.pop("down_intrablock_additional_residuals", None)
140+
141+
# Remove kwargs not related to ControlNet unet
142+
# ControlNet guidance fields
143+
del tmp_kwargs["down_block_additional_residuals"]
144+
del tmp_kwargs["mid_block_additional_residual"]
145+
146+
# T2i Adapter guidance fields
147+
del tmp_kwargs["down_intrablock_additional_residuals"]
145148

146149
# controlnet(s) inference
147150
down_samples, mid_sample = self._model(

0 commit comments

Comments
 (0)