Buckets:

mishig's picture
|
download
raw
13.4 kB

EDMEulerScheduler

Karras ve ark. tarafından kaleme alınan Elucidating the Design Space of Diffusion-Based Generative Models makalesindeki Euler zamanlayıcısının (Algoritma 2) Karras formülasyonu. Bu, genellikle 20-30 adımda iyi çıktılar üretebilen hızlı bir zamanlayıcıdır. Zamanlayıcı, Katherine Crowson tarafından geliştirilen orijinal k-diffusion uygulamasına dayanmaktadır.

EDMEulerScheduler[[diffusers.EDMEulerScheduler]]

diffusers.EDMEulerScheduler[[diffusers.EDMEulerScheduler]]

diffusers.EDMEulerScheduler(sigma_min: float = 0.002, sigma_max: float = 80.0, sigma_data: float = 0.5, sigma_schedule: typing.Literal['karras', 'exponential'] = 'karras', num_train_timesteps: int = 1000, prediction_type: typing.Literal['epsilon', 'v_prediction'] = 'epsilon', rho: float = 7.0, final_sigmas_type: typing.Literal['zero', 'sigma_min'] = 'zero')

Kaynak

Parametreler:

sigma_min (float, opsiyonel, varsayılan 0.002) : Sigma zamanlamasındaki minimum gürültü büyüklüğü. Bu değer EDM makalesinde [1] 0.002 olarak ayarlanmıştır; makul aralık [0, 10]'dur.

sigma_max (float, opsiyonel, varsayılan 80.0) : Sigma zamanlamasındaki maksimum gürültü büyüklüğü. Bu değer EDM makalesinde [1] 80.0 olarak ayarlanmıştır; makul aralık [0.2, 80.0]'dir.

sigma_data (float, isteğe bağlı, varsayılan 0.5) : Veri dağılımının standart sapması. Bu değer, EDM makalesinde [1] 0.5 olarak ayarlanmıştır.

sigma_schedule (Literal["karras", "exponential"], isteğe bağlı, varsayılan "karras") : sigmas değerlerini hesaplamak için kullanılacak sigma zamanlaması. Varsayılan olarak, EDM makalesinde (https://huggingface.co/papers/2206.00364) tanıtılan zamanlamayı kullanırız. "exponential" zamanlaması bu modele dahil edilmiştir: https://huggingface.co/stabilityai/cosxl.

num_train_timesteps (int, isteğe bağlı, varsayılan 1000) : Modelin eğitileceği difüzyon adım sayısı.

prediction_type (Literal["epsilon", "v_prediction"], isteğe bağlı, varsayılan "epsilon") : Zamanlayıcı işlevinin tahmin türü. "epsilon", difüzyon sürecinin gürültüsünü tahmin eder ve "v_prediction" (Imagen Video makalesinin 2.4 bölümüne bakın).

rho (float, isteğe bağlı, varsayılan 7.0) : Karras sigma zamanlamasını hesaplamak için kullanılan rho parametresi, EDM makalesinde [1] 7.0 olarak ayarlanmıştır.

final_sigmas_type (Literal["zero", "sigma_min"], isteğe bağlı, varsayılan "zero") : Örnekleme süreci sırasında gürültü zamanlaması için son sigma değeri. "sigma_min" ise, son sigma, eğitim zamanlamasındaki son sigma ile aynıdır. "zero" ise, son sigma 0 olarak ayarlanır.

Karras et al. 2022 [1]'de sunulan EDM formülasyonunda Euler zamanlayıcısını uygular.

[1] Karras, Tero, ve diğerleri. "Elucidating the Design Space of Diffusion-Based Generative Models." https://huggingface.co/papers/2206.00364

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[[diffusers.EDMEulerScheduler.add_noise]]

add_noise(original_samples: Tensor, noise: Tensor, timesteps: Tensor)

Kaynak

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ünün ekleneceği zaman adımları, zaman çizelgesinden gürültü seviyesini belirler.

Dönüş: 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[[diffusers.EDMEulerScheduler.index_for_timestep]]

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

Kaynak

Parametreler:

timestep (float veya torch.Tensor) : Zamanlamada bulunacak timestep değeri.

schedule_timesteps (torch.Tensor, isteğe bağlı) : Aranacak zaman adımı zamanlaması. None ise self.timesteps kullanılır.

Dönüş: int

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

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

precondition_inputs[[diffusers.EDMEulerScheduler.precondition_inputs]]

precondition_inputs(sample: Tensor, sigma: typing.Union[float, torch.Tensor])

Kaynak

Parametreler:

sample (torch.Tensor) : Ön koşullandırılacak girdi örnek tensörü.

sigma (float veya torch.Tensor) : Güncel sigma (gürültü seviyesi) değeri.

Dönüş: torch.Tensor

Ölçeklendirilmiş giriş örneği.

Giriş örneğini, EDM formülasyonuna göre ölçekleyerek ön koşullandırın.

precondition_noise[[diffusers.EDMEulerScheduler.precondition_noise]]

precondition_noise(sigma: typing.Union[float, torch.Tensor])

Kaynak

Parametreler:

sigma (float veya torch.Tensor) : Ön koşullandırılacak sigma (gürültü seviyesi) değeri.

Dönüş: torch.Tensor

0.25 * log(sigma) olarak hesaplanan ön koşullandırılmış gürültü değeri.

Gürültü seviyesini, logaritmik bir dönüşüm uygulayarak ön koşullandırın.

precondition_outputs[[diffusers.EDMEulerScheduler.precondition_outputs]]

precondition_outputs(sample: Tensor, model_output: Tensor, sigma: typing.Union[float, torch.Tensor])

Kaynak

Parametreler:

sample (torch.Tensor) : Girdi örnek tensörü.

model_output (torch.Tensor) : Öğrenen difüzyon modelinden gelen doğrudan çıktı.

sigma (float veya torch.Tensor) : Güncel sigma (gürültü seviyesi) değeri.

Dönüş: torch.Tensor

Atlamalı bağlantı ve çıktı ölçeklendirmesini birleştirerek hesaplanan gürültüden arındırılmış örnek.

Model çıktılarını EDM formülasyonuna göre ön koşullandırın.

scale_model_input[[diffusers.EDMEulerScheduler.scale_model_input]]

scale_model_input(sample: Tensor, timestep: typing.Union[float, torch.Tensor])

Kaynak

Parametreler:

sample (torch.Tensor) : Girdi örnek tensörü.

timestep (float veya torch.Tensor) : Difüzyon zincirindeki mevcut zaman adımı.

Dönüş: torch.Tensor

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

Gürültü azaltma modelinin girdisini Euler algoritmasıyla eşleşecek şekilde ölçeklendirir. Mevcut zaman adımına bağlı olarak gürültü azaltma modelinin girdisini ölçeklendirmesi gereken zamanlayıcılarla değiştirilebilirliği sağlar.

set_begin_index[[diffusers.EDMEulerScheduler.set_begin_index]]

set_begin_index(begin_index: int = 0)

Kaynak

Parametreler:

begin_index (int, varsayılan 0) : Zamanlayıcının 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[[diffusers.EDMEulerScheduler.set_timesteps]]

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

Kaynak

Parametreler:

num_inference_steps (int, isteğe bağlı) : Ön eğitilmiş bir modelle örnekler oluşturulurken kullanılan difüzyon adım sayısı.

device (str veya torch.device, opsiyonel) : Timestep'lerin taşınacağı cihaz. None ise timestep'ler taşınmaz.

sigmas (torch.Tensor | list[float], isteğe bağlı) : Gürültü azaltma süreci için kullanılacak özel sigmalar. Tanımlanmamışsa, num_inference_steps geçirildiğinde varsayılan davranış kullanılacaktı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[[diffusers.EDMEulerScheduler.step]]

step(model_output: Tensor, timestep: typing.Union[float, torch.Tensor], sample: Tensor, s_churn: float = 0.0, s_tmin: float = 0.0, s_tmax: float = inf, s_noise: float = 1.0, generator: typing.Optional[torch.Generator] = None, return_dict: bool = True, pred_original_sample: typing.Optional[torch.Tensor] = None)

Kaynak

Parametreler:

model_output (torch.Tensor) : Öğ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) : Difüzyon süreci tarafından oluşturulan bir örneğin mevcut bir örneği.

