Diffusers documentation

MiniMaxH3Scheduler

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

MiniMaxH3Scheduler

MiniMaxH3Scheduler, MiniMax-H3 tarafından kullanılan, üstel sigma kaydırması (sigma' = s * sigma / (1 + (s - 1) * sigma)) içeren düzeltilmiş akış Euler zamanlayıcısıdır (eta = 0).

MiniMax-H3 pipeline'ları bunlardan ikisini kaydeder, çünkü video ve ses latentleri, adım başına tek bir transformer çağrısı içinde iki farklı zaman çizelgesi üzerinden ilerler: scheduler video zaman çizelgesini (shift=12.0 yayınlanan checkpoint'lerde) ve audio_scheduler ses zaman çizelgesini (shift=3.0) taşır.

MiniMaxH3Scheduler

sınıf diffusers.MiniMaxH3Scheduler

< >

( shift: float = 12.0stochastic_sampling: bool = Falseshift_provided_sigmas: bool | None = None )

Parametreler

  • shift (float, varsayılan 12.0) — Sigma ızgarasına uygulanan üstel kaydırma, sigma' = s*sigma / (1 + (s-1)*sigma). Yayınlanan kontrol noktaları, video latentleri için 12.0 ve ses latentleri için 3.0 kullanır.
  • stochastic_sampling (bool, varsayılan False) — Euler karışımını yeniden gürültüleme güncellemesiyle değiştirir: temiz örneği tahmin eder, ardından onu yeni gürültüyle bir sonraki sigma değerine yeniden gürültüler. Az adımlı Pika H3 Flex adaptörleri bu güncelleme için eğitildi; temel kontrol noktaları (checkpoints) eğitilmedi.
  • shift_provided_sigmas (bool, isteğe bağlı) — set_timesteps() fonksiyonuna iletilen açık sigmas değerlerinin, zamanlayıcının linspace ızgarası gibi kaydırıldığı bir temel ızgara mı yoksa olduğu gibi alınan tamamlanmış bir zaman çizelgesi mi olduğunu belirtir. Ayarlanmamışsa, bir kullanım dışı bırakma uyarısıyla birlikte olduğu gibi alınır; 0.44.0 sürümünde varsayılan değer True olur.

MiniMax-H3 tarafından kullanılan, üstel sigma kaymasına sahip düzeltilmiş akış Euler zamanlayıcısı (eta = 0).

index_for_timestep

< >

( timestep: typing.Union[float, torch.Tensor] ) → int

Parametreler

  • timestep (float veya torch.Tensor) — self.timesteps içinden alınan bir değer. Zamanlama tablosu t açısından katı şekilde artan olduğundan eşleşme benzersizdir.

Dönüş değeri

int

timestep dizini.

Bir zaman adımı değerini, zaman çizelgesindeki indeksine eşleyin.

scale_noise

< >

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

Parametreler

  • sample (torch.FloatTensor) — Temiz örnek x_0.
  • timestep (float veya torch.FloatTensor) — [0, 1] aralığındaki hedef zaman; 1 değeri sample değerini değiştirmeden döndürür.
  • noise (torch.FloatTensor) — Karıştırılacak gürültü.

Dönüş değeri

torch.FloatTensor

Gürültülü örnek.

MiniMax-H3'ün t sözleşmesine göre düzeltilmiş akış ileri süreci: x_t = t*x_0 + (1 - t)*noise.

MiniMax-H3, koşullama çapalarını gürültülemek için bunu kullanır; burada t, bir zaman çizelgesi girdisi değil, noise_aug seviyesidir, bu nedenle timestep olduğu gibi alınır ve self.timesteps içinde araştırılmaz.

set_begin_index

< >

( begin_index: int = 0 )

Parametreler

  • begin_index (int, varsayılan 0) — Zamanlayıcı için başlangıç indeksi.

Zamanlayıcının başlangıç indeksini ayarlar.

set_shift

< >

( shift: float )

Parametreler

  • shift (float) — Sonraki zaman çizelgesi için kullanılacak üstel kaydırma.

Yapılandırılmış sigma kaydırmasını geçersiz kılar; set_timesteps() çağrısından önce çağrılmalıdır.

