Diffusers documentation
PiflowScheduler
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: transformer dự đoán n_grid ước lượng khử nhiễu trên 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.
PiflowScheduler
lớp diffusers.PiflowScheduler
< source >( num_train_timesteps: int = 1000shift: float = 5.0n_grid: int = 10eps: float = 1e-06final_step_size_scale: float = 0.5num_policy_substeps: int = 128 )
Tham số
- num_train_timesteps (
int, tùy chọn, mặc định là 1000) — Số bước khuếch tán huấn luyện. - shift (
float, tùy chọn, mặc định là 5.0) — Độ dịch chuyển bước thời gian (timestep) của flow-matching. - n_grid (
int, tùy chọn, mặc định là 10) — Số lượng dự đoán trong đầu ra mô hình đã mở rộng. - eps (
float, tùy chọn, mặc định là 1e-6) — Bước thời gian tối thiểu và mẫu số của chính sách. - final_step_size_scale (
float, tùy chọn, mặc định là 0.5) — Kích thước tương đối của đoạn bước thô cuối cùng. - num_policy_substeps (
int, tùy chọn, mặc định là 128) — Số lượng bước con tích hợp chính sách tối đa 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 đã được chưng cất của Kandinsky 6, 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 và 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
< source >( num_inference_steps: int | None = Nonedevice: typing.Union[str, torch.device, NoneType] = Nonesigmas: list[float] | None = Nonemu: float | None = Nonetimesteps: list[float] | None = None )
Tham số
- num_inference_steps (
int) — Số lần đánh giá mô hình. - device (
strhoặctorch.device, tùy chọn) — Thiết bị cho lịch trình. - sigmas (
list[float], tùy 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], tùy 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
< source >( model_output: FloatTensortimestep: typing.Union[float, torch.FloatTensor]sample: FloatTensorreturn_dict: bool = True ) → [PiflowSchedulerOutput] or tuple
Tham số
- model_output (torch.FloatTensor) — Đầu ra mô hình đã mở rộng, chứa
n_griddự đoán cho mỗi kênh của mỗi mẫu. - timestep (float hoặc torch.FloatTensor) — Timestep hiện tại của scheduler.
- sample (torch.FloatTensor) — Mẫu nhiễu hiện tại.
- return_dict (bool, tuỳ chọn, 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
lớp diffusers.schedulers.scheduling_piflow.PiflowSchedulerOutput
< source >( prev_sample: Tensor )
Lớp đầu ra cho kết quả của hàm step của trình lập lịch.