From 9ccb82dc772fa58b194db996f22467fe7670e885 Mon Sep 17 00:00:00 2001 From: DN6 Date: Mon, 19 May 2025 22:30:24 +0530 Subject: [PATCH 1/7] update --- src/diffusers/pipelines/pipeline_utils.py | 38 +++++++++++++++++++++++ tests/pipelines/test_pipelines_common.py | 6 ++++ 2 files changed, 44 insertions(+) diff --git a/src/diffusers/pipelines/pipeline_utils.py b/src/diffusers/pipelines/pipeline_utils.py index 4348143b8e52..f51d5edf73c9 100644 --- a/src/diffusers/pipelines/pipeline_utils.py +++ b/src/diffusers/pipelines/pipeline_utils.py @@ -70,6 +70,44 @@ from ..utils.torch_utils import get_device, is_compiled_module +class DeprecatedPipelineMixin: + """ + A mixin that can be used to mark a pipeline as deprecated. + + Pipelines inheriting from this mixin will raise a warning when instantiated, indicating + that they are deprecated and won't receive updates past the specified version. + Tests will be skipped for pipelines that inherit from this mixin. + + Example usage: + ```python + class MyDeprecatedPipeline(DeprecatedPipelineMixin, DiffusionPipeline): + _last_supported_version = "0.20.0" + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + ``` + """ + + # Override this in the inheriting class to specify the last version that will support this pipeline + _last_supported_version = None + + def __init__(self, *args, **kwargs): + # Call the parent class's __init__ method + super().__init__(*args, **kwargs) + + # Get the class name for the warning message + class_name = self.__class__.__name__ + + # Get the last supported version or use the current version if not specified + last_version = getattr(self.__class__, "_last_supported_version", __version__) + + # Raise a warning that this pipeline is deprecated + logging.warning( + f"The {class_name} pipeline is deprecated and will not receive updates after version {last_version}. " + f"Please consider switching to a maintained pipeline." + ) + + if is_torch_npu_available(): import torch_npu # noqa: F401 diff --git a/tests/pipelines/test_pipelines_common.py b/tests/pipelines/test_pipelines_common.py index af3a832d31a6..e24c632b061f 100644 --- a/tests/pipelines/test_pipelines_common.py +++ b/tests/pipelines/test_pipelines_common.py @@ -1114,6 +1114,12 @@ def setUp(self): torch._dynamo.reset() gc.collect() backend_empty_cache(torch_device) + + # Skip tests for pipelines that inherit from DeprecatedPipelineMixin + from diffusers.pipelines.pipeline_utils import DeprecatedPipelineMixin + if hasattr(self, "pipeline_class") and issubclass(self.pipeline_class, DeprecatedPipelineMixin): + import pytest + pytest.skip(f"Skipping tests for deprecated pipeline: {self.pipeline_class.__name__}") def tearDown(self): # clean up the VRAM after each test in case of CUDA runtime errors From 6575c92b5d2fd0e0bcf206e64f857ae454e3f8cb Mon Sep 17 00:00:00 2001 From: DN6 Date: Mon, 19 May 2025 22:32:48 +0530 Subject: [PATCH 2/7] update --- src/diffusers/pipelines/pipeline_utils.py | 76 +++++++++++------------ tests/pipelines/test_pipelines_common.py | 4 +- 2 files changed, 41 insertions(+), 39 deletions(-) diff --git a/src/diffusers/pipelines/pipeline_utils.py b/src/diffusers/pipelines/pipeline_utils.py index f51d5edf73c9..1c9e78c80855 100644 --- a/src/diffusers/pipelines/pipeline_utils.py +++ b/src/diffusers/pipelines/pipeline_utils.py @@ -70,44 +70,6 @@ from ..utils.torch_utils import get_device, is_compiled_module -class DeprecatedPipelineMixin: - """ - A mixin that can be used to mark a pipeline as deprecated. - - Pipelines inheriting from this mixin will raise a warning when instantiated, indicating - that they are deprecated and won't receive updates past the specified version. - Tests will be skipped for pipelines that inherit from this mixin. - - Example usage: - ```python - class MyDeprecatedPipeline(DeprecatedPipelineMixin, DiffusionPipeline): - _last_supported_version = "0.20.0" - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - ``` - """ - - # Override this in the inheriting class to specify the last version that will support this pipeline - _last_supported_version = None - - def __init__(self, *args, **kwargs): - # Call the parent class's __init__ method - super().__init__(*args, **kwargs) - - # Get the class name for the warning message - class_name = self.__class__.__name__ - - # Get the last supported version or use the current version if not specified - last_version = getattr(self.__class__, "_last_supported_version", __version__) - - # Raise a warning that this pipeline is deprecated - logging.warning( - f"The {class_name} pipeline is deprecated and will not receive updates after version {last_version}. " - f"Please consider switching to a maintained pipeline." - ) - - if is_torch_npu_available(): import torch_npu # noqa: F401 @@ -177,6 +139,44 @@ class AudioPipelineOutput(BaseOutput): audios: np.ndarray +class DeprecatedPipelineMixin: + """ + A mixin that can be used to mark a pipeline as deprecated. + + Pipelines inheriting from this mixin will raise a warning when instantiated, indicating that they are deprecated + and won't receive updates past the specified version. Tests will be skipped for pipelines that inherit from this + mixin. + + Example usage: + ```python + class MyDeprecatedPipeline(DeprecatedPipelineMixin, DiffusionPipeline): + _last_supported_version = "0.20.0" + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + ``` + """ + + # Override this in the inheriting class to specify the last version that will support this pipeline + _last_supported_version = None + + def __init__(self, *args, **kwargs): + # Get the class name for the warning message + class_name = self.__class__.__name__ + + # Get the last supported version or use the current version if not specified + last_version = getattr(self.__class__, "_last_supported_version", __version__) + + # Raise a warning that this pipeline is deprecated + logging.warning( + f"The {class_name} pipeline is deprecated and will not receive updates after version {last_version}. " + f"Please consider switching to a maintained pipeline." + ) + + # Call the parent class's __init__ method + super().__init__(*args, **kwargs) + + class DiffusionPipeline(ConfigMixin, PushToHubMixin): r""" Base class for all pipelines. diff --git a/tests/pipelines/test_pipelines_common.py b/tests/pipelines/test_pipelines_common.py index e24c632b061f..d6e2bc75577d 100644 --- a/tests/pipelines/test_pipelines_common.py +++ b/tests/pipelines/test_pipelines_common.py @@ -1114,11 +1114,13 @@ def setUp(self): torch._dynamo.reset() gc.collect() backend_empty_cache(torch_device) - + # Skip tests for pipelines that inherit from DeprecatedPipelineMixin from diffusers.pipelines.pipeline_utils import DeprecatedPipelineMixin + if hasattr(self, "pipeline_class") and issubclass(self.pipeline_class, DeprecatedPipelineMixin): import pytest + pytest.skip(f"Skipping tests for deprecated pipeline: {self.pipeline_class.__name__}") def tearDown(self): From 9ac0760c8182630084fad342abb5aec8ece711c5 Mon Sep 17 00:00:00 2001 From: DN6 Date: Tue, 20 May 2025 14:30:53 +0530 Subject: [PATCH 3/7] update --- src/diffusers/pipelines/wuerstchen/pipeline_wuerstchen.py | 4 ++-- .../pipelines/wuerstchen/pipeline_wuerstchen_combined.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/diffusers/pipelines/wuerstchen/pipeline_wuerstchen.py b/src/diffusers/pipelines/wuerstchen/pipeline_wuerstchen.py index edc01f0d5c75..d3da24e4beaf 100644 --- a/src/diffusers/pipelines/wuerstchen/pipeline_wuerstchen.py +++ b/src/diffusers/pipelines/wuerstchen/pipeline_wuerstchen.py @@ -21,7 +21,7 @@ from ...schedulers import DDPMWuerstchenScheduler from ...utils import deprecate, is_torch_xla_available, logging, replace_example_docstring from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import DiffusionPipeline, ImagePipelineOutput +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, ImagePipelineOutput from .modeling_paella_vq_model import PaellaVQModel from .modeling_wuerstchen_diffnext import WuerstchenDiffNeXt @@ -56,7 +56,7 @@ """ -class WuerstchenDecoderPipeline(DiffusionPipeline): +class WuerstchenDecoderPipeline(DeprecatedPipelineMixin, DiffusionPipeline): """ Pipeline for generating images from the Wuerstchen model. diff --git a/src/diffusers/pipelines/wuerstchen/pipeline_wuerstchen_combined.py b/src/diffusers/pipelines/wuerstchen/pipeline_wuerstchen_combined.py index 7819c8c0a0ef..59a48ac5a9b4 100644 --- a/src/diffusers/pipelines/wuerstchen/pipeline_wuerstchen_combined.py +++ b/src/diffusers/pipelines/wuerstchen/pipeline_wuerstchen_combined.py @@ -18,7 +18,7 @@ from ...schedulers import DDPMWuerstchenScheduler from ...utils import deprecate, replace_example_docstring -from ..pipeline_utils import DiffusionPipeline +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline from .modeling_paella_vq_model import PaellaVQModel from .modeling_wuerstchen_diffnext import WuerstchenDiffNeXt from .modeling_wuerstchen_prior import WuerstchenPrior @@ -40,7 +40,7 @@ """ -class WuerstchenCombinedPipeline(DiffusionPipeline): +class WuerstchenCombinedPipeline(DeprecatedPipelineMixin, DiffusionPipeline): """ Combined Pipeline for text-to-image generation using Wuerstchen From da09f915ac52a9a76d9b011ae1708024942efb2c Mon Sep 17 00:00:00 2001 From: DN6 Date: Tue, 20 May 2025 22:19:58 +0530 Subject: [PATCH 4/7] update --- src/diffusers/pipelines/amused/pipeline_amused.py | 5 +++-- .../pipelines/amused/pipeline_amused_img2img.py | 5 +++-- .../pipelines/amused/pipeline_amused_inpaint.py | 5 +++-- src/diffusers/pipelines/audioldm/pipeline_audioldm.py | 5 +++-- .../blip_diffusion/pipeline_blip_diffusion.py | 5 +++-- .../pipelines/controlnet_xs/pipeline_controlnet_xs.py | 4 +++- .../controlnet_xs/pipeline_controlnet_xs_sd_xl.py | 4 +++- .../dance_diffusion/pipeline_dance_diffusion.py | 5 +++-- .../pipelines/i2vgen_xl/pipeline_i2vgen_xl.py | 4 +++- src/diffusers/pipelines/musicldm/pipeline_musicldm.py | 5 +++-- .../paint_by_example/pipeline_paint_by_example.py | 5 +++-- src/diffusers/pipelines/pia/pipeline_pia.py | 4 +++- .../pipeline_semantic_stable_diffusion.py | 5 +++-- .../pipeline_stable_diffusion_attend_and_excite.py | 8 ++++++-- .../pipeline_stable_diffusion_diffedit.py | 10 ++++++++-- .../pipeline_stable_diffusion_gligen.py | 6 ++++-- .../pipeline_stable_diffusion_gligen_text_image.py | 6 ++++-- .../pipeline_stable_diffusion_k_diffusion.py | 10 ++++++++-- .../pipeline_stable_diffusion_xl_k_diffusion.py | 5 ++++- .../pipeline_stable_diffusion_ldm3d.py | 5 ++++- .../pipeline_stable_diffusion_panorama.py | 5 ++++- .../pipeline_stable_diffusion_safe.py | 6 ++++-- .../pipeline_stable_diffusion_sag.py | 8 ++++++-- .../pipeline_text_to_video_synth.py | 9 +++++++-- .../pipeline_text_to_video_synth_img2img.py | 9 +++++++-- .../pipeline_text_to_video_zero.py | 4 +++- .../pipeline_text_to_video_zero_sdxl.py | 4 +++- src/diffusers/pipelines/unclip/pipeline_unclip.py | 5 +++-- .../unclip/pipeline_unclip_image_variation.py | 5 +++-- .../pipelines/unidiffuser/pipeline_unidiffuser.py | 5 +++-- .../wuerstchen/pipeline_wuerstchen_combined.py | 1 + tests/pipelines/test_pipelines_common.py | 2 +- 32 files changed, 122 insertions(+), 52 deletions(-) diff --git a/src/diffusers/pipelines/amused/pipeline_amused.py b/src/diffusers/pipelines/amused/pipeline_amused.py index f0948ede9b2a..602324522c2a 100644 --- a/src/diffusers/pipelines/amused/pipeline_amused.py +++ b/src/diffusers/pipelines/amused/pipeline_amused.py @@ -21,7 +21,7 @@ from ...models import UVit2DModel, VQModel from ...schedulers import AmusedScheduler from ...utils import is_torch_xla_available, replace_example_docstring -from ..pipeline_utils import DiffusionPipeline, ImagePipelineOutput +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, ImagePipelineOutput if is_torch_xla_available(): @@ -47,7 +47,8 @@ """ -class AmusedPipeline(DiffusionPipeline): +class AmusedPipeline(DeprecatedPipelineMixin, DiffusionPipeline): + _last_supported_version = "0.33.1" image_processor: VaeImageProcessor vqvae: VQModel tokenizer: CLIPTokenizer diff --git a/src/diffusers/pipelines/amused/pipeline_amused_img2img.py b/src/diffusers/pipelines/amused/pipeline_amused_img2img.py index 7ac05b39c3a8..20cb4556f3bc 100644 --- a/src/diffusers/pipelines/amused/pipeline_amused_img2img.py +++ b/src/diffusers/pipelines/amused/pipeline_amused_img2img.py @@ -21,7 +21,7 @@ from ...models import UVit2DModel, VQModel from ...schedulers import AmusedScheduler from ...utils import is_torch_xla_available, replace_example_docstring -from ..pipeline_utils import DiffusionPipeline, ImagePipelineOutput +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, ImagePipelineOutput if is_torch_xla_available(): @@ -57,7 +57,8 @@ """ -class AmusedImg2ImgPipeline(DiffusionPipeline): +class AmusedImg2ImgPipeline(DeprecatedPipelineMixin, DiffusionPipeline): + _last_supported_version = "0.33.1" image_processor: VaeImageProcessor vqvae: VQModel tokenizer: CLIPTokenizer diff --git a/src/diffusers/pipelines/amused/pipeline_amused_inpaint.py b/src/diffusers/pipelines/amused/pipeline_amused_inpaint.py index d908c32745c2..d25b5a8915f6 100644 --- a/src/diffusers/pipelines/amused/pipeline_amused_inpaint.py +++ b/src/diffusers/pipelines/amused/pipeline_amused_inpaint.py @@ -22,7 +22,7 @@ from ...models import UVit2DModel, VQModel from ...schedulers import AmusedScheduler from ...utils import is_torch_xla_available, replace_example_docstring -from ..pipeline_utils import DiffusionPipeline, ImagePipelineOutput +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, ImagePipelineOutput if is_torch_xla_available(): @@ -65,7 +65,8 @@ """ -class AmusedInpaintPipeline(DiffusionPipeline): +class AmusedInpaintPipeline(DeprecatedPipelineMixin, DiffusionPipeline): + _last_supported_version = "0.33.1" image_processor: VaeImageProcessor vqvae: VQModel tokenizer: CLIPTokenizer diff --git a/src/diffusers/pipelines/audioldm/pipeline_audioldm.py b/src/diffusers/pipelines/audioldm/pipeline_audioldm.py index 14c6d44fc586..9d53fa6e5ef0 100644 --- a/src/diffusers/pipelines/audioldm/pipeline_audioldm.py +++ b/src/diffusers/pipelines/audioldm/pipeline_audioldm.py @@ -24,7 +24,7 @@ from ...schedulers import KarrasDiffusionSchedulers from ...utils import is_torch_xla_available, logging, replace_example_docstring from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import AudioPipelineOutput, DiffusionPipeline, StableDiffusionMixin +from ..pipeline_utils import AudioPipelineOutput, DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin if is_torch_xla_available(): @@ -57,7 +57,7 @@ """ -class AudioLDMPipeline(DiffusionPipeline, StableDiffusionMixin): +class AudioLDMPipeline(DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin): r""" Pipeline for text-to-audio generation using AudioLDM. @@ -81,6 +81,7 @@ class AudioLDMPipeline(DiffusionPipeline, StableDiffusionMixin): Vocoder of class `SpeechT5HifiGan`. """ + _last_supported_version = "0.33.1" model_cpu_offload_seq = "text_encoder->unet->vae" def __init__( diff --git a/src/diffusers/pipelines/blip_diffusion/pipeline_blip_diffusion.py b/src/diffusers/pipelines/blip_diffusion/pipeline_blip_diffusion.py index ee9615e828a7..1f4298e96ba0 100644 --- a/src/diffusers/pipelines/blip_diffusion/pipeline_blip_diffusion.py +++ b/src/diffusers/pipelines/blip_diffusion/pipeline_blip_diffusion.py @@ -25,7 +25,7 @@ replace_example_docstring, ) from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import DiffusionPipeline, ImagePipelineOutput +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, ImagePipelineOutput from .blip_image_processing import BlipImageProcessor from .modeling_blip2 import Blip2QFormerModel from .modeling_ctx_clip import ContextCLIPTextModel @@ -81,7 +81,7 @@ """ -class BlipDiffusionPipeline(DiffusionPipeline): +class BlipDiffusionPipeline(DeprecatedPipelineMixin, DiffusionPipeline): """ Pipeline for Zero-Shot Subject Driven Generation using Blip Diffusion. @@ -107,6 +107,7 @@ class BlipDiffusionPipeline(DiffusionPipeline): Position of the context token in the text encoder. """ + _last_supported_version = "0.33.1" model_cpu_offload_seq = "qformer->text_encoder->unet->vae" def __init__( diff --git a/src/diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs.py b/src/diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs.py index 8792961e31f5..2af5e5f83bfa 100644 --- a/src/diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs.py +++ b/src/diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs.py @@ -37,7 +37,7 @@ unscale_lora_layers, ) from ...utils.torch_utils import is_compiled_module, is_torch_version, randn_tensor -from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin from ..stable_diffusion.pipeline_output import StableDiffusionPipelineOutput from ..stable_diffusion.safety_checker import StableDiffusionSafetyChecker @@ -98,6 +98,7 @@ class StableDiffusionControlNetXSPipeline( + DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin, TextualInversionLoaderMixin, @@ -138,6 +139,7 @@ class StableDiffusionControlNetXSPipeline( A `CLIPImageProcessor` to extract features from generated images; used as inputs to the `safety_checker`. """ + _last_supported_version = "0.33.1" model_cpu_offload_seq = "text_encoder->unet->vae" _optional_components = ["safety_checker", "feature_extractor"] _exclude_from_cpu_offload = ["safety_checker"] diff --git a/src/diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs_sd_xl.py b/src/diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs_sd_xl.py index 1d36038d3a45..bcf09065ec08 100644 --- a/src/diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs_sd_xl.py +++ b/src/diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs_sd_xl.py @@ -46,7 +46,7 @@ unscale_lora_layers, ) from ...utils.torch_utils import is_compiled_module, is_torch_version, randn_tensor -from ..pipeline_utils import DiffusionPipeline +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline from ..stable_diffusion_xl.pipeline_output import StableDiffusionXLPipelineOutput @@ -114,6 +114,7 @@ class StableDiffusionXLControlNetXSPipeline( + DeprecatedPipelineMixin, DiffusionPipeline, TextualInversionLoaderMixin, StableDiffusionXLLoraLoaderMixin, @@ -158,6 +159,7 @@ class StableDiffusionXLControlNetXSPipeline( watermarker is used. """ + _last_supported_version = "0.33.1" model_cpu_offload_seq = "text_encoder->text_encoder_2->unet->vae" _optional_components = [ "tokenizer", diff --git a/src/diffusers/pipelines/dance_diffusion/pipeline_dance_diffusion.py b/src/diffusers/pipelines/dance_diffusion/pipeline_dance_diffusion.py index b33c3735c2fb..62ffeb9f49a6 100644 --- a/src/diffusers/pipelines/dance_diffusion/pipeline_dance_diffusion.py +++ b/src/diffusers/pipelines/dance_diffusion/pipeline_dance_diffusion.py @@ -21,7 +21,7 @@ from ...schedulers import SchedulerMixin from ...utils import is_torch_xla_available, logging from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import AudioPipelineOutput, DiffusionPipeline +from ..pipeline_utils import AudioPipelineOutput, DeprecatedPipelineMixin, DiffusionPipeline if is_torch_xla_available(): @@ -34,7 +34,7 @@ logger = logging.get_logger(__name__) # pylint: disable=invalid-name -class DanceDiffusionPipeline(DiffusionPipeline): +class DanceDiffusionPipeline(DeprecatedPipelineMixin, DiffusionPipeline): r""" Pipeline for audio generation. @@ -49,6 +49,7 @@ class DanceDiffusionPipeline(DiffusionPipeline): [`IPNDMScheduler`]. """ + _last_supported_version = "0.33.1" model_cpu_offload_seq = "unet" def __init__(self, unet: UNet1DModel, scheduler: SchedulerMixin): diff --git a/src/diffusers/pipelines/i2vgen_xl/pipeline_i2vgen_xl.py b/src/diffusers/pipelines/i2vgen_xl/pipeline_i2vgen_xl.py index a00b16d000a1..a230a695ba78 100644 --- a/src/diffusers/pipelines/i2vgen_xl/pipeline_i2vgen_xl.py +++ b/src/diffusers/pipelines/i2vgen_xl/pipeline_i2vgen_xl.py @@ -33,7 +33,7 @@ ) from ...utils.torch_utils import randn_tensor from ...video_processor import VideoProcessor -from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin if is_torch_xla_available(): @@ -97,9 +97,11 @@ class I2VGenXLPipelineOutput(BaseOutput): class I2VGenXLPipeline( + DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin, ): + _last_supported_version = "0.33.1" r""" Pipeline for image-to-video generation as proposed in [I2VGenXL](https://i2vgen-xl.github.io/). diff --git a/src/diffusers/pipelines/musicldm/pipeline_musicldm.py b/src/diffusers/pipelines/musicldm/pipeline_musicldm.py index 73837af7d429..7aa0f01e2d21 100644 --- a/src/diffusers/pipelines/musicldm/pipeline_musicldm.py +++ b/src/diffusers/pipelines/musicldm/pipeline_musicldm.py @@ -36,7 +36,7 @@ replace_example_docstring, ) from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import AudioPipelineOutput, DiffusionPipeline, StableDiffusionMixin +from ..pipeline_utils import AudioPipelineOutput, DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin if is_librosa_available(): @@ -76,7 +76,8 @@ """ -class MusicLDMPipeline(DiffusionPipeline, StableDiffusionMixin): +class MusicLDMPipeline(DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin): + _last_supported_version = "0.33.1" r""" Pipeline for text-to-audio generation using MusicLDM. diff --git a/src/diffusers/pipelines/paint_by_example/pipeline_paint_by_example.py b/src/diffusers/pipelines/paint_by_example/pipeline_paint_by_example.py index 288f269a6563..c3b961e59901 100644 --- a/src/diffusers/pipelines/paint_by_example/pipeline_paint_by_example.py +++ b/src/diffusers/pipelines/paint_by_example/pipeline_paint_by_example.py @@ -25,7 +25,7 @@ from ...schedulers import DDIMScheduler, LMSDiscreteScheduler, PNDMScheduler from ...utils import deprecate, is_torch_xla_available, logging from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin from ..stable_diffusion import StableDiffusionPipelineOutput from ..stable_diffusion.safety_checker import StableDiffusionSafetyChecker from .image_encoder import PaintByExampleImageEncoder @@ -155,7 +155,8 @@ def prepare_mask_and_masked_image(image, mask): return mask, masked_image -class PaintByExamplePipeline(DiffusionPipeline, StableDiffusionMixin): +class PaintByExamplePipeline(DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin): + _last_supported_version = "0.33.1" r""" diff --git a/src/diffusers/pipelines/pia/pipeline_pia.py b/src/diffusers/pipelines/pia/pipeline_pia.py index df8499ab900a..1c00f0c9281a 100644 --- a/src/diffusers/pipelines/pia/pipeline_pia.py +++ b/src/diffusers/pipelines/pia/pipeline_pia.py @@ -46,7 +46,7 @@ from ...utils.torch_utils import randn_tensor from ...video_processor import VideoProcessor from ..free_init_utils import FreeInitMixin -from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin if is_torch_xla_available(): @@ -132,6 +132,7 @@ class PIAPipelineOutput(BaseOutput): class PIAPipeline( + DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin, TextualInversionLoaderMixin, @@ -140,6 +141,7 @@ class PIAPipeline( FromSingleFileMixin, FreeInitMixin, ): + _last_supported_version = "0.33.1" r""" Pipeline for text-to-video generation. diff --git a/src/diffusers/pipelines/semantic_stable_diffusion/pipeline_semantic_stable_diffusion.py b/src/diffusers/pipelines/semantic_stable_diffusion/pipeline_semantic_stable_diffusion.py index a8c374259349..b191d644ff1a 100644 --- a/src/diffusers/pipelines/semantic_stable_diffusion/pipeline_semantic_stable_diffusion.py +++ b/src/diffusers/pipelines/semantic_stable_diffusion/pipeline_semantic_stable_diffusion.py @@ -11,7 +11,7 @@ from ...schedulers import KarrasDiffusionSchedulers from ...utils import deprecate, is_torch_xla_available, logging from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin from .pipeline_output import SemanticStableDiffusionPipelineOutput @@ -25,7 +25,8 @@ logger = logging.get_logger(__name__) # pylint: disable=invalid-name -class SemanticStableDiffusionPipeline(DiffusionPipeline, StableDiffusionMixin): +class SemanticStableDiffusionPipeline(DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin): + _last_supported_version = "0.33.1" r""" Pipeline for text-to-image generation using Stable Diffusion with latent editing. diff --git a/src/diffusers/pipelines/stable_diffusion_attend_and_excite/pipeline_stable_diffusion_attend_and_excite.py b/src/diffusers/pipelines/stable_diffusion_attend_and_excite/pipeline_stable_diffusion_attend_and_excite.py index 2c972284a1bd..8ab0881f2f09 100644 --- a/src/diffusers/pipelines/stable_diffusion_attend_and_excite/pipeline_stable_diffusion_attend_and_excite.py +++ b/src/diffusers/pipelines/stable_diffusion_attend_and_excite/pipeline_stable_diffusion_attend_and_excite.py @@ -37,7 +37,7 @@ unscale_lora_layers, ) from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin from ..stable_diffusion import StableDiffusionPipelineOutput from ..stable_diffusion.safety_checker import StableDiffusionSafetyChecker @@ -179,7 +179,9 @@ def __call__(self, attn: Attention, hidden_states, encoder_hidden_states=None, a return hidden_states -class StableDiffusionAttendAndExcitePipeline(DiffusionPipeline, StableDiffusionMixin, TextualInversionLoaderMixin): +class StableDiffusionAttendAndExcitePipeline( + DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin, TextualInversionLoaderMixin +): r""" Pipeline for text-to-image generation using Stable Diffusion and Attend-and-Excite. @@ -209,6 +211,8 @@ class StableDiffusionAttendAndExcitePipeline(DiffusionPipeline, StableDiffusionM A `CLIPImageProcessor` to extract features from generated images; used as inputs to the `safety_checker`. """ + _last_supported_version = "0.33.1" + model_cpu_offload_seq = "text_encoder->unet->vae" _optional_components = ["safety_checker", "feature_extractor"] _exclude_from_cpu_offload = ["safety_checker"] diff --git a/src/diffusers/pipelines/stable_diffusion_diffedit/pipeline_stable_diffusion_diffedit.py b/src/diffusers/pipelines/stable_diffusion_diffedit/pipeline_stable_diffusion_diffedit.py index 4b999662a6e7..2f5b79a94dd8 100644 --- a/src/diffusers/pipelines/stable_diffusion_diffedit/pipeline_stable_diffusion_diffedit.py +++ b/src/diffusers/pipelines/stable_diffusion_diffedit/pipeline_stable_diffusion_diffedit.py @@ -40,7 +40,7 @@ unscale_lora_layers, ) from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin from ..stable_diffusion import StableDiffusionPipelineOutput from ..stable_diffusion.safety_checker import StableDiffusionSafetyChecker @@ -242,7 +242,11 @@ def preprocess_mask(mask, batch_size: int = 1): class StableDiffusionDiffEditPipeline( - DiffusionPipeline, StableDiffusionMixin, TextualInversionLoaderMixin, StableDiffusionLoraLoaderMixin + DeprecatedPipelineMixin, + DiffusionPipeline, + StableDiffusionMixin, + TextualInversionLoaderMixin, + StableDiffusionLoraLoaderMixin, ): r""" @@ -282,6 +286,8 @@ class StableDiffusionDiffEditPipeline( A `CLIPImageProcessor` to extract features from generated images; used as inputs to the `safety_checker`. """ + _last_supported_version = "0.33.1" + model_cpu_offload_seq = "text_encoder->unet->vae" _optional_components = ["safety_checker", "feature_extractor", "inverse_scheduler"] _exclude_from_cpu_offload = ["safety_checker"] diff --git a/src/diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen.py b/src/diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen.py index 4bbb93e44a83..95d434959618 100644 --- a/src/diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen.py +++ b/src/diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen.py @@ -36,7 +36,7 @@ unscale_lora_layers, ) from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin from ..stable_diffusion import StableDiffusionPipelineOutput from ..stable_diffusion.safety_checker import StableDiffusionSafetyChecker @@ -108,7 +108,7 @@ """ -class StableDiffusionGLIGENPipeline(DiffusionPipeline, StableDiffusionMixin): +class StableDiffusionGLIGENPipeline(DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin): r""" Pipeline for text-to-image generation using Stable Diffusion with Grounded-Language-to-Image Generation (GLIGEN). @@ -135,6 +135,8 @@ class StableDiffusionGLIGENPipeline(DiffusionPipeline, StableDiffusionMixin): A `CLIPImageProcessor` to extract features from generated images; used as inputs to the `safety_checker`. """ + _last_supported_version = "0.33.1" + _optional_components = ["safety_checker", "feature_extractor"] model_cpu_offload_seq = "text_encoder->unet->vae" _exclude_from_cpu_offload = ["safety_checker"] diff --git a/src/diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen_text_image.py b/src/diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen_text_image.py index ac9b8ce19cd2..e681916b5027 100644 --- a/src/diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen_text_image.py +++ b/src/diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen_text_image.py @@ -41,7 +41,7 @@ unscale_lora_layers, ) from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin from ..stable_diffusion import StableDiffusionPipelineOutput from ..stable_diffusion.clip_image_project_model import CLIPImageProjection from ..stable_diffusion.safety_checker import StableDiffusionSafetyChecker @@ -160,7 +160,7 @@ """ -class StableDiffusionGLIGENTextImagePipeline(DiffusionPipeline, StableDiffusionMixin): +class StableDiffusionGLIGENTextImagePipeline(DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin): r""" Pipeline for text-to-image generation using Stable Diffusion with Grounded-Language-to-Image Generation (GLIGEN). @@ -193,6 +193,8 @@ class StableDiffusionGLIGENTextImagePipeline(DiffusionPipeline, StableDiffusionM A `CLIPImageProcessor` to extract features from generated images; used as inputs to the `safety_checker`. """ + _last_supported_version = "0.33.1" + model_cpu_offload_seq = "text_encoder->unet->vae" _optional_components = ["safety_checker", "feature_extractor"] _exclude_from_cpu_offload = ["safety_checker"] diff --git a/src/diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_k_diffusion.py b/src/diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_k_diffusion.py index 1ca1fd2ded78..0013aae4cfce 100755 --- a/src/diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_k_diffusion.py +++ b/src/diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_k_diffusion.py @@ -42,7 +42,7 @@ unscale_lora_layers, ) from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin from ..stable_diffusion import StableDiffusionPipelineOutput, StableDiffusionSafetyChecker @@ -64,7 +64,11 @@ def apply_model(self, *args, **kwargs): class StableDiffusionKDiffusionPipeline( - DiffusionPipeline, StableDiffusionMixin, TextualInversionLoaderMixin, StableDiffusionLoraLoaderMixin + DeprecatedPipelineMixin, + DiffusionPipeline, + StableDiffusionMixin, + TextualInversionLoaderMixin, + StableDiffusionLoraLoaderMixin, ): r""" Pipeline for text-to-image generation using Stable Diffusion. @@ -105,6 +109,8 @@ class StableDiffusionKDiffusionPipeline( Model that extracts features from generated images to be used as inputs for the `safety_checker`. """ + _last_supported_version = "0.33.1" + model_cpu_offload_seq = "text_encoder->unet->vae" _optional_components = ["safety_checker", "feature_extractor"] _exclude_from_cpu_offload = ["safety_checker"] diff --git a/src/diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_xl_k_diffusion.py b/src/diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_xl_k_diffusion.py index c7c5bd9cff67..ab17d380e46c 100644 --- a/src/diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_xl_k_diffusion.py +++ b/src/diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_xl_k_diffusion.py @@ -48,7 +48,7 @@ unscale_lora_layers, ) from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin from ..stable_diffusion_xl.pipeline_output import StableDiffusionXLPipelineOutput @@ -88,6 +88,7 @@ def apply_model(self, *args, **kwargs): class StableDiffusionXLKDiffusionPipeline( + DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin, FromSingleFileMixin, @@ -95,6 +96,8 @@ class StableDiffusionXLKDiffusionPipeline( TextualInversionLoaderMixin, IPAdapterMixin, ): + _last_supported_version = "0.33.1" + r""" Pipeline for text-to-image generation using Stable Diffusion XL and k-diffusion. diff --git a/src/diffusers/pipelines/stable_diffusion_ldm3d/pipeline_stable_diffusion_ldm3d.py b/src/diffusers/pipelines/stable_diffusion_ldm3d/pipeline_stable_diffusion_ldm3d.py index 702f3eda5816..12b2c63dba4f 100644 --- a/src/diffusers/pipelines/stable_diffusion_ldm3d/pipeline_stable_diffusion_ldm3d.py +++ b/src/diffusers/pipelines/stable_diffusion_ldm3d/pipeline_stable_diffusion_ldm3d.py @@ -37,7 +37,7 @@ unscale_lora_layers, ) from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin from ..stable_diffusion.safety_checker import StableDiffusionSafetyChecker @@ -178,6 +178,7 @@ class LDM3DPipelineOutput(BaseOutput): class StableDiffusionLDM3DPipeline( + DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin, TextualInversionLoaderMixin, @@ -185,6 +186,8 @@ class StableDiffusionLDM3DPipeline( StableDiffusionLoraLoaderMixin, FromSingleFileMixin, ): + _last_supported_version = "0.33.1" + r""" Pipeline for text-to-image and 3D generation using LDM3D. diff --git a/src/diffusers/pipelines/stable_diffusion_panorama/pipeline_stable_diffusion_panorama.py b/src/diffusers/pipelines/stable_diffusion_panorama/pipeline_stable_diffusion_panorama.py index ccee6d47b47a..9d5ce0ad1529 100644 --- a/src/diffusers/pipelines/stable_diffusion_panorama/pipeline_stable_diffusion_panorama.py +++ b/src/diffusers/pipelines/stable_diffusion_panorama/pipeline_stable_diffusion_panorama.py @@ -33,7 +33,7 @@ unscale_lora_layers, ) from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin from ..stable_diffusion import StableDiffusionPipelineOutput from ..stable_diffusion.safety_checker import StableDiffusionSafetyChecker @@ -156,12 +156,15 @@ def retrieve_timesteps( class StableDiffusionPanoramaPipeline( + DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin, TextualInversionLoaderMixin, StableDiffusionLoraLoaderMixin, IPAdapterMixin, ): + _last_supported_version = "0.33.1" + r""" Pipeline for text-to-image generation using MultiDiffusion. diff --git a/src/diffusers/pipelines/stable_diffusion_safe/pipeline_stable_diffusion_safe.py b/src/diffusers/pipelines/stable_diffusion_safe/pipeline_stable_diffusion_safe.py index deae82eb8813..231d498abba2 100644 --- a/src/diffusers/pipelines/stable_diffusion_safe/pipeline_stable_diffusion_safe.py +++ b/src/diffusers/pipelines/stable_diffusion_safe/pipeline_stable_diffusion_safe.py @@ -14,7 +14,7 @@ from ...schedulers import KarrasDiffusionSchedulers from ...utils import deprecate, is_torch_xla_available, logging from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin from . import StableDiffusionSafePipelineOutput from .safety_checker import SafeStableDiffusionSafetyChecker @@ -29,7 +29,9 @@ logger = logging.get_logger(__name__) # pylint: disable=invalid-name -class StableDiffusionPipelineSafe(DiffusionPipeline, StableDiffusionMixin, IPAdapterMixin): +class StableDiffusionPipelineSafe(DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin, IPAdapterMixin): + _last_supported_version = "0.33.1" + r""" Pipeline based on the [`StableDiffusionPipeline`] for text-to-image generation using Safe Latent Diffusion. diff --git a/src/diffusers/pipelines/stable_diffusion_sag/pipeline_stable_diffusion_sag.py b/src/diffusers/pipelines/stable_diffusion_sag/pipeline_stable_diffusion_sag.py index e96422073b19..ce261f0945c5 100644 --- a/src/diffusers/pipelines/stable_diffusion_sag/pipeline_stable_diffusion_sag.py +++ b/src/diffusers/pipelines/stable_diffusion_sag/pipeline_stable_diffusion_sag.py @@ -34,7 +34,7 @@ unscale_lora_layers, ) from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin from ..stable_diffusion import StableDiffusionPipelineOutput from ..stable_diffusion.safety_checker import StableDiffusionSafetyChecker @@ -107,7 +107,11 @@ def __call__( # Modified to get self-attention guidance scale in this paper (https://arxiv.org/pdf/2210.00939.pdf) as an input -class StableDiffusionSAGPipeline(DiffusionPipeline, StableDiffusionMixin, TextualInversionLoaderMixin, IPAdapterMixin): +class StableDiffusionSAGPipeline( + DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin, TextualInversionLoaderMixin, IPAdapterMixin +): + _last_supported_version = "0.33.1" + r""" Pipeline for text-to-image generation using Stable Diffusion. diff --git a/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth.py b/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth.py index 5c63d66e3133..79ba38d5dfbe 100644 --- a/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth.py +++ b/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth.py @@ -33,7 +33,7 @@ ) from ...utils.torch_utils import randn_tensor from ...video_processor import VideoProcessor -from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin from . import TextToVideoSDPipelineOutput @@ -68,8 +68,13 @@ class TextToVideoSDPipeline( - DiffusionPipeline, StableDiffusionMixin, TextualInversionLoaderMixin, StableDiffusionLoraLoaderMixin + DeprecatedPipelineMixin, + DiffusionPipeline, + StableDiffusionMixin, + TextualInversionLoaderMixin, + StableDiffusionLoraLoaderMixin, ): + _last_supported_version = "0.33.1" r""" Pipeline for text-to-video generation. diff --git a/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth_img2img.py b/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth_img2img.py index 006c7a79ce0d..ba49b7f8e4a4 100644 --- a/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth_img2img.py +++ b/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth_img2img.py @@ -34,7 +34,7 @@ ) from ...utils.torch_utils import randn_tensor from ...video_processor import VideoProcessor -from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin from . import TextToVideoSDPipelineOutput @@ -103,8 +103,13 @@ def retrieve_latents( class VideoToVideoSDPipeline( - DiffusionPipeline, StableDiffusionMixin, TextualInversionLoaderMixin, StableDiffusionLoraLoaderMixin + DeprecatedPipelineMixin, + DiffusionPipeline, + StableDiffusionMixin, + TextualInversionLoaderMixin, + StableDiffusionLoraLoaderMixin, ): + _last_supported_version = "0.33.1" r""" Pipeline for text-guided video-to-video generation. diff --git a/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero.py b/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero.py index df85f470a80b..f62bcd48560d 100644 --- a/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero.py +++ b/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero.py @@ -24,7 +24,7 @@ unscale_lora_layers, ) from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin from ..stable_diffusion import StableDiffusionSafetyChecker @@ -296,12 +296,14 @@ def create_motion_field_and_warp_latents(motion_field_strength_x, motion_field_s class TextToVideoZeroPipeline( + DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin, TextualInversionLoaderMixin, StableDiffusionLoraLoaderMixin, FromSingleFileMixin, ): + _last_supported_version = "0.33.1" r""" Pipeline for zero-shot text-to-video generation using Stable Diffusion. diff --git a/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero_sdxl.py b/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero_sdxl.py index 339d5b3a6019..47304e9a9f7b 100644 --- a/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero_sdxl.py +++ b/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero_sdxl.py @@ -35,7 +35,7 @@ unscale_lora_layers, ) from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin if is_invisible_watermark_available(): @@ -346,11 +346,13 @@ def rescale_noise_cfg(noise_cfg, noise_pred_text, guidance_rescale=0.0): class TextToVideoZeroSDXLPipeline( + DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin, StableDiffusionXLLoraLoaderMixin, TextualInversionLoaderMixin, ): + _last_supported_version = "0.33.1" r""" Pipeline for zero-shot text-to-video generation using Stable Diffusion XL. diff --git a/src/diffusers/pipelines/unclip/pipeline_unclip.py b/src/diffusers/pipelines/unclip/pipeline_unclip.py index bf42d44f74c1..26dc8e78f516 100644 --- a/src/diffusers/pipelines/unclip/pipeline_unclip.py +++ b/src/diffusers/pipelines/unclip/pipeline_unclip.py @@ -24,7 +24,7 @@ from ...schedulers import UnCLIPScheduler from ...utils import is_torch_xla_available, logging from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import DiffusionPipeline, ImagePipelineOutput +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, ImagePipelineOutput from .text_proj import UnCLIPTextProjModel @@ -38,7 +38,7 @@ logger = logging.get_logger(__name__) # pylint: disable=invalid-name -class UnCLIPPipeline(DiffusionPipeline): +class UnCLIPPipeline(DeprecatedPipelineMixin, DiffusionPipeline): """ Pipeline for text-to-image generation using unCLIP. @@ -69,6 +69,7 @@ class UnCLIPPipeline(DiffusionPipeline): """ + _last_supported_version = "0.33.1" _exclude_from_cpu_offload = ["prior"] prior: PriorTransformer diff --git a/src/diffusers/pipelines/unclip/pipeline_unclip_image_variation.py b/src/diffusers/pipelines/unclip/pipeline_unclip_image_variation.py index 8fa0a848f7e7..496e409edcae 100644 --- a/src/diffusers/pipelines/unclip/pipeline_unclip_image_variation.py +++ b/src/diffusers/pipelines/unclip/pipeline_unclip_image_variation.py @@ -29,7 +29,7 @@ from ...schedulers import UnCLIPScheduler from ...utils import is_torch_xla_available, logging from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import DiffusionPipeline, ImagePipelineOutput +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, ImagePipelineOutput from .text_proj import UnCLIPTextProjModel @@ -43,7 +43,7 @@ logger = logging.get_logger(__name__) # pylint: disable=invalid-name -class UnCLIPImageVariationPipeline(DiffusionPipeline): +class UnCLIPImageVariationPipeline(DeprecatedPipelineMixin, DiffusionPipeline): """ Pipeline to generate image variations from an input image using UnCLIP. @@ -73,6 +73,7 @@ class UnCLIPImageVariationPipeline(DiffusionPipeline): Scheduler used in the super resolution denoising process (a modified [`DDPMScheduler`]). """ + _last_supported_version = "0.33.1" decoder: UNet2DConditionModel text_proj: UnCLIPTextProjModel text_encoder: CLIPTextModelWithProjection diff --git a/src/diffusers/pipelines/unidiffuser/pipeline_unidiffuser.py b/src/diffusers/pipelines/unidiffuser/pipeline_unidiffuser.py index 865dba75b720..60f6afbe547e 100644 --- a/src/diffusers/pipelines/unidiffuser/pipeline_unidiffuser.py +++ b/src/diffusers/pipelines/unidiffuser/pipeline_unidiffuser.py @@ -28,7 +28,7 @@ ) from ...utils.outputs import BaseOutput from ...utils.torch_utils import randn_tensor -from ..pipeline_utils import DiffusionPipeline +from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline from .modeling_text_decoder import UniDiffuserTextDecoder from .modeling_uvit import UniDiffuserModel @@ -62,7 +62,7 @@ class ImageTextPipelineOutput(BaseOutput): text: Optional[Union[List[str], List[List[str]]]] -class UniDiffuserPipeline(DiffusionPipeline): +class UniDiffuserPipeline(DeprecatedPipelineMixin, DiffusionPipeline): r""" Pipeline for a bimodal image-text model which supports unconditional text and image generation, text-conditioned image generation, image-conditioned text generation, and joint image-text generation. @@ -96,6 +96,7 @@ class UniDiffuserPipeline(DiffusionPipeline): original UniDiffuser paper uses the [`DPMSolverMultistepScheduler`] scheduler. """ + _last_supported_version = "0.33.1" # TODO: support for moving submodules for components with enable_model_cpu_offload model_cpu_offload_seq = "text_encoder->image_encoder->unet->vae->text_decoder" diff --git a/src/diffusers/pipelines/wuerstchen/pipeline_wuerstchen_combined.py b/src/diffusers/pipelines/wuerstchen/pipeline_wuerstchen_combined.py index 59a48ac5a9b4..3afffdc5363b 100644 --- a/src/diffusers/pipelines/wuerstchen/pipeline_wuerstchen_combined.py +++ b/src/diffusers/pipelines/wuerstchen/pipeline_wuerstchen_combined.py @@ -68,6 +68,7 @@ class WuerstchenCombinedPipeline(DeprecatedPipelineMixin, DiffusionPipeline): The scheduler to be used for prior pipeline. """ + _last_supported_version = "0.33.1" _load_connected_pipes = True def __init__( diff --git a/tests/pipelines/test_pipelines_common.py b/tests/pipelines/test_pipelines_common.py index d6e2bc75577d..7c20466a9a35 100644 --- a/tests/pipelines/test_pipelines_common.py +++ b/tests/pipelines/test_pipelines_common.py @@ -1121,7 +1121,7 @@ def setUp(self): if hasattr(self, "pipeline_class") and issubclass(self.pipeline_class, DeprecatedPipelineMixin): import pytest - pytest.skip(f"Skipping tests for deprecated pipeline: {self.pipeline_class.__name__}") + pytest.skip(f"Skipping tests for {self.pipeline_class.__name__}", reason="Deprecated Pipeline") def tearDown(self): # clean up the VRAM after each test in case of CUDA runtime errors From b43dc75cefa077bee3a625b244a59efc5e21bf4c Mon Sep 17 00:00:00 2001 From: Dhruv Nair Date: Wed, 21 May 2025 10:29:53 +0200 Subject: [PATCH 5/7] update --- src/diffusers/pipelines/pipeline_utils.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/diffusers/pipelines/pipeline_utils.py b/src/diffusers/pipelines/pipeline_utils.py index 1c9e78c80855..449c80e099a4 100644 --- a/src/diffusers/pipelines/pipeline_utils.py +++ b/src/diffusers/pipelines/pipeline_utils.py @@ -168,9 +168,8 @@ def __init__(self, *args, **kwargs): last_version = getattr(self.__class__, "_last_supported_version", __version__) # Raise a warning that this pipeline is deprecated - logging.warning( - f"The {class_name} pipeline is deprecated and will not receive updates after version {last_version}. " - f"Please consider switching to a maintained pipeline." + logger.warning( + f"The {class_name} has been deprecated and will not receive bug fixes or feature updates after Diffusers version {last_version}. " ) # Call the parent class's __init__ method From 9114c77e0be13dcba5d78ce5e3cff756323acd71 Mon Sep 17 00:00:00 2001 From: DN6 Date: Wed, 21 May 2025 14:06:04 +0530 Subject: [PATCH 6/7] update --- src/diffusers/pipelines/pipeline_utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/diffusers/pipelines/pipeline_utils.py b/src/diffusers/pipelines/pipeline_utils.py index 449c80e099a4..fc6e74e87411 100644 --- a/src/diffusers/pipelines/pipeline_utils.py +++ b/src/diffusers/pipelines/pipeline_utils.py @@ -165,11 +165,11 @@ def __init__(self, *args, **kwargs): class_name = self.__class__.__name__ # Get the last supported version or use the current version if not specified - last_version = getattr(self.__class__, "_last_supported_version", __version__) + version_info = getattr(self.__class__, "_last_supported_version", __version__) # Raise a warning that this pipeline is deprecated logger.warning( - f"The {class_name} has been deprecated and will not receive bug fixes or feature updates after Diffusers version {last_version}. " + f"The {class_name} has been deprecated and will not receive bug fixes or feature updates after Diffusers version {version_info}. " ) # Call the parent class's __init__ method From ffa39f212f4e55dfaa179277f92b45fb9582ae99 Mon Sep 17 00:00:00 2001 From: DN6 Date: Wed, 21 May 2025 15:51:48 +0530 Subject: [PATCH 7/7] update --- tests/pipelines/test_pipelines_common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/pipelines/test_pipelines_common.py b/tests/pipelines/test_pipelines_common.py index 7c20466a9a35..f2d4a5b98b11 100644 --- a/tests/pipelines/test_pipelines_common.py +++ b/tests/pipelines/test_pipelines_common.py @@ -1121,7 +1121,7 @@ def setUp(self): if hasattr(self, "pipeline_class") and issubclass(self.pipeline_class, DeprecatedPipelineMixin): import pytest - pytest.skip(f"Skipping tests for {self.pipeline_class.__name__}", reason="Deprecated Pipeline") + pytest.skip(reason=f"Deprecated Pipeline: {self.pipeline_class.__name__}") def tearDown(self): # clean up the VRAM after each test in case of CUDA runtime errors