Diffusers documentation

CogVideoXDDIMScheduler

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

CogVideoXDDIMScheduler

CogVideoXDDIMScheduler didasarkan pada Denoising Diffusion Implicit Models, khususnya untuk model CogVideoX.

CogVideoXDDIMScheduler

kelas diffusers.CogVideoXDDIMScheduler

< >

( num_train_timesteps: int = 1000beta_start: float = 0.00085beta_end: float = 0.012beta_schedule: typing.Literal['linear', 'scaled_linear', 'squaredcos_cap_v2'] = 'scaled_linear'trained_betas: numpy.ndarray | list[float] | None = Noneclip_sample: bool = Trueset_alpha_to_one: bool = Truesteps_offset: int = 0prediction_type: typing.Literal['epsilon', 'sample', 'v_prediction'] = 'epsilon'clip_sample_range: float = 1.0sample_max_value: float = 1.0timestep_spacing: typing.Literal['linspace', 'leading', 'trailing'] = 'leading'rescale_betas_zero_snr: bool = Falsesnr_shift_scale: float = 3.0 )

Parameter

  • num_train_timesteps (int, defaultnya 1000) — Jumlah langkah difusi untuk melatih model.
  • beta_start (float, defaultnya 0.00085) — Nilai beta awal untuk inferensi.
  • beta_end (float, defaultnya 0.0120) — Nilai beta akhir.
  • beta_schedule (str, defaultnya "scaled_linear") — Jadwal beta, pemetaan dari rentang beta ke urutan beta untuk melangkahkan model. Pilih dari linear, scaled_linear, atau squaredcos_cap_v2.
  • trained_betas (np.ndarray, opsional) — Lewati beta_start dan beta_end dengan meneruskan array betas langsung ke konstruktor.
  • clip_sample (bool, defaultnya True) — Memotong sampel yang diprediksi untuk stabilitas numerik.
  • clip_sample_range (float, default 1.0) — Magnitudo maksimum untuk pemotongan sampel. Hanya valid ketika clip_sample=True.
  • set_alpha_to_one (bool, defaultnya True) — Setiap langkah difusi menggunakan nilai produk alfa pada langkah tersebut dan pada langkah sebelumnya. Untuk langkah terakhir, tidak ada alfa sebelumnya. Ketika opsi ini True, produk alfa sebelumnya ditetapkan ke 1, selain itu menggunakan nilai alfa pada langkah 0.
  • steps_offset (int, defaultnya 0) — Offset yang ditambahkan ke langkah inferensi, sesuai kebutuhan beberapa keluarga model.
  • prediction_type (str, defaults to epsilon, optional) — Prediction type of the scheduler function; can be epsilon (predicts the noise of the diffusion process), sample (directly predicts the noisy sample) or v_prediction` (see section 2.4 of Imagen Video paper).
  • thresholding (bool, defaultnya False) — Apakah akan menggunakan metode “dynamic thresholding”. Metode ini tidak cocok untuk model difusi ruang laten seperti Stable Diffusion.
  • dynamic_thresholding_ratio (float, default 0.995) — Rasio untuk metode thresholding dinamis. Hanya valid ketika thresholding=True.
  • sample_max_value (float, defaultnya 1.0) — Nilai ambang untuk pengambangan dinamis. Hanya valid ketika thresholding=True.
  • timestep_spacing (str, defaultnya "leading") — Cara timestep harus diskalakan. Lihat Tabel 2 dari Common Diffusion Noise Schedules and Sample Steps are Flawed untuk informasi lebih lanjut.
  • rescale_betas_zero_snr (bool, defaultnya False) — Apakah akan menskalakan ulang betas agar memiliki SNR terminal nol. Hal ini memungkinkan model untuk menghasilkan sampel yang sangat terang dan gelap, alih-alih membatasi pada sampel dengan kecerahan sedang. Terkait secara longgar dengan --offset_noise.
  • snr_shift_scale (float, defaultnya 3.0) — Skala pergeseran untuk SNR.

DDIMScheduler memperluas prosedur denoising yang diperkenalkan dalam denoising diffusion probabilistic models (DDPM) dengan panduan non-Markovian.

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.

add_noise

< >

( original_samples: Tensornoise: Tensortimesteps: IntTensor ) → torch.Tensor

Parameter

  • original_samples (torch.Tensor) — Sampel asli yang akan ditambahkan dengan noise.
  • noise (torch.Tensor) — Noise yang akan ditambahkan ke sampel.
  • timesteps (torch.IntTensor) — Timesteps yang menunjukkan tingkat noise untuk setiap sampel.

Mengembalikan

torch.Tensor

Sampel yang bising.

Tambahkan noise ke sampel asli sesuai dengan magnitudo noise pada setiap timestep (ini adalah proses difusi maju).

get_velocity

< >

( sample: Tensornoise: Tensortimesteps: IntTensor ) → torch.Tensor

Parameter

  • sample (torch.Tensor) — Contoh input.
  • noise (torch.Tensor) — Tensor noise.
  • timesteps (torch.IntTensor) — Timesteps untuk komputasi kecepatan.

Mengembalikan

torch.Tensor

Kecepatan yang dihitung.

Hitung prediksi kecepatan dari sampel dan noise sesuai dengan rumus kecepatan.

scale_model_input

< >

( sample: Tensortimestep: int = None ) → torch.Tensor

Parameter

  • sample (torch.Tensor) — Contoh input.
  • timestep (int, opsional) — Timestep saat ini dalam rantai difusi.

Mengembalikan

torch.Tensor

Contoh input yang diskalakan.

Memastikan interoperabilitas dengan scheduler yang perlu menskalakan input model denoising berdasarkan timestep saat ini.

set_timesteps

< >

( num_inference_steps: intdevice: typing.Union[str, torch.device, NoneType] = None )

Parameter

  • num_inference_steps (int) — 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.

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

langkah

< >

( model_output: Tensortimestep: intsample: Tensoreta: float = 0.0use_clipped_model_output: bool = Falsegenerator: typing.Optional[torch.Generator] = Nonevariance_noise: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True ) → DDIMSchedulerOutput or tuple

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.
  • eta (float) — Bobot noise untuk noise yang ditambahkan pada langkah difusi.
  • use_clipped_model_output (bool, defaultnya False) — Jika True, menghitung model_output yang “dikoreksi” dari sampel asli prediksi yang dipangkas. Hal ini diperlukan karena sampel asli prediksi dipangkas ke [-1, 1] ketika self.config.clip_sample bernilai True. Jika tidak ada pemangkasan yang terjadi, model_output yang “dikoreksi” akan sama dengan yang diberikan sebagai input dan use_clipped_model_output tidak memiliki efek.
  • generator (torch.Generator, opsional) — Generator angka acak.
  • variance_noise (torch.Tensor) — Alternatif untuk menghasilkan noise dengan generator dengan langsung menyediakan noise untuk varians itu sendiri. Berguna untuk metode seperti CycleDiffusion.
  • return_dict (bool, opsional, default True) — Apakah akan mengembalikan DDIMSchedulerOutput atau tuple.

Mengembalikan

DDIMSchedulerOutput atau tuple

Jika `return_dict` adalah True, DDIMSchedulerOutput dikembalikan, selain itu 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).

Update on GitHub