Diffusers documentation
HeunDiscreteScheduler
HeunDiscreteScheduler
Heun zamanlayıcısı (Algoritma 1), Karras ve ark. tarafından kaleme alınan Elucidating the Design Space of Diffusion-Based Generative Models makalesinden alınmıştır. Zamanlayıcı, Katherine Crowson tarafından oluşturulan k-diffusion kütüphanesinden portlanmıştır.
HeunDiscreteScheduler
sınıf diffusers.HeunDiscreteScheduler
< source >( num_train_timesteps: int = 1000beta_start: float = 0.00085beta_end: float = 0.012beta_schedule: str = 'linear'trained_betas: numpy.ndarray | list[float] | None = Noneprediction_type: str = 'epsilon'use_karras_sigmas: bool = Falseuse_exponential_sigmas: bool = Falseuse_beta_sigmas: bool = Falseclip_sample: bool = Falseclip_sample_range: float = 1.0timestep_spacing: typing.Literal['linspace', 'leading', 'trailing'] = '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.0001) — Çıkarımın başlangıçbetadeğeri. - beta_end (
float, varsayılan 0.02) — Sonbetadeğeri. - beta_schedule (
"linear","scaled_linear","squaredcos_cap_v2"veya"exp", varsayılan"linear") — Beta zamanlaması, modelin adım atması için beta aralığını beta dizisine eşleyen bir haritadır.linear,scaled_linear,squaredcos_cap_v2veyaexpseçeneklerinden birini seçin. - trained_betas (
np.ndarray, isteğe bağlı) — Betalar dizisini doğrudan yapılandırıcıya ileterekbeta_startvebeta_endparametrelerini atlayın. - prediction_type (
"epsilon","sample", or"v_prediction", defaults to"epsilon", optional) — Prediction type of the scheduler function; can beepsilon(predicts the noise of the diffusion process),sample(directly predicts the noisy sample) orv_prediction` (see section 2.4 of Imagen Video paper). - clip_sample (
bool, varsayılanTrue) — Sayısal kararlılık için tahmin edilen örneği kırpın. - clip_sample_range (
float, varsayılan 1.0) — Örnek kırpma için maksimum büyüklük. Yalnızcaclip_sample=Trueolduğunda geçerlidir. - use_karras_sigmas (
bool, isteğe bağlı, varsayılanFalse) — Örnekleme sürecinde gürültü zamanlamasındaki adım boyutları için Karras sigmalarının kullanılıp kullanılmayacağını belirtir.Trueise, sigmalar {σi} gürültü seviyeleri dizisine göre belirlenir. - use_exponential_sigmas (
bool, isteğe bağlı, varsayılanFalse) — Ö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, isteğe bağlı, varsayılanFalse) — Ö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. - timestep_spacing (
"linspace","leading"veya"trailing", varsayılan"linspace") — Zaman adımlarını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.
Ayrık beta zamanlamaları için Heun adımlarına sahip zamanlayıcı.
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
< source >( 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
< source >( timestep: typing.Union[float, torch.Tensor]schedule_timesteps: typing.Optional[torch.Tensor] = None ) → int
Parametreler
- timestep (
floatveyatorch.Tensor) — Zamanlamada (schedule) bulunacak timestep değeri. - schedule_timesteps (
torch.Tensor, isteğe bağlı) — Aranacak timestep zaman çizelgesi.Noneiseself.timestepskullanı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
< source >( sample: Tensortimestep: typing.Union[float, torch.Tensor] ) → torch.Tensor
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
< source >( begin_index: int = 0 )
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
< source >( num_inference_steps: int | None = Nonedevice: typing.Union[str, torch.device] = Nonenum_train_timesteps: int | None = Nonetimesteps: list[int] | None = None )
Parametreler
- num_inference_steps (
int, isteğe bağlı, varsayılanNone) — Önceden eğitilmiş bir modelle örnekler oluşturulurken kullanılan difüzyon adım sayısı. - device (
str,torch.device, isteğe bağlı, varsayılanNone) — Timestep'lerin taşınacağı cihaz.Noneise timestep'ler taşınmaz. - num_train_timesteps (
int, isteğe bağlı, varsayılanNone) — Modelin eğitimi sırasında kullanılan difüzyon adım sayısı.Noneise varsayılannum_train_timestepsözniteliği kullanılır. - timesteps (
list[int], isteğe bağlı) — Timestep'ler arasında keyfi aralıklara destek sağlamak için kullanılan özel timestep'ler.Noneise, timestep'lertimestep_spacingözniteliğine dayalı olarak oluşturulur.timestepsgeçirilirse,num_inference_stepsNoneolmalıdır vetimestep_spacingözniteliği yok sayı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
< source >( 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 ) → HeunDiscreteSchedulerOutput or tuple
Parametreler
- model_output (
torch.Tensor) — Öğrenen difüzyon modelinden gelen doğrudan çıktı. - timestep (
float) — Difüzyon zincirindeki mevcut ayrık zaman adımı. - sample (
torch.Tensor) — Difüzyon süreci tarafından oluşturulan bir örneğin mevcut bir örneği. - return_dict (
bool) —HeunDiscreteSchedulerOutputveya tuple döndürülüp döndürülmediğini belirtir.
Dönüş değeri
HeunDiscreteSchedulerOutput veya tuple
return_dict True ise HeunDiscreteSchedulerOutput döndürülür, aksi halde bir tuple döndürülür ve bu tuple'ın ilk öğesi örnek tensörüdür.
Ö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
< source >( prev_sample: Tensor )
Bir zamanlayıcının step işlevinin çıktısı için temel sınıf.