引导者
Guiders 是 Modular Diffusers 中的组件,用于控制生成过程中扩散过程的引导方式。它们实现了各种引导技术,以提升生成质量和可控性。
BaseGuidance
提供实现引导技术骨架的基类。
在给定批次的数据处理完成后,清理用于 guidance 技术的模型。子类应重写此方法以实现特定的模型清理逻辑。它适用于移除在 prepare_models 期间添加的任何钩子或其他有状态修改。
from_pretrained
< source >( pretrained_model_name_or_path: str | os.PathLike | None = Nonesubfolder: str | None = Nonereturn_unused_kwargs = False**kwargs )
参数
- pretrained_model_name_or_path (
str或os.PathLike, 可选) — 可以是以下之一:- 一个字符串,即托管在 Hub 上的预训练模型的 model id(例如
google/ddpm-celebahq-256)。 - 指向一个 目录(例如
./my_model_directory)的路径,该目录包含使用 save_pretrained() 保存的 guider 配置。
- 一个字符串,即托管在 Hub 上的预训练模型的 model id(例如
- subfolder (
str, 可选) — 模型文件在 Hub 或本地更大的模型仓库中的子文件夹位置。 - return_unused_kwargs (
bool,可选,默认为False) — 是否返回未被 Python 类使用的 kwargs。 - cache_dir (
str | os.PathLike, 可选) — 如果未使用标准缓存,则下载的预训练模型配置将被缓存到的目录路径。 - force_download (
bool,可选,默认为False) — 是否强制(重新)下载模型权重和配置文件,如果存在缓存版本则覆盖它们。 - proxies (
dict[str, str],可选) — 按协议或端点使用的代理服务器字典,例如{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。每次请求都会使用这些代理。 - output_loading_info(
bool, 可选,默认为False) — 是否同时返回一个包含缺失键、意外键和错误消息的字典。 - local_files_only(
bool, 可选,默认为False) — 是否仅加载本地的模型权重和配置文件。如果设置为True,则不会从 Hub 下载模型。 - token (
str或 bool,可选) — 用于远程文件的 HTTP bearer 授权令牌。如果为True,则使用由diffusers-cli login生成的令牌(存储在~/.huggingface中)。 - revision (
str, 可选, 默认为"main") — 要使用的特定模型版本。它可以是分支名称、标签名称、提交 id,或 Git 允许的任何标识符。
从本地目录或 Hub 仓库中预定义的 JSON 配置文件实例化一个 guider。
> 若要使用私有或 受控模型,请先通过
hf > auth login登录。您还可以启用特殊的 > “离线模式”,以便在防火墙环境中使用此方法。
以字典形式返回引导技术的当前状态。状态变量将包含在 repr 方法中。返回值:dict[str, Any]:一个包含当前状态变量的字典,其中包括:
- step:当前推理步骤
- num_inference_steps: 推理总步数
- timestep: 当前时间步张量
- count_prepared: prepare_models 被调用的次数
- enabled: 是否启用引导
- num_conditions: 条件数量
创建此 guider 实例的副本,可选择修改配置参数。
为给定数据批次准备模型,以应用引导技术。子类应重写此方法,以实现特定的模型准备逻辑。
save_pretrained
< source >( save_directory: str | os.PathLikepush_to_hub: bool = False**kwargs )
参数
- save_directory (
str或os.PathLike) — 用于保存配置 JSON 文件的目录(如果该目录不存在,则会自动创建)。 - push_to_hub (
bool,可选,默认为False) — 是否在保存模型后将其推送到 Hugging Face Hub。您可以使用repo_id指定要推送到的仓库(默认使用您命名空间中save_directory的名称)。 - kwargs (
dict[str, Any],可选) — 传递给 push_to_hub() 方法的额外关键字参数。
将 guider 配置对象保存到目录中,以便使用 from_pretrained() 类方法重新加载。
ClassifierFreeGuidance
类 diffusers.ClassifierFreeGuidance
< source >( guidance_scale: float = 7.5guidance_rescale: float = 0.0use_original_formulation: bool = Falsestart: float = 0.0stop: float = 1.0enabled: bool = True )
参数
- guidance_scale (
float,默认为7.5) — 此 guider 在后处理阶段应用的 CFG 缩放值。值越高,提示词的条件约束越强,但可能会降低生成质量。典型取值范围:1.0-20.0。 - guidance_rescale (
float, defaults to0.0) — Rescaling factor to prevent overexposure from high guidance scales. Based on Common Diffusion Noise Schedules and Sample Steps are Flawed. Range: 0.0 (no rescaling) to 1.0 (full rescaling). - use_original_formulation (
bool,默认为False) — 如果为True,则使用论文中的原始 CFG 公式。如果为False(默认值),则使用 Imagen 论文中的 diffusers 原生公式。 - start (
float,默认为0.0) — CFG 开始生效的去噪步骤比例(0.0-1.0)。使用 > 0.0 可在早期去噪步骤中禁用 CFG。 - stop (
float,默认为1.0) — 去噪步骤的比例(0.0-1.0),在此之后 CFG 停止。使用 < 1.0 可在后期去噪步骤中禁用 CFG。 - enabled(
bool,默认为True)— 是否启用 CFG。设置为False可完全禁用 CFG(仅使用条件预测)。
为扩散模型实现无分类器引导(CFG)。
参考:https://huggingface.co/papers/2207.12598
CFG 通过在条件数据和无条件数据上联合训练模型,并在推理时结合两者的预测,从而提升生成质量和对提示词的遵循度。这使得我们可以在质量(高引导)和多样性(低引导)之间进行权衡。
两种 CFG 公式:
原始公式(来自论文):
x_pred = x_cond + guidance_scale * (x_cond - x_uncond)使条件预测与无条件预测之间的差异更大。
Diffusers 原生公式(默认,来自 Imagen 论文):
x_pred = x_uncond + guidance_scale * (x_cond - x_uncond)将无条件预测向条件预测靠拢,从而有效抑制负面特征(例如“质量差”、“水印”)。理论上等价,但更直观。
使用 use_original_formulation=True 切换到原始公式。
ClassifierFreeZeroStarGuidance
class diffusers.ClassifierFreeZeroStarGuidance
< source >( guidance_scale: float = 7.5zero_init_steps: int = 1guidance_rescale: float = 0.0use_original_formulation: bool = Falsestart: float = 0.0stop: float = 1.0enabled: bool = True )
参数
- guidance_scale (
float,默认为7.5) — 无分类器引导的缩放参数。较高的值会增强对文本提示的条件约束,而较低的值则允许生成过程拥有更大的自由度。过高的值可能导致饱和并降低图像质量。 - zero_init_steps (
int,默认为1) — 噪声预测被置零的推理步数(参见第 4.2 节)。 - guidance_rescale (
float,默认为0.0) — 应用于噪声预测的重缩放因子。用于提升图像质量并修复过曝问题。基于 《常见的扩散噪声调度和采样步骤存在缺陷》 中的第 3.4 节。 - use_original_formulation (
bool,默认为False) — 是否使用论文中提出的 classifier-free guidance 的原始公式。默认情况下,我们使用 diffusers 原生实现,该实现已在代码库中存在较长时间。有关更多详细信息,请参阅 [~guiders.classifier_free_guidance.ClassifierFreeGuidance]。 - start (
float,默认为0.01) — 在总去噪步数中,引导开始生效的比例。 - stop (
float,默认为0.2) — 在总去噪步数中,超过该比例后停止引导。
Classifier-free Zero(CFG-Zero):https://huggingface.co/papers/2503.18886
这是 Classifier-Free Zero* 引导技术的实现,它是 classifier-free guidance 的一种变体。该技术提出在扩散过程的前几步中对噪声预测进行零初始化,并引入了用于噪声预测的最优重缩放因子,有助于提升生成图像的质量。
该论文的作者在推理步骤的前 4% 中建议设置零初始化。
SkipLayerGuidance
class diffusers.SkipLayerGuidance
< source >( guidance_scale: float = 7.5skip_layer_guidance_scale: float = 2.8skip_layer_guidance_start: float = 0.01skip_layer_guidance_stop: float = 0.2skip_layer_guidance_layers: int | list[int] | None = Noneskip_layer_config: LayerSkipConfig | list[LayerSkipConfig] | dict[str, Any] = Noneguidance_rescale: float = 0.0use_original_formulation: bool = Falsestart: float = 0.0stop: float = 1.0enabled: bool = True )
参数
- guidance_scale (
float,默认为7.5) — 无分类器引导的缩放参数。较高的值会增强对文本提示的条件约束,而较低的值则允许生成过程拥有更大的自由度。过高的值可能导致饱和并降低图像质量。 - skip_layer_guidance_scale (
float,默认为2.8) — skip layer guidance 的 scale 参数。较高的值可能会改善解剖结构和结构连贯性,但也可能导致过曝和饱和。 - skip_layer_guidance_start (
float,默认为0.01) — 跳层引导开始的时间点,表示总去噪步数中经过的比例。 - skip_layer_guidance_stop (
float,默认值为0.2) — 在总去噪步数中,经过该比例后停止 skip layer guidance 的阈值。 - skip_layer_guidance_layers (
int或list[int],可选) — 应用 skip layer guidance 的层索引。可以是单个整数或整数列表。如果未提供,则必须提供skip_layer_config。对于 Stable Diffusion 3.5 Medium,推荐值为[7, 8, 9]。 - skip_layer_config (
LayerSkipConfig或list[LayerSkipConfig],可选) — 用于 skip layer guidance 的配置。可以是单个LayerSkipConfig,也可以是LayerSkipConfig的列表。如果未提供,则必须提供skip_layer_guidance_layers。 - guidance_rescale (
float,默认为0.0) — 应用于噪声预测的重缩放因子。用于提升图像质量并修复过曝问题。基于 《常见的扩散噪声调度和采样步骤存在缺陷》 中的第 3.4 节。 - use_original_formulation (
bool,默认为False) — 是否使用论文中提出的 classifier-free guidance 的原始公式。默认情况下,我们使用 diffusers 原生实现,该实现已在代码库中存在较长时间。有关更多详细信息,请参阅 [~guiders.classifier_free_guidance.ClassifierFreeGuidance]。 - start (
float,默认为0.01) — 在总去噪步数中,引导开始生效的比例。 - stop (
float,默认为0.2) — 在总去噪步数中,超过该比例后停止引导。
跳过层引导(SLG):https://github.com/Stability-AI/sd3.5
时空引导(STG):https://huggingface.co/papers/2411.18664
SLG 由 StabilityAI 提出,用于提升生成图像的结构和解剖学一致性。其工作原理是:在去噪过程中,除了 CFG([~guiders.classifier_free_guidance.ClassifierFreeGuidance])中已使用的条件批次和无条件批次外,额外引入一个条件数据批次,并跳过其中指定 transformer 块的前向传播,然后根据“未跳过的条件预测”与“跳过的条件预测”之间的差异,对 CFG 预测进行缩放和平移。
SLG 背后的直觉可以理解为:将 CFG 预测的分布估计进一步推离条件分布估计的较差版本(因为跳过层相当于在条件预测中使用了一个较差版本的模型)。
STG 是一项改进和后续工作,它结合了 SLG、PAG 以及类似技术中用于提升视频扩散模型生成质量的思路。
延伸阅读:
skip_layer_guidance_scale、skip_layer_guidance_start 和 skip_layer_guidance_stop 的默认值采用 StabilityAI 针对 Stable Diffusion 3.5 Medium 给出的推荐值。
SmoothedEnergyGuidance
class diffusers.SmoothedEnergyGuidance
< source >( guidance_scale: float = 7.5seg_guidance_scale: float = 2.8seg_blur_sigma: float = 9999999.0seg_blur_threshold_inf: float = 9999.0seg_guidance_start: float = 0.0seg_guidance_stop: float = 1.0seg_guidance_layers: int | list[int] | None = Noneseg_guidance_config: SmoothedEnergyGuidanceConfig | list[SmoothedEnergyGuidanceConfig] = Noneguidance_rescale: float = 0.0use_original_formulation: bool = Falsestart: float = 0.0stop: float = 1.0enabled: bool = True )
参数
- guidance_scale (
float,默认为7.5) — 无分类器引导的缩放参数。较高的值会增强对文本提示的条件约束,而较低的值则允许生成过程拥有更大的自由度。过高的值可能导致饱和并降低图像质量。 - seg_guidance_scale (
float,默认为3.0) — 平滑能量引导的缩放参数。较高的值可能会改善解剖结构和结构的一致性,但也可能导致过曝和饱和。 - seg_blur_sigma (
float,默认值为9999999.0) — 用于模糊注意力权重的程度。将该值设置为大于 9999.0 会导致无限模糊,即查询变为均匀分布。经验上,以指数方式控制该值效果良好。 - seg_blur_threshold_inf (
float,默认值为9999.0) — 超过该阈值时,模糊被视为无限。 - seg_guidance_start (
float,默认为0.0) — 在总去噪步数中,平滑能量引导开始生效的比例。 - seg_guidance_stop (
float,默认值为1.0) — 在总去噪步数中,平滑能量引导停止所对应的比例。 - seg_guidance_layers (
int或list[int],可选) — 要应用平滑能量引导的层索引。可以是单个整数或整数列表。如果未提供,则必须提供seg_guidance_config。对于 Stable Diffusion 3.5 Medium,推荐值为[7, 8, 9]。 - seg_guidance_config (
SmoothedEnergyGuidanceConfig或list[SmoothedEnergyGuidanceConfig],可选) — 平滑能量层引导的配置。可以是单个SmoothedEnergyGuidanceConfig,也可以是SmoothedEnergyGuidanceConfig的列表。如果未提供,则必须提供seg_guidance_layers。 - guidance_rescale (
float,默认为0.0) — 应用于噪声预测的重缩放因子。用于提升图像质量并修复过曝问题。基于 《常见的扩散噪声调度和采样步骤存在缺陷》 中的第 3.4 节。 - use_original_formulation (
bool,默认为False) — 是否使用论文中提出的 classifier-free guidance 的原始公式。默认情况下,我们使用 diffusers 原生实现,该实现已在代码库中存在较长时间。有关更多详细信息,请参阅 [~guiders.classifier_free_guidance.ClassifierFreeGuidance]。 - start (
float,默认为0.01) — 在总去噪步数中,引导开始生效的比例。 - stop (
float,默认为0.2) — 在总去噪步数中,超过该比例后停止引导。
平滑能量引导(SEG):https://huggingface.co/papers/2408.00760
目前,SEG 仅作为实验性原型功能提供支持,因此其实现方式可能会在未来被修改,且不会提前通知,也不保证可复现性。此实现基于以下假设:
- 生成的图像为正方形(高度 == 宽度)
- 该模型不会将不同的模态组合在一起(例如,文本和图像的潜在流不会像 Flux 那样被组合在一起)
PerturbedAttentionGuidance
class diffusers.PerturbedAttentionGuidance
< source >( guidance_scale: float = 7.5perturbed_guidance_scale: float = 2.8perturbed_guidance_start: float = 0.01perturbed_guidance_stop: float = 0.2perturbed_guidance_layers: int | list[int] | None = Noneperturbed_guidance_config: LayerSkipConfig | list[LayerSkipConfig] | dict[str, Any] = Noneguidance_rescale: float = 0.0use_original_formulation: bool = Falsestart: float = 0.0stop: float = 1.0enabled: bool = True )
参数
- guidance_scale (
float,默认为7.5) — 无分类器引导的缩放参数。较高的值会增强对文本提示的条件约束,而较低的值则允许生成过程拥有更大的自由度。过高的值可能导致饱和并降低图像质量。 - perturbed_guidance_scale(
float,默认为2.8)— 用于扰动注意力引导的缩放参数。 - perturbed_guidance_start (
float,默认为0.01) — 在总去噪步数中,扰动注意力引导开始生效的比例。 - perturbed_guidance_stop (
float,默认为0.2) — 在总去噪步数中,超过该比例后停止使用扰动注意力引导。 - perturbed_guidance_layers(
int或list[int],可选)— 应用扰动注意力引导的层索引。可以是单个整数或整数列表。 如果未提供,则必须提供perturbed_guidance_config。 - perturbed_guidance_config (
LayerSkipConfig或list[LayerSkipConfig],可选) — 用于扰动注意力引导的配置。可以是单个LayerSkipConfig或LayerSkipConfig列表。如果未提供,则必须提供perturbed_guidance_layers。 - guidance_rescale (
float,默认为0.0) — 应用于噪声预测的重缩放因子。用于提升图像质量并修复过曝问题。基于 《常见的扩散噪声调度和采样步骤存在缺陷》 中的第 3.4 节。 - use_original_formulation (
bool,默认为False) — 是否使用论文中提出的 classifier-free guidance 的原始公式。默认情况下,我们使用 diffusers 原生实现,该实现已在代码库中存在较长时间。有关更多详细信息,请参阅 [~guiders.classifier_free_guidance.ClassifierFreeGuidance]。 - start (
float,默认为0.01) — 在总去噪步数中,引导开始生效的比例。 - stop (
float,默认为0.2) — 在总去噪步数中,超过该比例后停止引导。
扰动注意力引导(PAG):https://huggingface.co/papers/2403.17377
PAG 背后的直觉可以理解为:将 CFG 预测的分布估计进一步推离条件分布估计的较差版本。PAG 是最早引入“利用训练模型的较差版本来更好地引导自身去噪过程”这一思想的技巧之一。它通过为特定选定的层将分数矩阵替换为单位矩阵,来扰动潜在流的注意力分数。
延伸阅读:
PAG 的实现与 SkipLayerGuidance 类似,因为两者在配置参数和实现细节上存在重叠。
AdaptiveProjectedGuidance
class diffusers.AdaptiveProjectedGuidance
< source >( guidance_scale: float = 7.5adaptive_projected_guidance_momentum: float | None = Noneadaptive_projected_guidance_rescale: float = 15.0adaptive_projected_guidance_norm_dim: int | tuple[int, ...] | None = Noneeta: float = 1.0guidance_rescale: float = 0.0use_original_formulation: bool = Falsestart: float = 0.0stop: float = 1.0enabled: bool = True )
参数
- guidance_scale (
float,默认为7.5) — 无分类器引导的缩放参数。较高的值会增强对文本提示的条件约束,而较低的值则允许生成过程拥有更大的自由度。过高的值可能导致饱和并降低图像质量。 - adaptive_projected_guidance_momentum (
float,默认为None) — 自适应投影引导的动量参数。如果设置为None,则禁用该功能。 - adaptive_projected_guidance_rescale (
float,默认值为15.0) — 应用于噪声预测的重缩放因子。用于提升图像质量并修复 - adaptive_projected_guidance_norm_dim (
int或tuple[int],可选) — 用于计算 APG 范数和投影的维度。如果省略,则使用所有非批次维度,以保持原始行为。 - guidance_rescale (
float,默认为0.0) — 应用于噪声预测的重缩放因子。用于提升图像质量并修复过曝问题。基于 《常见的扩散噪声调度和采样步骤存在缺陷》 中的第 3.4 节。 - use_original_formulation (
bool,默认为False) — 是否使用论文中提出的 classifier-free guidance 的原始公式。默认情况下,我们使用 diffusers 原生实现,该实现已在代码库中存在较长时间。有关更多详细信息,请参阅 [~guiders.classifier_free_guidance.ClassifierFreeGuidance]。 - start (
float,默认为0.0) — 去噪总步数中,引导开始生效的比例。 - stop (
float,默认为1.0) — 在总去噪步数中,超过该比例后停止引导。
自适应投影引导(APG):https://huggingface.co/papers/2410.02416
AutoGuidance
class diffusers.AutoGuidance
< source >( guidance_scale: float = 7.5auto_guidance_layers: int | list[int] | None = Noneauto_guidance_config: LayerSkipConfig | list[LayerSkipConfig] | dict[str, Any] = Nonedropout: float | None = Noneguidance_rescale: float = 0.0use_original_formulation: bool = Falsestart: float = 0.0stop: float = 1.0enabled: bool = True )
参数
- guidance_scale (
float,默认为7.5) — 无分类器引导的缩放参数。较高的值会增强对文本提示的条件约束,而较低的值则允许生成过程拥有更大的自由度。过高的值可能导致饱和并降低图像质量。 - auto_guidance_layers (
int或list[int],可选) — 应用 skip layer guidance 的层索引。可以是单个整数或整数列表。如果未提供,则必须提供skip_layer_config。 - auto_guidance_config (
LayerSkipConfig或list[LayerSkipConfig],可选) — 用于 skip layer guidance 的配置。可以是单个LayerSkipConfig,也可以是LayerSkipConfig的列表。如果未提供,则必须提供skip_layer_guidance_layers。 - dropout (
float, 可选) — 在启用的跳过层上用于自动引导的 dropout 概率(通过auto_guidance_layers或auto_guidance_config指定)。如果未提供,dropout 概率将设置为 1.0。 - guidance_rescale (
float,默认为0.0) — 应用于噪声预测的重缩放因子。用于提升图像质量并修复过曝问题。基于 《常见的扩散噪声调度和采样步骤存在缺陷》 中的第 3.4 节。 - use_original_formulation (
bool,默认为False) — 是否使用论文中提出的 classifier-free guidance 的原始公式。默认情况下,我们使用 diffusers 原生实现,该实现已在代码库中存在较长时间。有关更多详细信息,请参阅 [~guiders.classifier_free_guidance.ClassifierFreeGuidance]。 - start (
float,默认为0.0) — 去噪总步数中,引导开始生效的比例。 - stop (
float,默认为1.0) — 在总去噪步数中,超过该比例后停止引导。
AutoGuidance:https://huggingface.co/papers/2406.02507
TangentialClassifierFreeGuidance
class diffusers.TangentialClassifierFreeGuidance
< source >( guidance_scale: float = 7.5guidance_rescale: float = 0.0use_original_formulation: bool = Falsestart: float = 0.0stop: float = 1.0enabled: bool = True )
参数
- guidance_scale (
float,默认为7.5) — 无分类器引导的缩放参数。较高的值会增强对文本提示的条件约束,而较低的值则允许生成过程拥有更大的自由度。过高的值可能导致饱和并降低图像质量。 - guidance_rescale (
float,默认为0.0) — 应用于噪声预测的重缩放因子。用于提升图像质量并修复过曝问题。基于 《常见的扩散噪声调度和采样步骤存在缺陷》 中的第 3.4 节。 - use_original_formulation (
bool,默认为False) — 是否使用论文中提出的 classifier-free guidance 的原始公式。默认情况下,我们使用 diffusers 原生实现,该实现已在代码库中存在较长时间。有关更多详细信息,请参阅 [~guiders.classifier_free_guidance.ClassifierFreeGuidance]。 - start (
float,默认为0.0) — 去噪总步数中,引导开始生效的比例。 - stop (
float,默认为1.0) — 在总去噪步数中,超过该比例后停止引导。
切向分类器自由引导(TCFG):https://huggingface.co/papers/2503.18137
LTX2Guidance
class diffusers.LTX2Guidance
< source >( guidance_scale: float = 1.0stg_scale: float = 0.0modality_scale: float = 1.0guidance_rescale: float = 0.0spatio_temporal_guidance_blocks: list[int] | None = Nonestart: float = 0.0stop: float = 1.0enabled: bool = True )
参数
- guidance_scale(
float,默认为1.0)— 该模态的 CFG 缩放系数。当值为1.0时,将完全跳过 CFG 处理。 - stg_scale (
float,默认为0.0) — 该模态的时空引导尺度。当值为0.0时,将完全跳过 STG 处理。 - modality_scale (
float,默认为1.0) — 该模态的模态隔离引导比例。当值为1.0时,将完全跳过该步骤。 - guidance_rescale (
float, defaults to0.0) — Rescaling factor to prevent overexposure from high guidance scales. Based on Common Diffusion Noise Schedules and Sample Steps are Flawed. Range: 0.0 (no rescaling) to 1.0 (full rescaling). - spatio_temporal_guidance_blocks (
list[int], 可选) — 在 STG 过程中需要扰动的 Transformer 块。该值的具体使用方式取决于去噪器块: LTX-2 在单次前向传播中扰动整个块,该前向传播为所有模态提供输入,因此它仅从视频引导器读取此值——在音频引导器上设置该值不会产生任何效果,而该音频引导器会通过其自身的stg_scale加入相同的 STG 前向传播。 - start (
float,默认为0.0) — 去噪步骤(0.0-1.0)中开始应用引导的比例。 - stop (
float,默认为1.0) — 去噪步骤的比例(0.0-1.0),在此之后停止引导。 - enabled(
bool,默认为True) — 是否启用该 guider 的引导功能。当设置为False时,仅执行条件路径。
LTX-2.X 的单模态引导器。通过 delta 公式组合最多三个术语:
- 无分类器引导(CFG),
- 时空引导(STG),即额外执行一次前向传播,其中一组 transformer 块受到扰动,
- 模态隔离引导,即额外执行一次禁用 A2V/V2A 交叉注意力的过程。
一个实例驱动一种模态,因此多模态检查点包含多个实例:LTX-2.X 将视频 guider 与 audio_guider 配对,每个实例各自持有其对应的 scales。最终的 guidance 估计值在调用方提供的空间中计算——LTX-2 去噪器在调用此函数前将 velocity->x0 进行转换,调用后再转换回来,因此 forward 基于 x0 预测进行操作。
与通过钩子(hooks)应用扰动的 SkipLayerGuidance 不同,LTX2Guidance 要求其非 CFG 扰动可通过模型的前向传播参数进行配置(即 LTX2VideoTransformer3DModel 中的 spatio_temporal_guidance_blocks 和 isolate_modalities)。调用去噪器块负责为每次前向传播设置这些标识符;使用示例请参见 LTX2LoopDenoiser。