MiniMax-H3 bunu her istek için flow_shift (video) / audio_flow_shift (ses) olarak sunar.

set_timesteps

< >

( num_inference_steps: int | None = Nonedevice: typing.Union[str, torch.device, NoneType] = Nonesigmas: typing.Union[list[float], torch.Tensor, NoneType] = None )

Parametreler

  • num_inference_steps (int, isteğe bağlı) — Sigma ızgara noktası sayısı, son 0 dahil. sigmas verildiğinde yok sayılır.
  • device (str veya torch.device, isteğe bağlı) — Zaman çizelgesi tensörlerinin taşındığı cihaz. Izgara her zaman CPU üzerinde float32 olarak oluşturulduğundan, zaman çizelgesi hızlandırıcıya bağlı değildir.
  • sigmas (list[float] veya torch.Tensor, isteğe bağlı) — 0.0 ile sonlanan, katı şekilde azalan açık bir ızgara. shift_provided_sigmas=True ile linspace ızgarası gibi kaydırma işleminden geçen [0, 1] aralığında bir temel ızgara olur; aksi halde olduğu gibi kullanılır (kullanımı önerilmeyen varsayılan).

Sigma / timestep zaman çizelgesini oluşturun.

Izgara, üst üste gelen ardışık kopyalar birleştirilerek üstel kaydırma (exponential shift) üzerinden geçirilen linspace(1, 0, num_inference_steps) veya shift_provided_sigmas ayarlandığında benzer şekilde kaydırılan açık sigmas değerleridir. Son 0 değeri zaten ızgaranın bir parçasıdır — kaydırma 0 değerini tam olarak 0 değerine eşler — bu nedenle zaman çizelgesi num_inference_steps sigma içerir ve num_inference_steps - 1 model değerlendirmesini yönlendirir; bu değerler self.timesteps = 1 - sigmas[:-1] olarak dışa açılır.

adım

< >

( model_output: FloatTensortimestep: typing.Union[float, torch.FloatTensor]sample: FloatTensorgenerator: typing.Optional[torch.Generator] = Nonereturn_dict: bool = True ) → MiniMaxH3SchedulerOutput or tuple

Parametreler

  • model_output (torch.FloatTensor) — Dönüştürücünün timestep anındaki hız tahmini.
  • timestep (float veya torch.FloatTensor) — Mevcut zaman adımı, self.timesteps içindeki bir değer (yani timestep == 1 - sigma).
  • sample (torch.FloatTensor) — Güncel örnek x_t.
  • generator (torch.Generator, isteğe bağlı) — stochastic_sampling ile yeni gürültünün çekildiği üreteç; diğer durumlarda kullanılmaz.
  • return_dict (bool, varsayılan True) — Düz bir tuple yerine MiniMaxH3SchedulerOutput döndürülüp döndürülmemesi.

Dönüş değeri

MiniMaxH3SchedulerOutput veya tuple

sonraki adım için örnek.

Bir Euler (eta = 0) adımı veya stochastic_sampling ile bir yeniden gürültüleme adımı alın.

Model çıktısı veri-yanı hızıdır, bu nedenle gürültüden arındırılmış tahmin x0 = x_t + (1 - t) * v şeklindedir — + işaretine dikkat edin, bu, yaygın akış-eşleşme (flow-match) sözleşmesinin tersidir. Güncelleme, r = sigma_next / sigma ile x_next = r*x_t + (1 - r)*x0 karışımıdır ve yarı hassasiyetli örnekler için float32'de değerlendirilir. stochastic_sampling kullanıldığında güncelleme, generator'dan gelen taze gürültü ile x_next = (1 - sigma_next) * x0 + sigma_next * noise şeklindedir; her şey float32'dedir, bu nedenle son adım (sigma_next = 0) x0'ı döndürür.

MiniMaxH3SchedulerOutput

sınıf diffusers.schedulers.scheduling_minimax_h3.MiniMaxH3SchedulerOutput

< >

( prev_sample: FloatTensor )

Parametreler

  • prev_sample (torch.FloatTensor) — Gürültü azaltma döngüsünün sonraki adımı için hesaplanan örnek x_{t+1}.

Zamanlayıcının step işlevi çıktısı için çıktı sınıfı.

Update on GitHub