From c19fdd56dfcb5bf0816e92847b5728ea1789c3f1 Mon Sep 17 00:00:00 2001 From: Meatfucker <74834323+Meatfucker@users.noreply.github.com> Date: Mon, 12 May 2025 23:41:39 -0400 Subject: [PATCH 1/5] Update pipeline_flux_img2img.py Adds missing vae_slicing and vae_tiling calls to FluxImage2ImagePipeline --- .../pipelines/flux/pipeline_flux_img2img.py | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/diffusers/pipelines/flux/pipeline_flux_img2img.py b/src/diffusers/pipelines/flux/pipeline_flux_img2img.py index 64cd6ac45f1a..026978f7c1b9 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_img2img.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_img2img.py @@ -607,6 +607,35 @@ def _unpack_latents(latents, height, width, vae_scale_factor): return latents + def enable_vae_slicing(self): + r""" + Enable sliced VAE decoding. When this option is enabled, the VAE will split the input tensor in slices to + compute decoding in several steps. This is useful to save some memory and allow larger batch sizes. + """ + self.vae.enable_slicing() + + def disable_vae_slicing(self): + r""" + Disable sliced VAE decoding. If `enable_vae_slicing` was previously enabled, this method will go back to + computing decoding in one step. + """ + self.vae.disable_slicing() + + def enable_vae_tiling(self): + r""" + Enable tiled VAE decoding. When this option is enabled, the VAE will split the input tensor into tiles to + compute decoding and encoding in several steps. This is useful for saving a large amount of memory and to allow + processing larger images. + """ + self.vae.enable_tiling() + + def disable_vae_tiling(self): + r""" + Disable tiled VAE decoding. If `enable_vae_tiling` was previously enabled, this method will go back to + computing decoding in one step. + """ + self.vae.disable_tiling() + def prepare_latents( self, image, From c9a5be05c4a78c910f4e32ddb1d8f27dd903a76a Mon Sep 17 00:00:00 2001 From: Meatfucker <74834323+Meatfucker@users.noreply.github.com> Date: Tue, 13 May 2025 11:21:24 -0400 Subject: [PATCH 2/5] Update src/diffusers/pipelines/flux/pipeline_flux_img2img.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Álvaro Somoza --- src/diffusers/pipelines/flux/pipeline_flux_img2img.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/diffusers/pipelines/flux/pipeline_flux_img2img.py b/src/diffusers/pipelines/flux/pipeline_flux_img2img.py index 026978f7c1b9..5d1b3efef335 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_img2img.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_img2img.py @@ -607,6 +607,7 @@ def _unpack_latents(latents, height, width, vae_scale_factor): return latents + # Copied from diffusers.pipelines.flux.pipeline_flux.FluxPipeline.enable_vae_slicing def enable_vae_slicing(self): r""" Enable sliced VAE decoding. When this option is enabled, the VAE will split the input tensor in slices to From 123f94a0653a1ebd09703a865c4bf1860ac3eba3 Mon Sep 17 00:00:00 2001 From: Meatfucker <74834323+Meatfucker@users.noreply.github.com> Date: Tue, 13 May 2025 11:21:38 -0400 Subject: [PATCH 3/5] Update src/diffusers/pipelines/flux/pipeline_flux_img2img.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Álvaro Somoza --- src/diffusers/pipelines/flux/pipeline_flux_img2img.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/diffusers/pipelines/flux/pipeline_flux_img2img.py b/src/diffusers/pipelines/flux/pipeline_flux_img2img.py index 5d1b3efef335..e08fac4b45f8 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_img2img.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_img2img.py @@ -615,6 +615,7 @@ def enable_vae_slicing(self): """ self.vae.enable_slicing() + # Copied from diffusers.pipelines.flux.pipeline_flux.FluxPipeline.disable_vae_slicing def disable_vae_slicing(self): r""" Disable sliced VAE decoding. If `enable_vae_slicing` was previously enabled, this method will go back to From b3fb945101f317da45224dc31b904b3342ac3051 Mon Sep 17 00:00:00 2001 From: Meatfucker <74834323+Meatfucker@users.noreply.github.com> Date: Tue, 13 May 2025 11:21:52 -0400 Subject: [PATCH 4/5] Update src/diffusers/pipelines/flux/pipeline_flux_img2img.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Álvaro Somoza --- src/diffusers/pipelines/flux/pipeline_flux_img2img.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/diffusers/pipelines/flux/pipeline_flux_img2img.py b/src/diffusers/pipelines/flux/pipeline_flux_img2img.py index e08fac4b45f8..bd5fe7c31de6 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_img2img.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_img2img.py @@ -623,6 +623,7 @@ def disable_vae_slicing(self): """ self.vae.disable_slicing() + # Copied from diffusers.pipelines.flux.pipeline_flux.FluxPipeline.enable_vae_tiling def enable_vae_tiling(self): r""" Enable tiled VAE decoding. When this option is enabled, the VAE will split the input tensor into tiles to From e3eb57b5a8ac506ca30a4e6f47866a827e0cd26b Mon Sep 17 00:00:00 2001 From: Meatfucker <74834323+Meatfucker@users.noreply.github.com> Date: Tue, 13 May 2025 11:22:01 -0400 Subject: [PATCH 5/5] Update src/diffusers/pipelines/flux/pipeline_flux_img2img.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Álvaro Somoza --- src/diffusers/pipelines/flux/pipeline_flux_img2img.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/diffusers/pipelines/flux/pipeline_flux_img2img.py b/src/diffusers/pipelines/flux/pipeline_flux_img2img.py index bd5fe7c31de6..572ad5096b27 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_img2img.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_img2img.py @@ -632,6 +632,7 @@ def enable_vae_tiling(self): """ self.vae.enable_tiling() + # Copied from diffusers.pipelines.flux.pipeline_flux.FluxPipeline.disable_vae_tiling def disable_vae_tiling(self): r""" Disable tiled VAE decoding. If `enable_vae_tiling` was previously enabled, this method will go back to