? Diffusers adalah perpustakaan masuk untuk model difusi pretrained canggih untuk menghasilkan gambar, audio, dan bahkan struktur molekul 3D. Apakah Anda sedang mencari solusi inferensi sederhana atau melatih model difusi Anda sendiri,? Diffusers adalah kotak alat modular yang mendukung keduanya. Perpustakaan kami dirancang dengan fokus pada kegunaan daripada kinerja, sederhana lebih mudah, dan dapat disesuaikan dengan abstraksi.
? Diffusers menawarkan tiga komponen inti:
Kami sarankan menginstal? Diffusers dalam lingkungan virtual dari PYPI atau Conda. Untuk detail lebih lanjut tentang menginstal Pytorch dan Flax, silakan merujuk ke dokumentasi resmi mereka.
Dengan pip
(paket resmi):
pip install --upgrade diffusers[torch]
Dengan conda
(dikelola oleh masyarakat):
conda install -c conda-forge diffusers
Dengan pip
(paket resmi):
pip install --upgrade diffusers[flax]
Silakan merujuk pada cara menggunakan difusi stabil dalam panduan silikon apel.
Menghasilkan output sangat mudah dengan? Diffuser. Untuk menghasilkan gambar dari teks, gunakan metode from_pretrained
untuk memuat model difusi pretrained (telusuri hub untuk 30.000+ pos pemeriksaan):
from diffusers import DiffusionPipeline
import torch
pipeline = DiffusionPipeline . from_pretrained ( "stable-diffusion-v1-5/stable-diffusion-v1-5" , torch_dtype = torch . float16 )
pipeline . to ( "cuda" )
pipeline ( "An image of a squirrel in Picasso style" ). images [ 0 ]
Anda juga dapat menggali model alat alat dan penjadwal untuk membangun sistem difusi Anda sendiri:
from diffusers import DDPMScheduler , UNet2DModel
from PIL import Image
import torch
scheduler = DDPMScheduler . from_pretrained ( "google/ddpm-cat-256" )
model = UNet2DModel . from_pretrained ( "google/ddpm-cat-256" ). to ( "cuda" )
scheduler . set_timesteps ( 50 )
sample_size = model . config . sample_size
noise = torch . randn (( 1 , 3 , sample_size , sample_size ), device = "cuda" )
input = noise
for t in scheduler . timesteps :
with torch . no_grad ():
noisy_residual = model ( input , t ). sample
prev_noisy_sample = scheduler . step ( noisy_residual , t , input ). prev_sample
input = prev_noisy_sample
image = ( input / 2 + 0.5 ). clamp ( 0 , 1 )
image = image . cpu (). permute ( 0 , 2 , 3 , 1 ). numpy ()[ 0 ]
image = Image . fromarray (( image * 255 ). round (). astype ( "uint8" ))
image
Lihatlah QuickStart untuk meluncurkan perjalanan difusi Anda hari ini!
Dokumentasi | Apa yang bisa saya pelajari? |
---|---|
Tutorial | Kursus kecelakaan dasar untuk mempelajari cara menggunakan fitur paling penting perpustakaan seperti menggunakan model dan penjadwal untuk membangun sistem difusi Anda sendiri, dan melatih model difusi Anda sendiri. |
Memuat | Panduan untuk cara memuat dan mengkonfigurasi semua komponen (pipa, model, dan penjadwal) dari perpustakaan, serta cara menggunakan penjadwal yang berbeda. |
Pipa untuk inferensi | Panduan untuk cara menggunakan jaringan pipa untuk tugas inferensi yang berbeda, generasi batch, mengendalikan output dan keacakan yang dihasilkan, dan cara berkontribusi pipa ke perpustakaan. |
Optimasi | Panduan untuk cara mengoptimalkan model difusi Anda untuk berjalan lebih cepat dan mengkonsumsi lebih sedikit memori. |
Pelatihan | Panduan untuk cara melatih model difusi untuk tugas yang berbeda dengan teknik pelatihan yang berbeda. |
Kami ❤️ Kontribusi dari komunitas open-source! Jika Anda ingin berkontribusi ke perpustakaan ini, silakan periksa panduan kontribusi kami. Anda dapat mencari masalah yang ingin Anda atasi untuk berkontribusi ke perpustakaan.
Juga, katakanlah di saluran perselisihan publik kami. Kami membahas tren terpanas tentang model difusi, saling membantu dengan kontribusi, proyek pribadi atau hanya nongkrong ☕.
Tugas | Pipa | ? Pusat |
---|---|---|
Pembuatan gambar tanpa syarat | Ddpm | Google/ddpm-emurch-church-256 |
Teks-ke-gambar | Teks-ke-Teks ke Difusi yang stabil | Stable-difusi-V1-5/stabil-difusi-V1-5 |
Teks-ke-gambar | unclip | kakaobrain/karlo-v1-alpha |
Teks-ke-gambar | Deepfloyd if | Deepfloyd/if-i-xl-v1.0 |
Teks-ke-gambar | Kandinsky | Kandinsky-Community/Kandinsky-2-2-Decoder |
Gambar-ke-gambar yang dipandu teks | ControlNet | lllyasviel/sd-controlnet-canny |
Gambar-ke-gambar yang dipandu teks | Instrukturpix2pix | Timbrooks/Instruct-pix2pix |
Gambar-ke-gambar yang dipandu teks | Gambar difusi yang stabil ke-gambar | Stable-difusi-V1-5/stabil-difusi-V1-5 |
Inpainting gambar yang dipandu teks | Inpaining difusi yang stabil | RunwayML/stabil-difusi-inpainting |
Variasi gambar | Variasi gambar difusi yang stabil | Lambdalabs/SD-Image-Variations-Diffusers |
Resolusi super | Difusi kelas atas yang stabil | stabilityai/stabil-diffusion-x4-upscaler |
Resolusi super | Difusi laten kelas atas yang stabil | StabilityAI/SD-X2-Latent-upscaler |
Terima kasih telah menggunakan kami ❤️.
Perpustakaan ini mengkonkretkan pekerjaan sebelumnya oleh banyak penulis yang berbeda dan tidak akan mungkin terjadi tanpa penelitian dan implementasi yang hebat. Kami ingin mengucapkan terima kasih, khususnya, implementasi berikut yang telah membantu kami dalam pengembangan kami dan tanpanya API tidak mungkin dipoles hari ini:
Kami juga ingin mengucapkan terima kasih kepada @heejkoo untuk ikhtisar makalah, kode, dan sumber daya yang sangat membantu pada model difusi, tersedia di sini serta @CrowsonKB dan @rromb untuk diskusi dan wawasan yang bermanfaat.
@misc { von-platen-etal-2022-diffusers ,
author = { Patrick von Platen and Suraj Patil and Anton Lozhkov and Pedro Cuenca and Nathan Lambert and Kashif Rasul and Mishig Davaadorj and Dhruv Nair and Sayak Paul and William Berman and Yiyi Xu and Steven Liu and Thomas Wolf } ,
title = { Diffusers: State-of-the-art diffusion models } ,
year = { 2022 } ,
publisher = { GitHub } ,
journal = { GitHub repository } ,
howpublished = { url{https://github.com/huggingface/diffusers} }
}