Skip to content

Commit 5e181ed

Browse files
authored
Deprecate slicing and tiling methods from DiffusionPipeline (#12271)
* deprecate slicing from flux pipeline. * propagate. * tiling * up * up
1 parent 55f0b3d commit 5e181ed

File tree

61 files changed

+1108
-98
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+1108
-98
lines changed

examples/community/pipeline_faithdiff_stable_diffusion_xl.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1705,6 +1705,12 @@ def enable_vae_tiling(self):
17051705
compute decoding and encoding in several steps. This is useful for saving a large amount of memory and to allow
17061706
processing larger images.
17071707
"""
1708+
depr_message = f"Calling `enable_vae_tiling()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.enable_tiling()`."
1709+
deprecate(
1710+
"enable_vae_tiling",
1711+
"0.40.0",
1712+
depr_message,
1713+
)
17081714
self.vae.enable_tiling()
17091715
self.unet.denoise_encoder.enable_tiling()
17101716

@@ -1713,6 +1719,12 @@ def disable_vae_tiling(self):
17131719
Disable tiled VAE decoding. If `enable_vae_tiling` was previously enabled, this method will go back to
17141720
computing decoding in one step.
17151721
"""
1722+
depr_message = f"Calling `disable_vae_tiling()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.disable_tiling()`."
1723+
deprecate(
1724+
"disable_vae_tiling",
1725+
"0.40.0",
1726+
depr_message,
1727+
)
17161728
self.vae.disable_tiling()
17171729
self.unet.denoise_encoder.disable_tiling()
17181730

examples/community/pipeline_flux_kontext_multiple_images.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
from diffusers.schedulers import FlowMatchEulerDiscreteScheduler
3636
from diffusers.utils import (
3737
USE_PEFT_BACKEND,
38+
deprecate,
3839
is_torch_xla_available,
3940
logging,
4041
replace_example_docstring,
@@ -643,6 +644,12 @@ def enable_vae_tiling(self):
643644
compute decoding and encoding in several steps. This is useful for saving a large amount of memory and to allow
644645
processing larger images.
645646
"""
647+
depr_message = f"Calling `enable_vae_tiling()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.enable_tiling()`."
648+
deprecate(
649+
"enable_vae_tiling",
650+
"0.40.0",
651+
depr_message,
652+
)
646653
self.vae.enable_tiling()
647654

648655
# Copied from diffusers.pipelines.flux.pipeline_flux.FluxPipeline.disable_vae_tiling
@@ -651,6 +658,12 @@ def disable_vae_tiling(self):
651658
Disable tiled VAE decoding. If `enable_vae_tiling` was previously enabled, this method will go back to
652659
computing decoding in one step.
653660
"""
661+
depr_message = f"Calling `disable_vae_tiling()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.disable_tiling()`."
662+
deprecate(
663+
"disable_vae_tiling",
664+
"0.40.0",
665+
depr_message,
666+
)
654667
self.vae.disable_tiling()
655668

656669
def preprocess_image(self, image: PipelineImageInput, _auto_resize: bool, multiple_of: int) -> torch.Tensor:

examples/community/pipeline_flux_rf_inversion.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
from diffusers.schedulers import FlowMatchEulerDiscreteScheduler
3131
from diffusers.utils import (
3232
USE_PEFT_BACKEND,
33+
deprecate,
3334
is_torch_xla_available,
3435
logging,
3536
replace_example_docstring,
@@ -526,13 +527,25 @@ def enable_vae_slicing(self):
526527
Enable sliced VAE decoding. When this option is enabled, the VAE will split the input tensor in slices to
527528
compute decoding in several steps. This is useful to save some memory and allow larger batch sizes.
528529
"""
530+
depr_message = f"Calling `enable_vae_slicing()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.enable_slicing()`."
531+
deprecate(
532+
"enable_vae_slicing",
533+
"0.40.0",
534+
depr_message,
535+
)
529536
self.vae.enable_slicing()
530537

531538
def disable_vae_slicing(self):
532539
r"""
533540
Disable sliced VAE decoding. If `enable_vae_slicing` was previously enabled, this method will go back to
534541
computing decoding in one step.
535542
"""
543+
depr_message = f"Calling `disable_vae_slicing()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.disable_slicing()`."
544+
deprecate(
545+
"disable_vae_slicing",
546+
"0.40.0",
547+
depr_message,
548+
)
536549
self.vae.disable_slicing()
537550

538551
def enable_vae_tiling(self):
@@ -541,13 +554,25 @@ def enable_vae_tiling(self):
541554
compute decoding and encoding in several steps. This is useful for saving a large amount of memory and to allow
542555
processing larger images.
543556
"""
557+
depr_message = f"Calling `enable_vae_tiling()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.enable_tiling()`."
558+
deprecate(
559+
"enable_vae_tiling",
560+
"0.40.0",
561+
depr_message,
562+
)
544563
self.vae.enable_tiling()
545564

546565
def disable_vae_tiling(self):
547566
r"""
548567
Disable tiled VAE decoding. If `enable_vae_tiling` was previously enabled, this method will go back to
549568
computing decoding in one step.
550569
"""
570+
depr_message = f"Calling `disable_vae_tiling()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.disable_tiling()`."
571+
deprecate(
572+
"disable_vae_tiling",
573+
"0.40.0",
574+
depr_message,
575+
)
551576
self.vae.disable_tiling()
552577

553578
def prepare_latents_inversion(

examples/community/pipeline_flux_semantic_guidance.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
from diffusers.schedulers import FlowMatchEulerDiscreteScheduler
3636
from diffusers.utils import (
3737
USE_PEFT_BACKEND,
38+
deprecate,
3839
is_torch_xla_available,
3940
logging,
4041
replace_example_docstring,
@@ -702,6 +703,12 @@ def enable_vae_tiling(self):
702703
compute decoding and encoding in several steps. This is useful for saving a large amount of memory and to allow
703704
processing larger images.
704705
"""
706+
depr_message = f"Calling `enable_vae_tiling()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.enable_tiling()`."
707+
deprecate(
708+
"enable_vae_tiling",
709+
"0.40.0",
710+
depr_message,
711+
)
705712
self.vae.enable_tiling()
706713

707714
# Copied from diffusers.pipelines.flux.pipeline_flux.FluxPipeline.disable_vae_tiling
@@ -710,6 +717,12 @@ def disable_vae_tiling(self):
710717
Disable tiled VAE decoding. If `enable_vae_tiling` was previously enabled, this method will go back to
711718
computing decoding in one step.
712719
"""
720+
depr_message = f"Calling `disable_vae_tiling()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.disable_tiling()`."
721+
deprecate(
722+
"disable_vae_tiling",
723+
"0.40.0",
724+
depr_message,
725+
)
713726
self.vae.disable_tiling()
714727

715728
# Copied from diffusers.pipelines.flux.pipeline_flux.FluxPipeline.prepare_latents

examples/community/pipeline_flux_with_cfg.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
from diffusers.schedulers import FlowMatchEulerDiscreteScheduler
2929
from diffusers.utils import (
3030
USE_PEFT_BACKEND,
31+
deprecate,
3132
is_torch_xla_available,
3233
logging,
3334
replace_example_docstring,
@@ -503,13 +504,25 @@ def enable_vae_slicing(self):
503504
Enable sliced VAE decoding. When this option is enabled, the VAE will split the input tensor in slices to
504505
compute decoding in several steps. This is useful to save some memory and allow larger batch sizes.
505506
"""
507+
depr_message = f"Calling `enable_vae_slicing()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.enable_slicing()`."
508+
deprecate(
509+
"enable_vae_slicing",
510+
"0.40.0",
511+
depr_message,
512+
)
506513
self.vae.enable_slicing()
507514

508515
def disable_vae_slicing(self):
509516
r"""
510517
Disable sliced VAE decoding. If `enable_vae_slicing` was previously enabled, this method will go back to
511518
computing decoding in one step.
512519
"""
520+
depr_message = f"Calling `disable_vae_slicing()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.disable_slicing()`."
521+
deprecate(
522+
"disable_vae_slicing",
523+
"0.40.0",
524+
depr_message,
525+
)
513526
self.vae.disable_slicing()
514527

515528
def enable_vae_tiling(self):
@@ -518,13 +531,25 @@ def enable_vae_tiling(self):
518531
compute decoding and encoding in several steps. This is useful for saving a large amount of memory and to allow
519532
processing larger images.
520533
"""
534+
depr_message = f"Calling `enable_vae_tiling()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.enable_tiling()`."
535+
deprecate(
536+
"enable_vae_tiling",
537+
"0.40.0",
538+
depr_message,
539+
)
521540
self.vae.enable_tiling()
522541

523542
def disable_vae_tiling(self):
524543
r"""
525544
Disable tiled VAE decoding. If `enable_vae_tiling` was previously enabled, this method will go back to
526545
computing decoding in one step.
527546
"""
547+
depr_message = f"Calling `disable_vae_tiling()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.disable_tiling()`."
548+
deprecate(
549+
"disable_vae_tiling",
550+
"0.40.0",
551+
depr_message,
552+
)
528553
self.vae.disable_tiling()
529554

530555
def prepare_latents(

examples/community/pipeline_stable_diffusion_3_differential_img2img.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,7 @@
2929
from diffusers.pipelines.pipeline_utils import DiffusionPipeline
3030
from diffusers.pipelines.stable_diffusion_3.pipeline_output import StableDiffusion3PipelineOutput
3131
from diffusers.schedulers import FlowMatchEulerDiscreteScheduler
32-
from diffusers.utils import (
33-
is_torch_xla_available,
34-
logging,
35-
replace_example_docstring,
36-
)
32+
from diffusers.utils import is_torch_xla_available, logging, replace_example_docstring
3733
from diffusers.utils.torch_utils import randn_tensor
3834

3935

examples/community/pipeline_stable_diffusion_boxdiff.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -504,13 +504,25 @@ def enable_vae_slicing(self):
504504
Enable sliced VAE decoding. When this option is enabled, the VAE will split the input tensor in slices to
505505
compute decoding in several steps. This is useful to save some memory and allow larger batch sizes.
506506
"""
507+
depr_message = f"Calling `enable_vae_slicing()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.enable_slicing()`."
508+
deprecate(
509+
"enable_vae_slicing",
510+
"0.40.0",
511+
depr_message,
512+
)
507513
self.vae.enable_slicing()
508514

509515
def disable_vae_slicing(self):
510516
r"""
511517
Disable sliced VAE decoding. If `enable_vae_slicing` was previously enabled, this method will go back to
512518
computing decoding in one step.
513519
"""
520+
depr_message = f"Calling `disable_vae_slicing()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.disable_slicing()`."
521+
deprecate(
522+
"disable_vae_slicing",
523+
"0.40.0",
524+
depr_message,
525+
)
514526
self.vae.disable_slicing()
515527

516528
def enable_vae_tiling(self):
@@ -519,13 +531,25 @@ def enable_vae_tiling(self):
519531
compute decoding and encoding in several steps. This is useful for saving a large amount of memory and to allow
520532
processing larger images.
521533
"""
534+
depr_message = f"Calling `enable_vae_tiling()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.enable_tiling()`."
535+
deprecate(
536+
"enable_vae_tiling",
537+
"0.40.0",
538+
depr_message,
539+
)
522540
self.vae.enable_tiling()
523541

524542
def disable_vae_tiling(self):
525543
r"""
526544
Disable tiled VAE decoding. If `enable_vae_tiling` was previously enabled, this method will go back to
527545
computing decoding in one step.
528546
"""
547+
depr_message = f"Calling `disable_vae_tiling()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.disable_tiling()`."
548+
deprecate(
549+
"disable_vae_tiling",
550+
"0.40.0",
551+
depr_message,
552+
)
529553
self.vae.disable_tiling()
530554

531555
def _encode_prompt(

examples/community/pipeline_stable_diffusion_pag.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -471,13 +471,25 @@ def enable_vae_slicing(self):
471471
Enable sliced VAE decoding. When this option is enabled, the VAE will split the input tensor in slices to
472472
compute decoding in several steps. This is useful to save some memory and allow larger batch sizes.
473473
"""
474+
depr_message = f"Calling `enable_vae_slicing()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.enable_slicing()`."
475+
deprecate(
476+
"enable_vae_slicing",
477+
"0.40.0",
478+
depr_message,
479+
)
474480
self.vae.enable_slicing()
475481

476482
def disable_vae_slicing(self):
477483
r"""
478484
Disable sliced VAE decoding. If `enable_vae_slicing` was previously enabled, this method will go back to
479485
computing decoding in one step.
480486
"""
487+
depr_message = f"Calling `disable_vae_slicing()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.disable_slicing()`."
488+
deprecate(
489+
"disable_vae_slicing",
490+
"0.40.0",
491+
depr_message,
492+
)
481493
self.vae.disable_slicing()
482494

483495
def enable_vae_tiling(self):
@@ -486,13 +498,25 @@ def enable_vae_tiling(self):
486498
compute decoding and encoding in several steps. This is useful for saving a large amount of memory and to allow
487499
processing larger images.
488500
"""
501+
depr_message = f"Calling `enable_vae_tiling()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.enable_tiling()`."
502+
deprecate(
503+
"enable_vae_tiling",
504+
"0.40.0",
505+
depr_message,
506+
)
489507
self.vae.enable_tiling()
490508

491509
def disable_vae_tiling(self):
492510
r"""
493511
Disable tiled VAE decoding. If `enable_vae_tiling` was previously enabled, this method will go back to
494512
computing decoding in one step.
495513
"""
514+
depr_message = f"Calling `disable_vae_tiling()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.disable_tiling()`."
515+
deprecate(
516+
"disable_vae_tiling",
517+
"0.40.0",
518+
depr_message,
519+
)
496520
self.vae.disable_tiling()
497521

498522
def _encode_prompt(

examples/community/pipeline_stg_hunyuan_video.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
from diffusers.pipelines.hunyuan_video.pipeline_output import HunyuanVideoPipelineOutput
2727
from diffusers.pipelines.pipeline_utils import DiffusionPipeline
2828
from diffusers.schedulers import FlowMatchEulerDiscreteScheduler
29-
from diffusers.utils import is_torch_xla_available, logging, replace_example_docstring
29+
from diffusers.utils import deprecate, is_torch_xla_available, logging, replace_example_docstring
3030
from diffusers.utils.torch_utils import randn_tensor
3131
from diffusers.video_processor import VideoProcessor
3232

@@ -481,13 +481,25 @@ def enable_vae_slicing(self):
481481
Enable sliced VAE decoding. When this option is enabled, the VAE will split the input tensor in slices to
482482
compute decoding in several steps. This is useful to save some memory and allow larger batch sizes.
483483
"""
484+
depr_message = f"Calling `enable_vae_slicing()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.enable_slicing()`."
485+
deprecate(
486+
"enable_vae_slicing",
487+
"0.40.0",
488+
depr_message,
489+
)
484490
self.vae.enable_slicing()
485491

486492
def disable_vae_slicing(self):
487493
r"""
488494
Disable sliced VAE decoding. If `enable_vae_slicing` was previously enabled, this method will go back to
489495
computing decoding in one step.
490496
"""
497+
depr_message = f"Calling `disable_vae_slicing()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.disable_slicing()`."
498+
deprecate(
499+
"disable_vae_slicing",
500+
"0.40.0",
501+
depr_message,
502+
)
491503
self.vae.disable_slicing()
492504

493505
def enable_vae_tiling(self):
@@ -496,13 +508,25 @@ def enable_vae_tiling(self):
496508
compute decoding and encoding in several steps. This is useful for saving a large amount of memory and to allow
497509
processing larger images.
498510
"""
511+
depr_message = f"Calling `enable_vae_tiling()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.enable_tiling()`."
512+
deprecate(
513+
"enable_vae_tiling",
514+
"0.40.0",
515+
depr_message,
516+
)
499517
self.vae.enable_tiling()
500518

501519
def disable_vae_tiling(self):
502520
r"""
503521
Disable tiled VAE decoding. If `enable_vae_tiling` was previously enabled, this method will go back to
504522
computing decoding in one step.
505523
"""
524+
depr_message = f"Calling `disable_vae_tiling()` on a `{self.__class__.__name__}` is deprecated and this method will be removed in a future version. Please use `pipe.vae.disable_tiling()`."
525+
deprecate(
526+
"disable_vae_tiling",
527+
"0.40.0",
528+
depr_message,
529+
)
506530
self.vae.disable_tiling()
507531

508532
@property

0 commit comments

Comments
 (0)