# ガイド

Guider は Modular Diffusers のコンポーネントであり、生成時の拡散プロセスのガイダンス方法を制御します。生成の品質と制御を向上させるために、さまざまなガイダンス手法を実装しています。

## BaseGuidance[[diffusers.BaseGuidance]]

#### diffusers.BaseGuidance[[diffusers.BaseGuidance]]

```python
diffusers.BaseGuidance(start: float = 0.0, stop: float = 1.0, enabled: bool = True)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/guiders/guider_utils.py#L38)

ガイダンス手法の実装のための骨格を提供するベースクラス。

#### cleanup_models[[diffusers.BaseGuidance.cleanup_models]]

```python
cleanup_models(denoiser: torch.nn.Module)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/guiders/guider_utils.py#L160)

指定されたデータバッチの後、guidance 手法用のモデルをクリーンアップします。このメソッドは、サブクラスでオーバーライドして、特定のモデルクリーンアップロジックを実装するために使用します。`prepare_models` 実行中に追加されたフックや、その他の状態を持つ変更を削除する際に役立ちます。

#### from_pretrained[[diffusers.BaseGuidance.from_pretrained]]

```python
from_pretrained(pretrained_model_name_or_path: str | os.PathLike | None = None, subfolder: str | None = None, return_unused_kwargs = False, **kwargs)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/guiders/guider_utils.py#L289)

**パラメータ:**

pretrained_model_name_or_path (`str` または `os.PathLike`、*省略可*) : 以下のいずれかです。 - Hub にホストされている事前学習済みモデルの *model id*（例: `google/ddpm-celebahq-256`）を表す文字列。 - [save_pretrained()](/docs/diffusers/v0.43.0/ja/api/modular_diffusers/guiders#diffusers.BaseGuidance.save_pretrained) で保存された guider の設定を含む *ディレクトリ*（例: `./my_model_directory`）へのパス。

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`, *optional*, デフォルトは `False`) : 欠落キー、予期しないキー、エラーメッセージを含む辞書を返すかどうか。

local_files_only(`bool`、*任意*、デフォルトは`False`) : ローカルに保存されたモデルの重みと設定ファイルのみを読み込むかどうかを指定します。`True`に設定すると、モデルは Hub からダウンロードされません。

token (`str` または *bool*、*省略可能*) : リモートファイルの HTTP ベアラ認証に使用するトークン。`True` の場合、`diffusers-cli login` で生成されたトークン（`~/.huggingface` に保存）が使用されます。

revision (`str`、*任意*、デフォルトは`"main"`) : 使用する特定のモデルバージョンです。ブランチ名、タグ名、コミット ID、または Git で許可されている任意の識別子を使用できます。

ローカルディレクトリまたは Hub リポジトリにある事前定義済みの JSON 設定ファイルから、guider をインスタンス化します。

