Diffusers documentation

KDPM2DiscreteScheduler

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

KDPM2DiscreteScheduler

KDPM2DiscreteScheduler, Elucidating the Design Space of Diffusion-Based Generative Models makalesinden ilham alınarak geliştirilmiş olup zamanlayıcı Katherine Crowson tarafından taşınmış ve oluşturulmuştur.

Orijinal kod tabanı crowsonkb/k-diffusion adresinde bulunabilir.

KDPM2DiscreteScheduler

sınıf diffusers.KDPM2DiscreteScheduler

< >

( num_train_timesteps: int = 1000beta_start: float = 0.00085beta_end: float = 0.012beta_schedule: str = 'linear'trained_betas: numpy.ndarray | list[float] | None = Noneuse_karras_sigmas: bool = Falseuse_exponential_sigmas: bool = Falseuse_beta_sigmas: bool = Falseprediction_type: str = 'epsilon'timestep_spacing: str = 'linspace'steps_offset: int = 0 )

Parametreler

  • num_train_timesteps (int, varsayılan 1000) — Modelin eğitileceği difüzyon adım sayısı.
  • beta_start (float, varsayılan 0.00085) — Çıkarımın başlangıç beta değeri.
  • beta_end (float, varsayılan 0.012) — Son beta değeri.
  • beta_schedule (str, varsayılan "linear") — Beta zamanlaması, modelin adım atması için beta aralığını beta dizisine eşleyen bir haritadır. linear veya scaled_linear seçeneklerinden birini seçin.
  • trained_betas (np.ndarray veya list[float], isteğe bağlı) — beta_start ve beta_end parametrelerini atlamak için beta dizisini doğrudan yapılandırıcıya iletin.
  • use_karras_sigmas (bool, varsayılan False) — Örnekleme sürecinde gürültü zamanlamasındaki adım boyutları için Karras sigmalarının kullanılıp kullanılmayacağını belirtir. True ise, sigmalar {σi} gürültü seviyeleri dizisine göre belirlenir.
  • use_exponential_sigmas (bool, varsayılan False) — Örnekleme sürecindeki gürültü zamanlamasında adım boyutları için üstel sigmaların kullanılıp kullanılmayacağı.
  • use_beta_sigmas (bool, varsayılan False) — Örnekleme sürecindeki gürültü zamanlamasında adım boyutları için beta sigmaların kullanılıp kullanılmayacağı. Daha fazla bilgi için Beta Sampling is All You Need makalesine bakın.
  • prediction_type (str, defaults to "epsilon") — 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).
  • timestep_spacing (str, varsayılan "linspace") — Adımların ölçeklendirilme biçimi. Daha fazla bilgi için Common Diffusion Noise Schedules and Sample Steps are Flawed makalesindeki Tablo 2'ye bakın.
  • steps_offset (int, varsayılan 0) — Bazı model ailelerinin gerektirdiği gibi, çıkarım adımlarına eklenen bir ofset.

KDPM2DiscreteScheduler, Elucidating the Design Space of Diffusion-Based Generative Models makalesindeki DPMSolver2 ve Algoritma 2'den ilham alınarak geliştirilmiştir.

Bu model SchedulerMixin ve ConfigMixin sınıflarından devralır. Kütüphanenin tüm zamanlayıcılar için yükleme ve kaydetme gibi genel yöntemleri uyguladığı üst sınıf belgelendirmesini kontrol edin.

add_noise

< >

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

Parametreler

  • original_samples (torch.Tensor) — Gürültü eklenecek orijinal örnekler.
  • noise (torch.Tensor) — Orijinal örneklerin üzerine eklenecek gürültü tensörü.
  • timesteps (torch.Tensor) — Gürültü eklenmesi gereken zaman adımları, zaman çizelgesinden gürültü seviyesini belirler.

Dönüş değeri

torch.Tensor

Zaman adımı zamanlamasına göre ölçeklendirilen eklenen gürültüye sahip gürültülü örnekler.

Belirtilen zaman adımlarındaki gürültü planına göre orijinal örneklerin gürültü ekleyin.

index_for_timestep

< >

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

Parametreler

  • timestep (float veya torch.Tensor) — Zamanlamada (schedule) bulunacak timestep değeri.
  • schedule_timesteps (torch.Tensor, isteğe bağlı) — Aranacak timestep zaman çizelgesi. None ise self.timesteps kullanılır.

Dönüş değeri

int

Zaman adımı planındaki zaman adımının indeksi. Çok eşleşme varsa, planın ortasından başlanırken bir sigmanın atlanmaması için (örneğin, görüntüden görüntüye) ikinci indeksi döndürür.

Verilen zaman adımının zaman adımı zaman çizelgesindeki indeksini bulun.

scale_model_input

< >

( sample: Tensortimestep: typing.Union[float, torch.Tensor] ) → torch.Tensor

Parametreler

  • sample (torch.Tensor) — Girdi örneği.
  • timestep (float veya torch.Tensor) — Difüzyon zincirindeki mevcut zaman adımı.

Dönüş değeri

torch.Tensor

Ölçeklendirilmiş bir girdi örneği.

Gürültüden arındırma modelinin girdisinin mevcut zaman adımına bağlı olarak ölçeklenmesi gereken zamanlayıcılarla değiştirilebilirliği sağlar.

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. Bu işlev, çıkarım (inference) öncesinde pipeline'dan çalıştırılmalıdır.

set_timesteps

< >

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

Parametreler

  • num_inference_steps (int) — Önceden eğitilmiş bir modelle örnekler oluşturulurken kullanılan difüzyon adım sayısı.
  • device (str veya torch.device, isteğe bağlı) — Adımların (timesteps) taşınacağı cihaz. None ise adımlar taşınmaz.
  • num_train_timesteps (int, isteğe bağlı) — Modeli eğitmek için kullanılan difüzyon adım sayısı. None ise self.config.num_train_timesteps kullanılır.

Difüzyon zinciri için kullanılan ayrık zaman adımlarını ayarlar (çalıştırılmadan önce çıkarım yapılmalıdır).

adım

< >

( model_output: typing.Union[torch.Tensor, numpy.ndarray]timestep: typing.Union[float, torch.Tensor]sample: typing.Union[torch.Tensor, numpy.ndarray]return_dict: bool = True )

Parametreler

  • model_output (torch.Tensor veya np.ndarray) — Öğrenen difüzyon modelinden gelen doğrudan çıktı.
  • timestep (float veya torch.Tensor) — Difüzyon zincirindeki mevcut ayrık zaman adımı.
  • sample (torch.Tensor veya np.ndarray) — Difüzyon süreci tarafından oluşturulan bir örneğin mevcut bir örneği.
  • return_dict (bool, varsayılan True) — KDPM2DiscreteSchedulerOutput veya tuple döndürülüp döndürülmemeye karar verir.

Önceki zaman adımındaki örneği SDE'yi tersine çevirerek tahmin edin. Bu işlev, öğrenilen model çıktılarını (en sık tahmin edilen gürültüyü) kullanarak difüzyon sürecini ilerletir.

SchedulerOutput

sınıf diffusers.schedulers.scheduling_utils.SchedulerOutput

< >

( prev_sample: Tensor )

Parametreler

  • prev_sample (görseller için torch.Tensor, şekli (batch_size, num_channels, height, width)) — Önceki zaman adımının hesaplanan örneği (x_{t-1}). prev_sample, gürültü azaltma döngüsünde bir sonraki model girdisi olarak kullanılmalıdır.

Bir zamanlayıcının step işlevinin çıktısı için temel sınıf.

Update on GitHub