- Bu makale, 512 MB RAM'e sahip Raspberry Pi Zero 2 adlı mikro bilgisayarda Stable Diffusion XL 1.0 çalıştırılmasına dair bir tartışmayı ele alıyor.
- Zorluk, swap alanını artırmadan veya ara sonuçları diske offload etmeden, yaklaşık 1 milyar parametreye sahip büyük bir transformer modeli olan Stable Diffusion 1.5'i çalıştırmak.
- Yazar, bellek tüketimini en aza indirmeye odaklanan küçük ve hacklenebilir bir çıkarım kütüphanesi olan OnnxStream'i geliştirdi.
- OnnxStream, çıkarım motorunu model ağırlıklarını sağlayan bileşenden ayırarak model parametreleri için farklı yükleme, önbellekleme ve prefetching türlerine izin veriyor.
- OnnxStream, OnnxRuntime'a kıyasla 55 kat daha az bellek tüketirken yalnızca 0,5-2 kat daha yavaş.
- Makalede, VAE decoder'ın farklı hassasiyet seviyelerinde OnnxStream kullanılarak hazırlanmış Stable Diffusion örnek uygulaması tarafından üretilen görseller yer alıyor.
- OnnxStream Stable Diffusion örnek uygulaması artık SDXL 1.0'ı destekliyor; bu sürüm SD 1.5'e göre hesaplama açısından daha maliyetli olsa da daha büyük görseller üretebiliyor.
- OnnxStream, SDXL 1.0'ı 300 MB'tan az RAM'de çalıştırabildiği için Raspberry Pi Zero 2 için uygun.
- Makale, SDXL 1.0 için belirli optimizasyonları tartışıyor; bunlar arasında bellek tüketimini 4,4 GB'den 298 MB'a düşürmek için tiled decoding kullanılması da var.
- OnnxStream'in özellikleri arasında çıkarım motoru ile WeightsProvider'ın ayrılması, attention slicing, dinamik ve statik quantization, FP16 desteği ve daha fazlası bulunuyor.
- Makale, farklı işletim sistemlerinde Stable Diffusion örneğinin nasıl derleneceğine dair ayrıntılı talimatlar sunuyor.
- sd.cpp içindeki Stable Diffusion uygulaması, diğer iki projeyi temel alıyor ve NCNN yerine OnnxStream kullanacak şekilde değiştirilmiş.
1 yorum
Hacker News görüşleri
invoke.aiüzerinden Stable Diffusion kullanıyor, ancak daha iyi parametre ayarları için öneriler arıyor.