Diffusers documentation

FlowMatchEulerDiscreteScheduler

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

FlowMatchEulerDiscreteScheduler

FlowMatchEulerDiscreteScheduler didasarkan pada sampling flow-matching yang diperkenalkan dalam Stable Diffusion 3.

FlowMatchEulerDiscreteScheduler

kelas diffusers.FlowMatchEulerDiscreteScheduler

< >

( 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. Meningkatkan base_shift mengurangi variasi dan gambar menjadi lebih konsisten dengan output yang diinginkan.
  • max_shift (float, default 1.15) — Perubahan nilai yang diizinkan untuk vektor laten. Meningkatkan max_shift mendorong 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

< >

( timestep: typing.Union[float, torch.FloatTensor]schedule_timesteps: typing.Optional[torch.FloatTensor] = None ) → int

Parameter

  • timestep (float atau torch.FloatTensor) — Timestep untuk menemukan indeksnya.
  • schedule_timesteps (torch.FloatTensor, opsional) — Timesteps jadwal untuk divalidasi. Jika None, timesteps dari scheduler yang digunakan.

Mengembalikan

int

Indeks dari timestep.

Dapatkan indeks untuk timestep yang diberikan.

scale_noise

< >

( sample: FloatTensortimestep: typing.Union[float, torch.FloatTensor]noise: typing.Optional[torch.FloatTensor] = None ) → torch.FloatTensor

Parameter

  • sample (torch.FloatTensor) — Contoh input.
  • timestep (torch.FloatTensor) — Timestep saat ini dalam rantai difusi.
  • noise (torch.FloatTensor) — Tensor noise.

Mengembalikan

torch.FloatTensor

Contoh input yang diskalakan.

Proses maju dalam flow-matching

set_begin_index

< >

( begin_index: int = 0 )

Parameter

  • begin_index (int, defaultnya 0) — Indeks awal untuk scheduler.

Menetapkan indeks awal untuk penjadwal. Fungsi ini harus dijalankan dari pipeline sebelum inferensi.

set_shift

< >

( shift: float )

Parameter

  • shift (float) — Nilai shift yang akan disetel.

Menetapkan nilai pergeseran untuk penjadwal.

set_timesteps

< >

( 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 (str atau torch.device, opsional) — Perangkat tempat timesteps harus dipindahkan. Jika None, timesteps tidak dipindahkan.
  • sigmas (list[float], opsional) — Nilai kustom untuk sigmas yang akan digunakan untuk setiap langkah difusi. Jika None, 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. Jika None, timesteps dihitung secara otomatis.

Menetapkan langkah waktu diskrit yang digunakan untuk rantai difusi (untuk dijalankan sebelum inferensi).

langkah

< >

( 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, defaultnya True) — Apakah akan mengembalikan FlowMatchEulerDiscreteSchedulerOutput atau 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

< >

( t: Tensor ) → torch.Tensor

Parameter

  • t (torch.Tensor) — Tensor berisi timestep yang akan diregangkan dan digeser.

Mengembalikan

torch.Tensor

Tensor dari timestep yang disesuaikan sehingga nilai akhirnya sama dengan self.config.shift_terminal.

Melakukan peregangan dan pergeseran pada jadwal timestep untuk memastikan bahwa jadwal tersebut berakhir pada nilai konfigurasi shift_terminal yang telah diatur.

Referensi: https://github.com/Lightricks/LTX-Video/blob/a01a171f8fe3d99dce2728d60a73fecf4d4238ae/ltx_video/schedulers/rf.py#L51

time_shift

< >

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

Parameter

  • mu (float) — Parameter mu untuk pergeseran waktu.
  • sigma (float) — Parameter sigma untuk pergeseran waktu.
  • t (torch.Tensor) — Langkah waktu input.

Mengembalikan

torch.Tensor

Langkah-langkah waktu yang digeser.

Terapkan pergeseran waktu ke sigmas.

Update on GitHub