- miniDiffusion adalah proyek yang mengimplementasikan ulang model Stable Diffusion 3.5 dengan PyTorch murni dan dependensi minimal, dirancang untuk tujuan edukasi, eksperimen, dan hacking
- Seluruh implementasi, mulai dari VAE hingga DiT, beserta skrip pelatihan dan dataset, berukuran sekitar 2.800 baris, dengan arah meminimalkan kode yang diperlukan untuk mereproduksi Stable Diffusion 3.5 dari nol
- Kode model utama berada di
dit.py, dit_components.py, dan attention.py, dengan pemisahan Joint Attention, embedding, normalisasi, patch embedding, serta fungsi bantu DiT
- Komponen yang disertakan mencakup VAE, CLIP, encoder teks T5, tokenizer Byte-Pair dan Unigram, Multi-Modal Diffusion Transformer, Flow-Matching Euler Scheduler, dan Logit-Normal Sampling
- Repositori ini masih memiliki fitur eksperimental dan memerlukan lebih banyak pengujian, serta disediakan di bawah MIT License untuk tujuan edukasi dan eksperimen
Tujuan dan cakupan miniDiffusion
- miniDiffusion adalah proyek yang mengimplementasikan ulang model Stable Diffusion 3.5 dengan PyTorch murni dan dependensi minimal
- Dibuat untuk tujuan edukasi, eksperimen, dan hacking, serta berfokus pada pengurangan jumlah kode yang diperlukan untuk mereproduksi Stable Diffusion 3.5 dari nol
- Skala implementasinya sekitar 2.800 baris, termasuk VAE, DiT, skrip pelatihan, dan skrip dataset
Susunan file utama
- Kode inti model Stable Diffusion berada di file berikut
dit.py: kode utama model DiT
dit_components.py: embedding, normalisasi, patch embedding, fungsi bantu DiT
attention.py: implementasi Joint Attention
noise.py berisi Euler Scheduler untuk menyelesaikan ODE dari Rectified Flow
- Encoder teks dan tokenizer disusun dalam file terpisah
t5_encoder.py: encoder teks T5
clip.py: implementasi CLIP
tokenizer.py: tokenizer T5 dan CLIP
metrics.py mengimplementasikan Fréchet Inception Distance (FID)
- Kode bantu pelatihan dan transformasi data berada di file berikut
common.py: fungsi bantu untuk pelatihan
common_ds.py: implementasi iterable dataset yang mengubah data gambar menjadi data untuk pelatihan DiT
Folder dan checkpoint
- Folder
model menyimpan checkpoint model dan log setelah pelatihan
- Folder
encoders menyimpan checkpoint modul lain seperti VAE dan CLIP
Komponen yang disertakan
- Modul inti pembuatan gambar
-
VAE
-
CLIP
-
T5 Text Encoders
- tokenizer Byte-Pair dan Unigram
- komponen terkait Stable Diffusion 3
- model Multi-Modal Diffusion Transformer
- Flow-Matching Euler Scheduler
- Logit-Normal Sampling
- Joint Attention
- mencakup skrip pelatihan dan inferensi untuk Stable Diffusion 3
Instalasi dan persiapan sebelum penggunaan
git clone "https://github.com/yousef-rafat/miniDiffusion"
pip install -r requirements.txt
- Sebelum memasang checkpoint model, Anda harus menambahkan Hugging Face Token ke
get_checkpoints.py
python3 encoders/get_checkpoints.py
Status dan lisensi
- Repositori ini masih memiliki fitur eksperimental dan memerlukan lebih banyak pengujian
- Proyek ini disediakan dengan MIT License untuk tujuan edukasi dan eksperimen
Belum ada komentar.