# ConsistencyDecoderScheduler

このスケジューラーは`ConsistencyDecoderPipeline`の一部であり、[DALL-E 3](https://openai.com/dall-e-3)で導入されました。

元のコードベースは[openai/consistency_models](https://github.com/openai/consistency_models)で確認できます。

## ConsistencyDecoderScheduler[[diffusers.schedulers.ConsistencyDecoderScheduler]]

#### diffusers.schedulers.ConsistencyDecoderScheduler[[diffusers.schedulers.ConsistencyDecoderScheduler]]

```python
diffusers.schedulers.ConsistencyDecoderScheduler(num_train_timesteps: int = 1024, sigma_data: float = 0.5)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_consistency_decoder.py#L80)

**パラメータ:**

num_train_timesteps (`int`、*任意*、デフォルトは`1024`) : モデルを学習するための拡散ステップ数。

sigma_data (`float`、*任意*、デフォルトは `0.5`) : データ分布の標準偏差です。スキップおよび出力のスケーリング係数を計算するために使用されます。

Stable Diffusionのパイプラインで使用されるconsistency decoder用のスケジューラーです。

このスケジューラーは、潜在表現を画像にデコードするために、consistency models を用いた2ステップのデノイジングプロセスを実装しています。

このモデルは [SchedulerMixin](/docs/diffusers/v0.43.0/ja/api/schedulers/overview#diffusers.SchedulerMixin) と [ConfigMixin](/docs/diffusers/v0.43.0/ja/api/configuration#diffusers.ConfigMixin) を継承しています。読み込みや保存など、ライブラリがすべてのスケジューラに対して実装している汎用的なメソッドについては、スーパークラスのドキュメントを参照してください。

#### scale_model_input[[diffusers.schedulers.ConsistencyDecoderScheduler.scale_model_input]]

```python
scale_model_input(sample: Tensor, timestep: int | None = None)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_consistency_decoder.py#L148)

**パラメータ:**

sample (`torch.Tensor`) : 入力サンプル。

timestep (`int`, *任意*) : 拡散チェーンにおける現在のタイムステップ。

**戻り値:** `torch.Tensor`

スケーリングされた入力サンプル。

現在のタイムステップに応じて、デノイジングモデルの入力をスケーリングする必要があるスケジューラとの相互運用性を保証します。

#### ステップ[[diffusers.schedulers.ConsistencyDecoderScheduler.step]]

```python
step(model_output: Tensor, timestep: typing.Union[float, torch.Tensor], sample: Tensor, generator: typing.Optional[torch.Generator] = None, return_dict: bool = True)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_consistency_decoder.py#L165)

**パラメータ:**

model_output (`torch.Tensor`) : 学習済み拡散モデルからの直接の出力です。

timestep (`float` または `torch.Tensor`) : 拡散チェーンにおける現在のタイムステップ。

sample (`torch.Tensor`) : 拡散プロセスによって生成されたサンプルの現在のインスタンス。

generator (`torch.Generator`, *任意*) : 再現性のために使用する乱数生成器。

return_dict (`bool`、*任意*、デフォルトは`True`) : `ConsistencyDecoderSchedulerOutput`を返すか`tuple`を返すかを指定します。

**戻り値:** `ConsistencyDecoderSchedulerOutput` または `tuple`

`return_dict` が `True` の場合、`ConsistencyDecoderSchedulerOutput` が返され、それ以外の場合は、最初の要素がサンプルテンソルであるタプルが返されます。

前回のタイムステップからのサンプルを、SDEを逆方向に適用することで予測します。この関数は、学習済みモデルの出力（最もよく使われるのは予測ノイズ）から拡散過程を伝播させます。

