Diffusers documentation
DDPM
DDPM
Denoising Diffusion Probabilistic Models (DDPM) oleh Jonathan Ho, Ajay Jain, dan Pieter Abbeel mengusulkan model berbasis difusi dengan nama yang sama. Dalam pustaka 🤗 Diffusers, DDPM merujuk pada discrete denoising scheduler dari makalah tersebut serta pipeline-nya.
Abstrak dari makalah tersebut adalah:
Kami menyajikan hasil sintesis gambar berkualitas tinggi menggunakan model probabilistik difusi, sebuah kelas model variabel laten yang terinspirasi oleh pertimbangan dari termodinamika non-kesetimbangan. Hasil terbaik kami diperoleh dengan melatih pada batas variational berbobot yang dirancang berdasarkan koneksi baru antara model probabilistik difusi dan pencocokan skor denoising dengan dinamika Langevin, dan model kami secara alami menerima skema dekompresi progresif yang lossy yang dapat diinterpretasikan sebagai generalisasi dari decoding autoregressive. Pada dataset CIFAR10 unconditional, kami memperoleh skor Inception sebesar 9.46 dan skor FID state-of-the-art sebesar 3.17. Pada LSUN 256x256, kami memperoleh kualitas sampel yang serupa dengan ProgressiveGAN.
Kodebase asli dapat ditemukan di hohonathanho/diffusion.
Pastikan untuk melihat panduan Schedulers untuk mempelajari cara mengeksplorasi tradeoff antara kecepatan dan kualitas scheduler, serta lihat bagian reuse components across pipelines untuk mempelajari cara memuat komponen yang sama secara efisien ke dalam beberapa pipeline.
DDPMPipeline
kelas diffusers.DDPMPipeline
< source >( unet: UNet2DModelscheduler: DDPMScheduler )
Parameter
- unet (UNet2DModel) —
UNet2DModeluntuk menghilangkan noise pada latens gambar yang telah dienkod. - scheduler (SchedulerMixin) —
Scheduler yang digunakan bersama
unetuntuk menghilangkan noise dari gambar yang telah dienkod. Bisa berupa DDPMScheduler atau DDIMScheduler.
Pipeline untuk generasi gambar.
Model ini mewarisi dari DiffusionPipeline. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan untuk semua pipeline (mengunduh, menyimpan, menjalankan pada perangkat tertentu, dll.).
__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
Parameter
- batch_size (
int, opsional, default 1) — Jumlah gambar yang akan dihasilkan. - generator (
torch.Generator, opsional) —torch.Generatoruntuk membuat generasi menjadi deterministik. - num_inference_steps (
int, opsional, default 1000) — Jumlah langkah denoising. Semakin banyak langkah denoising, biasanya menghasilkan gambar dengan kualitas lebih tinggi, namun dengan biaya inferensi yang lebih lambat. - output_type (
str, opsional, defaultnya"pil") — Format output dari gambar yang dihasilkan. Pilih antara"pil"(PIL.Image),"np"(np.array) atau"pt"(torch.Tensor). - return_dict (
bool, opsional, defaultnyaTrue) — Apakah akan mengembalikan ImagePipelineOutput alih-alih tuple biasa.
Mengembalikan
ImagePipelineOutput atau tuple
Jika return_dict adalah True, ImagePipelineOutput dikembalikan, selain itu sebuah tuple dikembalikan di mana elemen pertama adalah daftar dengan gambar yang dihasilkan
Fungsi panggilan untuk pipeline pada generasi.
ImagePipelineOutput
kelas diffusers.ImagePipelineOutput
< source >( images: list[PIL.Image.Image] | numpy.ndarray )
Kelas output untuk pipeline gambar.