Diffusers documentation
HeliosScheduler
HeliosScheduler
HeliosScheduler được xây dựng dựa trên phương pháp lấy mẫu khớp dòng hình chóp (pyramidal flow-matching sampling) được giới thiệu trong Helios.
HeliosScheduler
lớp diffusers.HeliosScheduler
< source >( num_train_timesteps: int = 1000shift: float = 1.0stages: int = 3stage_range: list = [0, 0.3333333333333333, 0.6666666666666666, 1]gamma: float = 0.3333333333333333thresholding: bool = Falseprediction_type: str = 'flow_prediction'solver_order: int = 2predict_x0: bool = Truesolver_type: str = 'bh2'lower_order_final: bool = Truedisable_corrector: list = []solver_p: SchedulerMixin = Noneuse_flow_sigmas: bool = Truescheduler_type: str = 'unipc'use_dynamic_shifting: bool = Falsetime_shift_type: typing.Literal['exponential', 'linear'] = 'exponential' )
convert_model_output
< source >( model_output: Tensor*argssample: Tensor = Nonesigma: Tensor = None**kwargs ) → torch.Tensor
Tham số
- model_output (
torch.Tensor) — Đầu ra trực tiếp từ mô hình khuếch tán đã học. - timestep (
int) — Bước thời gian rời rạc hiện tại trong chuỗi khuếch tán. - sample (
torch.Tensor) — Một bản thể hiện hiện tại của mẫu được tạo ra bởi quá trình khuếch tán. - sigma (
torch.Tensor, tùy chọn) — Sigma của bước hiện tại trong lịch trình nhiễu.
Trả về
torch.Tensor
Đầu ra của mô hình đã được chuyển đổi.
Chuyển đổi đầu ra của mô hình sang kiểu tương ứng mà thuật toán UniPC cần.
khởi tạo các bước thời gian và sigma toàn cục
Khởi tạo các bước thời gian cho từng giai đoạn
multistep_uni_c_bh_update
< source >( this_model_output: Tensor*argslast_sample: Tensor = Nonethis_sample: Tensor = Noneorder: int = Nonesigma_before: Tensor = Nonesigma: Tensor = None**kwargs ) → torch.Tensor
Tham số
- this_model_output (
torch.Tensor) — Đầu ra của mô hình tạix_t. - this_timestep (
int) — Bước thời gian hiện tạit. - last_sample (
torch.Tensor) — Mẫu được tạo ra trước bộ dự đoán cuối cùngx_{t-1}. - this_sample (
torch.Tensor) — Mẫu được tạo ra sau bộ dự đoán cuối cùngx_{t}. - order (
int) — Giá trịpcủa UniC-p tại bước này. Bậc chính xác hiệu dụng nên làorder + 1. - sigma_before (
torch.Tensor, tuỳ chọn) — Sigma của bước trước trong lịch trình nhiễu. - sigma (
torch.Tensor, tùy chọn) — Sigma của bước hiện tại trong lịch trình nhiễu.
Trả về
torch.Tensor
Tensor mẫu đã được hiệu chỉnh tại bước thời gian hiện tại.
Một bước cho UniC (phiên bản B(h)).
multistep_uni_p_bh_update
< source >( model_output: Tensor*argssample: Tensor = Noneorder: int = Nonesigma: Tensor = Nonesigma_next: Tensor = None**kwargs ) → torch.Tensor
Tham số
- model_output (
torch.Tensor) — Đầu ra trực tiếp từ mô hình khuếch tán đã học tại bước thời gian hiện tại. - prev_timestep (
int) — Bước thời gian rời rạc trước đó trong chuỗi khuếch tán. - sample (
torch.Tensor) — Một bản thể hiện hiện tại của mẫu được tạo ra bởi quá trình khuếch tán. - order (
int) — Bậc của UniP tại bước thời gian này (tương ứng với p trong UniPC-p). - sigma (
torch.Tensor, tùy chọn) — Sigma của bước hiện tại trong lịch trình nhiễu. - sigma_next (
torch.Tensor, tùy chọn) — Sigma của bước tiếp theo trong lịch trình nhiễu.
Trả về
torch.Tensor
Tensor mẫu tại bước thời gian trước đó.
Một bước cho UniP (phiên bản B(h)). Ngoài ra, self.solver_p sẽ được sử dụng nếu được chỉ định.
set_begin_index
< source >( begin_index: int = 0 )
Đặt chỉ số bắt đầu cho trình lập lịch. Hàm này nên được chạy từ pipeline trước khi suy luận.
set_timesteps
< source >( num_inference_steps: intstage_index: int | None = Nonedevice: typing.Union[str, torch.device] = Nonesigmas: bool | None = Nonemu: bool | None = Noneis_amplify_first_chunk: bool = False )
Đặt các bước thời gian và sigma cho từng giai đoạn
time_shift
< source >( mu: floatsigma: floatt: Tensor ) → torch.Tensor
Áp dụng dịch chuyển thời gian vào các sigma.
scheduling_helios
Update on GitHub