-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Improve SD35 LoRA support to cover most popular LoRA formats #9950
Comments
Ah I know why this is happening. It's because when we supported SD3 LoRA, there weren't popular non-diffusers LoRAs. But clearly, things have changed now. I will look into it. |
could you please ensure that the missing keys error out in a more generalised sense @sayakpaul ? that way this might not impact newer models when implementing their LoRA loaders |
I don't understand what that means. |
this happened for Flux and SD3 now and I would rather that missing keys never go unnoticed? |
We cannot predict beforehand what should be the preferred structure to detect those missing keys. It's still a bit ad-hoc in nature. But as soon as we do, we try our best to make these robust. So, that will very likely be the case. A bit different but similar in theme is this PR: #9535. As soon as this was reported, we fixed it with a test case. |
i agree with @bghira, the issue is silent nature of failures. |
To better track this issue (I plan to work on this one very soon treating it as a high-prio). For any further discussions, a separate issue thread would be better, IMO. |
it looks like that commit covers the behaviour i expected so i don't think a new issue is still needed? just a new diffusers release would be great for most users i think 😉 |
SD3.x pipeline does implement
SD3LoraLoaderMixin
and as suchload_lora_weights
on SD3.x does "work".However, attempting to load any of the most popular LoRAs results in silent failure:
load is successful without any warnings, but loads ZERO keys.
Looking at implementation at:
diffusers/src/diffusers/loaders/lora_pipeline.py
Line 1214 in 345907f
Shows that if there are no matching keys in
text_encoder_state_dict
,text_encoder_state_dict
,text_encoder_2_state_dict
, there is no warning raised, the method simply does NOTHING.When looking at
state_dict
of loaded LoRA, it shows that keys are NOT in the expected format - they need remapping.For example:
dict_keys(['lora_unet_joint_blocks_0_context_block_adaLN_modulation_1.alpha', 'lora_unet_joint_blocks_0_context_block_adaLN_modulation_1.lora_down.weight', 'lora_unet_joint_blocks_0_context_block_adaLN_modulation_1.lora_up.weight', 'lora_unet_joint_blocks_0_context_block_attn_proj.alpha' ...])
Below are download links for some of the popular LoRAs for SD35, all experience same behavior:
CC @yiyixuxu @sayakpaul @DN6 @asomoza
CC @AI-Casanova
The text was updated successfully, but these errors were encountered: