Merge branch 'main' into patch-1

This commit is contained in:
Millun Atluri 2023-08-03 10:04:47 +10:00 committed by GitHub
commit b0d72b15b3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -78,10 +78,9 @@ class InvokeAIDiffuserComponent:
self.cross_attention_control_context = None self.cross_attention_control_context = None
self.sequential_guidance = config.sequential_guidance self.sequential_guidance = config.sequential_guidance
@classmethod
@contextmanager @contextmanager
def custom_attention_context( def custom_attention_context(
cls, self,
unet: UNet2DConditionModel, # note: also may futz with the text encoder depending on requested LoRAs unet: UNet2DConditionModel, # note: also may futz with the text encoder depending on requested LoRAs
extra_conditioning_info: Optional[ExtraConditioningInfo], extra_conditioning_info: Optional[ExtraConditioningInfo],
step_count: int, step_count: int,
@ -91,18 +90,19 @@ class InvokeAIDiffuserComponent:
old_attn_processors = unet.attn_processors old_attn_processors = unet.attn_processors
# Load lora conditions into the model # Load lora conditions into the model
if extra_conditioning_info.wants_cross_attention_control: if extra_conditioning_info.wants_cross_attention_control:
cross_attention_control_context = Context( self.cross_attention_control_context = Context(
arguments=extra_conditioning_info.cross_attention_control_args, arguments=extra_conditioning_info.cross_attention_control_args,
step_count=step_count, step_count=step_count,
) )
setup_cross_attention_control_attention_processors( setup_cross_attention_control_attention_processors(
unet, unet,
cross_attention_control_context, self.cross_attention_control_context,
) )
try: try:
yield None yield None
finally: finally:
self.cross_attention_control_context = None
if old_attn_processors is not None: if old_attn_processors is not None:
unet.set_attn_processor(old_attn_processors) unet.set_attn_processor(old_attn_processors)
# TODO resuscitate attention map saving # TODO resuscitate attention map saving