YuE2-Modular / guidance.py
OzzyGT's picture
OzzyGT HF Staff
initial commit
2577656
Raw History Blame Contribute Delete
717 Bytes
import math
from diffusers.configuration_utils import ConfigMixin, register_to_config
class YuE2SemanticGuider(ConfigMixin):
config_name = "guider_config.json"
@register_to_config
def __init__(self, scale=None):
if scale is not None and (not math.isfinite(scale) or not 0 <= scale <= 20):
raise ValueError("Semantic guidance must be finite and in [0,20]")
def scale_for(self, cot):
return (1.01 if cot == "off" else 1.0) if self.config.scale is None else self.config.scale
def combine(self, conditional, unconditional, cot):
scale = self.scale_for(cot)
return conditional if scale == 1.0 else unconditional + scale * (conditional - unconditional)