Skip to content

Commit c5d6e0b

Browse files
lengmo1996asomoza
andauthored
Fixed bug: Uncontrolled recursive calls that caused an infinite loop when loading certain pipelines containing Transformer2DModel (#11923)
* fix a bug about loop call * fix a bug about loop call * ruff format --------- Co-authored-by: Álvaro Somoza <asomoza@users.noreply.github.com>
1 parent 3983159 commit c5d6e0b

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/diffusers/configuration_utils.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -763,4 +763,7 @@ def from_config(cls, config: Union[FrozenDict, Dict[str, Any]] = None, return_un
763763
# resolve remapping
764764
remapped_class = _fetch_remapped_cls_from_config(config, cls)
765765

766-
return remapped_class.from_config(config, return_unused_kwargs, **kwargs)
766+
if remapped_class is cls:
767+
return super(LegacyConfigMixin, remapped_class).from_config(config, return_unused_kwargs, **kwargs)
768+
else:
769+
return remapped_class.from_config(config, return_unused_kwargs, **kwargs)

src/diffusers/models/modeling_utils.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1877,4 +1877,9 @@ def from_pretrained(cls, pretrained_model_name_or_path: Optional[Union[str, os.P
18771877
# resolve remapping
18781878
remapped_class = _fetch_remapped_cls_from_config(config, cls)
18791879

1880-
return remapped_class.from_pretrained(pretrained_model_name_or_path, **kwargs_copy)
1880+
if remapped_class is cls:
1881+
return super(LegacyModelMixin, remapped_class).from_pretrained(
1882+
pretrained_model_name_or_path, **kwargs_copy
1883+
)
1884+
else:
1885+
return remapped_class.from_pretrained(pretrained_model_name_or_path, **kwargs_copy)

0 commit comments

Comments
 (0)