Skip to content

Commit 9325f82

Browse files
authored
Merge branch 'main' into crazy-wan-lora
2 parents 4f264c9 + ceb7af2 commit 9325f82

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/diffusers/loaders/lora_conversion_utils.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1761,3 +1761,11 @@ def _convert_non_diffusers_hidream_lora_to_diffusers(state_dict, non_diffusers_p
17611761
converted_state_dict = {k.removeprefix(f"{non_diffusers_prefix}."): v for k, v in state_dict.items()}
17621762
converted_state_dict = {f"transformer.{k}": v for k, v in converted_state_dict.items()}
17631763
return converted_state_dict
1764+
1765+
1766+
def _convert_non_diffusers_ltxv_lora_to_diffusers(state_dict, non_diffusers_prefix="diffusion_model"):
1767+
if not all(k.startswith(f"{non_diffusers_prefix}.") for k in state_dict):
1768+
raise ValueError("Invalid LoRA state dict for LTX-Video.")
1769+
converted_state_dict = {k.removeprefix(f"{non_diffusers_prefix}."): v for k, v in state_dict.items()}
1770+
converted_state_dict = {f"transformer.{k}": v for k, v in converted_state_dict.items()}
1771+
return converted_state_dict

src/diffusers/loaders/lora_pipeline.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
_convert_musubi_wan_lora_to_diffusers,
4646
_convert_non_diffusers_hidream_lora_to_diffusers,
4747
_convert_non_diffusers_lora_to_diffusers,
48+
_convert_non_diffusers_ltxv_lora_to_diffusers,
4849
_convert_non_diffusers_lumina2_lora_to_diffusers,
4950
_convert_non_diffusers_wan_lora_to_diffusers,
5051
_convert_xlabs_flux_lora_to_diffusers,
@@ -3418,7 +3419,6 @@ class LTXVideoLoraLoaderMixin(LoraBaseMixin):
34183419

34193420
@classmethod
34203421
@validate_hf_hub_args
3421-
# Copied from diffusers.loaders.lora_pipeline.CogVideoXLoraLoaderMixin.lora_state_dict
34223422
def lora_state_dict(
34233423
cls,
34243424
pretrained_model_name_or_path_or_dict: Union[str, Dict[str, torch.Tensor]],
@@ -3512,6 +3512,10 @@ def lora_state_dict(
35123512
logger.warning(warn_msg)
35133513
state_dict = {k: v for k, v in state_dict.items() if "dora_scale" not in k}
35143514

3515+
is_non_diffusers_format = any(k.startswith("diffusion_model.") for k in state_dict)
3516+
if is_non_diffusers_format:
3517+
state_dict = _convert_non_diffusers_ltxv_lora_to_diffusers(state_dict)
3518+
35153519
return state_dict
35163520

35173521
# Copied from diffusers.loaders.lora_pipeline.CogVideoXLoraLoaderMixin.load_lora_weights

0 commit comments

Comments
 (0)