From 1c4eb8cb104374bd84e43865fc3865862473799c Mon Sep 17 00:00:00 2001 From: Pedro Cuenca Date: Tue, 27 Sep 2022 19:31:59 +0200 Subject: [PATCH 1/3] Replace deprecation warning f-string with class name. When `__repr__` is invoked in the instance serialization of `config_dict` fails, because it contains `kwargs` of type ``. --- .../pipelines/stable_diffusion/pipeline_stable_diffusion.py | 2 +- .../stable_diffusion/pipeline_stable_diffusion_img2img.py | 2 +- .../stable_diffusion/pipeline_stable_diffusion_inpaint.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py b/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py index 77f25ef1b9c5..d484ad3a5b44 100644 --- a/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +++ b/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py @@ -60,7 +60,7 @@ def __init__( if hasattr(scheduler.config, "steps_offset") and scheduler.config.steps_offset != 1: warnings.warn( - f"The configuration file of this scheduler: {scheduler} is outdated. `steps_offset`" + f"The configuration file of the {scheduler.__class__.__name__} scheduler is outdated. `steps_offset`" f" should be set to 1 instead of {scheduler.config.steps_offset}. Please make sure " "to update the config accordingly as leaving `steps_offset` might led to incorrect results" " in future versions. If you have downloaded this checkpoint from the Hugging Face Hub," diff --git a/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py b/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py index f2ccee71c024..f0a71b4e5908 100644 --- a/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +++ b/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py @@ -72,7 +72,7 @@ def __init__( if hasattr(scheduler.config, "steps_offset") and scheduler.config.steps_offset != 1: warnings.warn( - f"The configuration file of this scheduler: {scheduler} is outdated. `steps_offset`" + f"The configuration file of the {scheduler.__class__.__name__} scheduler is outdated. `steps_offset`" f" should be set to 1 instead of {scheduler.config.steps_offset}. Please make sure " "to update the config accordingly as leaving `steps_offset` might led to incorrect results" " in future versions. If you have downloaded this checkpoint from the Hugging Face Hub," diff --git a/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py b/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py index a95f9152279a..481d34a240a0 100644 --- a/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +++ b/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py @@ -87,7 +87,7 @@ def __init__( if hasattr(scheduler.config, "steps_offset") and scheduler.config.steps_offset != 1: warnings.warn( - f"The configuration file of this scheduler: {scheduler} is outdated. `steps_offset`" + f"The configuration file of the {scheduler.__class__.__name__} scheduler is outdated. `steps_offset`" f" should be set to 1 instead of {scheduler.config.steps_offset}. Please make sure " "to update the config accordingly as leaving `steps_offset` might led to incorrect results" " in future versions. If you have downloaded this checkpoint from the Hugging Face Hub," From f569c5617baf0a2feec12a6fba0dbfd98d95860a Mon Sep 17 00:00:00 2001 From: Pedro Cuenca Date: Tue, 27 Sep 2022 19:58:00 +0200 Subject: [PATCH 2/3] Revert "Replace deprecation warning f-string with class name." This reverts commit 1c4eb8cb104374bd84e43865fc3865862473799c. --- .../pipelines/stable_diffusion/pipeline_stable_diffusion.py | 2 +- .../stable_diffusion/pipeline_stable_diffusion_img2img.py | 2 +- .../stable_diffusion/pipeline_stable_diffusion_inpaint.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py b/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py index d484ad3a5b44..77f25ef1b9c5 100644 --- a/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +++ b/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py @@ -60,7 +60,7 @@ def __init__( if hasattr(scheduler.config, "steps_offset") and scheduler.config.steps_offset != 1: warnings.warn( - f"The configuration file of the {scheduler.__class__.__name__} scheduler is outdated. `steps_offset`" + f"The configuration file of this scheduler: {scheduler} is outdated. `steps_offset`" f" should be set to 1 instead of {scheduler.config.steps_offset}. Please make sure " "to update the config accordingly as leaving `steps_offset` might led to incorrect results" " in future versions. If you have downloaded this checkpoint from the Hugging Face Hub," diff --git a/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py b/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py index f0a71b4e5908..f2ccee71c024 100644 --- a/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +++ b/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py @@ -72,7 +72,7 @@ def __init__( if hasattr(scheduler.config, "steps_offset") and scheduler.config.steps_offset != 1: warnings.warn( - f"The configuration file of the {scheduler.__class__.__name__} scheduler is outdated. `steps_offset`" + f"The configuration file of this scheduler: {scheduler} is outdated. `steps_offset`" f" should be set to 1 instead of {scheduler.config.steps_offset}. Please make sure " "to update the config accordingly as leaving `steps_offset` might led to incorrect results" " in future versions. If you have downloaded this checkpoint from the Hugging Face Hub," diff --git a/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py b/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py index 481d34a240a0..a95f9152279a 100644 --- a/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +++ b/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py @@ -87,7 +87,7 @@ def __init__( if hasattr(scheduler.config, "steps_offset") and scheduler.config.steps_offset != 1: warnings.warn( - f"The configuration file of the {scheduler.__class__.__name__} scheduler is outdated. `steps_offset`" + f"The configuration file of this scheduler: {scheduler} is outdated. `steps_offset`" f" should be set to 1 instead of {scheduler.config.steps_offset}. Please make sure " "to update the config accordingly as leaving `steps_offset` might led to incorrect results" " in future versions. If you have downloaded this checkpoint from the Hugging Face Hub," From b0045b95067b65bc595f44b9aac770b523e45a4b Mon Sep 17 00:00:00 2001 From: Pedro Cuenca Date: Tue, 27 Sep 2022 19:58:38 +0200 Subject: [PATCH 3/3] Do not attempt to register `"kwargs"` as an attribute. Otherwise serialization could fail. This may happen for other attributes, so we should create a better solution. --- src/diffusers/configuration_utils.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/diffusers/configuration_utils.py b/src/diffusers/configuration_utils.py index 19f58fd8165d..59c93157891b 100644 --- a/src/diffusers/configuration_utils.py +++ b/src/diffusers/configuration_utils.py @@ -58,6 +58,10 @@ def register_to_config(self, **kwargs): kwargs["_class_name"] = self.__class__.__name__ kwargs["_diffusers_version"] = __version__ + # Special case for `kwargs` used in deprecation warning added to schedulers + # TODO: remove this when we remove the deprecation warning, and the `kwargs` argument, + # or solve in a more general way. + kwargs.pop("kwargs", None) for key, value in kwargs.items(): try: setattr(self, key, value)