Diffusers documentation
HeliosScheduler
HeliosScheduler
HeliosScheduler didasarkan pada sampling flow-matching piramidal yang diperkenalkan dalam Helios.
HeliosScheduler
kelas 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
Parameter
- model_output (
torch.Tensor) — Output langsung dari model difusi yang dipelajari. - timestep (
int) — Timestep diskrit saat ini dalam rantai difusi. - sample (
torch.Tensor) — Instans saat ini dari sampel yang dibuat oleh proses difusi. - sigma (
torch.Tensor, opsional) — Sigma dari langkah saat ini dalam jadwal noise.
Mengembalikan
torch.Tensor
Output model yang telah dikonversi.
Konversi keluaran model ke tipe yang sesuai yang dibutuhkan oleh algoritma UniPC.
inisialisasi timesteps dan sigmas global
Inisialisasi timesteps untuk setiap tahap
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
Parameter
- this_model_output (
torch.Tensor) — Output model padax_t. - this_timestep (
int) — Timestep saat init. - last_sample (
torch.Tensor) — Sampel yang dihasilkan sebelum predictor terakhirx_{t-1}. - this_sample (
torch.Tensor) — Sampel yang dihasilkan setelah predictor terakhirx_{t}. - order (
int) — Nilaipdari UniC-p pada langkah ini. Orde akurasi efektif seharusnyaorder + 1. - sigma_before (
torch.Tensor, opsional) — Sigma dari langkah sebelumnya dalam jadwal noise. - sigma (
torch.Tensor, opsional) — Sigma dari langkah saat ini dalam jadwal noise.
Mengembalikan
torch.Tensor
Tensor sampel yang dikoreksi pada langkah waktu saat ini.
Satu langkah untuk UniC (versi B(h)).
multistep_uni_p_bh_update
< source >( model_output: Tensor*argssample: Tensor = Noneorder: int = Nonesigma: Tensor = Nonesigma_next: Tensor = None**kwargs ) → torch.Tensor
Parameter
- model_output (
torch.Tensor) — Output langsung dari model difusi yang dipelajari pada timestep saat ini. - prev_timestep (
int) — Langkah waktu diskrit sebelumnya dalam rantai difusi. - sample (
torch.Tensor) — Instans saat ini dari sampel yang dibuat oleh proses difusi. - order (
int) — Urutan UniP pada timestep ini (sesuai dengan p dalam UniPC-p). - sigma (
torch.Tensor, opsional) — Sigma dari langkah saat ini dalam jadwal noise. - sigma_next (
torch.Tensor, opsional) — Sigma dari langkah berikutnya dalam jadwal noise.
Mengembalikan
torch.Tensor
Tensor sampel pada langkah waktu sebelumnya.
Satu langkah untuk UniP (versi B(h)). Sebagai alternatif, self.solver_p digunakan jika ditentukan.
set_begin_index
< source >( begin_index: int = 0 )
Menetapkan indeks awal untuk penjadwal. Fungsi ini harus dijalankan dari pipeline sebelum inferensi.
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 )
Mengatur timesteps dan sigmas untuk setiap tahap
time_shift
< source >( mu: floatsigma: floatt: Tensor ) → torch.Tensor
Terapkan pergeseran waktu ke sigmas.
scheduling_helios
Update on GitHub