Buckets:
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')
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)
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)
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])
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])
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])
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])
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)
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)
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)
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)
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.