# PiflowScheduler

`PiflowScheduler` là trình lập lịch ít bước của các checkpoint Kandinsky 6 đã chưng cất, bao gồm cả mô hình từ văn bản/ảnh sang video và âm thanh cũng như mô hình siêu phân giải video, và của các checkpoint Kandinsky S2V 1.0 đã chưng cất. Nó triển khai [π-Flow](https://huggingface.co/papers/2510.14974): transformer dự đoán `n_grid` ước lượng khử nhiễu cho mỗi kênh tiềm ẩn tại một số lượng nhỏ các điểm lưới, và trình lập lịch tích hợp một chính sách không cần mạng giữa chúng.

Bản tham chiếu có thể được tìm thấy tại [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)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_piflow.py#L144)

**Tham số:**

num_train_timesteps (`int`, *tuỳ chọn*, mặc định là 1000) : Số bước khuếch tán huấn luyện.

shift (`float`, *tuỳ chọn*, mặc định là 5.0) : Độ dịch của bước thời gian flow-matching.

n_grid (`int`, *tuỳ chọn*, mặc định là 10) : Số lượng dự đoán trong đầu ra mô hình đã mở rộng.

eps (`float`, *tuỳ chọn*, mặc định là 1e-6) : Bước thời gian tối thiểu và mẫu của chính sách.

final_step_size_scale (`float`, *tuỳ chọn*, mặc định là 0.5) : Kích thước tương đối của đoạn raw-timestep cuối cùng.

num_policy_substeps (`int`, *tuỳ chọn*, mặc định là 128) : Số lượng tối đa các bước tích hợp con của chính sách trên mỗi đơn vị bước thô.

Trình lập lịch PiFlow ít bước cho các diffusion transformer có đầu ra mở rộng.

PiFlow đánh giá mô hình khử nhiễu tại một số lượng nhỏ các điểm lưới và tích hợp một chính sách không cần mạng giữa các lần đánh giá đó. Trình lập lịch được thiết kế cho các checkpoint Kandinsky 6 đã được chưng cất, bao gồm mô hình video/âm thanh chính và mô hình siêu phân giải video. Đầu ra mô hình của chúng chứa `n_grid` dự đoán cho mỗi kênh mẫu.

Trình lập lịch này kế thừa từ [SchedulerMixin](/docs/diffusers/v0.43.0/vi/api/schedulers/overview#diffusers.SchedulerMixin) và [ConfigMixin](/docs/diffusers/v0.43.0/vi/api/configuration#diffusers.ConfigMixin). Xem tài liệu của lớp cha để biết các phương thức chung được triển khai cho tất cả các trình lập lịch (tải, lưu, v.v.).

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

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_piflow.py#L224)

**Tham số:**

num_inference_steps (`int`) : Số lần đánh giá mô hình.

device (`str` hoặc `torch.device`, *tùy chọn*) : Thiết bị cho lịch trình.

sigmas (`list[float]`, *tuỳ chọn*) : Lịch sigma tùy chỉnh không được hỗ trợ.

mu (`float`, *tuỳ chọn*) : Tham số dynamic-shift không được hỗ trợ.

timesteps (`list[float]`, *tuỳ chọn*) : Lịch trình bước thời gian tùy chỉnh không được hỗ trợ.

Đặt lịch trình bước thời gian (timestep) của PiFlow đã được chưng cất.

#### bước[[diffusers.PiflowScheduler.step]]

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

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_piflow.py#L331)

**Tham số:**

model_output (*torch.FloatTensor*) : Đầu ra mô hình mở rộng, chứa `n_grid` dự đoán cho mỗi kênh mẫu.

timestep (*float* hoặc *torch.FloatTensor*) : Bước thời gian (timestep) hiện tại của trình lập lịch.

sample (*torch.FloatTensor*) : Mẫu nhiễu hiện tại.

return_dict (*bool*, *optional*, mặc định là True) : Có nên trả về một [*PiflowSchedulerOutput*] hay không.

**Trả về:** [*PiflowSchedulerOutput*] hoặc *tuple*

Mẫu đã cập nhật.

Tiến thêm một bước bằng cách tích hợp chính sách 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)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_piflow.py#L30)

**Tham số:**

prev_sample (`torch.Tensor`) : Mẫu được tính tại điểm lưới PiFlow tiếp theo. Nên được sử dụng làm đầu vào khử nhiễu tiếp theo.

Lớp đầu ra cho kết quả của hàm `step` của trình lập lịch.

