Buckets:
RePaintScheduler
RePaintScheduler, aşırı maskelerle denetimsiz inpainting için DDPM tabanlı bir inpainting zamanlayıcısıdır. RePaintPipeline ile birlikte kullanılmak üzere tasarlanmıştır ve Andreas Lugmayr ve diğerleri tarafından yazılan RePaint: Inpainting using Denoising Diffusion Probabilistic Models makalesine dayanmaktadır.
Makalenin özeti şudur:
Özgür biçimli inpainting, rastgele bir ikili maske ile belirlenen bölgelere bir görselde yeni içerik ekleme görevidir. Mevcut çoğu yaklaşım, belirli bir maske dağılımı için eğitim alır; bu da genelleyebilme yeteneklerini, görülmemiş maske türlerine sınırlar. Ayrıca, piksel bazlı ve algısal kayıplar ile eğitim, eksik alanlara doğru basit doku uzantılarına yol açar ve anlamlı bir üretim yerine sonuçlanır. Bu çalışmada, aşırı maskelere bile uygulanabilir olan, Gürültü Azaltma Difüzyon Olasılıksal Modeli (DDPM) tabanlı bir inpainting yaklaşımı olan RePaint'i öneriyoruz. Üretici öncül olarak önceden eğitilmiş koşulsuz bir DDPM kullanıyoruz. Üretim sürecini koşullandırmak için, yalnızca ters difüzyon yinelemelerini, maskelenmemiş bölgeleri verilen görsel bilgisiyle örnekleyerek değiştiriyoruz. Bu teknik, orijinal DDPM ağını kendisini değiştirmediği veya koşullandırmadığı için, model herhangi bir inpainting biçimi için yüksek kaliteli ve çeşitli çıktı görselleri üretir. Yöntemimizi, standart ve aşırı maskeler kullanarak hem yüzler hem de genel amaçlı görsel inpainting için doğruluyoruz. RePaint, altı maske dağılımından en az beşinde, son teknoloji Otoregresif ve GAN yaklaşımlarını geride bırakır. GitHub Deposu: this http URL.
Orijinal uygulama andreas128/RePaint adresinde bulunabilir.
RePaintScheduler[[diffusers.RePaintScheduler]]
diffusers.RePaintScheduler[[diffusers.RePaintScheduler]]
diffusers.RePaintScheduler(num_train_timesteps: int = 1000, beta_start: float = 0.0001, beta_end: float = 0.02, beta_schedule: str = 'linear', eta: float = 0.0, trained_betas: numpy.ndarray | None = None, clip_sample: bool = True)
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ıç beta değeri.
beta_end (float, varsayılan 0.02) : 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 haritalamadır. linear, scaled_linear, squaredcos_cap_v2 veya sigmoid seçeneklerinden birini seçin.
eta (float, varsayılan 0.0) : Difüzyon adımında eklenen gürültünün ağırlığı. 0.0 değeri DDIM'e, 1.0 değeri ise DDPM'ye karşılık gelir.
trained_betas (np.ndarray, isteğe bağlı) : beta_start ve beta_end parametrelerini atlamak için beta dizisini doğrudan yapılandırıcıya iletin.
clip_sample (bool, varsayılan True) : Sayısal kararlılık için tahmin edilen örneği -1 ile 1 arasında kırpın.
RePaintScheduler, verilen bir maske içinde DDPM inpainting için bir zamanlayıcıdır.
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.RePaintScheduler.add_noise]]
add_noise(original_samples: Tensor, noise: Tensor, timesteps: IntTensor)
Parametreler:
original_samples (torch.Tensor) : Gürültü eklenecek orijinal örnekler.
noise (torch.Tensor) : Örneklere eklenecek gürültü.
timesteps (torch.IntTensor) : Her örnek için gürültü seviyesini belirleyecek zaman adımları.
Yükselen: NotImplementedError
NotImplementedError-- RePaint eğitimi bunun yerine DDPMScheduler.add_noise() kullanmalıdır.
RePaint eğitimi için gürültü eklemenin bu zamanlayıcı tarafından desteklenmediğini belirtin.
scale_model_input[[diffusers.RePaintScheduler.scale_model_input]]
scale_model_input(sample: Tensor, timestep: int | None = None)
Parametreler:
sample (torch.Tensor) : Girdi örneği.
timestep (int, isteğe bağlı) : Difüzyon zincirindeki mevcut zaman adımı.
Dönüş: 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_timesteps[[diffusers.RePaintScheduler.set_timesteps]]
set_timesteps(num_inference_steps: int, jump_length: int = 10, jump_n_sample: int = 10, device: typing.Union[str, torch.device, NoneType] = None)
Parametreler:
num_inference_steps (int) : Ön eğitilmiş bir modelle örnekler oluşturulurken kullanılan difüzyon adım sayısı.
jump_length (int, varsayılan 10) : Tek bir sıçrama için (“j” in RePaint makalesi) zaman içinde geriye gitmeden önce ileriye doğru atılan adım sayısı. Makaledeki Şekil 9 ve 10'a bakın.
jump_n_sample (int, varsayılan 10) : Belirli bir seçilen zaman örneği için ileri zaman sıçraması yapılma sayısı. Makaledeki 9. ve 10. Şekillere bakın.
device (str veya torch.device, opsiyonel) : Timestep'lerin taşınacağı cihaz. None ise timestep'ler taşınmaz.
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.RePaintScheduler.step]]
step(model_output: Tensor, timestep: int, sample: Tensor, original_image: Tensor, mask: Tensor, generator: typing.Optional[torch.Generator] = None, return_dict: bool = True)
Parametreler:
model_output (torch.Tensor) : Öğrenen difüzyon modelinden gelen doğrudan çıktı.
timestep (int) : 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.
original_image (torch.Tensor) : Inpainting yapılacak orijinal görüntü.
mask (torch.Tensor) : Orijinal görüntünün hangi kısmının inpaint edileceğini 0.0 değerinin gösterdiği maske.
generator (torch.Generator, isteğe bağlı) : Rastgele sayı üreteci.
return_dict (bool, varsayılan True) : Bir tuple yerine RePaintSchedulerOutput döndürülecek mi?
Dönüş: RePaintSchedulerOutput veya tuple[torch.Tensor, torch.Tensor]
return_dict True ise RePaintSchedulerOutput döndürülür, aksi takdirde bir tuple döndürülür; bu tuple'ın ilk öğesi önceki örnek, ikinci öğesi ise tahmin edilen orijinal örnektir.
Ö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.
undo_step[[diffusers.RePaintScheduler.undo_step]]
undo_step(sample: Tensor, timestep: int, generator: typing.Optional[torch.Generator] = None)
Parametreler:
sample (torch.Tensor) : Gürültü eklenen örnek.
timestep (int) : Difüzyon zincirindeki mevcut ayrık zaman adımı.
generator (torch.Generator, isteğe bağlı) : Rastgele sayı üreteci.
Dönüş: torch.Tensor
Difüzyon zincirinde bir sonraki zaman adımındaki örnek.
Bir örneğe gürültü ekleyerek onu bir difüzyon adımı ileriye taşıyın.
RePaintSchedulerOutput[[diffusers.schedulers.scheduling_repaint.RePaintSchedulerOutput]]
diffusers.schedulers.scheduling_repaint.RePaintSchedulerOutput[[diffusers.schedulers.scheduling_repaint.RePaintSchedulerOutput]]
diffusers.schedulers.scheduling_repaint.RePaintSchedulerOutput(prev_sample: Tensor, pred_original_sample: Tensor)
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 örneği (x_{t-1}). 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 şekli (batch_size, num_channels, height, width)) : Güncel 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 adım fonksiyonu çıktısı için çıktı sınıfı.
Xet Storage Details
- Size:
- 10 kB
- Xet hash:
- d34cf133b86b7dea83fdfe300abec2c031814e344b030eb564d855935e4b6936
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.