From 2f33fa44defb2172c53776a6d563fad834ccb09c Mon Sep 17 00:00:00 2001 From: puhuk Date: Mon, 17 Feb 2025 13:15:54 +0900 Subject: [PATCH] Fix max_shift value in flux and related functions to 1.15 (issue #10675) This PR updates the max_shift value in flux to 1.15 for consistency across the codebase. In addition to modifying max_shift in flux, all related functions that copy and use this logic, such as calculate_shift in `src/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py`, have also been updated to ensure uniform behavior. --- examples/community/pipeline_flux_differential_img2img.py | 4 ++-- examples/community/pipeline_flux_rf_inversion.py | 6 +++--- examples/community/pipeline_flux_semantic_guidance.py | 4 ++-- examples/community/pipeline_flux_with_cfg.py | 4 ++-- src/diffusers/pipelines/flux/pipeline_flux.py | 4 ++-- src/diffusers/pipelines/flux/pipeline_flux_control.py | 4 ++-- .../pipelines/flux/pipeline_flux_control_img2img.py | 4 ++-- .../pipelines/flux/pipeline_flux_control_inpaint.py | 4 ++-- src/diffusers/pipelines/flux/pipeline_flux_controlnet.py | 4 ++-- .../flux/pipeline_flux_controlnet_image_to_image.py | 4 ++-- .../pipelines/flux/pipeline_flux_controlnet_inpainting.py | 4 ++-- src/diffusers/pipelines/flux/pipeline_flux_fill.py | 4 ++-- src/diffusers/pipelines/flux/pipeline_flux_img2img.py | 4 ++-- src/diffusers/pipelines/flux/pipeline_flux_inpaint.py | 4 ++-- src/diffusers/pipelines/ltx/pipeline_ltx.py | 4 ++-- src/diffusers/pipelines/ltx/pipeline_ltx_image2video.py | 4 ++-- src/diffusers/pipelines/lumina2/pipeline_lumina2.py | 2 +- .../stable_diffusion_3/pipeline_stable_diffusion_3.py | 2 +- .../pipeline_stable_diffusion_3_img2img.py | 2 +- .../pipeline_stable_diffusion_3_inpaint.py | 2 +- 20 files changed, 37 insertions(+), 37 deletions(-) diff --git a/examples/community/pipeline_flux_differential_img2img.py b/examples/community/pipeline_flux_differential_img2img.py index a66e2b1c7c8a..9d6be763a0a0 100644 --- a/examples/community/pipeline_flux_differential_img2img.py +++ b/examples/community/pipeline_flux_differential_img2img.py @@ -87,7 +87,7 @@ def calculate_shift( base_seq_len: int = 256, max_seq_len: int = 4096, base_shift: float = 0.5, - max_shift: float = 1.16, + max_shift: float = 1.15, ): m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len @@ -878,7 +878,7 @@ def __call__( 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), + self.scheduler.config.get("max_shift", 1.15), ) 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 42fed90762da..572856a047b2 100644 --- a/examples/community/pipeline_flux_rf_inversion.py +++ b/examples/community/pipeline_flux_rf_inversion.py @@ -94,7 +94,7 @@ def calculate_shift( base_seq_len: int = 256, max_seq_len: int = 4096, base_shift: float = 0.5, - max_shift: float = 1.16, + max_shift: float = 1.15, ): m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len @@ -823,7 +823,7 @@ def __call__( 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), + self.scheduler.config.get("max_shift", 1.15), ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, @@ -993,7 +993,7 @@ def invert( 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), + self.scheduler.config.get("max_shift", 1.15), ) timesteps, num_inversion_steps = retrieve_timesteps( self.scheduler, diff --git a/examples/community/pipeline_flux_semantic_guidance.py b/examples/community/pipeline_flux_semantic_guidance.py index 3bb080510902..919e0ad46bd1 100644 --- a/examples/community/pipeline_flux_semantic_guidance.py +++ b/examples/community/pipeline_flux_semantic_guidance.py @@ -91,7 +91,7 @@ def calculate_shift( base_seq_len: int = 256, max_seq_len: int = 4096, base_shift: float = 0.5, - max_shift: float = 1.16, + max_shift: float = 1.15, ): m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len @@ -1041,7 +1041,7 @@ def __call__( 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), + self.scheduler.config.get("max_shift", 1.15), ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/examples/community/pipeline_flux_with_cfg.py b/examples/community/pipeline_flux_with_cfg.py index 0b27fd2bcddf..f55f73620f45 100644 --- a/examples/community/pipeline_flux_with_cfg.py +++ b/examples/community/pipeline_flux_with_cfg.py @@ -70,7 +70,7 @@ def calculate_shift( base_seq_len: int = 256, max_seq_len: int = 4096, base_shift: float = 0.5, - max_shift: float = 1.16, + max_shift: float = 1.15, ): m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len @@ -759,7 +759,7 @@ def __call__( 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), + self.scheduler.config.get("max_shift", 1.15), ) 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 aa02dc1de5da..9f4788a4981a 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux.py +++ b/src/diffusers/pipelines/flux/pipeline_flux.py @@ -75,7 +75,7 @@ def calculate_shift( base_seq_len: int = 256, max_seq_len: int = 4096, base_shift: float = 0.5, - max_shift: float = 1.16, + max_shift: float = 1.15, ): m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len @@ -849,7 +849,7 @@ def __call__( 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), + self.scheduler.config.get("max_shift", 1.15), ) 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 8aece8527556..62f883f14ec3 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_control.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_control.py @@ -88,7 +88,7 @@ def calculate_shift( base_seq_len: int = 256, max_seq_len: int = 4096, base_shift: float = 0.5, - max_shift: float = 1.16, + max_shift: float = 1.15, ): m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len @@ -802,7 +802,7 @@ def __call__( 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), + self.scheduler.config.get("max_shift", 1.15), ) 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 c386f41c8827..e3592817a7b0 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_control_img2img.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_control_img2img.py @@ -93,7 +93,7 @@ def calculate_shift( base_seq_len: int = 256, max_seq_len: int = 4096, base_shift: float = 0.5, - max_shift: float = 1.16, + max_shift: float = 1.15, ): m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len @@ -810,7 +810,7 @@ def __call__( 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), + self.scheduler.config.get("max_shift", 1.15), ) 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 192b690f69e5..31985af55bfc 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_control_inpaint.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_control_inpaint.py @@ -119,7 +119,7 @@ def calculate_shift( base_seq_len: int = 256, max_seq_len: int = 4096, base_shift: float = 0.5, - max_shift: float = 1.16, + max_shift: float = 1.15, ): m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len @@ -987,7 +987,7 @@ def __call__( 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), + self.scheduler.config.get("max_shift", 1.15), ) 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 30e244bae000..b980b34e8aac 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_controlnet.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_controlnet.py @@ -89,7 +89,7 @@ def calculate_shift( base_seq_len: int = 256, max_seq_len: int = 4096, base_shift: float = 0.5, - max_shift: float = 1.16, + max_shift: float = 1.15, ): m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len @@ -877,7 +877,7 @@ def __call__( 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), + self.scheduler.config.get("max_shift", 1.15), ) 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 d8aefc3942e9..37b4b2657346 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 @@ -87,7 +87,7 @@ def calculate_shift( base_seq_len: int = 256, max_seq_len: int = 4096, base_shift: float = 0.5, - max_shift: float = 1.16, + max_shift: float = 1.15, ): m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len @@ -865,7 +865,7 @@ def __call__( 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), + self.scheduler.config.get("max_shift", 1.15), ) 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 05fcb9449cfe..480e441d15ed 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py @@ -89,7 +89,7 @@ def calculate_shift( base_seq_len: int = 256, max_seq_len: int = 4096, base_shift: float = 0.5, - max_shift: float = 1.16, + max_shift: float = 1.15, ): m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len @@ -1019,7 +1019,7 @@ def __call__( 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), + self.scheduler.config.get("max_shift", 1.15), ) 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 ed8623e31733..2b6589e63f25 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_fill.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_fill.py @@ -82,7 +82,7 @@ def calculate_shift( base_seq_len: int = 256, max_seq_len: int = 4096, base_shift: float = 0.5, - max_shift: float = 1.16, + max_shift: float = 1.15, ): m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len @@ -884,7 +884,7 @@ def __call__( 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), + self.scheduler.config.get("max_shift", 1.15), ) 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 a63ecdadbd0c..bbde3640e89b 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_img2img.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_img2img.py @@ -77,7 +77,7 @@ def calculate_shift( base_seq_len: int = 256, max_seq_len: int = 4096, base_shift: float = 0.5, - max_shift: float = 1.16, + max_shift: float = 1.15, ): m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len @@ -747,7 +747,7 @@ def __call__( 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), + self.scheduler.config.get("max_shift", 1.15), ) 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 2be8e75973ef..e07b1d8c4396 100644 --- a/src/diffusers/pipelines/flux/pipeline_flux_inpaint.py +++ b/src/diffusers/pipelines/flux/pipeline_flux_inpaint.py @@ -74,7 +74,7 @@ def calculate_shift( base_seq_len: int = 256, max_seq_len: int = 4096, base_shift: float = 0.5, - max_shift: float = 1.16, + max_shift: float = 1.15, ): m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len @@ -879,7 +879,7 @@ def __call__( 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), + self.scheduler.config.get("max_shift", 1.15), ) 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 e04290b45754..866be61810a9 100644 --- a/src/diffusers/pipelines/ltx/pipeline_ltx.py +++ b/src/diffusers/pipelines/ltx/pipeline_ltx.py @@ -72,7 +72,7 @@ def calculate_shift( base_seq_len: int = 256, max_seq_len: int = 4096, base_shift: float = 0.5, - max_shift: float = 1.16, + max_shift: float = 1.15, ): m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len @@ -680,7 +680,7 @@ def __call__( 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), + self.scheduler.config.get("max_shift", 1.15), ) 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 b1dcc41d887e..0577a56ec13d 100644 --- a/src/diffusers/pipelines/ltx/pipeline_ltx_image2video.py +++ b/src/diffusers/pipelines/ltx/pipeline_ltx_image2video.py @@ -77,7 +77,7 @@ def calculate_shift( base_seq_len: int = 256, max_seq_len: int = 4096, base_shift: float = 0.5, - max_shift: float = 1.16, + max_shift: float = 1.15, ): m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len @@ -750,7 +750,7 @@ def __call__( 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), + self.scheduler.config.get("max_shift", 1.15), ) timesteps, num_inference_steps = retrieve_timesteps( self.scheduler, diff --git a/src/diffusers/pipelines/lumina2/pipeline_lumina2.py b/src/diffusers/pipelines/lumina2/pipeline_lumina2.py index 599929d2e968..cc594c50cb49 100644 --- a/src/diffusers/pipelines/lumina2/pipeline_lumina2.py +++ b/src/diffusers/pipelines/lumina2/pipeline_lumina2.py @@ -64,7 +64,7 @@ def calculate_shift( base_seq_len: int = 256, max_seq_len: int = 4096, base_shift: float = 0.5, - max_shift: float = 1.16, + max_shift: float = 1.15, ): m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len 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 23950f895aae..588abc8ef2dc 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 @@ -76,7 +76,7 @@ def calculate_shift( base_seq_len: int = 256, max_seq_len: int = 4096, base_shift: float = 0.5, - max_shift: float = 1.16, + max_shift: float = 1.15, ): m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len 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 2fa63cf7ee81..3d3c8b6781fc 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 @@ -83,7 +83,7 @@ def calculate_shift( base_seq_len: int = 256, max_seq_len: int = 4096, base_shift: float = 0.5, - max_shift: float = 1.16, + max_shift: float = 1.15, ): m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len 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 de9842913e98..71103187f47b 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 @@ -82,7 +82,7 @@ def calculate_shift( base_seq_len: int = 256, max_seq_len: int = 4096, base_shift: float = 0.5, - max_shift: float = 1.16, + max_shift: float = 1.15, ): m = (max_shift - base_shift) / (max_seq_len - base_seq_len) b = base_shift - m * base_seq_len