树莓派能跑Stable Diffusion了

Stable Diffusion是一种文本到图像生成的大型深度学习模型,它可以根据文本的描述生成详细的图像,也可以用于其他任务,如图像修复、图像扩展、图像翻译等。

它是基于潜在扩散模型(Latent Diffusion Model)的一种变体,通过对图像添加和去除噪声来训练和生成图像。

该模型由Stability AI和LAION联合开发,目前是一个开源的AI平台,有很多用户和开发者贡献了不同的预训练模型和插件。

一般情况下,跑Stable Diffusion需要的配置:最好是有英伟达(Nvidia)的独立显卡,显存不少于4GB,推荐8GB以上;内存8GB以上,推荐16GB或以上;硬盘40GB以上的可用空间,最好是固态硬盘;操作系统支持Windows 10/11,macOS(仅限Apple Silicon或更新版本),Linux等。

但最近有人在树莓派Zero 2上运行Stable Diffusion了,而树莓派 Zero 2 只是内存512MB 的单板计算机。

它的配置和规格如下:

  • 处理器:Broadcom BCM2710A1,四核64位SoC(Arm Cortex-A53 @ 1GHz)
  • 内存:512MB LPDDR2
  • 连接性:2.4GHz IEEE 802.11b/g/n无线局域网,蓝牙4.2,BLE,带天线的屏蔽罩
  • 接口:1 × USB 2.0 OTG接口
  • HAT兼容的40针I/O头插座(未焊接)
  • microSD卡插槽
  • Mini HDMI端口
  • CSI-2摄像头连接器
  • 视频:HDMI接口
  • 复合的视频和复位引脚焊点
  • 多媒体:H.264, MPEG-4解码(1080p30)
  • H.264编码(1080p30)
  • OpenGL ES 1.1, 2.0图形
  • 输入电源:5V DC 2.5A
  • 工作温度:-20°C to +70°C

Raspberry Pi Zero 2 W的尺寸是65mm × 30mm,与原来的Raspberry Pi Zero一样。它的性能比原来的单核Raspberry Pi Zero提高了五倍。一般用于智能家居、物联网等项目。

为了让更多低配置的计算机也能用Stable Diffusion出图。

一个名为vitoplantamura的开发者决定写一个超小的推理库,让260MB内存的单板机也能将Stable Diffusion跑起来。终于,他成功了。

他用C++开发的OnnxStream,是一个能够在低内存设备上运行 Stable Diffusion 的推理库,它通过分离推理引擎和权重提供器,以及量化等技术,完成了在树莓派 Zero 2 上生成图像的挑战。

与微软的OnnxStream 相比,vitoplantamura的OnnxStream 只需要消耗 1/55 的内存就可以达到同样的效果,但(在 CPU 上的)速度只比前者慢 0.5-2 倍。

虽然运行速度较慢,但它却是大模型在更小、更有限的设备上部署的崭新尝试。

相关源码:

https://github.com/vitoplantamura/OnnxStream