From 676e672cbfc46ac3fcd5cfcdb63bfd6160e306a5 Mon Sep 17 00:00:00 2001 From: Aryan Date: Sat, 5 Jul 2025 00:01:13 +0200 Subject: [PATCH 1/3] update --- src/diffusers/guiders/classifier_free_guidance.py | 2 ++ src/diffusers/guiders/guider_utils.py | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/diffusers/guiders/classifier_free_guidance.py b/src/diffusers/guiders/classifier_free_guidance.py index cc3ffd5758b8..7e72b92fcee2 100644 --- a/src/diffusers/guiders/classifier_free_guidance.py +++ b/src/diffusers/guiders/classifier_free_guidance.py @@ -17,6 +17,7 @@ import torch +from ..configuration_utils import register_to_config from .guider_utils import BaseGuidance, rescale_noise_cfg @@ -67,6 +68,7 @@ class ClassifierFreeGuidance(BaseGuidance): _input_predictions = ["pred_cond", "pred_uncond"] + @register_to_config def __init__( self, guidance_scale: float = 7.5, diff --git a/src/diffusers/guiders/guider_utils.py b/src/diffusers/guiders/guider_utils.py index 1c7d6de796b5..555f8897c089 100644 --- a/src/diffusers/guiders/guider_utils.py +++ b/src/diffusers/guiders/guider_utils.py @@ -16,6 +16,7 @@ import torch +from ..configuration_utils import ConfigMixin from ..utils import get_logger @@ -23,12 +24,16 @@ from ..modular_pipelines.modular_pipeline import BlockState +GUIDER_CONFIG_NAME = "guider_config.json" + + logger = get_logger(__name__) # pylint: disable=invalid-name -class BaseGuidance: +class BaseGuidance(ConfigMixin): r"""Base class providing the skeleton for implementing guidance techniques.""" + config_name = GUIDER_CONFIG_NAME _input_predictions = None _identifier_key = "__guidance_identifier__" From eb19888ebe19c82ec83051dd8e175467c79d40a0 Mon Sep 17 00:00:00 2001 From: Aryan Date: Sat, 5 Jul 2025 00:22:58 +0200 Subject: [PATCH 2/3] update --- src/diffusers/guiders/adaptive_projected_guidance.py | 2 ++ src/diffusers/guiders/auto_guidance.py | 2 ++ src/diffusers/guiders/classifier_free_zero_star_guidance.py | 2 ++ src/diffusers/guiders/entropy_rectifying_guidance.py | 0 src/diffusers/guiders/skip_layer_guidance.py | 2 ++ src/diffusers/guiders/smoothed_energy_guidance.py | 2 ++ src/diffusers/guiders/tangential_classifier_free_guidance.py | 2 ++ src/diffusers/modular_pipelines/modular_pipeline.py | 2 +- 8 files changed, 13 insertions(+), 1 deletion(-) delete mode 100644 src/diffusers/guiders/entropy_rectifying_guidance.py diff --git a/src/diffusers/guiders/adaptive_projected_guidance.py b/src/diffusers/guiders/adaptive_projected_guidance.py index 10d05258bc3f..81137db106a0 100644 --- a/src/diffusers/guiders/adaptive_projected_guidance.py +++ b/src/diffusers/guiders/adaptive_projected_guidance.py @@ -17,6 +17,7 @@ import torch +from ..configuration_utils import register_to_config from .guider_utils import BaseGuidance, rescale_noise_cfg @@ -53,6 +54,7 @@ class AdaptiveProjectedGuidance(BaseGuidance): _input_predictions = ["pred_cond", "pred_uncond"] + @register_to_config def __init__( self, guidance_scale: float = 7.5, diff --git a/src/diffusers/guiders/auto_guidance.py b/src/diffusers/guiders/auto_guidance.py index dc1bf26ade39..159354559966 100644 --- a/src/diffusers/guiders/auto_guidance.py +++ b/src/diffusers/guiders/auto_guidance.py @@ -17,6 +17,7 @@ import torch +from ..configuration_utils import register_to_config from ..hooks import HookRegistry, LayerSkipConfig from ..hooks.layer_skip import _apply_layer_skip_hook from .guider_utils import BaseGuidance, rescale_noise_cfg @@ -60,6 +61,7 @@ class AutoGuidance(BaseGuidance): _input_predictions = ["pred_cond", "pred_uncond"] + @register_to_config def __init__( self, guidance_scale: float = 7.5, diff --git a/src/diffusers/guiders/classifier_free_zero_star_guidance.py b/src/diffusers/guiders/classifier_free_zero_star_guidance.py index ea4c4c197f7a..85d5cc62d4e7 100644 --- a/src/diffusers/guiders/classifier_free_zero_star_guidance.py +++ b/src/diffusers/guiders/classifier_free_zero_star_guidance.py @@ -17,6 +17,7 @@ import torch +from ..configuration_utils import register_to_config from .guider_utils import BaseGuidance, rescale_noise_cfg @@ -58,6 +59,7 @@ class ClassifierFreeZeroStarGuidance(BaseGuidance): _input_predictions = ["pred_cond", "pred_uncond"] + @register_to_config def __init__( self, guidance_scale: float = 7.5, diff --git a/src/diffusers/guiders/entropy_rectifying_guidance.py b/src/diffusers/guiders/entropy_rectifying_guidance.py deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/src/diffusers/guiders/skip_layer_guidance.py b/src/diffusers/guiders/skip_layer_guidance.py index 4b8e556fbe96..e67b20df19fa 100644 --- a/src/diffusers/guiders/skip_layer_guidance.py +++ b/src/diffusers/guiders/skip_layer_guidance.py @@ -17,6 +17,7 @@ import torch +from ..configuration_utils import register_to_config from ..hooks import HookRegistry, LayerSkipConfig from ..hooks.layer_skip import _apply_layer_skip_hook from .guider_utils import BaseGuidance, rescale_noise_cfg @@ -86,6 +87,7 @@ class SkipLayerGuidance(BaseGuidance): _input_predictions = ["pred_cond", "pred_uncond", "pred_cond_skip"] + @register_to_config def __init__( self, guidance_scale: float = 7.5, diff --git a/src/diffusers/guiders/smoothed_energy_guidance.py b/src/diffusers/guiders/smoothed_energy_guidance.py index 5b3e2d6c6390..66c46064d46d 100644 --- a/src/diffusers/guiders/smoothed_energy_guidance.py +++ b/src/diffusers/guiders/smoothed_energy_guidance.py @@ -17,6 +17,7 @@ import torch +from ..configuration_utils import register_to_config from ..hooks import HookRegistry from ..hooks.smoothed_energy_guidance_utils import SmoothedEnergyGuidanceConfig, _apply_smoothed_energy_guidance_hook from .guider_utils import BaseGuidance, rescale_noise_cfg @@ -76,6 +77,7 @@ class SmoothedEnergyGuidance(BaseGuidance): _input_predictions = ["pred_cond", "pred_uncond", "pred_cond_seg"] + @register_to_config def __init__( self, guidance_scale: float = 7.5, diff --git a/src/diffusers/guiders/tangential_classifier_free_guidance.py b/src/diffusers/guiders/tangential_classifier_free_guidance.py index 28f55880aab5..b3187e526316 100644 --- a/src/diffusers/guiders/tangential_classifier_free_guidance.py +++ b/src/diffusers/guiders/tangential_classifier_free_guidance.py @@ -17,6 +17,7 @@ import torch +from ..configuration_utils import register_to_config from .guider_utils import BaseGuidance, rescale_noise_cfg @@ -49,6 +50,7 @@ class TangentialClassifierFreeGuidance(BaseGuidance): _input_predictions = ["pred_cond", "pred_uncond"] + @register_to_config def __init__( self, guidance_scale: float = 7.5, diff --git a/src/diffusers/modular_pipelines/modular_pipeline.py b/src/diffusers/modular_pipelines/modular_pipeline.py index 5cc27d5586b8..99db80d3151c 100644 --- a/src/diffusers/modular_pipelines/modular_pipeline.py +++ b/src/diffusers/modular_pipelines/modular_pipeline.py @@ -1911,7 +1911,7 @@ def update(self, **kwargs): loader.update(unet=new_unet_model, text_encoder=new_text_encoder) # Update configuration values - loader.update(requires_safety_checker=False, guidance_rescale=0.7) + loader.update(requires_safety_checker=False) # Update both components and configs together loader.update(unet=new_unet_model, requires_safety_checker=False) From 603b64b594928b6ecd8bb3582a3c22d49ebd3844 Mon Sep 17 00:00:00 2001 From: Aryan Date: Sat, 5 Jul 2025 00:24:38 +0200 Subject: [PATCH 3/3] register to config pag --- src/diffusers/guiders/perturbed_attention_guidance.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/diffusers/guiders/perturbed_attention_guidance.py b/src/diffusers/guiders/perturbed_attention_guidance.py index cd75348ef5bd..dbba904d0bde 100644 --- a/src/diffusers/guiders/perturbed_attention_guidance.py +++ b/src/diffusers/guiders/perturbed_attention_guidance.py @@ -14,6 +14,7 @@ from typing import List, Optional, Union +from ..configuration_utils import register_to_config from ..hooks import LayerSkipConfig from .skip_layer_guidance import SkipLayerGuidance @@ -70,6 +71,7 @@ class PerturbedAttentionGuidance(SkipLayerGuidance): # complex to support joint latent conditioning in a model-agnostic manner without specializing the implementation # for each model architecture. + @register_to_config def __init__( self, guidance_scale: float = 7.5,