Diffusers documentation

HeliosScheduler

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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

< >

( 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

< >

( 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.

init_sigmas

< >

( )

khởi tạo các bước thời gian và sigma toàn cục

init_sigmas_for_each_stage

< >

( )

Khởi tạo các bước thời gian cho từng giai đoạn

multistep_uni_c_bh_update

< >

( 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ại x_t.
  • this_timestep (int) — Bước thời gian hiện tại t.
  • last_sample (torch.Tensor) — Mẫu được tạo ra trước bộ dự đoán cuối cùng x_{t-1}.
  • this_sample (torch.Tensor) — Mẫu được tạo ra sau bộ dự đoán cuối cùng x_{t}.
  • order (int) — Giá trị p củ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

< >

( 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

< >

( begin_index: int = 0 )

Tham số

  • begin_index (int) — Chỉ số bắt đầu cho trình lập lịch.

Đặ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

< >

( 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

< >

( mu: floatsigma: floatt: Tensor ) → torch.Tensor

Tham số

  • mu (float) — Tham số mu cho phép dịch chuyển thời gian.
  • sigma (float) — Tham số sigma cho phép dịch chuyển thời gian.
  • t (torch.Tensor) — Các bước thời gian đầu vào.

Trả về

torch.Tensor

Các bước thời gian đã dịch chuyển.

Áp dụng dịch chuyển thời gian vào các sigma.

scheduling_helios

Update on GitHub