- miniDiffusion, Stable Diffusion 3.5 modelini minimum bağımlılıkla saf PyTorch üzerinde yeniden uygulayan bir proje; eğitim, deney ve hacking amaçlarına uygun olarak tasarlanmış
- Tüm uygulama, VAE’den DiT’ye, eğitim ve veri kümesi betiklerine kadar yaklaşık 2.800 satır büyüklüğünde; Stable Diffusion 3.5’i sıfırdan yeniden üretmek için gereken kodu en aza indirmeyi hedefliyor
- Ana model kodu
dit.py, dit_components.py, attention.py dosyalarında yer alıyor; Joint Attention, embedding’ler, normalizasyon, patch embedding ve DiT yardımcı fonksiyonları ayrılmış durumda
- Bileşenler arasında VAE, CLIP, T5 metin encoder’ı, Byte-Pair ve Unigram tokenizer’lar, Multi-Modal Diffusion Transformer, Flow-Matching Euler Scheduler, Logit-Normal Sampling yer alıyor
- Depoda hâlâ deneysel özellikler bulunuyor ve daha fazla test gerekiyor; MIT License kapsamında eğitim ve deney amaçlı sunuluyor
miniDiffusion’ın amacı ve kapsamı
- miniDiffusion, Stable Diffusion 3.5 modelini saf PyTorch ve minimum bağımlılıkla yeniden uygulayan bir proje
- Eğitim, deney ve hacking amaçlarına uygun olarak geliştirildi; Stable Diffusion 3.5’i sıfırdan yeniden üretmek için gereken kod miktarını azaltmaya odaklanıyor
- Uygulamanın kapsamı VAE, DiT, eğitim betikleri ve veri kümesi betikleri dahil yaklaşık 2.800 satır
Ana dosya yapısı
- Stable Diffusion modelinin çekirdek kodu şu dosyalarda bulunuyor
dit.py: ana DiT modeli kodu
dit_components.py: embedding’ler, normalizasyon, patch embedding, DiT yardımcı fonksiyonları
attention.py: Joint Attention uygulaması
noise.py içinde Rectified Flow’un ODE’sini çözmek için kullanılan Euler Scheduler bulunuyor
- Metin encoder’ları ve tokenizer’lar ayrı dosyalar halinde düzenlenmiş
t5_encoder.py: T5 metin encoder’ı
clip.py: CLIP uygulaması
tokenizer.py: T5 ve CLIP tokenizer’ları
metrics.py, Fréchet Inception Distance(FID) metriğini uygular
- Eğitim yardımcı kodu ve veri dönüştürme kodu şu dosyalarda yer alıyor
common.py: eğitim için yardımcı fonksiyonlar
common_ds.py: görüntü verilerini DiT eğitimi için veriye dönüştüren iterable dataset uygulaması
Klasörler ve checkpoint’ler
model klasörü, eğitimden sonra model checkpoint’lerini ve logları saklar
encoders klasörü, VAE ve CLIP gibi diğer modüllerin checkpoint’lerini saklar
İçerilen bileşenler
- Görüntü üretiminin çekirdek modülleri
-
VAE
-
CLIP
-
T5 Text Encoders
- Byte-Pair ve Unigram tokenizer’lar
- Stable Diffusion 3 ile ilgili bileşenler
- Multi-Modal Diffusion Transformer Model
- Flow-Matching Euler Scheduler
- Logit-Normal Sampling
- Joint Attention
- Stable Diffusion 3 için eğitim ve çıkarım betiklerini içerir
Kurulum ve kullanım öncesi hazırlık
git clone "https://github.com/yousef-rafat/miniDiffusion"
pip install -r requirements.txt
- Model checkpoint’lerini kurmadan önce
get_checkpoints.py dosyasına Hugging Face Token eklemelisiniz
python3 encoders/get_checkpoints.py
Durum ve lisans
- Depoda hâlâ deneysel özellikler var ve daha fazla test gerekiyor
- Proje MIT License ile sunuluyor ve eğitim ile deney amaçlıdır
Henüz yorum yok.