# PiflowScheduler

`PiflowScheduler` est le planificateur à peu d'étapes des points de contrôle distillés de Kandinsky 6, à la fois pour le modèle texte/image-vers-vidéo-et-audio et pour le modèle de super-résolution vidéo, ainsi que des points de contrôle distillés de Kandinsky S2V 1.0. Il implémente [π-Flow](https://huggingface.co/papers/2510.14974) : le transformeur prédit `n_grid` estimations débruitées par canal latent à un petit nombre de points de grille, et le planificateur intègre une politique sans réseau entre eux.

L'implémentation de référence peut être trouvée sur [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)
```

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

**Paramètres :**

num_train_timesteps (`int`, *facultatif*, valeur par défaut 1000) : Nombre d'étapes de diffusion d'entraînement.

shift (`float`, *facultatif*, valeur par défaut 5.0) : Décalage du pas de temps du flow-matching.

n_grid (`int`, *facultatif*, valeur par défaut 10) : Nombre de prédictions dans la sortie élargie du modèle.

eps (`float`, *facultatif*, par défaut 1e-6) : Pas de temps minimal et dénominateur de la politique.

final_step_size_scale (`float`, *facultatif*, par défaut 0.5) : Taille relative du segment final de pas bruts.

num_policy_substeps (`int`, *facultatif*, valeur par défaut 128) : Nombre maximal de sous-étapes d'intégration de la politique par unité de pas brut.

Planificateur PiFlow à peu d'étapes pour les transformeurs de diffusion à sortie élargie.

PiFlow évalue le modèle de débruitage sur un petit nombre de points de grille et intègre une politique sans réseau entre ces évaluations. Le planificateur est destiné aux points de contrôle distillés de Kandinsky 6, y compris le modèle principal vidéo/audio et le modèle de super-résolution vidéo. La sortie de leur modèle contient `n_grid` prédictions par canal d'échantillon.

Ce planificateur hérite de [SchedulerMixin](/docs/diffusers/main/fr/api/schedulers/overview#diffusers.SchedulerMixin) et [ConfigMixin](/docs/diffusers/main/fr/api/configuration#diffusers.ConfigMixin). Consultez la documentation des classes supérieures pour les méthodes génériques implémentées pour tous les planificateurs (chargement, sauvegarde, etc.).

#### 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)
```

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

**Paramètres :**

num_inference_steps (`int`) : Nombre d'évaluations du modèle.

device (`str` ou `torch.device`, *facultatif*) : Appareil pour l'ordonnancement.

sigmas (`list[float]`, *facultatif*) : Planification de sigma personnalisée non prise en charge.

mu (`float`, *facultatif*) : Paramètre de décalage dynamique non pris en charge.

timesteps (`list[float]`, *facultatif*) : Planification d'étapes de temps personnalisée non prise en charge.

Définissez le calendrier des pas de temps PiFlow distillé.

#### étape[[diffusers.PiflowScheduler.step]]

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

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

**Paramètres :**

model_output (*torch.FloatTensor*) : Sortie de modèle élargie contenant `n_grid` prédictions par canal d'échantillon.

timestep (*float* ou *torch.FloatTensor*) : Pas de temps actuel du planificateur.

sample (*torch.FloatTensor*) : Échantillon bruité actuel.

return_dict (*bool*, *facultatif*, valeur par défaut True) : Indique s'il faut retourner un [*PiflowSchedulerOutput*].

**Retourne :** [*PiflowSchedulerOutput*] ou *tuple*

Exemple mis à jour.

Avancez d'un pas en intégrant la politique PiFlow.

## 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)
```

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

**Paramètres :**

prev_sample (`torch.Tensor`) : Échantillon calculé au point de grille PiFlow suivant. Doit être utilisé comme prochaine entrée de débruitage.

Classe de sortie pour la sortie de la fonction `step` du planificateur.

