-
Notifications
You must be signed in to change notification settings - Fork 5.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[LoRA] clean up load_lora_into_text_encoder()
and fuse_lora()
copied from
#10495
Conversation
@@ -297,6 +306,152 @@ def _best_guess_weight_name( | |||
return weight_name | |||
|
|||
|
|||
def _load_lora_into_text_encoder( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reason why it's not a part of LoRABaseMixin
is because not all pipelines support text encoder LoRAs.
The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update. |
Integration tests for LoRA are passing. |
…ied from (#10495) * factor out text encoder loading. * make fix-copies * remove copied from fuse_lora and unfuse_lora as needed. * remove unused imports
What does this PR do?
load_lora_into_text_encoder()
The
load_lora_into_text_encoder()
method is basically copied for all the pipelines that support LoRAs on their text encoders. Since the method is duplicated across the different LoRA classes, we can just factor it out to reduce the LoCs.fuse_lora()
We should not allow the components that are not LoRA-loadable in the signature of
fuse_lora()
andunfuse_lora()
. This wasn't caught because in the tests, we explicitly pass_lora_loadable_modules
:diffusers/tests/lora/utils.py
Line 898 in e2deb82
TODOs