Diffusers documentation
FlowMatchEulerDiscreteScheduler
FlowMatchEulerDiscreteScheduler
FlowMatchEulerDiscreteScheduler didasarkan pada sampling flow-matching yang diperkenalkan dalam Stable Diffusion 3.
FlowMatchEulerDiscreteScheduler
kelas diffusers.FlowMatchEulerDiscreteScheduler
< source >( num_train_timesteps: int = 1000shift: float = 1.0use_dynamic_shifting: bool = Falsebase_shift: float | None = 0.5max_shift: float | None = 1.15base_image_seq_len: int = 256max_image_seq_len: int = 4096invert_sigmas: bool = Falseshift_terminal: float = Noneuse_karras_sigmas: bool = Falseuse_exponential_sigmas: bool = Falseuse_beta_sigmas: bool = Falsetime_shift_type: typing.Literal['exponential', 'linear'] = 'exponential'stochastic_sampling: bool = False )
Parameter
- num_train_timesteps (
int, defaultnya 1000) — Jumlah langkah difusi untuk melatih model. - shift (
float, defaultnya 1.0) — Nilai shift untuk jadwal timestep. - use_dynamic_shifting (
bool, defaultnya False) — Apakah akan menerapkan pergeseran timestep secara langsung berdasarkan resolusi gambar. - base_shift (
float, default 0.5) — Nilai untuk menstabilkan generasi gambar. Meningkatkanbase_shiftmengurangi variasi dan gambar menjadi lebih konsisten dengan output yang diinginkan. - max_shift (
float, default 1.15) — Perubahan nilai yang diizinkan untuk vektor laten. Meningkatkanmax_shiftmendorong variasi yang lebih besar dan gambar mungkin menjadi lebih berlebihan atau bergaya. - base_image_seq_len (
int, defaultnya 256) — Panjang sekuens gambar dasar. - max_image_seq_len (
int, defaultnya 4096) — Panjang urutan gambar maksimum. - invert_sigmas (
bool, defaultnya False) — Apakah akan membalik sigmas. - shift_terminal (
float, defaultnya None) — Nilai akhir dari jadwal timestep yang digeser. - use_karras_sigmas (
bool, defaultnya False) — Apakah akan menggunakan Karras sigmas untuk ukuran langkah dalam jadwal noise selama sampling. - use_exponential_sigmas (
bool, defaultnya False) — Apakah akan menggunakan sigma eksponensial untuk ukuran langkah dalam jadwal noise selama sampling. - use_beta_sigmas (
bool, defaultnya False) — Apakah akan menggunakan beta sigmas untuk ukuran langkah dalam jadwal noise selama sampling. - time_shift_type (
str, defaultnya “exponential”) — Jenis pergeseran timestep yang bergantung pada resolusi dinamis yang akan diterapkan. Bisa berupa “exponential” atau “linear”. - stochastic_sampling (
bool, defaultnya False) — Apakah akan menggunakan stochastic sampling.
Scheduler Euler.
Model ini mewarisi dari SchedulerMixin dan ConfigMixin. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan pustaka ini untuk semua scheduler, seperti pemuatan dan penyimpanan.
index_for_timestep
< source >( timestep: typing.Union[float, torch.FloatTensor]schedule_timesteps: typing.Optional[torch.FloatTensor] = None ) → int
Dapatkan indeks untuk timestep yang diberikan.
scale_noise
< source >( sample: FloatTensortimestep: typing.Union[float, torch.FloatTensor]noise: typing.Optional[torch.FloatTensor] = None ) → torch.FloatTensor
Proses maju dalam flow-matching
set_begin_index
< source >( begin_index: int = 0 )
Menetapkan indeks awal untuk penjadwal. Fungsi ini harus dijalankan dari pipeline sebelum inferensi.
Menetapkan nilai pergeseran untuk penjadwal.
set_timesteps
< source >( num_inference_steps: int | None = Nonedevice: typing.Union[str, torch.device] = Nonesigmas: list[float] | None = Nonemu: float | None = Nonetimesteps: list[float] | None = None )
Parameter
- num_inference_steps (
int, opsional) — Jumlah langkah difusi yang digunakan saat menghasilkan sampel dengan model terlatih. - device (
stratautorch.device, opsional) — Perangkat tempat timesteps harus dipindahkan. JikaNone, timesteps tidak dipindahkan. - sigmas (
list[float], opsional) — Nilai kustom untuk sigmas yang akan digunakan untuk setiap langkah difusi. JikaNone, sigmas dihitung secara otomatis. - mu (
float, opsional) — Menentukan jumlah pergeseran yang diterapkan pada sigmas saat melakukan pergeseran timestep yang bergantung pada resolusi. - timesteps (
list[float], opsional) — Nilai kustom untuk timesteps yang akan digunakan untuk setiap langkah difusi. JikaNone, timesteps dihitung secara otomatis.
Menetapkan langkah waktu diskrit yang digunakan untuk rantai difusi (untuk dijalankan sebelum inferensi).
langkah
< source >( model_output: FloatTensortimestep: typing.Union[float, torch.FloatTensor]sample: FloatTensors_churn: float = 0.0s_tmin: float = 0.0s_tmax: float = infs_noise: float = 1.0generator: typing.Optional[torch.Generator] = Noneper_token_timesteps: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True ) → FlowMatchEulerDiscreteSchedulerOutput or tuple
Parameter
- model_output (
torch.FloatTensor) — Output langsung dari model difusi yang dipelajari. - timestep (
float) — Timestep diskrit saat ini dalam rantai difusi. - sample (
torch.FloatTensor) — Instans saat ini dari sampel yang dibuat oleh proses difusi. - s_churn (
float) — - s_tmin (
float) — - s_tmax (
float) — - s_noise (
float, defaultnya 1.0) — Faktor penskalaan untuk noise yang ditambahkan ke sampel. - generator (
torch.Generator, opsional) — Generator angka acak. - per_token_timesteps (
torch.Tensor, opsional) — Timesteps untuk setiap token dalam sampel. - return_dict (
bool, defaultnyaTrue) — Apakah akan mengembalikanFlowMatchEulerDiscreteSchedulerOutputatau tuple.
Mengembalikan
FlowMatchEulerDiscreteSchedulerOutput atau tuple
Jika True,
FlowMatchEulerDiscreteSchedulerOutput dikembalikan,
sebaliknya sebuah tuple dikembalikan di mana elemen pertama adalah tensor sampel.
Prediksi sampel dari langkah waktu sebelumnya dengan membalik SDE. Fungsi ini menyebarkan proses difusi dari keluaran model yang dipelajari (paling sering berupa noise yang diprediksi).
stretch_shift_to_terminal
< source >( t: Tensor ) → torch.Tensor
Melakukan peregangan dan pergeseran pada jadwal timestep untuk memastikan bahwa jadwal tersebut berakhir pada nilai konfigurasi shift_terminal yang telah diatur.
time_shift
< source >( mu: floatsigma: floatt: Tensor ) → torch.Tensor
Terapkan pergeseran waktu ke sigmas.