# PiflowScheduler

`PiflowScheduler` é o scheduler de poucas etapas dos checkpoints destilados do Kandinsky 6, tanto do modelo de texto/imagem para vídeo e áudio quanto do modelo de super-resolução de vídeo, e dos checkpoints destilados do Kandinsky S2V 1.0. Ele implementa [π-Flow](https://huggingface.co/papers/2510.14974): o transformer prevê `n_grid` estimativas desruídas por canal latente em um pequeno número de pontos de grade, e o scheduler integra uma política sem rede entre eles.

A implementação de referência pode ser encontrada em [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)
```

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

**Parâmetros:**

num_train_timesteps (`int`, *opcional*, padrão 1000) : Número de etapas de difusão de treinamento.

shift (`float`, *opcional*, padrão 5.0) : Deslocamento do passo de tempo do flow-matching.

n_grid (`int`, *opcional*, padrão 10) : Número de previsões na saída do modelo expandido.

eps (`float`, *opcional*, padrão 1e-6) : Timestep mínimo e denominador da política.

final_step_size_scale (`float`, *opcional*, padrão 0.5) : Tamanho relativo do segmento final de timestep bruto.

num_policy_substeps (`int`, *opcional*, padrão 128) : Número máximo de subpassos de integração de política por unidade de timestep bruto.

Agendador PiFlow de poucas etapas para transformadores de difusão com saída ampliada.

O PiFlow avalia o modelo de remoção de ruído em um pequeno número de pontos de grade e integra uma política sem rede entre essas avaliações. O agendador é destinado a checkpoints destilados do Kandinsky 6, incluindo o modelo principal de vídeo/áudio e o modelo de super-resolução de vídeo. A saída do modelo deles contém `n_grid` previsões por canal de amostra.

Este agendador herda de [SchedulerMixin](/docs/diffusers/main/pt/api/schedulers/overview#diffusers.SchedulerMixin) e [ConfigMixin](/docs/diffusers/main/pt/api/configuration#diffusers.ConfigMixin). Consulte a documentação da superclasse para os métodos genéricos implementados para todos os agendadores (carregamento, salvamento, 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)
```

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

**Parâmetros:**

num_inference_steps (`int`) : Número de avaliações do modelo.

device (`str` ou `torch.device`, *opcional*) : Dispositivo para o agendamento.

sigmas (`list[float]`, *opcional*) : Agenda de sigma personalizada não suportada.

mu (`float`, *opcional*) : Parâmetro de deslocamento dinâmico não suportado.

timesteps (`list[float]`, *opcional*) : Agenda de passo de tempo personalizada não suportada.

Defina o cronograma de passos de tempo do PiFlow destilado.

#### etapa[[diffusers.PiflowScheduler.step]]

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

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

**Parâmetros:**

model_output (*torch.FloatTensor*) : Saída do modelo ampliada contendo `n_grid` previsões por canal de amostra.

timestep (*float* ou *torch.FloatTensor*) : Etapa atual do agendador.

sample (*torch.FloatTensor*) : Amostra ruidosa atual.

return_dict (*bool*, *opcional*, padrão True) : Se deve retornar um [*PiflowSchedulerOutput*].

**Retorna:** [*PiflowSchedulerOutput*] ou *tuple*

Amostra atualizada.

Avance um passo integrando a política 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)
```

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

**Parâmetros:**

prev_sample (`torch.Tensor`) : Amostra calculada no próximo ponto da grade PiFlow. Deve ser usado como a próxima entrada de desruidamento.

Classe de saída para a saída da função `step` do agendador.

