From 17960cc37c493f333f86deafb3495aac89e09677 Mon Sep 17 00:00:00 2001 From: Saurav Gupta <91198524+Saurav-Gupta-13@users.noreply.github.com> Date: Thu, 2 Jul 2026 01:55:37 +0530 Subject: [PATCH] feat: auto-detect and fuse QKV for original PEFT adapters --- src/diffusers/loaders/peft.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/diffusers/loaders/peft.py b/src/diffusers/loaders/peft.py index daa078bc25d5..3578a4a51ab6 100644 --- a/src/diffusers/loaders/peft.py +++ b/src/diffusers/loaders/peft.py @@ -225,6 +225,12 @@ def load_lora_adapter( if is_sai_sd_control_lora: state_dict = convert_sai_sd_control_lora_state_dict_to_peft(state_dict) + # Auto-detect if the incoming state_dict expects fused QKV projections + # and fuse them in the model if the model supports it. + has_fused_qkv = any("to_qkv" in k for k in state_dict.keys()) + if has_fused_qkv and hasattr(self, "fuse_qkv_projections"): + self.fuse_qkv_projections() + rank = {} for key, val in state_dict.items(): # Cannot figure out rank from lora layers that don't have at least 2 dimensions.