> [!TIP] > プライベートモデルや[ゲート付きモデル](https://huggingface.co/docs/hub/models-gated#gated-models)を使用するには、ログインしてください
`hf > auth login` を使用します。また、ファイアウォールが設定された環境でこの方法を使用するために、特別な ["offline-mode"](https://huggingface.co/diffusers/installation.html#offline-mode) を有効にすることもできます。

#### get_state[[diffusers.BaseGuidance.get_state]]

```python
get_state()
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/guiders/guider_utils.py#L106)

ガイダンス手法の現在の状態を辞書として返します。状態変数は__repr__メソッドに含められます。戻り値: `dict[str, Any]`: 現在の状態変数を含む辞書。以下を含みます:
- step: 現在の推論ステップ
- num_inference_steps: 推論ステップの総数
- timestep: 現在のタイムステップテンソル
- count_prepared: prepare_models が呼び出された回数
- enabled: ガイダンスが有効かどうか
- num_conditions: 条件の数

#### 新着[[diffusers.BaseGuidance.new]]

```python
new(**kwargs)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/guiders/guider_utils.py#L69)

**パラメータ:**

- ****kwargs** : 新しいインスタンスで上書きする設定パラメータ。kwargs が指定されない場合、同じ設定を持つ完全なコピーを返します。

**戻り値:**

同じ（または更新された）設定を持つ新しいguiderインスタンス。

このguiderインスタンスのコピーを作成します。必要に応じて、設定パラメータを変更できます。

例:
```python
# Create a CFG guider
guider = ClassifierFreeGuidance(guidance_scale=3.5)

# Create an exact copy
same_guider = guider.new()

# Create a copy with different start step, keeping other config the same
new_guider = guider.new(guidance_scale=5)
```

#### prepare_models[[diffusers.BaseGuidance.prepare_models]]

```python
prepare_models(denoiser: torch.nn.Module)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/guiders/guider_utils.py#L153)

与えられたデータバッチに対して、guidance 手法用のモデルを準備します。このメソッドは、サブクラスでオーバーライドして、特定のモデル準備ロジックを実装する必要があります。

#### save_pretrained[[diffusers.BaseGuidance.save_pretrained]]

```python
save_pretrained(save_directory: str | os.PathLike, push_to_hub: bool = False, **kwargs)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/guiders/guider_utils.py#L350)

**パラメータ:**

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()](/docs/diffusers/v0.43.0/ja/api/schedulers/overview#diffusers.utils.PushToHubMixin.push_to_hub) メソッドに渡される追加のキーワード引数。

guider の設定オブジェクトをディレクトリに保存し、[from_pretrained()](/docs/diffusers/v0.43.0/ja/api/modular_diffusers/guiders#diffusers.BaseGuidance.from_pretrained) クラスメソッドを使用して再読み込みできるようにします。

## ClassifierFreeGuidance[[diffusers.ClassifierFreeGuidance]]

#### diffusers.ClassifierFreeGuidance[[diffusers.ClassifierFreeGuidance]]

```python
diffusers.ClassifierFreeGuidance(guidance_scale: float = 7.5, guidance_rescale: float = 0.0, use_original_formulation: bool = False, start: float = 0.0, stop: float = 1.0, enabled: bool = True)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/guiders/classifier_free_guidance.py#L30)

**パラメータ:**

guidance_scale (`float`、デフォルトは`7.5`) : この guider が後処理時に適用する CFG スケール。値を高くするとプロンプトの条件付けが強まりますが、品質が低下する可能性があります。一般的な範囲: 1.0-20.0。

guidance_rescale (`float`, defaults to `0.0`) : Rescaling factor to prevent overexposure from high guidance scales. Based on [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891). 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)。初期のデノイジングステップで CFG を無効にするには、0.0 より大きい値を使用してください。

stop (`float`、デフォルトは`1.0`) : CFGを停止するまでのデノイジングステップの割合（0.0〜1.0）です。後期のデノイジングステップでCFGを無効にするには、1.0未満の値を指定してください。

enabled (`bool`、デフォルトは`True`) : CFGが有効かどうかを示します。CFGを完全に無効にするには`False`に設定してください（条件付き予測のみを使用します）。

拡散モデルに対して Classifier-Free Guidance (CFG) を実装します。

参考: https://huggingface.co/papers/2207.12598

CFGは、条件付きデータと無条件データの両方を用いてモデルを共同訓練し、推論時に予測を組み合わせることで、生成品質とプロンプトへの忠実度を向上させます。これにより、品質（高いガイダンス）と多様性（低いガイダンス）の間のトレードオフを調整できます。

**2つのCFGの定式化:**

1. **元の定式化**(論文より):
   ```
   x_pred = x_cond + guidance_scale * (x_cond - x_uncond)
   ```
   条件付き予測を、条件なしの予測からさらに遠ざけます。

2. **Diffusersネイティブな定式化**（デフォルト、Imagen論文より）：
   ```
   x_pred = x_uncond + guidance_scale * (x_cond - x_uncond)
   ```
   無条件予測を条件付き予測に近づけ、ネガティブな特徴（例：「低品質」「ウォーターマーク」）を効果的に抑制します。理論的には同等ですが、より直感的です。

`use_original_formulation=True` を使用して、元の定式化に切り替えます。

## ClassifierFreeZeroStarGuidance[[diffusers.ClassifierFreeZeroStarGuidance]]

#### diffusers.ClassifierFreeZeroStarGuidance[[diffusers.ClassifierFreeZeroStarGuidance]]

```python
diffusers.ClassifierFreeZeroStarGuidance(guidance_scale: float = 7.5, zero_init_steps: int = 1, guidance_rescale: float = 0.0, use_original_formulation: bool = False, start: float = 0.0, stop: float = 1.0, enabled: bool = True)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/guiders/classifier_free_zero_star_guidance.py#L30)

**パラメータ:**

guidance_scale (`float`、デフォルトは`7.5`) : classifier-free guidanceのスケーリングパラメータです。値を大きくするとテキストプロンプトへの条件付けが強くなり、小さくすると生成時の自由度が高まります。ただし、値が大きすぎると飽和や画像品質の低下を引き起こす可能性があります。

zero_init_steps (`int`、デフォルトは`1`) : ノイズ予測をゼロにする推論ステップの数（セクション 4.2 を参照）。

guidance_rescale (`float`, defaults to `0.0`) : The rescale factor applied to the noise predictions. This is used to improve image quality and fix overexposure. Based on Section 3.4 from [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891).

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 guidance のバリアントである Classifier-Free Zero* ガイダンス手法の実装です。この手法は、拡散プロセスの最初の数ステップにおけるノイズ予測のゼロ初期化を提案するとともに、ノイズ予測に対する最適なリスケール係数を導入し、生成画像の品質向上に寄与します。

論文の著者たちは、推論ステップの最初の4%でゼロ初期化を設定することを提案しています。

## SkipLayerGuidance[[diffusers.SkipLayerGuidance]]

#### diffusers.SkipLayerGuidance[[diffusers.SkipLayerGuidance]]

```python
diffusers.SkipLayerGuidance(guidance_scale: float = 7.5, skip_layer_guidance_scale: float = 2.8, skip_layer_guidance_start: float = 0.01, skip_layer_guidance_stop: float = 0.2, skip_layer_guidance_layers: int | list[int] | None = None, skip_layer_config: LayerSkipConfig | list[LayerSkipConfig] | dict[str, Any] = None, guidance_rescale: float = 0.0, use_original_formulation: bool = False, start: float = 0.0, stop: float = 1.0, enabled: bool = True)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/guiders/skip_layer_guidance.py#L32)

**パラメータ:**

guidance_scale (`float`、デフォルトは`7.5`) : classifier-free guidanceのスケーリングパラメータです。値を大きくするとテキストプロンプトへの条件付けが強くなり、小さくすると生成時の自由度が高まります。ただし、値が大きすぎると飽和や画像品質の低下を引き起こす可能性があります。

skip_layer_guidance_scale (`float`、デフォルトは `2.8`) : スキップレイヤーガイダンスのスケーリングパラメータです。値を高くすると、解剖学的および構造的な整合性が向上する場合がありますが、露出過多や飽和を引き起こす可能性もあります。

skip_layer_guidance_start (`float`、デフォルトは`0.01`) : 総デノイジングステップ数のうち、どの割合のステップ後にスキップレイヤーガイダンスを開始するかを示します。

skip_layer_guidance_stop (`float`、デフォルトは`0.2`) : 総デノイジングステップ数のうち、どの割合のステップ後にスキップレイヤーガイダンスを停止するかを示します。

skip_layer_guidance_layers (`int` または `list[int]`、*省略可*) : スキップレイヤーガイダンスを適用するレイヤーのインデックスです。単一の整数または整数のリストを指定できます。指定しない場合、`skip_layer_config` を指定する必要があります。Stable Diffusion 3.5 Medium における推奨値は `[7, 8, 9]` です。

skip_layer_config (`LayerSkipConfig` または `list[LayerSkipConfig]`、*省略可*) : スキップレイヤーガイダンスの設定です。単一の `LayerSkipConfig` または `LayerSkipConfig` のリストを指定できます。指定しない場合、`skip_layer_guidance_layers` を指定する必要があります。

guidance_rescale (`float`, defaults to `0.0`) : The rescale factor applied to the noise predictions. This is used to improve image quality and fix overexposure. Based on Section 3.4 from [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891).

use_original_formulation (`bool`、デフォルトは`False`) : 論文で提案された classifier-free guidance の元の定式化を使用するかどうか。デフォルトでは、コードベースに長く存在してきた diffusers ネイティブの実装を使用します。詳細は [~guiders.classifier_free_guidance.ClassifierFreeGuidance] を参照してください。

start (`float`、デフォルトは`0.01`) : デノイジングステップの総数のうち、ガイダンスが開始される割合。

stop (`float`、デフォルトは`0.2`) : 総デノイジングステップ数のうち、ガイダンスが停止するまでの割合。

Skip Layer Guidance (SLG): https://github.com/Stability-AI/sd3.5

Spatio-Temporal Guidance (STG): https://huggingface.co/papers/2411.18664

SLGは、生成画像における構造と解剖学的整合性を向上させるためにStabilityAIによって導入されました。この手法は、CFG（[~guiders.classifier_free_guidance.ClassifierFreeGuidance]）で既に使用されている条件付きバッチと無条件バッチとは別に、追加の条件付きデータバッチに対してデノイジング処理中に指定されたtransformerブロックのフォワードパスをスキップすることで機能します。その後、スキップなしの条件付き予測とスキップありの条件付き予測の差分に基づいて、CFGの予測をスケーリングおよびシフトします。

SLGの直感は、条件付き分布の推定値のより悪いバージョン（レイヤーをスキップすることは、条件付き予測においてより悪いバージョンのモデルを使用することと同等であるため）から、CFGによる予測分布の推定値をさらに遠ざけることと考えることができます。

STGは、動画拡散モデルにおける生成品質の向上を目的とした、SLGやPAG、および類似の技術のアイデアを組み合わせた改良および後続の研究です。

追加の読み物:
- [劣化したモデル自体による拡散モデルの誘導](https://huggingface.co/papers/2406.02507)

`skip_layer_guidance_scale`、`skip_layer_guidance_start`、および `skip_layer_guidance_stop` の値は、StabilityAI が Stable Diffusion 3.5 Medium に対して推奨している値がデフォルトとして設定されています。

## SmoothedEnergyGuidance[[diffusers.SmoothedEnergyGuidance]]

#### diffusers.SmoothedEnergyGuidance[[diffusers.SmoothedEnergyGuidance]]

```python
diffusers.SmoothedEnergyGuidance(guidance_scale: float = 7.5, seg_guidance_scale: float = 2.8, seg_blur_sigma: float = 9999999.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] | None = None, seg_guidance_config: SmoothedEnergyGuidanceConfig | list[SmoothedEnergyGuidanceConfig] = None, guidance_rescale: float = 0.0, use_original_formulation: bool = False, start: float = 0.0, stop: float = 1.0, enabled: bool = True)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/guiders/smoothed_energy_guidance.py#L32)

**パラメータ:**

guidance_scale (`float`、デフォルトは`7.5`) : classifier-free guidanceのスケーリングパラメータです。値を大きくするとテキストプロンプトへの条件付けが強くなり、小さくすると生成時の自由度が高まります。ただし、値が大きすぎると飽和や画像品質の低下を引き起こす可能性があります。

seg_guidance_scale (`float`、デフォルトは`3.0`) : スムーズ化されたエネルギーガイダンスのスケーリングパラメータです。値を高くすると解剖学的および構造的一貫性が向上する場合がありますが、露出過多や飽和を引き起こす可能性もあります。

seg_blur_sigma (`float`、デフォルトは`9999999.0`) : attention weights をぼかす量です。この値を 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`, defaults to `0.0`) : The rescale factor applied to the noise predictions. This is used to improve image quality and fix overexposure. Based on Section 3.4 from [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891).

use_original_formulation (`bool`、デフォルトは`False`) : 論文で提案された classifier-free guidance の元の定式化を使用するかどうか。デフォルトでは、コードベースに長く存在してきた diffusers ネイティブの実装を使用します。詳細は [~guiders.classifier_free_guidance.ClassifierFreeGuidance] を参照してください。

start (`float`、デフォルトは`0.01`) : デノイジングステップの総数のうち、ガイダンスが開始される割合。

stop (`float`、デフォルトは`0.2`) : 総デノイジングステップ数のうち、ガイダンスが停止するまでの割合。

Smoothed Energy Guidance (SEG): https://huggingface.co/papers/2408.00760

SEGは現在、実験的なプロトタイプ機能としてのみサポートされているため、将来、事前の通知や再現性の保証なしに実装が変更される可能性があります。この実装は以下を前提としています：
- 生成された画像は正方形です（高さ == 幅）。
- モデルは異なるモダリティを組み合わせません（Fluxのように、テキストと画像の潜在ストリームを組み合わせることはしません）。

## PerturbedAttentionGuidance[[diffusers.PerturbedAttentionGuidance]]

#### diffusers.PerturbedAttentionGuidance[[diffusers.PerturbedAttentionGuidance]]

```python
diffusers.PerturbedAttentionGuidance(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] | None = None, perturbed_guidance_config: LayerSkipConfig | list[LayerSkipConfig] | dict[str, Any] = None, guidance_rescale: float = 0.0, use_original_formulation: bool = False, start: float = 0.0, stop: float = 1.0, enabled: bool = True)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/guiders/perturbed_attention_guidance.py#L36)

**パラメータ:**

guidance_scale (`float`、デフォルトは`7.5`) : classifier-free guidanceのスケーリングパラメータです。値を大きくするとテキストプロンプトへの条件付けが強くなり、小さくすると生成時の自由度が高まります。ただし、値が大きすぎると飽和や画像品質の低下を引き起こす可能性があります。

perturbed_guidance_scale (`float`、デフォルトは`2.8`) : 乱数付きアテンションガイダンスのスケーリングパラメータです。

perturbed_guidance_start (`float`、デフォルトは`0.01`) : 総デノイジングステップ数のうち、パーターブドアテンションガイダンスが開始される割合。

perturbed_guidance_stop (`float`、デフォルトは`0.2`) : 総デノイジングステップ数のうち、どの割合を超えた時点でperturbed attention guidanceを停止するかを示します。

perturbed_guidance_layers (`int` または `list[int]`、*省略可*) : 乱数付きアテンションガイダンスを適用するレイヤーのインデックスです。単一の整数または整数のリストを指定できます。指定しない場合、`perturbed_guidance_config` を指定する必要があります。

perturbed_guidance_config (`LayerSkipConfig` または `list[LayerSkipConfig]`、*任意*) : 乱数アテンションガイダンスの設定です。`LayerSkipConfig` 単体または `LayerSkipConfig` のリストを指定できます。指定しない場合、`perturbed_guidance_layers` を指定する必要があります。

guidance_rescale (`float`, defaults to `0.0`) : The rescale factor applied to the noise predictions. This is used to improve image quality and fix overexposure. Based on Section 3.4 from [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891).

use_original_formulation (`bool`、デフォルトは`False`) : 論文で提案された classifier-free guidance の元の定式化を使用するかどうか。デフォルトでは、コードベースに長く存在してきた diffusers ネイティブの実装を使用します。詳細は [~guiders.classifier_free_guidance.ClassifierFreeGuidance] を参照してください。

start (`float`、デフォルトは`0.01`) : デノイジングステップの総数のうち、ガイダンスが開始される割合。

stop (`float`、デフォルトは`0.2`) : 総デノイジングステップ数のうち、ガイダンスが停止するまでの割合。

Perturbed Attention Guidance (PAG): https://huggingface.co/papers/2403.17377

PAGの直感は、CFGによる予測分布の推定値を、条件付き分布の推定値よりも劣ったバージョンからさらに遠ざけることとして理解できます。PAGは、デノイジングプロセスにおいて自身をより良くガイドするために、学習済みモデルの劣ったバージョンを利用するというアイデアを導入した最初の手法の一つです。この手法は、選択的に選ばれた層においてスコア行列を単位行列に置き換えることで、潜在ストリームのアテンションスコアを擾乱します。

追加の読み物:
- [劣化したモデル自体による拡散モデルの誘導](https://huggingface.co/papers/2406.02507)

PAGは、設定パラメータと実装の詳細に重複があるため、SkipLayerGuidanceと同様の実装で実装されています。

## AdaptiveProjectedGuidance[[diffusers.AdaptiveProjectedGuidance]]

#### diffusers.AdaptiveProjectedGuidance[[diffusers.AdaptiveProjectedGuidance]]

```python
diffusers.AdaptiveProjectedGuidance(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, ...] | None = None, eta: float = 1.0, guidance_rescale: float = 0.0, use_original_formulation: bool = False, start: float = 0.0, stop: float = 1.0, enabled: bool = True)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/guiders/adaptive_projected_guidance.py#L30)

**パラメータ:**

guidance_scale (`float`、デフォルトは`7.5`) : classifier-free guidanceのスケーリングパラメータです。値を大きくするとテキストプロンプトへの条件付けが強くなり、小さくすると生成時の自由度が高まります。ただし、値が大きすぎると飽和や画像品質の低下を引き起こす可能性があります。

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`, defaults to `0.0`) : The rescale factor applied to the noise predictions. This is used to improve image quality and fix overexposure. Based on Section 3.4 from [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891).

use_original_formulation (`bool`、デフォルトは`False`) : 論文で提案された classifier-free guidance の元の定式化を使用するかどうか。デフォルトでは、コードベースに長く存在してきた diffusers ネイティブの実装を使用します。詳細は [~guiders.classifier_free_guidance.ClassifierFreeGuidance] を参照してください。

start (`float`、デフォルトは`0.0`) : デノイジングステップの総数に対する割合で、この割合を超えた後にガイダンスが開始されます。

stop (`float`、デフォルトは`1.0`) : ガイダンスが停止するまでの、デノイジングステップ総数の割合。

Adaptive Projected Guidance (APG): https://huggingface.co/papers/2410.02416

## AutoGuidance[[diffusers.AutoGuidance]]

#### diffusers.AutoGuidance[[diffusers.AutoGuidance]]

```python
diffusers.AutoGuidance(guidance_scale: float = 7.5, auto_guidance_layers: int | list[int] | None = None, auto_guidance_config: LayerSkipConfig | list[LayerSkipConfig] | dict[str, Any] = None, dropout: float | None = None, guidance_rescale: float = 0.0, use_original_formulation: bool = False, start: float = 0.0, stop: float = 1.0, enabled: bool = True)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/guiders/auto_guidance.py#L32)

**パラメータ:**

guidance_scale (`float`、デフォルトは`7.5`) : classifier-free guidanceのスケーリングパラメータです。値を大きくするとテキストプロンプトへの条件付けが強くなり、小さくすると生成時の自由度が高まります。ただし、値が大きすぎると飽和や画像品質の低下を引き起こす可能性があります。

auto_guidance_layers (`int` または `list[int]`、*任意*) : skip layer guidance を適用するレイヤーのインデックスです。単一の整数または整数のリストを指定できます。指定しない場合、`skip_layer_config` を指定する必要があります。

auto_guidance_config (`LayerSkipConfig` または `list[LayerSkipConfig]`、*省略可*) : スキップレイヤーガイダンスの設定です。単一の `LayerSkipConfig` または `LayerSkipConfig` のリストを指定できます。指定しない場合、`skip_layer_guidance_layers` を指定する必要があります。

dropout (`float`, *任意*) : 有効化されたスキップレイヤー（`auto_guidance_layers`または`auto_guidance_config`で指定）におけるautoguidanceのdropout確率です。指定されない場合、dropout確率は1.0に設定されます。

guidance_rescale (`float`, defaults to `0.0`) : The rescale factor applied to the noise predictions. This is used to improve image quality and fix overexposure. Based on Section 3.4 from [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891).

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[[diffusers.TangentialClassifierFreeGuidance]]

#### diffusers.TangentialClassifierFreeGuidance[[diffusers.TangentialClassifierFreeGuidance]]

```python
diffusers.TangentialClassifierFreeGuidance(guidance_scale: float = 7.5, guidance_rescale: float = 0.0, use_original_formulation: bool = False, start: float = 0.0, stop: float = 1.0, enabled: bool = True)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/guiders/tangential_classifier_free_guidance.py#L30)

**パラメータ:**

guidance_scale (`float`、デフォルトは`7.5`) : classifier-free guidanceのスケーリングパラメータです。値を大きくするとテキストプロンプトへの条件付けが強くなり、小さくすると生成時の自由度が高まります。ただし、値が大きすぎると飽和や画像品質の低下を引き起こす可能性があります。

guidance_rescale (`float`, defaults to `0.0`) : The rescale factor applied to the noise predictions. This is used to improve image quality and fix overexposure. Based on Section 3.4 from [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891).

use_original_formulation (`bool`、デフォルトは`False`) : 論文で提案された classifier-free guidance の元の定式化を使用するかどうか。デフォルトでは、コードベースに長く存在してきた diffusers ネイティブの実装を使用します。詳細は [~guiders.classifier_free_guidance.ClassifierFreeGuidance] を参照してください。

start (`float`、デフォルトは`0.0`) : デノイジングステップの総数に対する割合で、この割合を超えた後にガイダンスが開始されます。

stop (`float`、デフォルトは`1.0`) : ガイダンスが停止するまでの、デノイジングステップ総数の割合。

Tangential Classifier Free Guidance (TCFG): https://huggingface.co/papers/2503.18137

## LTX2Guidance[[diffusers.LTX2Guidance]]

#### diffusers.LTX2Guidance[[diffusers.LTX2Guidance]]

```python
diffusers.LTX2Guidance(guidance_scale: float = 1.0, stg_scale: float = 0.0, modality_scale: float = 1.0, guidance_rescale: float = 0.0, spatio_temporal_guidance_blocks: list[int] | None = None, start: float = 0.0, stop: float = 1.0, enabled: bool = True)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/guiders/ltx2_guidance.py#L28)

**パラメータ:**

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 to `0.0`) : Rescaling factor to prevent overexposure from high guidance scales. Based on [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891). Range: 0.0 (no rescaling) to 1.0 (full rescaling).

spatio_temporal_guidance_blocks (`list[int]`, *任意*) : STG パスで摂動を適用する Transformer ブロック。値の消費方法は denoiser ブロックに依存します。LTX-2 はすべてのモダリティに供給する単一の forward でブロック全体を摂動するため、この値は video guider のみから読み取ります。audio guider に設定しても効果はなく、その guider は独自の `stg_scale` を通じて同じ STG forward に参加します。

start (`float`、デフォルトは`0.0`) : ガイダンスが開始されるまでの、デノイジングステップの割合（0.0〜1.0）。

stop (`float`、デフォルトは`1.0`) : ガイダンスが停止するまでの、デノイジングステップの割合（0.0〜1.0）。

enabled (`bool`、デフォルトは`True`) : このguiderがガイダンスを適用するかどうか。`False`の場合、conditional passのみが実行されます。

LTX-2.X用の単一モダリティ・グイダー。デルタ定式化により、最大3つのタームを組み合わせます:
- classifier-free guidance (CFG)、
- 空間時間ガイダンス（STG）、つまり、パーターブされたトランスフォーマーブロックのセットによる追加パス、
- modality-isolation guidance、A2V/V2Aクロスアテンションを無効にした追加パス。

1つのインスタンスが1つのモダリティを駆動するため、マルチモーダルのチェックポイントには複数のインスタンスが含まれます。LTX-2.Xでは、動画用の`guider`と`audio_guider`がペアで構成され、それぞれが独自のスケールを保持しています。最終的なガイダンスの推定値は、呼び出し側が渡す空間で計算されます。LTX-2のデノイザーは、この関数を呼び出す前にvelocity->x0へ変換し、呼び出し後に元に戻すため、`forward`はx0の予測値に対して動作します。

`SkipLayerGuidance` はフックを用いてパーターベーションを適用するのに対し、`LTX2Guidance` は、CFG 以外のパーターベーションがモデルの forward 引数（`LTX2VideoTransformer3DModel` の `spatio_temporal_guidance_blocks` および `isolate_modalities`）を通じて設定可能であることを前提としています。呼び出し元のデノイザーブロックが、各パスごとにそれらの識別子を設定する責任を負います。使用例については `LTX2LoopDenoiser` を参照してください。

