- यह लेख 512MB RAM वाले Raspberry Pi Zero 2 माइक्रो कंप्यूटर पर Stable Diffusion XL 1.0 चलाने की चर्चा करता है.
- चुनौती यह है कि swap space बढ़ाए बिना या intermediate results को disk पर offload किए बिना, लगभग 1 अरब parameters वाले बड़े transformer model Stable Diffusion 1.5 को चलाया जाए.
- लेखक ने OnnxStream बनाया है, जो memory consumption को न्यूनतम करने पर केंद्रित एक छोटा और hackable inference library है.
- OnnxStream inference engine और model weights देने वाले component को अलग करता है, जिससे model parameters के विभिन्न प्रकार के loading, caching और prefetching संभव होते हैं.
- OnnxStream, OnnxRuntime की तुलना में 55 गुना कम memory उपयोग करता है, जबकि केवल 0.5-2 गुना धीमा है.
- इस लेख में OnnxStream का उपयोग करके VAE decoder की विभिन्न precisions पर Stable Diffusion example implementation द्वारा बनाई गई images शामिल हैं.
- OnnxStream Stable Diffusion example implementation अब SDXL 1.0 को support करती है, जो SD 1.5 की तुलना में computationally अधिक costly है, लेकिन बड़ी images generate कर सकती है.
- OnnxStream, SDXL 1.0 को 300MB से कम RAM में चला सकता है, इसलिए यह Raspberry Pi Zero 2 के लिए उपयुक्त है.
- यह लेख SDXL 1.0 के लिए विशेष optimizations पर चर्चा करता है, जिनमें memory consumption को 4.4GB से घटाकर 298MB करने के लिए tile decoding का उपयोग शामिल है.
- OnnxStream की क्षमताओं में inference engine और WeightsProvider का separation, attention slicing, dynamic और static quantization, FP16 support आदि शामिल हैं.
- यह लेख विभिन्न operating systems पर Stable Diffusion example को build करने के लिए विस्तृत निर्देश देता है.
- sd.cpp का Stable Diffusion implementation दो अन्य projects पर आधारित है, और इसे NCNN की जगह OnnxStream उपयोग करने के लिए संशोधित किया गया है.
1 टिप्पणियां
Hacker News राय