Diffusers documentation
DDPM
DDPM
Jonathan Ho, Ajay Jain ve Pieter Abbeel tarafından önerilen Denoising Diffusion Probabilistic Models (DDPM), aynı adı taşıyan difüzyon tabanlı bir modeldir. 🤗 Diffusers kütüphanesinde DDPM, hem makaledeki discrete denoising scheduler'a hem de pipeline'a atıfta bulunur.
Makalenin özeti şudur:
Nonequilibrium termodinamiğinden ilham alan gizli değişkenli modeller sınıfı olan difüzyon olasılıksal modelleri kullanarak yüksek kaliteli görüntü sentez sonuçları sunuyoruz. En iyi sonuçlarımız, difüzyon olasılıksal modeller ile Langevin dinamiğine sahip gürültü giderme skoru eşleştirmesi arasındaki yeni bir bağlantıya göre tasarlanmış ağırlıklı varyasyonel sınır üzerinde eğitim alarak elde edilmektedir ve modellerimiz, otoregresif çözümlemenin bir genelleştirmesi olarak yorumlanabilen kademeli kayıplı sıkıştırma kaldırma şemasını doğal olarak kabul etmektedir. Koşulsuz CIFAR10 veri setinde 9.46 Inception skoru ve 3.17 ile alanın en iyisi FID skoru elde ediyoruz. 256x256 LSUN üzerinde, ProgressiveGAN'a benzer örnek kalitesi elde ediyoruz.
Orijinal kod tabanı hohonathanho/diffusion adresinde bulunabilir.
Scheduler'lar kılavuzunu inceleyerek scheduler hızı ve kalitesi arasındaki ödünleşimi nasıl keşfedebileceğinizi öğrenin ve aynı bileşenleri birden fazla pipeline'a nasıl verimli bir şekilde yükleyebileceğinizi öğrenmek için pipeline'lar arasında bileşenleri yeniden kullanma bölümüne göz atın.
DDPMPipeline
sınıf diffusers.DDPMPipeline
< source >( unet: UNet2DModelscheduler: DDPMScheduler )
Parametreler
- unet (UNet2DModel) —
Kodlanmış görüntü latentlerini gürültüden arındırmak için kullanılan bir
UNet2DModel. - scheduler (SchedulerMixin) —
Kodlanmış görüntüyü gürültüden arındırmak için
unetile birlikte kullanılacak bir zamanlayıcı. DDPMScheduler veya DDIMScheduler olabilir.
Görsel üretimi için pipeline.
Bu model DiffusionPipeline sınıfından devralır. Tüm pipeline'lar için uygulanan genel yöntemlerin (indirme, kaydetme, belirli bir cihazda çalıştırma vb.) belgelerini üst sınıfın dokümantasyonunda bulabilirsiniz.
__call__
< source >( batch_size: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonenum_inference_steps: int = 1000output_type: str | None = 'pil'return_dict: bool = True ) → ImagePipelineOutput or tuple
Parametreler
- batch_size (
int, isteğe bağlı, varsayılan 1) — Üretilecek görüntü sayısı. - generator (
torch.Generator, isteğe bağlı) — Üretimi deterministik hale getirmek için kullanılan birtorch.Generator. - num_inference_steps (
int, isteğe bağlı, varsayılan 1000) — Gürültü azaltma adım sayısı. Daha fazla gürültü azaltma adımı genellikle daha yavaş çıkarım pahasına daha yüksek kaliteli bir görüntüye yol açar. - output_type (
str, isteğe bağlı, varsayılan"pil") — Oluşturulan görüntünün çıktı biçimi."pil"(PIL.Image),"np"(np.array) veya"pt"(torch.Tensor) arasında seçim yapın. - return_dict (
bool, isteğe bağlı, varsayılanTrue) — Düz bir tuple yerine ImagePipelineOutput döndürülüp döndürülmemesi.
Dönüş değeri
ImagePipelineOutput veya tuple
return_dict True ise ImagePipelineOutput döndürülür, aksi halde ilk öğesi üretilen görüntülerin listesinden oluşan bir tuple döndürülür
Üretim için pipeline'ın çağrı fonksiyonu.
ImagePipelineOutput
sınıf diffusers.ImagePipelineOutput
< source >( images: list[PIL.Image.Image] | numpy.ndarray )
Görüntü hatları için çıktı sınıfı.