diff --git a/src/diffusers/configuration_utils.py b/src/diffusers/configuration_utils.py index 048ddcae32f9..91efdb0396c3 100644 --- a/src/diffusers/configuration_utils.py +++ b/src/diffusers/configuration_utils.py @@ -763,4 +763,7 @@ def from_config(cls, config: Union[FrozenDict, Dict[str, Any]] = None, return_un # resolve remapping remapped_class = _fetch_remapped_cls_from_config(config, cls) - return remapped_class.from_config(config, return_unused_kwargs, **kwargs) + if remapped_class is cls: + return super(LegacyConfigMixin, remapped_class).from_config(config, return_unused_kwargs, **kwargs) + else: + return remapped_class.from_config(config, return_unused_kwargs, **kwargs) diff --git a/src/diffusers/models/modeling_utils.py b/src/diffusers/models/modeling_utils.py index ec7629bddcb6..3707f70b9d4b 100644 --- a/src/diffusers/models/modeling_utils.py +++ b/src/diffusers/models/modeling_utils.py @@ -1877,4 +1877,9 @@ def from_pretrained(cls, pretrained_model_name_or_path: Optional[Union[str, os.P # resolve remapping remapped_class = _fetch_remapped_cls_from_config(config, cls) - return remapped_class.from_pretrained(pretrained_model_name_or_path, **kwargs_copy) + if remapped_class is cls: + return super(LegacyModelMixin, remapped_class).from_pretrained( + pretrained_model_name_or_path, **kwargs_copy + ) + else: + return remapped_class.from_pretrained(pretrained_model_name_or_path, **kwargs_copy)