s_churn (float, isteğe bağlı, varsayılan 0.0) : Her adımda eklenecek stokastisite miktarı. Daha yüksek değerler daha fazla gürültü ekler.

s_tmin (float, isteğe bağlı, varsayılan 0.0) : Gürültü eklenmemesi için gereken minimum sigma eşiği.

s_tmax (float, isteğe bağlı, varsayılan float("inf")) : Gürültü eklenmeyecek maksimum sigma eşiği.

s_noise (float, isteğe bağlı, varsayılan 1.0) : Örneğe eklenen gürültü için ölçekleme faktörü.

generator (torch.Generator, isteğe bağlı) : Yeniden üretilebilirlik için rastgele sayı üreteci.

return_dict (bool, isteğe bağlı, varsayılan True) : EDMEulerSchedulerOutput veya tuple döndürülüp döndürülmemeye karar verir.

pred_original_sample (torch.Tensor, isteğe bağlı) : Önceki adımdan elde edilen tahmini gürültüden arındırılmış örnek. Sağlanırsa yeniden hesaplama atlanır.

Dönüş: EDMEulerSchedulerOutput veya tuple

return_dict True ise bir EDMEulerSchedulerOutput döndürülür, aksi takdirde bir tuple döndürülür; bu tuple'ın ilk öğesi önceki örnek tensörü, ikinci öğesi ise tahmin edilen orijinal ö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.

EDMEulerSchedulerOutput[[diffusers.schedulers.scheduling_edm_euler.EDMEulerSchedulerOutput]]

diffusers.schedulers.scheduling_edm_euler.EDMEulerSchedulerOutput[[diffusers.schedulers.scheduling_edm_euler.EDMEulerSchedulerOutput]]

diffusers.schedulers.scheduling_edm_euler.EDMEulerSchedulerOutput(prev_sample: Tensor, pred_original_sample: typing.Optional[torch.Tensor] = None)

Kaynak

Parametreler:

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

pred_original_sample (torch.Tensor, görüntüler için (batch_size, num_channels, height, width) boyutunda) : Mevcut zaman adımındaki model çıktısına dayalı olarak tahmin edilen gürültüsü azaltılmış örnek (x_{0}). pred_original_sample, ilerlemeyi önizlemek veya yönlendirme için kullanılabilir.

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

Xet Storage Details

Size:
13.4 kB
·
Xet hash:
06aca783375597a2e57e4a9d454ee68ddbd0764e55f72c8b92c41d322e52ac7b

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.