# PiflowScheduler

`PiflowScheduler` は、蒸留済みの Kandinsky 6 チェックポイント（テキスト/画像から動画と音声への変換モデルおよび動画スーパーリゾリューションモデル）と、蒸留済みの Kandinsky S2V 1.0 チェックポイントで用いられる、ステップ数が少ないスケジューラーです。[π-Flow](https://huggingface.co/papers/2510.14974) を実装しており、トランスフォーマーが少数のグリッドポイントにおいて、潜在チャネルごとに `n_grid` 個のノイズ除去推定値を予測し、スケジューラーがそれらの間でネットワークを必要としないポリシーを積分します。

参照実装は[Lakonik/LakonLab](https://github.com/Lakonik/LakonLab)で確認できます。

## PiflowScheduler[[diffusers.PiflowScheduler]]

#### diffusers.PiflowScheduler[[diffusers.PiflowScheduler]]

```python
diffusers.PiflowScheduler(num_train_timesteps: int = 1000, shift: float = 5.0, n_grid: int = 10, eps: float = 1e-06, final_step_size_scale: float = 0.5, num_policy_substeps: int = 128)
```

[ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_piflow.py#L144)

**パラメータ:**

num_train_timesteps (`int`、*optional*、デフォルトは 1000) : 学習用の拡散ステップ数。

shift (`float`、*任意*、デフォルト値は 5.0) : Flow-matching のタイムステップシフト。

n_grid (`int`、*optional*、デフォルトは 10) : 拡張されたモデル出力に含まれる予測の数。

eps (`float`、*任意*、デフォルト値は 1e-6) : 最小タイムステップおよびポリシーの分母。

final_step_size_scale (`float`、*任意*、デフォルトは 0.5) : 最終的な raw-timestep セグメントの相対的なサイズ。

num_policy_substeps (`int`、*任意*、デフォルトは 128) : 1 つの raw-timestep 単位あたりの最大 policy integration サブステップ数。

出力幅を広げた拡散トランスフォーマー向けの、ステップ数が少ないPiFlowスケジューラー。

PiFlowは、少数のグリッドポイントでデノイジングモデルを評価し、それらの評価の間にネットワークフリーのポリシーを統合します。このスケジューラは、蒸留済みのKandinsky 6チェックポイント（メインの動画/音声モデルおよび動画スーパーリゾリューションモデルを含む）向けに設計されています。これらのモデルの出力には、サンプルチャネルごとに`n_grid`個の予測が含まれます。

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

#### set_timesteps[[diffusers.PiflowScheduler.set_timesteps]]

```python
set_timesteps(num_inference_steps: int | None = None, device: typing.Union[str, torch.device, NoneType] = None, sigmas: list[float] | None = None, mu: float | None = None, timesteps: list[float] | None = None)
```

[ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_piflow.py#L224)

**パラメータ:**

num_inference_steps (`int`) : モデルの評価回数。

device (`str` または `torch.device`、*任意*) : スケジュールに使用するデバイス。

sigmas (`list[float]`、*任意*) : 未対応のカスタム sigma スケジュール。

mu (`float`, *任意*) : 未対応の dynamic-shift パラメータ。

timesteps (`list[float]`、*任意*) : 未対応のカスタムタイムステップスケジュール。

蒸留済み PiFlow のタイムステップスケジュールを設定します。

#### ステップ[[diffusers.PiflowScheduler.step]]

```python
step(model_output: FloatTensor, timestep: typing.Union[float, torch.FloatTensor], sample: FloatTensor, return_dict: bool = True)
```

[ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_piflow.py#L331)

**パラメータ:**

model_output (*torch.FloatTensor*) : サンプルチャネルごとに`n_grid`個の予測を含む、幅を広げたモデルの出力。

timestep (*float* または *torch.FloatTensor*) : 現在のスケジューラのタイムステップ。

sample (*torch.FloatTensor*) : 現在のノイズ付きサンプル。

return_dict (*bool*、*optional*、デフォルトは True) : [*PiflowSchedulerOutput*] を返すかどうか。

**戻り値:** [*PiflowSchedulerOutput*] または *tuple*

更新されたサンプル。

PiFlow ポリシーを統合して、1ステップ進めます。

## PiflowSchedulerOutput[[diffusers.schedulers.scheduling_piflow.PiflowSchedulerOutput]]

#### diffusers.schedulers.scheduling_piflow.PiflowSchedulerOutput[[diffusers.schedulers.scheduling_piflow.PiflowSchedulerOutput]]

```python
diffusers.schedulers.scheduling_piflow.PiflowSchedulerOutput(prev_sample: Tensor)
```

[ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_piflow.py#L30)

**パラメータ:**

prev_sample (`torch.Tensor`) : 次の PiFlow グリッドポイントで計算されたサンプル。次のデノイジング入力として使用する必要があります。

スケジューラの`step`関数の出力用のクラス。

