在树莓派上跑 Stable Diffusion:一场硬件与耐心的较量

在树莓派5上运行 Stable Diffusion,记录从环境配置到实际生成的完整过程,以及踩过的各种坑。

心血来潮想在树莓派上跑 Stable Diffusion WebUI,结果……既有趣又折磨。

硬件配置

  • 树莓派 5 8GB
  • 64GB SD 卡(换成 SSD 启动会更快)
  • 8GB Swap
  • USB 风扇散热

方案选择

我用的是 diffusers 库配合 PyTorch CPU 版本跑 Stable Diffusion。官方 WebUI 直接放弃——对内存和存储的要求太高了。

from diffusers import StableDiffusionPipeline, DPMSolverMultistepScheduler
import torch

model_id = "runwayml/stable-diffusion-v1-5"
pipe = StableDiffusionPipeline.from_pretrained(
    model_id,
    torch_dtype=torch.float32,
)
pipe.scheduler = DPMSolverMultistepScheduler.from_config(
    pipe.scheduler.config
)
pipe = pipe.to("cpu")

prompt = "a photo of an astronaut riding a horse"
image = pipe(prompt, num_inference_steps=20).images[0]
image.save("output.png")

实际表现

一张 512x512 的图大约需要 40-60 分钟。是的,你没看错,是分钟而不是秒。这个速度在实际使用中基本不可行——但用来学习原理和做实验足够了。

踩的坑

  1. 内存不足:8GB 物理内存+8GB Swap 还是不够,要控制生成图片分辨率和 batch size
  2. 温度过高:CPU 全开几分钟就撞温度墙降频,加了风扇勉强压住
  3. SD 卡寿命:频繁 swap 写入对 SD 卡损耗很大

结论

如果目标是学习 Stable Diffusion 原理,树莓派是个有趣的实验平台。如果想实际使用,出门左转租个 GPU 服务器。

不过看着自己折腾的设备真的跑出了 AI 生成的图,成就感还是满满的。

下一步准备试试量化模型,看能不能把时间压缩到 10 分钟以内。