From 66806e34ca1554035b20e2edd1b9429b11da68b0 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Wed, 25 Dec 2024 11:19:30 -0500 Subject: [PATCH 1/5] dont assume scheduler has optional config params --- src/diffusers/pipelines/flux/pipeline_flux.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/diffusers/pipelines/flux/pipeline_flux.py b/src/diffusers/pipelines/flux/pipeline_flux.py index 181f0269ce3e..4a048a5a6965 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux.py +++ b/src/diffusers/pipelines/flux/pipeline_flux.py @@ -73,11 +73,12 @@ def calculate_shift( image_seq_len, - base_seq_len: int = 256, - max_seq_len: int = 4096, - base_shift: float = 0.5, - max_shift: float = 1.16, + scheduler, ): + base_seq_len = scheduler.config.get('base_image_seq_len', 256) + max_seq_len = scheduler.config.get('max_image_seq_len', 4096) + base_shift = scheduler.config.get('base_shift', 0.5) + max_shift = scheduler.config.get('max_shift', 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -824,10 +825,7 @@ def __call__( image_seq_len = latents.shape[1] mu = calculate_shift( image_seq_len, - self.scheduler.config.base_image_seq_len, - self.scheduler.config.max_image_seq_len, - self.scheduler.config.base_shift, - self.scheduler.config.max_shift, + self.scheduler, ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, From b3c678713136a517f59716f109c2d6798f78fdd6 Mon Sep 17 00:00:00 2001 From: hlky Date: Wed, 25 Dec 2024 20:44:54 +0000 Subject: [PATCH 2/5] make style, make fix-copies --- src/diffusers/pipelines/flux/pipeline_flux.py | 8 ++++---- .../pipelines/flux/pipeline_flux_control_img2img.py | 9 +++++---- .../pipelines/flux/pipeline_flux_control_inpaint.py | 9 +++++---- src/diffusers/pipelines/flux/pipeline_flux_controlnet.py | 9 +++++---- .../flux/pipeline_flux_controlnet_image_to_image.py | 9 +++++---- .../flux/pipeline_flux_controlnet_inpainting.py | 9 +++++---- src/diffusers/pipelines/flux/pipeline_flux_fill.py | 9 +++++---- src/diffusers/pipelines/flux/pipeline_flux_img2img.py | 9 +++++---- src/diffusers/pipelines/flux/pipeline_flux_inpaint.py | 9 +++++---- src/diffusers/pipelines/ltx/pipeline_ltx.py | 9 +++++---- src/diffusers/pipelines/ltx/pipeline_ltx_image2video.py | 9 +++++---- .../stable_diffusion_3/pipeline_stable_diffusion_3.py | 9 +++++---- .../pipeline_stable_diffusion_3_img2img.py | 9 +++++---- .../pipeline_stable_diffusion_3_inpaint.py | 9 +++++---- 14 files changed, 69 insertions(+), 56 deletions(-) diff --git a/src/diffusers/pipelines/flux/pipeline_flux.py b/src/diffusers/pipelines/flux/pipeline_flux.py index 4a048a5a6965..b1c2d2e22ae0 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux.py +++ b/src/diffusers/pipelines/flux/pipeline_flux.py @@ -75,10 +75,10 @@ def calculate_shift( image_seq_len, scheduler, ): - base_seq_len = scheduler.config.get('base_image_seq_len', 256) - max_seq_len = scheduler.config.get('max_image_seq_len', 4096) - base_shift = scheduler.config.get('base_shift', 0.5) - max_shift = scheduler.config.get('max_shift', 1.16) + base_seq_len = scheduler.config.get("base_image_seq_len", 256) + max_seq_len = scheduler.config.get("max_image_seq_len", 4096) + base_shift = scheduler.config.get("base_shift", 0.5) + max_shift = scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b diff --git a/src/diffusers/pipelines/flux/pipeline_flux_control_img2img.py b/src/diffusers/pipelines/flux/pipeline_flux_control_img2img.py index 7001b19569f2..a7b23c53a2cb 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_control_img2img.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_control_img2img.py @@ -90,11 +90,12 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: int = 256, - max_seq_len: int = 4096, - base_shift: float = 0.5, - max_shift: float = 1.16, + scheduler, ): + base_seq_len = scheduler.config.get("base_image_seq_len", 256) + max_seq_len = scheduler.config.get("max_image_seq_len", 4096) + base_shift = scheduler.config.get("base_shift", 0.5) + max_shift = scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b diff --git a/src/diffusers/pipelines/flux/pipeline_flux_control_inpaint.py b/src/diffusers/pipelines/flux/pipeline_flux_control_inpaint.py index a9ac1c72c6ed..cde162990479 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_control_inpaint.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_control_inpaint.py @@ -116,11 +116,12 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: int = 256, - max_seq_len: int = 4096, - base_shift: float = 0.5, - max_shift: float = 1.16, + scheduler, ): + base_seq_len = scheduler.config.get("base_image_seq_len", 256) + max_seq_len = scheduler.config.get("max_image_seq_len", 4096) + base_shift = scheduler.config.get("base_shift", 0.5) + max_shift = scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b diff --git a/src/diffusers/pipelines/flux/pipeline_flux_controlnet.py b/src/diffusers/pipelines/flux/pipeline_flux_controlnet.py index 4c2d2a0a3db9..45e1ed40b108 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_controlnet.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_controlnet.py @@ -86,11 +86,12 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: int = 256, - max_seq_len: int = 4096, - base_shift: float = 0.5, - max_shift: float = 1.16, + scheduler, ): + base_seq_len = scheduler.config.get("base_image_seq_len", 256) + max_seq_len = scheduler.config.get("max_image_seq_len", 4096) + base_shift = scheduler.config.get("base_shift", 0.5) + max_shift = scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b diff --git a/src/diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py b/src/diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py index 4c82d73f0379..3fc344714951 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py @@ -84,11 +84,12 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: int = 256, - max_seq_len: int = 4096, - base_shift: float = 0.5, - max_shift: float = 1.16, + scheduler, ): + base_seq_len = scheduler.config.get("base_image_seq_len", 256) + max_seq_len = scheduler.config.get("max_image_seq_len", 4096) + base_shift = scheduler.config.get("base_shift", 0.5) + max_shift = scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b diff --git a/src/diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py b/src/diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py index 85943b278dc6..fd8346001d01 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py @@ -86,11 +86,12 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: int = 256, - max_seq_len: int = 4096, - base_shift: float = 0.5, - max_shift: float = 1.16, + scheduler, ): + base_seq_len = scheduler.config.get("base_image_seq_len", 256) + max_seq_len = scheduler.config.get("max_image_seq_len", 4096) + base_shift = scheduler.config.get("base_shift", 0.5) + max_shift = scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b diff --git a/src/diffusers/pipelines/flux/pipeline_flux_fill.py b/src/diffusers/pipelines/flux/pipeline_flux_fill.py index 723478ce724d..121878b945a1 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_fill.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_fill.py @@ -79,11 +79,12 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: int = 256, - max_seq_len: int = 4096, - base_shift: float = 0.5, - max_shift: float = 1.16, + scheduler, ): + base_seq_len = scheduler.config.get("base_image_seq_len", 256) + max_seq_len = scheduler.config.get("max_image_seq_len", 4096) + base_shift = scheduler.config.get("base_shift", 0.5) + max_shift = scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b diff --git a/src/diffusers/pipelines/flux/pipeline_flux_img2img.py b/src/diffusers/pipelines/flux/pipeline_flux_img2img.py index 2b336fbdd472..d97373d11c48 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_img2img.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_img2img.py @@ -74,11 +74,12 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: int = 256, - max_seq_len: int = 4096, - base_shift: float = 0.5, - max_shift: float = 1.16, + scheduler, ): + base_seq_len = scheduler.config.get("base_image_seq_len", 256) + max_seq_len = scheduler.config.get("max_image_seq_len", 4096) + base_shift = scheduler.config.get("base_shift", 0.5) + max_shift = scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b diff --git a/src/diffusers/pipelines/flux/pipeline_flux_inpaint.py b/src/diffusers/pipelines/flux/pipeline_flux_inpaint.py index 15abdb90ebd0..b8fb5061909e 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_inpaint.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_inpaint.py @@ -71,11 +71,12 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: int = 256, - max_seq_len: int = 4096, - base_shift: float = 0.5, - max_shift: float = 1.16, + scheduler, ): + base_seq_len = scheduler.config.get("base_image_seq_len", 256) + max_seq_len = scheduler.config.get("max_image_seq_len", 4096) + base_shift = scheduler.config.get("base_shift", 0.5) + max_shift = scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b diff --git a/src/diffusers/pipelines/ltx/pipeline_ltx.py b/src/diffusers/pipelines/ltx/pipeline_ltx.py index 96d41bb3224b..f37765b0de32 100644 --- a/src/diffusers/pipelines/ltx/pipeline_ltx.py +++ b/src/diffusers/pipelines/ltx/pipeline_ltx.py @@ -69,11 +69,12 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: int = 256, - max_seq_len: int = 4096, - base_shift: float = 0.5, - max_shift: float = 1.16, + scheduler, ): + base_seq_len = scheduler.config.get("base_image_seq_len", 256) + max_seq_len = scheduler.config.get("max_image_seq_len", 4096) + base_shift = scheduler.config.get("base_shift", 0.5) + max_shift = scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b diff --git a/src/diffusers/pipelines/ltx/pipeline_ltx_image2video.py b/src/diffusers/pipelines/ltx/pipeline_ltx_image2video.py index 71fd725c915b..cd29d4dc4403 100644 --- a/src/diffusers/pipelines/ltx/pipeline_ltx_image2video.py +++ b/src/diffusers/pipelines/ltx/pipeline_ltx_image2video.py @@ -74,11 +74,12 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: int = 256, - max_seq_len: int = 4096, - base_shift: float = 0.5, - max_shift: float = 1.16, + scheduler, ): + base_seq_len = scheduler.config.get("base_image_seq_len", 256) + max_seq_len = scheduler.config.get("max_image_seq_len", 4096) + base_shift = scheduler.config.get("base_shift", 0.5) + max_shift = scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b diff --git a/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py b/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py index a53d786798ca..ee00000954da 100644 --- a/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +++ b/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py @@ -73,11 +73,12 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: int = 256, - max_seq_len: int = 4096, - base_shift: float = 0.5, - max_shift: float = 1.16, + scheduler, ): + base_seq_len = scheduler.config.get("base_image_seq_len", 256) + max_seq_len = scheduler.config.get("max_image_seq_len", 4096) + base_shift = scheduler.config.get("base_shift", 0.5) + max_shift = scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b diff --git a/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py b/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py index c10401324430..d58503ea09b4 100644 --- a/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +++ b/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py @@ -78,11 +78,12 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: int = 256, - max_seq_len: int = 4096, - base_shift: float = 0.5, - max_shift: float = 1.16, + scheduler, ): + base_seq_len = scheduler.config.get("base_image_seq_len", 256) + max_seq_len = scheduler.config.get("max_image_seq_len", 4096) + base_shift = scheduler.config.get("base_shift", 0.5) + max_shift = scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b diff --git a/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py b/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py index ca32880d0df2..4e4c5a616d57 100644 --- a/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +++ b/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py @@ -77,11 +77,12 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: int = 256, - max_seq_len: int = 4096, - base_shift: float = 0.5, - max_shift: float = 1.16, + scheduler, ): + base_seq_len = scheduler.config.get("base_image_seq_len", 256) + max_seq_len = scheduler.config.get("max_image_seq_len", 4096) + base_shift = scheduler.config.get("base_shift", 0.5) + max_shift = scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b From 64aee6eb35d7e71b4adb593bacccb740b2af75b1 Mon Sep 17 00:00:00 2001 From: hlky Date: Wed, 25 Dec 2024 21:12:02 +0000 Subject: [PATCH 3/5] calculate_shift --- src/diffusers/pipelines/flux/pipeline_flux.py | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/diffusers/pipelines/flux/pipeline_flux.py b/src/diffusers/pipelines/flux/pipeline_flux.py index b1c2d2e22ae0..c20384d4ec89 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux.py +++ b/src/diffusers/pipelines/flux/pipeline_flux.py @@ -34,6 +34,7 @@ from ...utils import ( USE_PEFT_BACKEND, is_torch_xla_available, + deprecate, logging, replace_example_docstring, scale_lora_layers, @@ -73,12 +74,24 @@ def calculate_shift( image_seq_len, - scheduler, + base_seq_len: Optional[int] = 256, + max_seq_len: Optional[int] = 4096, + base_shift: Optional[float] = 0.5, + max_shift: Optional[float] = 1.16, + scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, ): - base_seq_len = scheduler.config.get("base_image_seq_len", 256) - max_seq_len = scheduler.config.get("max_image_seq_len", 4096) - base_shift = scheduler.config.get("base_shift", 0.5) - max_shift = scheduler.config.get("max_shift", 1.16) + if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: + deprecation_message = "Pass `scheduler` to `calculate_shift`." + deprecate( + "calculate_shift scheduler", + "1.0.0", + deprecation_message, + standard_warn=False, + ) + base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) + max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) + base_shift = base_shift or scheduler.config.get("base_shift", 0.5) + max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b From 20614bd16e4708bedce5beb45b581ce6948a7319 Mon Sep 17 00:00:00 2001 From: hlky Date: Mon, 30 Dec 2024 08:32:17 +0000 Subject: [PATCH 4/5] fix-copies, usage in pipelines --- .../pipeline_flux_differential_img2img.py | 27 +++++++++++----- .../community/pipeline_flux_rf_inversion.py | 32 ++++++++++++------- examples/community/pipeline_flux_with_cfg.py | 28 +++++++++++----- src/diffusers/pipelines/flux/pipeline_flux.py | 4 +-- .../pipelines/flux/pipeline_flux_control.py | 28 +++++++++++----- .../flux/pipeline_flux_control_img2img.py | 28 ++++++++++------ .../flux/pipeline_flux_control_inpaint.py | 28 ++++++++++------ .../flux/pipeline_flux_controlnet.py | 28 ++++++++++------ ...pipeline_flux_controlnet_image_to_image.py | 28 ++++++++++------ .../pipeline_flux_controlnet_inpainting.py | 28 ++++++++++------ .../pipelines/flux/pipeline_flux_fill.py | 28 ++++++++++------ .../pipelines/flux/pipeline_flux_img2img.py | 28 ++++++++++------ .../pipelines/flux/pipeline_flux_inpaint.py | 28 ++++++++++------ src/diffusers/pipelines/ltx/pipeline_ltx.py | 29 +++++++++++------ .../pipelines/ltx/pipeline_ltx_image2video.py | 29 +++++++++++------ .../pipelines/mochi/pipeline_mochi.py | 13 -------- .../pipeline_stable_diffusion_3.py | 28 ++++++++++------ .../pipeline_stable_diffusion_3_img2img.py | 28 ++++++++++------ .../pipeline_stable_diffusion_3_inpaint.py | 28 ++++++++++------ 19 files changed, 328 insertions(+), 170 deletions(-) diff --git a/examples/community/pipeline_flux_differential_img2img.py b/examples/community/pipeline_flux_differential_img2img.py index 68cb69115bde..52294fbbb84d 100644 --- a/examples/community/pipeline_flux_differential_img2img.py +++ b/examples/community/pipeline_flux_differential_img2img.py @@ -29,6 +29,7 @@ from diffusers.schedulers import FlowMatchEulerDiscreteScheduler from diffusers.utils import ( USE_PEFT_BACKEND, + deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -84,11 +85,24 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: int = 256, - max_seq_len: int = 4096, - base_shift: float = 0.5, - max_shift: float = 1.16, + base_seq_len: Optional[int] = 256, + max_seq_len: Optional[int] = 4096, + base_shift: Optional[float] = 0.5, + max_shift: Optional[float] = 1.16, + scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, ): + if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: + deprecation_message = "Pass `scheduler` to `calculate_shift`." + deprecate( + "calculate_shift scheduler", + "1.0.0", + deprecation_message, + standard_warn=False, + ) + base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) + max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) + base_shift = base_shift or scheduler.config.get("base_shift", 0.5) + max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -876,10 +890,7 @@ def __call__( image_seq_len = (int(height) // self.vae_scale_factor) * (int(width) // self.vae_scale_factor) mu = calculate_shift( image_seq_len, - self.scheduler.config.base_image_seq_len, - self.scheduler.config.max_image_seq_len, - self.scheduler.config.base_shift, - self.scheduler.config.max_shift, + scheduler=self.scheduler, ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/examples/community/pipeline_flux_rf_inversion.py b/examples/community/pipeline_flux_rf_inversion.py index c8a87a426dc0..8e88ea102520 100644 --- a/examples/community/pipeline_flux_rf_inversion.py +++ b/examples/community/pipeline_flux_rf_inversion.py @@ -30,6 +30,7 @@ from diffusers.schedulers import FlowMatchEulerDiscreteScheduler from diffusers.utils import ( USE_PEFT_BACKEND, + deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -91,11 +92,24 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: int = 256, - max_seq_len: int = 4096, - base_shift: float = 0.5, - max_shift: float = 1.16, + base_seq_len: Optional[int] = 256, + max_seq_len: Optional[int] = 4096, + base_shift: Optional[float] = 0.5, + max_shift: Optional[float] = 1.16, + scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, ): + if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: + deprecation_message = "Pass `scheduler` to `calculate_shift`." + deprecate( + "calculate_shift scheduler", + "1.0.0", + deprecation_message, + standard_warn=False, + ) + base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) + max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) + base_shift = base_shift or scheduler.config.get("base_shift", 0.5) + max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -822,10 +836,7 @@ def __call__( image_seq_len = (int(height) // self.vae_scale_factor // 2) * (int(width) // self.vae_scale_factor // 2) mu = calculate_shift( image_seq_len, - self.scheduler.config.base_image_seq_len, - self.scheduler.config.max_image_seq_len, - self.scheduler.config.base_shift, - self.scheduler.config.max_shift, + scheduler=self.scheduler, ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, @@ -992,10 +1003,7 @@ def invert( image_seq_len = (int(height) // self.vae_scale_factor // 2) * (int(width) // self.vae_scale_factor // 2) mu = calculate_shift( image_seq_len, - self.scheduler.config.base_image_seq_len, - self.scheduler.config.max_image_seq_len, - self.scheduler.config.base_shift, - self.scheduler.config.max_shift, + scheduler=self.scheduler, ) timesteps, num_inversion_steps = retrieve_timesteps( self.scheduler, diff --git a/examples/community/pipeline_flux_with_cfg.py b/examples/community/pipeline_flux_with_cfg.py index 06da6da899cd..d094d6391888 100644 --- a/examples/community/pipeline_flux_with_cfg.py +++ b/examples/community/pipeline_flux_with_cfg.py @@ -28,6 +28,7 @@ from diffusers.schedulers import FlowMatchEulerDiscreteScheduler from diffusers.utils import ( USE_PEFT_BACKEND, + deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -64,13 +65,27 @@ """ +# Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: int = 256, - max_seq_len: int = 4096, - base_shift: float = 0.5, - max_shift: float = 1.16, + base_seq_len: Optional[int] = 256, + max_seq_len: Optional[int] = 4096, + base_shift: Optional[float] = 0.5, + max_shift: Optional[float] = 1.16, + scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, ): + if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: + deprecation_message = "Pass `scheduler` to `calculate_shift`." + deprecate( + "calculate_shift scheduler", + "1.0.0", + deprecation_message, + standard_warn=False, + ) + base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) + max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) + base_shift = base_shift or scheduler.config.get("base_shift", 0.5) + max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -757,10 +772,7 @@ def __call__( image_seq_len = latents.shape[1] mu = calculate_shift( image_seq_len, - self.scheduler.config.base_image_seq_len, - self.scheduler.config.max_image_seq_len, - self.scheduler.config.base_shift, - self.scheduler.config.max_shift, + scheduler=self.scheduler, ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/flux/pipeline_flux.py b/src/diffusers/pipelines/flux/pipeline_flux.py index c20384d4ec89..c5ea7696c968 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux.py +++ b/src/diffusers/pipelines/flux/pipeline_flux.py @@ -33,8 +33,8 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, - is_torch_xla_available, deprecate, + is_torch_xla_available, logging, replace_example_docstring, scale_lora_layers, @@ -838,7 +838,7 @@ def __call__( image_seq_len = latents.shape[1] mu = calculate_shift( image_seq_len, - self.scheduler, + scheduler=self.scheduler, ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/flux/pipeline_flux_control.py b/src/diffusers/pipelines/flux/pipeline_flux_control.py index ac8474becb78..0463b13c6813 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_control.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_control.py @@ -26,6 +26,7 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, + deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -82,13 +83,27 @@ """ +# Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: int = 256, - max_seq_len: int = 4096, - base_shift: float = 0.5, - max_shift: float = 1.16, + base_seq_len: Optional[int] = 256, + max_seq_len: Optional[int] = 4096, + base_shift: Optional[float] = 0.5, + max_shift: Optional[float] = 1.16, + scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, ): + if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: + deprecation_message = "Pass `scheduler` to `calculate_shift`." + deprecate( + "calculate_shift scheduler", + "1.0.0", + deprecation_message, + standard_warn=False, + ) + base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) + max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) + base_shift = base_shift or scheduler.config.get("base_shift", 0.5) + max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -802,10 +817,7 @@ def __call__( image_seq_len = latents.shape[1] mu = calculate_shift( image_seq_len, - self.scheduler.config.base_image_seq_len, - self.scheduler.config.max_image_seq_len, - self.scheduler.config.base_shift, - self.scheduler.config.max_shift, + scheduler=self.scheduler, ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/flux/pipeline_flux_control_img2img.py b/src/diffusers/pipelines/flux/pipeline_flux_control_img2img.py index a7b23c53a2cb..52e66aafbf12 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_control_img2img.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_control_img2img.py @@ -26,6 +26,7 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, + deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -90,12 +91,24 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - scheduler, + base_seq_len: Optional[int] = 256, + max_seq_len: Optional[int] = 4096, + base_shift: Optional[float] = 0.5, + max_shift: Optional[float] = 1.16, + scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, ): - base_seq_len = scheduler.config.get("base_image_seq_len", 256) - max_seq_len = scheduler.config.get("max_image_seq_len", 4096) - base_shift = scheduler.config.get("base_shift", 0.5) - max_shift = scheduler.config.get("max_shift", 1.16) + if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: + deprecation_message = "Pass `scheduler` to `calculate_shift`." + deprecate( + "calculate_shift scheduler", + "1.0.0", + deprecation_message, + standard_warn=False, + ) + base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) + max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) + base_shift = base_shift or scheduler.config.get("base_shift", 0.5) + max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -810,10 +823,7 @@ def __call__( image_seq_len = (int(height) // self.vae_scale_factor // 2) * (int(width) // self.vae_scale_factor // 2) mu = calculate_shift( image_seq_len, - self.scheduler.config.base_image_seq_len, - self.scheduler.config.max_image_seq_len, - self.scheduler.config.base_shift, - self.scheduler.config.max_shift, + scheduler=self.scheduler, ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/flux/pipeline_flux_control_inpaint.py b/src/diffusers/pipelines/flux/pipeline_flux_control_inpaint.py index cde162990479..c2cdc84ac2fb 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_control_inpaint.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_control_inpaint.py @@ -35,6 +35,7 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, + deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -116,12 +117,24 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - scheduler, + base_seq_len: Optional[int] = 256, + max_seq_len: Optional[int] = 4096, + base_shift: Optional[float] = 0.5, + max_shift: Optional[float] = 1.16, + scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, ): - base_seq_len = scheduler.config.get("base_image_seq_len", 256) - max_seq_len = scheduler.config.get("max_image_seq_len", 4096) - base_shift = scheduler.config.get("base_shift", 0.5) - max_shift = scheduler.config.get("max_shift", 1.16) + if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: + deprecation_message = "Pass `scheduler` to `calculate_shift`." + deprecate( + "calculate_shift scheduler", + "1.0.0", + deprecation_message, + standard_warn=False, + ) + base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) + max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) + base_shift = base_shift or scheduler.config.get("base_shift", 0.5) + max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -986,10 +999,7 @@ def __call__( image_seq_len = (int(height) // self.vae_scale_factor // 2) * (int(width) // self.vae_scale_factor // 2) mu = calculate_shift( image_seq_len, - self.scheduler.config.base_image_seq_len, - self.scheduler.config.max_image_seq_len, - self.scheduler.config.base_shift, - self.scheduler.config.max_shift, + scheduler=self.scheduler, ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/flux/pipeline_flux_controlnet.py b/src/diffusers/pipelines/flux/pipeline_flux_controlnet.py index 45e1ed40b108..26e4d7526f9b 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_controlnet.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_controlnet.py @@ -32,6 +32,7 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, + deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -86,12 +87,24 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - scheduler, + base_seq_len: Optional[int] = 256, + max_seq_len: Optional[int] = 4096, + base_shift: Optional[float] = 0.5, + max_shift: Optional[float] = 1.16, + scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, ): - base_seq_len = scheduler.config.get("base_image_seq_len", 256) - max_seq_len = scheduler.config.get("max_image_seq_len", 4096) - base_shift = scheduler.config.get("base_shift", 0.5) - max_shift = scheduler.config.get("max_shift", 1.16) + if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: + deprecation_message = "Pass `scheduler` to `calculate_shift`." + deprecate( + "calculate_shift scheduler", + "1.0.0", + deprecation_message, + standard_warn=False, + ) + base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) + max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) + base_shift = base_shift or scheduler.config.get("base_shift", 0.5) + max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -877,10 +890,7 @@ def __call__( image_seq_len = latents.shape[1] mu = calculate_shift( image_seq_len, - self.scheduler.config.base_image_seq_len, - self.scheduler.config.max_image_seq_len, - self.scheduler.config.base_shift, - self.scheduler.config.max_shift, + scheduler=self.scheduler, ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py b/src/diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py index 3fc344714951..f01d32801cfe 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py @@ -18,6 +18,7 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, + deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -84,12 +85,24 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - scheduler, + base_seq_len: Optional[int] = 256, + max_seq_len: Optional[int] = 4096, + base_shift: Optional[float] = 0.5, + max_shift: Optional[float] = 1.16, + scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, ): - base_seq_len = scheduler.config.get("base_image_seq_len", 256) - max_seq_len = scheduler.config.get("max_image_seq_len", 4096) - base_shift = scheduler.config.get("base_shift", 0.5) - max_shift = scheduler.config.get("max_shift", 1.16) + if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: + deprecation_message = "Pass `scheduler` to `calculate_shift`." + deprecate( + "calculate_shift scheduler", + "1.0.0", + deprecation_message, + standard_warn=False, + ) + base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) + max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) + base_shift = base_shift or scheduler.config.get("base_shift", 0.5) + max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -865,10 +878,7 @@ def __call__( image_seq_len = (int(height) // self.vae_scale_factor // 2) * (int(width) // self.vae_scale_factor // 2) mu = calculate_shift( image_seq_len, - self.scheduler.config.base_image_seq_len, - self.scheduler.config.max_image_seq_len, - self.scheduler.config.base_shift, - self.scheduler.config.max_shift, + scheduler=self.scheduler, ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py b/src/diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py index fd8346001d01..dadc4459d7b9 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py @@ -19,6 +19,7 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, + deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -86,12 +87,24 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - scheduler, + base_seq_len: Optional[int] = 256, + max_seq_len: Optional[int] = 4096, + base_shift: Optional[float] = 0.5, + max_shift: Optional[float] = 1.16, + scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, ): - base_seq_len = scheduler.config.get("base_image_seq_len", 256) - max_seq_len = scheduler.config.get("max_image_seq_len", 4096) - base_shift = scheduler.config.get("base_shift", 0.5) - max_shift = scheduler.config.get("max_shift", 1.16) + if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: + deprecation_message = "Pass `scheduler` to `calculate_shift`." + deprecate( + "calculate_shift scheduler", + "1.0.0", + deprecation_message, + standard_warn=False, + ) + base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) + max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) + base_shift = base_shift or scheduler.config.get("base_shift", 0.5) + max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -1018,10 +1031,7 @@ def __call__( ) mu = calculate_shift( image_seq_len, - self.scheduler.config.base_image_seq_len, - self.scheduler.config.max_image_seq_len, - self.scheduler.config.base_shift, - self.scheduler.config.max_shift, + scheduler=self.scheduler, ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/flux/pipeline_flux_fill.py b/src/diffusers/pipelines/flux/pipeline_flux_fill.py index 121878b945a1..089fdf92ea9b 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_fill.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_fill.py @@ -26,6 +26,7 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, + deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -79,12 +80,24 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - scheduler, + base_seq_len: Optional[int] = 256, + max_seq_len: Optional[int] = 4096, + base_shift: Optional[float] = 0.5, + max_shift: Optional[float] = 1.16, + scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, ): - base_seq_len = scheduler.config.get("base_image_seq_len", 256) - max_seq_len = scheduler.config.get("max_image_seq_len", 4096) - base_shift = scheduler.config.get("base_shift", 0.5) - max_shift = scheduler.config.get("max_shift", 1.16) + if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: + deprecation_message = "Pass `scheduler` to `calculate_shift`." + deprecate( + "calculate_shift scheduler", + "1.0.0", + deprecation_message, + standard_warn=False, + ) + base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) + max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) + base_shift = base_shift or scheduler.config.get("base_shift", 0.5) + max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -883,10 +896,7 @@ def __call__( image_seq_len = latents.shape[1] mu = calculate_shift( image_seq_len, - self.scheduler.config.base_image_seq_len, - self.scheduler.config.max_image_seq_len, - self.scheduler.config.base_shift, - self.scheduler.config.max_shift, + scheduler=self.scheduler, ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/flux/pipeline_flux_img2img.py b/src/diffusers/pipelines/flux/pipeline_flux_img2img.py index d97373d11c48..01dae344ecc0 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_img2img.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_img2img.py @@ -26,6 +26,7 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, + deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -74,12 +75,24 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - scheduler, + base_seq_len: Optional[int] = 256, + max_seq_len: Optional[int] = 4096, + base_shift: Optional[float] = 0.5, + max_shift: Optional[float] = 1.16, + scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, ): - base_seq_len = scheduler.config.get("base_image_seq_len", 256) - max_seq_len = scheduler.config.get("max_image_seq_len", 4096) - base_shift = scheduler.config.get("base_shift", 0.5) - max_shift = scheduler.config.get("max_shift", 1.16) + if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: + deprecation_message = "Pass `scheduler` to `calculate_shift`." + deprecate( + "calculate_shift scheduler", + "1.0.0", + deprecation_message, + standard_warn=False, + ) + base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) + max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) + base_shift = base_shift or scheduler.config.get("base_shift", 0.5) + max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -747,10 +760,7 @@ def __call__( image_seq_len = (int(height) // self.vae_scale_factor // 2) * (int(width) // self.vae_scale_factor // 2) mu = calculate_shift( image_seq_len, - self.scheduler.config.base_image_seq_len, - self.scheduler.config.max_image_seq_len, - self.scheduler.config.base_shift, - self.scheduler.config.max_shift, + scheduler=self.scheduler, ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/flux/pipeline_flux_inpaint.py b/src/diffusers/pipelines/flux/pipeline_flux_inpaint.py index b8fb5061909e..5dab7bb717f6 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_inpaint.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_inpaint.py @@ -27,6 +27,7 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, + deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -71,12 +72,24 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - scheduler, + base_seq_len: Optional[int] = 256, + max_seq_len: Optional[int] = 4096, + base_shift: Optional[float] = 0.5, + max_shift: Optional[float] = 1.16, + scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, ): - base_seq_len = scheduler.config.get("base_image_seq_len", 256) - max_seq_len = scheduler.config.get("max_image_seq_len", 4096) - base_shift = scheduler.config.get("base_shift", 0.5) - max_shift = scheduler.config.get("max_shift", 1.16) + if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: + deprecation_message = "Pass `scheduler` to `calculate_shift`." + deprecate( + "calculate_shift scheduler", + "1.0.0", + deprecation_message, + standard_warn=False, + ) + base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) + max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) + base_shift = base_shift or scheduler.config.get("base_shift", 0.5) + max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -878,10 +891,7 @@ def __call__( image_seq_len = (int(height) // self.vae_scale_factor // 2) * (int(width) // self.vae_scale_factor // 2) mu = calculate_shift( image_seq_len, - self.scheduler.config.base_image_seq_len, - self.scheduler.config.max_image_seq_len, - self.scheduler.config.base_shift, - self.scheduler.config.max_shift, + scheduler=self.scheduler, ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/ltx/pipeline_ltx.py b/src/diffusers/pipelines/ltx/pipeline_ltx.py index f37765b0de32..c89370031fbd 100644 --- a/src/diffusers/pipelines/ltx/pipeline_ltx.py +++ b/src/diffusers/pipelines/ltx/pipeline_ltx.py @@ -24,7 +24,7 @@ from ...models.autoencoders import AutoencoderKLLTXVideo from ...models.transformers import LTXVideoTransformer3DModel from ...schedulers import FlowMatchEulerDiscreteScheduler -from ...utils import is_torch_xla_available, logging, replace_example_docstring +from ...utils import deprecate, is_torch_xla_available, logging, replace_example_docstring from ...utils.torch_utils import randn_tensor from ...video_processor import VideoProcessor from ..pipeline_utils import DiffusionPipeline @@ -69,12 +69,24 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - scheduler, + base_seq_len: Optional[int] = 256, + max_seq_len: Optional[int] = 4096, + base_shift: Optional[float] = 0.5, + max_shift: Optional[float] = 1.16, + scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, ): - base_seq_len = scheduler.config.get("base_image_seq_len", 256) - max_seq_len = scheduler.config.get("max_image_seq_len", 4096) - base_shift = scheduler.config.get("base_shift", 0.5) - max_shift = scheduler.config.get("max_shift", 1.16) + if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: + deprecation_message = "Pass `scheduler` to `calculate_shift`." + deprecate( + "calculate_shift scheduler", + "1.0.0", + deprecation_message, + standard_warn=False, + ) + base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) + max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) + base_shift = base_shift or scheduler.config.get("base_shift", 0.5) + max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -672,10 +684,7 @@ def __call__( sigmas = np.linspace(1.0, 1 / num_inference_steps, num_inference_steps) mu = calculate_shift( video_sequence_length, - self.scheduler.config.base_image_seq_len, - self.scheduler.config.max_image_seq_len, - self.scheduler.config.base_shift, - self.scheduler.config.max_shift, + scheduler=self.scheduler, ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/ltx/pipeline_ltx_image2video.py b/src/diffusers/pipelines/ltx/pipeline_ltx_image2video.py index cd29d4dc4403..dab21615de4e 100644 --- a/src/diffusers/pipelines/ltx/pipeline_ltx_image2video.py +++ b/src/diffusers/pipelines/ltx/pipeline_ltx_image2video.py @@ -25,7 +25,7 @@ from ...models.autoencoders import AutoencoderKLLTXVideo from ...models.transformers import LTXVideoTransformer3DModel from ...schedulers import FlowMatchEulerDiscreteScheduler -from ...utils import is_torch_xla_available, logging, replace_example_docstring +from ...utils import deprecate, is_torch_xla_available, logging, replace_example_docstring from ...utils.torch_utils import randn_tensor from ...video_processor import VideoProcessor from ..pipeline_utils import DiffusionPipeline @@ -74,12 +74,24 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - scheduler, + base_seq_len: Optional[int] = 256, + max_seq_len: Optional[int] = 4096, + base_shift: Optional[float] = 0.5, + max_shift: Optional[float] = 1.16, + scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, ): - base_seq_len = scheduler.config.get("base_image_seq_len", 256) - max_seq_len = scheduler.config.get("max_image_seq_len", 4096) - base_shift = scheduler.config.get("base_shift", 0.5) - max_shift = scheduler.config.get("max_shift", 1.16) + if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: + deprecation_message = "Pass `scheduler` to `calculate_shift`." + deprecate( + "calculate_shift scheduler", + "1.0.0", + deprecation_message, + standard_warn=False, + ) + base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) + max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) + base_shift = base_shift or scheduler.config.get("base_shift", 0.5) + max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -742,10 +754,7 @@ def __call__( sigmas = np.linspace(1.0, 1 / num_inference_steps, num_inference_steps) mu = calculate_shift( video_sequence_length, - self.scheduler.config.base_image_seq_len, - self.scheduler.config.max_image_seq_len, - self.scheduler.config.base_shift, - self.scheduler.config.max_shift, + scheduler=self.scheduler, ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/mochi/pipeline_mochi.py b/src/diffusers/pipelines/mochi/pipeline_mochi.py index aac4e32e33f0..435470064633 100644 --- a/src/diffusers/pipelines/mochi/pipeline_mochi.py +++ b/src/diffusers/pipelines/mochi/pipeline_mochi.py @@ -62,19 +62,6 @@ """ -def calculate_shift( - image_seq_len, - base_seq_len: int = 256, - max_seq_len: int = 4096, - base_shift: float = 0.5, - max_shift: float = 1.16, -): - m = (max_shift - base_shift) / (max_seq_len - base_seq_len) - b = base_shift - m * base_seq_len - mu = image_seq_len * m + b - return mu - - # from: https://github.com/genmoai/models/blob/075b6e36db58f1242921deff83a1066887b9c9e1/src/mochi_preview/infer.py#L77 def linear_quadratic_schedule(num_steps, threshold_noise, linear_steps=None): if linear_steps is None: diff --git a/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py b/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py index ee00000954da..c461378f551d 100644 --- a/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +++ b/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py @@ -32,6 +32,7 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, + deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -73,12 +74,24 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - scheduler, + base_seq_len: Optional[int] = 256, + max_seq_len: Optional[int] = 4096, + base_shift: Optional[float] = 0.5, + max_shift: Optional[float] = 1.16, + scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, ): - base_seq_len = scheduler.config.get("base_image_seq_len", 256) - max_seq_len = scheduler.config.get("max_image_seq_len", 4096) - base_shift = scheduler.config.get("base_shift", 0.5) - max_shift = scheduler.config.get("max_shift", 1.16) + if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: + deprecation_message = "Pass `scheduler` to `calculate_shift`." + deprecate( + "calculate_shift scheduler", + "1.0.0", + deprecation_message, + standard_warn=False, + ) + base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) + max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) + base_shift = base_shift or scheduler.config.get("base_shift", 0.5) + max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -1015,10 +1028,7 @@ def __call__( ) mu = calculate_shift( image_seq_len, - self.scheduler.config.base_image_seq_len, - self.scheduler.config.max_image_seq_len, - self.scheduler.config.base_shift, - self.scheduler.config.max_shift, + scheduler=self.scheduler, ) scheduler_kwargs["mu"] = mu elif mu is not None: diff --git a/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py b/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py index d58503ea09b4..e6949f8ed697 100644 --- a/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +++ b/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py @@ -31,6 +31,7 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, + deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -78,12 +79,24 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - scheduler, + base_seq_len: Optional[int] = 256, + max_seq_len: Optional[int] = 4096, + base_shift: Optional[float] = 0.5, + max_shift: Optional[float] = 1.16, + scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, ): - base_seq_len = scheduler.config.get("base_image_seq_len", 256) - max_seq_len = scheduler.config.get("max_image_seq_len", 4096) - base_shift = scheduler.config.get("base_shift", 0.5) - max_shift = scheduler.config.get("max_shift", 1.16) + if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: + deprecation_message = "Pass `scheduler` to `calculate_shift`." + deprecate( + "calculate_shift scheduler", + "1.0.0", + deprecation_message, + standard_warn=False, + ) + base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) + max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) + base_shift = base_shift or scheduler.config.get("base_shift", 0.5) + max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -937,10 +950,7 @@ def __call__( ) mu = calculate_shift( image_seq_len, - self.scheduler.config.base_image_seq_len, - self.scheduler.config.max_image_seq_len, - self.scheduler.config.base_shift, - self.scheduler.config.max_shift, + scheduler=self.scheduler, ) scheduler_kwargs["mu"] = mu elif mu is not None: diff --git a/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py b/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py index 4e4c5a616d57..ac6ffa26b6cb 100644 --- a/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +++ b/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py @@ -31,6 +31,7 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, + deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -77,12 +78,24 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - scheduler, + base_seq_len: Optional[int] = 256, + max_seq_len: Optional[int] = 4096, + base_shift: Optional[float] = 0.5, + max_shift: Optional[float] = 1.16, + scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, ): - base_seq_len = scheduler.config.get("base_image_seq_len", 256) - max_seq_len = scheduler.config.get("max_image_seq_len", 4096) - base_shift = scheduler.config.get("base_shift", 0.5) - max_shift = scheduler.config.get("max_shift", 1.16) + if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: + deprecation_message = "Pass `scheduler` to `calculate_shift`." + deprecate( + "calculate_shift scheduler", + "1.0.0", + deprecation_message, + standard_warn=False, + ) + base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) + max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) + base_shift = base_shift or scheduler.config.get("base_shift", 0.5) + max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -1047,10 +1060,7 @@ def __call__( ) mu = calculate_shift( image_seq_len, - self.scheduler.config.base_image_seq_len, - self.scheduler.config.max_image_seq_len, - self.scheduler.config.base_shift, - self.scheduler.config.max_shift, + scheduler=self.scheduler, ) scheduler_kwargs["mu"] = mu elif mu is not None: From 88123a349faccb2cfc71b5752a9861e88c42581e Mon Sep 17 00:00:00 2001 From: hlky Date: Thu, 9 Jan 2025 09:04:07 +0000 Subject: [PATCH 5/5] --- .../pipeline_flux_differential_img2img.py | 27 +++++----------- .../community/pipeline_flux_rf_inversion.py | 32 +++++++------------ examples/community/pipeline_flux_with_cfg.py | 27 +++++----------- src/diffusers/pipelines/flux/pipeline_flux.py | 27 +++++----------- .../pipelines/flux/pipeline_flux_control.py | 27 +++++----------- .../flux/pipeline_flux_control_img2img.py | 27 +++++----------- .../flux/pipeline_flux_control_inpaint.py | 27 +++++----------- .../flux/pipeline_flux_controlnet.py | 27 +++++----------- ...pipeline_flux_controlnet_image_to_image.py | 27 +++++----------- .../pipeline_flux_controlnet_inpainting.py | 27 +++++----------- .../pipelines/flux/pipeline_flux_fill.py | 27 +++++----------- .../pipelines/flux/pipeline_flux_img2img.py | 27 +++++----------- .../pipelines/flux/pipeline_flux_inpaint.py | 27 +++++----------- src/diffusers/pipelines/ltx/pipeline_ltx.py | 28 ++++++---------- .../pipelines/ltx/pipeline_ltx_image2video.py | 28 ++++++---------- .../pipeline_stable_diffusion_3.py | 27 +++++----------- .../pipeline_stable_diffusion_3_img2img.py | 27 +++++----------- .../pipeline_stable_diffusion_3_inpaint.py | 27 +++++----------- 18 files changed, 150 insertions(+), 343 deletions(-) diff --git a/examples/community/pipeline_flux_differential_img2img.py b/examples/community/pipeline_flux_differential_img2img.py index 52294fbbb84d..84d5027c3eab 100644 --- a/examples/community/pipeline_flux_differential_img2img.py +++ b/examples/community/pipeline_flux_differential_img2img.py @@ -29,7 +29,6 @@ from diffusers.schedulers import FlowMatchEulerDiscreteScheduler from diffusers.utils import ( USE_PEFT_BACKEND, - deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -85,24 +84,11 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: Optional[int] = 256, - max_seq_len: Optional[int] = 4096, - base_shift: Optional[float] = 0.5, - max_shift: Optional[float] = 1.16, - scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, + base_seq_len: int = 256, + max_seq_len: int = 4096, + base_shift: float = 0.5, + max_shift: float = 1.16, ): - if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: - deprecation_message = "Pass `scheduler` to `calculate_shift`." - deprecate( - "calculate_shift scheduler", - "1.0.0", - deprecation_message, - standard_warn=False, - ) - base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) - max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) - base_shift = base_shift or scheduler.config.get("base_shift", 0.5) - max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -890,7 +876,10 @@ def __call__( image_seq_len = (int(height) // self.vae_scale_factor) * (int(width) // self.vae_scale_factor) mu = calculate_shift( image_seq_len, - scheduler=self.scheduler, + self.scheduler.config.get("base_image_seq_len", 256), + self.scheduler.config.get("max_image_seq_len", 4096), + self.scheduler.config.get("base_shift", 0.5), + self.scheduler.config.get("max_shift", 1.16), ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/examples/community/pipeline_flux_rf_inversion.py b/examples/community/pipeline_flux_rf_inversion.py index 8e88ea102520..8bed15afecd8 100644 --- a/examples/community/pipeline_flux_rf_inversion.py +++ b/examples/community/pipeline_flux_rf_inversion.py @@ -30,7 +30,6 @@ from diffusers.schedulers import FlowMatchEulerDiscreteScheduler from diffusers.utils import ( USE_PEFT_BACKEND, - deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -92,24 +91,11 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: Optional[int] = 256, - max_seq_len: Optional[int] = 4096, - base_shift: Optional[float] = 0.5, - max_shift: Optional[float] = 1.16, - scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, + base_seq_len: int = 256, + max_seq_len: int = 4096, + base_shift: float = 0.5, + max_shift: float = 1.16, ): - if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: - deprecation_message = "Pass `scheduler` to `calculate_shift`." - deprecate( - "calculate_shift scheduler", - "1.0.0", - deprecation_message, - standard_warn=False, - ) - base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) - max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) - base_shift = base_shift or scheduler.config.get("base_shift", 0.5) - max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -836,7 +822,10 @@ def __call__( image_seq_len = (int(height) // self.vae_scale_factor // 2) * (int(width) // self.vae_scale_factor // 2) mu = calculate_shift( image_seq_len, - scheduler=self.scheduler, + self.scheduler.config.get("base_image_seq_len", 256), + self.scheduler.config.get("max_image_seq_len", 4096), + self.scheduler.config.get("base_shift", 0.5), + self.scheduler.config.get("max_shift", 1.16), ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, @@ -1003,7 +992,10 @@ def invert( image_seq_len = (int(height) // self.vae_scale_factor // 2) * (int(width) // self.vae_scale_factor // 2) mu = calculate_shift( image_seq_len, - scheduler=self.scheduler, + self.scheduler.config.get("base_image_seq_len", 256), + self.scheduler.config.get("max_image_seq_len", 4096), + self.scheduler.config.get("base_shift", 0.5), + self.scheduler.config.get("max_shift", 1.16), ) timesteps, num_inversion_steps = retrieve_timesteps( self.scheduler, diff --git a/examples/community/pipeline_flux_with_cfg.py b/examples/community/pipeline_flux_with_cfg.py index d094d6391888..04af685ec872 100644 --- a/examples/community/pipeline_flux_with_cfg.py +++ b/examples/community/pipeline_flux_with_cfg.py @@ -28,7 +28,6 @@ from diffusers.schedulers import FlowMatchEulerDiscreteScheduler from diffusers.utils import ( USE_PEFT_BACKEND, - deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -68,24 +67,11 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: Optional[int] = 256, - max_seq_len: Optional[int] = 4096, - base_shift: Optional[float] = 0.5, - max_shift: Optional[float] = 1.16, - scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, + base_seq_len: int = 256, + max_seq_len: int = 4096, + base_shift: float = 0.5, + max_shift: float = 1.16, ): - if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: - deprecation_message = "Pass `scheduler` to `calculate_shift`." - deprecate( - "calculate_shift scheduler", - "1.0.0", - deprecation_message, - standard_warn=False, - ) - base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) - max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) - base_shift = base_shift or scheduler.config.get("base_shift", 0.5) - max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -772,7 +758,10 @@ def __call__( image_seq_len = latents.shape[1] mu = calculate_shift( image_seq_len, - scheduler=self.scheduler, + self.scheduler.config.get("base_image_seq_len", 256), + self.scheduler.config.get("max_image_seq_len", 4096), + self.scheduler.config.get("base_shift", 0.5), + self.scheduler.config.get("max_shift", 1.16), ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/flux/pipeline_flux.py b/src/diffusers/pipelines/flux/pipeline_flux.py index c5ea7696c968..41db7515d0f4 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux.py +++ b/src/diffusers/pipelines/flux/pipeline_flux.py @@ -33,7 +33,6 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, - deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -74,24 +73,11 @@ def calculate_shift( image_seq_len, - base_seq_len: Optional[int] = 256, - max_seq_len: Optional[int] = 4096, - base_shift: Optional[float] = 0.5, - max_shift: Optional[float] = 1.16, - scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, + base_seq_len: int = 256, + max_seq_len: int = 4096, + base_shift: float = 0.5, + max_shift: float = 1.16, ): - if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: - deprecation_message = "Pass `scheduler` to `calculate_shift`." - deprecate( - "calculate_shift scheduler", - "1.0.0", - deprecation_message, - standard_warn=False, - ) - base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) - max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) - base_shift = base_shift or scheduler.config.get("base_shift", 0.5) - max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -838,7 +824,10 @@ def __call__( image_seq_len = latents.shape[1] mu = calculate_shift( image_seq_len, - scheduler=self.scheduler, + self.scheduler.config.get("base_image_seq_len", 256), + self.scheduler.config.get("max_image_seq_len", 4096), + self.scheduler.config.get("base_shift", 0.5), + self.scheduler.config.get("max_shift", 1.16), ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/flux/pipeline_flux_control.py b/src/diffusers/pipelines/flux/pipeline_flux_control.py index 0463b13c6813..9a43c03fdd5d 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_control.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_control.py @@ -26,7 +26,6 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, - deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -86,24 +85,11 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: Optional[int] = 256, - max_seq_len: Optional[int] = 4096, - base_shift: Optional[float] = 0.5, - max_shift: Optional[float] = 1.16, - scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, + base_seq_len: int = 256, + max_seq_len: int = 4096, + base_shift: float = 0.5, + max_shift: float = 1.16, ): - if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: - deprecation_message = "Pass `scheduler` to `calculate_shift`." - deprecate( - "calculate_shift scheduler", - "1.0.0", - deprecation_message, - standard_warn=False, - ) - base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) - max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) - base_shift = base_shift or scheduler.config.get("base_shift", 0.5) - max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -817,7 +803,10 @@ def __call__( image_seq_len = latents.shape[1] mu = calculate_shift( image_seq_len, - scheduler=self.scheduler, + self.scheduler.config.get("base_image_seq_len", 256), + self.scheduler.config.get("max_image_seq_len", 4096), + self.scheduler.config.get("base_shift", 0.5), + self.scheduler.config.get("max_shift", 1.16), ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/flux/pipeline_flux_control_img2img.py b/src/diffusers/pipelines/flux/pipeline_flux_control_img2img.py index 52e66aafbf12..63b9a109ef47 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_control_img2img.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_control_img2img.py @@ -26,7 +26,6 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, - deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -91,24 +90,11 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: Optional[int] = 256, - max_seq_len: Optional[int] = 4096, - base_shift: Optional[float] = 0.5, - max_shift: Optional[float] = 1.16, - scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, + base_seq_len: int = 256, + max_seq_len: int = 4096, + base_shift: float = 0.5, + max_shift: float = 1.16, ): - if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: - deprecation_message = "Pass `scheduler` to `calculate_shift`." - deprecate( - "calculate_shift scheduler", - "1.0.0", - deprecation_message, - standard_warn=False, - ) - base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) - max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) - base_shift = base_shift or scheduler.config.get("base_shift", 0.5) - max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -823,7 +809,10 @@ def __call__( image_seq_len = (int(height) // self.vae_scale_factor // 2) * (int(width) // self.vae_scale_factor // 2) mu = calculate_shift( image_seq_len, - scheduler=self.scheduler, + self.scheduler.config.get("base_image_seq_len", 256), + self.scheduler.config.get("max_image_seq_len", 4096), + self.scheduler.config.get("base_shift", 0.5), + self.scheduler.config.get("max_shift", 1.16), ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/flux/pipeline_flux_control_inpaint.py b/src/diffusers/pipelines/flux/pipeline_flux_control_inpaint.py index c2cdc84ac2fb..e6d36af18197 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_control_inpaint.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_control_inpaint.py @@ -35,7 +35,6 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, - deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -117,24 +116,11 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: Optional[int] = 256, - max_seq_len: Optional[int] = 4096, - base_shift: Optional[float] = 0.5, - max_shift: Optional[float] = 1.16, - scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, + base_seq_len: int = 256, + max_seq_len: int = 4096, + base_shift: float = 0.5, + max_shift: float = 1.16, ): - if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: - deprecation_message = "Pass `scheduler` to `calculate_shift`." - deprecate( - "calculate_shift scheduler", - "1.0.0", - deprecation_message, - standard_warn=False, - ) - base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) - max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) - base_shift = base_shift or scheduler.config.get("base_shift", 0.5) - max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -999,7 +985,10 @@ def __call__( image_seq_len = (int(height) // self.vae_scale_factor // 2) * (int(width) // self.vae_scale_factor // 2) mu = calculate_shift( image_seq_len, - scheduler=self.scheduler, + self.scheduler.config.get("base_image_seq_len", 256), + self.scheduler.config.get("max_image_seq_len", 4096), + self.scheduler.config.get("base_shift", 0.5), + self.scheduler.config.get("max_shift", 1.16), ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/flux/pipeline_flux_controlnet.py b/src/diffusers/pipelines/flux/pipeline_flux_controlnet.py index 26e4d7526f9b..2e0b8fc46eea 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_controlnet.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_controlnet.py @@ -32,7 +32,6 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, - deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -87,24 +86,11 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: Optional[int] = 256, - max_seq_len: Optional[int] = 4096, - base_shift: Optional[float] = 0.5, - max_shift: Optional[float] = 1.16, - scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, + base_seq_len: int = 256, + max_seq_len: int = 4096, + base_shift: float = 0.5, + max_shift: float = 1.16, ): - if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: - deprecation_message = "Pass `scheduler` to `calculate_shift`." - deprecate( - "calculate_shift scheduler", - "1.0.0", - deprecation_message, - standard_warn=False, - ) - base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) - max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) - base_shift = base_shift or scheduler.config.get("base_shift", 0.5) - max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -890,7 +876,10 @@ def __call__( image_seq_len = latents.shape[1] mu = calculate_shift( image_seq_len, - scheduler=self.scheduler, + self.scheduler.config.get("base_image_seq_len", 256), + self.scheduler.config.get("max_image_seq_len", 4096), + self.scheduler.config.get("base_shift", 0.5), + self.scheduler.config.get("max_shift", 1.16), ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py b/src/diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py index f01d32801cfe..c5886e8fd757 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py @@ -18,7 +18,6 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, - deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -85,24 +84,11 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: Optional[int] = 256, - max_seq_len: Optional[int] = 4096, - base_shift: Optional[float] = 0.5, - max_shift: Optional[float] = 1.16, - scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, + base_seq_len: int = 256, + max_seq_len: int = 4096, + base_shift: float = 0.5, + max_shift: float = 1.16, ): - if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: - deprecation_message = "Pass `scheduler` to `calculate_shift`." - deprecate( - "calculate_shift scheduler", - "1.0.0", - deprecation_message, - standard_warn=False, - ) - base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) - max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) - base_shift = base_shift or scheduler.config.get("base_shift", 0.5) - max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -878,7 +864,10 @@ def __call__( image_seq_len = (int(height) // self.vae_scale_factor // 2) * (int(width) // self.vae_scale_factor // 2) mu = calculate_shift( image_seq_len, - scheduler=self.scheduler, + self.scheduler.config.get("base_image_seq_len", 256), + self.scheduler.config.get("max_image_seq_len", 4096), + self.scheduler.config.get("base_shift", 0.5), + self.scheduler.config.get("max_shift", 1.16), ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py b/src/diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py index dadc4459d7b9..a64da0a36f62 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py @@ -19,7 +19,6 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, - deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -87,24 +86,11 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: Optional[int] = 256, - max_seq_len: Optional[int] = 4096, - base_shift: Optional[float] = 0.5, - max_shift: Optional[float] = 1.16, - scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, + base_seq_len: int = 256, + max_seq_len: int = 4096, + base_shift: float = 0.5, + max_shift: float = 1.16, ): - if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: - deprecation_message = "Pass `scheduler` to `calculate_shift`." - deprecate( - "calculate_shift scheduler", - "1.0.0", - deprecation_message, - standard_warn=False, - ) - base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) - max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) - base_shift = base_shift or scheduler.config.get("base_shift", 0.5) - max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -1031,7 +1017,10 @@ def __call__( ) mu = calculate_shift( image_seq_len, - scheduler=self.scheduler, + self.scheduler.config.get("base_image_seq_len", 256), + self.scheduler.config.get("max_image_seq_len", 4096), + self.scheduler.config.get("base_shift", 0.5), + self.scheduler.config.get("max_shift", 1.16), ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/flux/pipeline_flux_fill.py b/src/diffusers/pipelines/flux/pipeline_flux_fill.py index 089fdf92ea9b..3f0875c6cfde 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_fill.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_fill.py @@ -26,7 +26,6 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, - deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -80,24 +79,11 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: Optional[int] = 256, - max_seq_len: Optional[int] = 4096, - base_shift: Optional[float] = 0.5, - max_shift: Optional[float] = 1.16, - scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, + base_seq_len: int = 256, + max_seq_len: int = 4096, + base_shift: float = 0.5, + max_shift: float = 1.16, ): - if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: - deprecation_message = "Pass `scheduler` to `calculate_shift`." - deprecate( - "calculate_shift scheduler", - "1.0.0", - deprecation_message, - standard_warn=False, - ) - base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) - max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) - base_shift = base_shift or scheduler.config.get("base_shift", 0.5) - max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -896,7 +882,10 @@ def __call__( image_seq_len = latents.shape[1] mu = calculate_shift( image_seq_len, - scheduler=self.scheduler, + self.scheduler.config.get("base_image_seq_len", 256), + self.scheduler.config.get("max_image_seq_len", 4096), + self.scheduler.config.get("base_shift", 0.5), + self.scheduler.config.get("max_shift", 1.16), ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/flux/pipeline_flux_img2img.py b/src/diffusers/pipelines/flux/pipeline_flux_img2img.py index 01dae344ecc0..c0ea2c0f9436 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_img2img.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_img2img.py @@ -26,7 +26,6 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, - deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -75,24 +74,11 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: Optional[int] = 256, - max_seq_len: Optional[int] = 4096, - base_shift: Optional[float] = 0.5, - max_shift: Optional[float] = 1.16, - scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, + base_seq_len: int = 256, + max_seq_len: int = 4096, + base_shift: float = 0.5, + max_shift: float = 1.16, ): - if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: - deprecation_message = "Pass `scheduler` to `calculate_shift`." - deprecate( - "calculate_shift scheduler", - "1.0.0", - deprecation_message, - standard_warn=False, - ) - base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) - max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) - base_shift = base_shift or scheduler.config.get("base_shift", 0.5) - max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -760,7 +746,10 @@ def __call__( image_seq_len = (int(height) // self.vae_scale_factor // 2) * (int(width) // self.vae_scale_factor // 2) mu = calculate_shift( image_seq_len, - scheduler=self.scheduler, + self.scheduler.config.get("base_image_seq_len", 256), + self.scheduler.config.get("max_image_seq_len", 4096), + self.scheduler.config.get("base_shift", 0.5), + self.scheduler.config.get("max_shift", 1.16), ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/flux/pipeline_flux_inpaint.py b/src/diffusers/pipelines/flux/pipeline_flux_inpaint.py index 5dab7bb717f6..bfc05b2f7079 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_inpaint.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_inpaint.py @@ -27,7 +27,6 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, - deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -72,24 +71,11 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: Optional[int] = 256, - max_seq_len: Optional[int] = 4096, - base_shift: Optional[float] = 0.5, - max_shift: Optional[float] = 1.16, - scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, + base_seq_len: int = 256, + max_seq_len: int = 4096, + base_shift: float = 0.5, + max_shift: float = 1.16, ): - if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: - deprecation_message = "Pass `scheduler` to `calculate_shift`." - deprecate( - "calculate_shift scheduler", - "1.0.0", - deprecation_message, - standard_warn=False, - ) - base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) - max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) - base_shift = base_shift or scheduler.config.get("base_shift", 0.5) - max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -891,7 +877,10 @@ def __call__( image_seq_len = (int(height) // self.vae_scale_factor // 2) * (int(width) // self.vae_scale_factor // 2) mu = calculate_shift( image_seq_len, - scheduler=self.scheduler, + self.scheduler.config.get("base_image_seq_len", 256), + self.scheduler.config.get("max_image_seq_len", 4096), + self.scheduler.config.get("base_shift", 0.5), + self.scheduler.config.get("max_shift", 1.16), ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/ltx/pipeline_ltx.py b/src/diffusers/pipelines/ltx/pipeline_ltx.py index c89370031fbd..e98aedcc97a5 100644 --- a/src/diffusers/pipelines/ltx/pipeline_ltx.py +++ b/src/diffusers/pipelines/ltx/pipeline_ltx.py @@ -24,7 +24,7 @@ from ...models.autoencoders import AutoencoderKLLTXVideo from ...models.transformers import LTXVideoTransformer3DModel from ...schedulers import FlowMatchEulerDiscreteScheduler -from ...utils import deprecate, is_torch_xla_available, logging, replace_example_docstring +from ...utils import is_torch_xla_available, logging, replace_example_docstring from ...utils.torch_utils import randn_tensor from ...video_processor import VideoProcessor from ..pipeline_utils import DiffusionPipeline @@ -69,24 +69,11 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: Optional[int] = 256, - max_seq_len: Optional[int] = 4096, - base_shift: Optional[float] = 0.5, - max_shift: Optional[float] = 1.16, - scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, + base_seq_len: int = 256, + max_seq_len: int = 4096, + base_shift: float = 0.5, + max_shift: float = 1.16, ): - if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: - deprecation_message = "Pass `scheduler` to `calculate_shift`." - deprecate( - "calculate_shift scheduler", - "1.0.0", - deprecation_message, - standard_warn=False, - ) - base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) - max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) - base_shift = base_shift or scheduler.config.get("base_shift", 0.5) - max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -684,7 +671,10 @@ def __call__( sigmas = np.linspace(1.0, 1 / num_inference_steps, num_inference_steps) mu = calculate_shift( video_sequence_length, - scheduler=self.scheduler, + self.scheduler.config.get("base_image_seq_len", 256), + self.scheduler.config.get("max_image_seq_len", 4096), + self.scheduler.config.get("base_shift", 0.5), + self.scheduler.config.get("max_shift", 1.16), ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/ltx/pipeline_ltx_image2video.py b/src/diffusers/pipelines/ltx/pipeline_ltx_image2video.py index dab21615de4e..691c1bd80376 100644 --- a/src/diffusers/pipelines/ltx/pipeline_ltx_image2video.py +++ b/src/diffusers/pipelines/ltx/pipeline_ltx_image2video.py @@ -25,7 +25,7 @@ from ...models.autoencoders import AutoencoderKLLTXVideo from ...models.transformers import LTXVideoTransformer3DModel from ...schedulers import FlowMatchEulerDiscreteScheduler -from ...utils import deprecate, is_torch_xla_available, logging, replace_example_docstring +from ...utils import is_torch_xla_available, logging, replace_example_docstring from ...utils.torch_utils import randn_tensor from ...video_processor import VideoProcessor from ..pipeline_utils import DiffusionPipeline @@ -74,24 +74,11 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: Optional[int] = 256, - max_seq_len: Optional[int] = 4096, - base_shift: Optional[float] = 0.5, - max_shift: Optional[float] = 1.16, - scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, + base_seq_len: int = 256, + max_seq_len: int = 4096, + base_shift: float = 0.5, + max_shift: float = 1.16, ): - if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: - deprecation_message = "Pass `scheduler` to `calculate_shift`." - deprecate( - "calculate_shift scheduler", - "1.0.0", - deprecation_message, - standard_warn=False, - ) - base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) - max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) - base_shift = base_shift or scheduler.config.get("base_shift", 0.5) - max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -754,7 +741,10 @@ def __call__( sigmas = np.linspace(1.0, 1 / num_inference_steps, num_inference_steps) mu = calculate_shift( video_sequence_length, - scheduler=self.scheduler, + self.scheduler.config.get("base_image_seq_len", 256), + self.scheduler.config.get("max_image_seq_len", 4096), + self.scheduler.config.get("base_shift", 0.5), + self.scheduler.config.get("max_shift", 1.16), ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py b/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py index c461378f551d..2967183e3c5f 100644 --- a/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +++ b/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py @@ -32,7 +32,6 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, - deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -74,24 +73,11 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: Optional[int] = 256, - max_seq_len: Optional[int] = 4096, - base_shift: Optional[float] = 0.5, - max_shift: Optional[float] = 1.16, - scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, + base_seq_len: int = 256, + max_seq_len: int = 4096, + base_shift: float = 0.5, + max_shift: float = 1.16, ): - if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: - deprecation_message = "Pass `scheduler` to `calculate_shift`." - deprecate( - "calculate_shift scheduler", - "1.0.0", - deprecation_message, - standard_warn=False, - ) - base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) - max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) - base_shift = base_shift or scheduler.config.get("base_shift", 0.5) - max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -1028,7 +1014,10 @@ def __call__( ) mu = calculate_shift( image_seq_len, - scheduler=self.scheduler, + self.scheduler.config.get("base_image_seq_len", 256), + self.scheduler.config.get("max_image_seq_len", 4096), + self.scheduler.config.get("base_shift", 0.5), + self.scheduler.config.get("max_shift", 1.16), ) scheduler_kwargs["mu"] = mu elif mu is not None: diff --git a/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py b/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py index f8c3f39020a1..0fdb6d25ed91 100644 --- a/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +++ b/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py @@ -31,7 +31,6 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, - deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -79,24 +78,11 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: Optional[int] = 256, - max_seq_len: Optional[int] = 4096, - base_shift: Optional[float] = 0.5, - max_shift: Optional[float] = 1.16, - scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, + base_seq_len: int = 256, + max_seq_len: int = 4096, + base_shift: float = 0.5, + max_shift: float = 1.16, ): - if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: - deprecation_message = "Pass `scheduler` to `calculate_shift`." - deprecate( - "calculate_shift scheduler", - "1.0.0", - deprecation_message, - standard_warn=False, - ) - base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) - max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) - base_shift = base_shift or scheduler.config.get("base_shift", 0.5) - max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -959,7 +945,10 @@ def __call__( ) mu = calculate_shift( image_seq_len, - scheduler=self.scheduler, + self.scheduler.config.get("base_image_seq_len", 256), + self.scheduler.config.get("max_image_seq_len", 4096), + self.scheduler.config.get("base_shift", 0.5), + self.scheduler.config.get("max_shift", 1.16), ) scheduler_kwargs["mu"] = mu elif mu is not None: diff --git a/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py b/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py index 78959246bc4d..67afae1d21c0 100644 --- a/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +++ b/src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py @@ -31,7 +31,6 @@ from ...schedulers import FlowMatchEulerDiscreteScheduler from ...utils import ( USE_PEFT_BACKEND, - deprecate, is_torch_xla_available, logging, replace_example_docstring, @@ -78,24 +77,11 @@ # Copied from diffusers.pipelines.flux.pipeline_flux.calculate_shift def calculate_shift( image_seq_len, - base_seq_len: Optional[int] = 256, - max_seq_len: Optional[int] = 4096, - base_shift: Optional[float] = 0.5, - max_shift: Optional[float] = 1.16, - scheduler: Optional[FlowMatchEulerDiscreteScheduler] = None, + base_seq_len: int = 256, + max_seq_len: int = 4096, + base_shift: float = 0.5, + max_shift: float = 1.16, ): - if base_seq_len or max_seq_len or base_shift or max_shift or scheduler is None: - deprecation_message = "Pass `scheduler` to `calculate_shift`." - deprecate( - "calculate_shift scheduler", - "1.0.0", - deprecation_message, - standard_warn=False, - ) - base_seq_len = base_seq_len or scheduler.config.get("base_image_seq_len", 256) - max_seq_len = max_seq_len or scheduler.config.get("max_image_seq_len", 4096) - base_shift = base_shift or scheduler.config.get("base_shift", 0.5) - max_shift = max_shift or scheduler.config.get("max_shift", 1.16) m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len mu = image_seq_len * m + b @@ -1069,7 +1055,10 @@ def __call__( ) mu = calculate_shift( image_seq_len, - scheduler=self.scheduler, + self.scheduler.config.get("base_image_seq_len", 256), + self.scheduler.config.get("max_image_seq_len", 4096), + self.scheduler.config.get("base_shift", 0.5), + self.scheduler.config.get("max_shift", 1.16), ) scheduler_kwargs["mu"] = mu elif mu is not None: