Skip to content

Commit bab7f62

Browse files
tidy(mm): flux lora format util
1 parent d63348b commit bab7f62

File tree

1 file changed

+8
-12
lines changed

1 file changed

+8
-12
lines changed

invokeai/backend/model_manager/config.py

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -540,16 +540,12 @@ class LoRAConfigBase(ABC, BaseModel):
540540
)
541541

542542

543-
def get_flux_lora_format(mod: ModelOnDisk) -> FluxLoRAFormat | None:
544-
key = "FLUX_LORA_FORMAT"
545-
if key in mod.cache:
546-
return mod.cache[key]
547-
543+
def _get_flux_lora_format(mod: ModelOnDisk) -> FluxLoRAFormat | None:
544+
# TODO(psyche): Moving this import to the function to avoid circular imports. Refactor later.
548545
from invokeai.backend.patches.lora_conversions.formats import flux_format_from_state_dict
549546

550-
sd = mod.load_state_dict(mod.path)
551-
value = flux_format_from_state_dict(sd, mod.metadata())
552-
mod.cache[key] = value
547+
state_dict = mod.load_state_dict(mod.path)
548+
value = flux_format_from_state_dict(state_dict, mod.metadata())
553549
return value
554550

555551

@@ -574,7 +570,7 @@ def from_model_on_disk(cls, mod: ModelOnDisk, fields: dict[str, Any]) -> Self:
574570
@classmethod
575571
def _validate_is_not_controllora_or_diffusers(cls, mod: ModelOnDisk) -> None:
576572
"""Raise `NotAMatch` if the model is a ControlLoRA or Diffusers LoRA."""
577-
flux_format = get_flux_lora_format(mod)
573+
flux_format = _get_flux_lora_format(mod)
578574
if flux_format in [FluxLoRAFormat.Control, FluxLoRAFormat.Diffusers]:
579575
raise NotAMatch(cls, "model looks like ControlLoRA or Diffusers LoRA")
580576

@@ -663,13 +659,13 @@ def _validate_looks_like_lora(cls, mod: ModelOnDisk) -> None:
663659
@classmethod
664660
def _validate_is_not_controllora_or_diffusers(cls, mod: ModelOnDisk) -> None:
665661
"""Raise `NotAMatch` if the model is a ControlLoRA or Diffusers LoRA."""
666-
flux_format = get_flux_lora_format(mod)
662+
flux_format = _get_flux_lora_format(mod)
667663
if flux_format in [FluxLoRAFormat.Control, FluxLoRAFormat.Diffusers]:
668664
raise NotAMatch(cls, "model looks like ControlLoRA or Diffusers LoRA")
669665

670666
@classmethod
671667
def _get_base_or_raise(cls, mod: ModelOnDisk) -> LoRALyCORIS_SupportedBases:
672-
if get_flux_lora_format(mod):
668+
if _get_flux_lora_format(mod):
673669
return BaseModelType.Flux
674670

675671
state_dict = mod.load_state_dict()
@@ -752,7 +748,7 @@ def from_model_on_disk(cls, mod: ModelOnDisk, fields: dict[str, Any]) -> Self:
752748

753749
@classmethod
754750
def _validate_looks_like_diffusers_lora(cls, mod: ModelOnDisk) -> None:
755-
flux_lora_format = get_flux_lora_format(mod)
751+
flux_lora_format = _get_flux_lora_format(mod)
756752
if flux_lora_format is not FluxLoRAFormat.Diffusers:
757753
raise NotAMatch(cls, "model does not look like a FLUX Diffusers LoRA")
758754

0 commit comments

Comments
 (0)