Stable Diffusion 部署
介绍
Stable-Diffusion 是由 Stability AI 开发的开源文本到图像生成模型,基于潜在扩散模型(Latent Diffusion)架构,能够根据自然语言描述生成高质量图像。该模型通过数十亿级图文对训练,支持多分辨率输出(如 512x512 至 1024x1024),可生成写实、艺术风格或抽象视觉内容,广泛应用于创意设计、广告素材生成、游戏资产创作及教育可视化。其开源特性允许用户本地部署,通过调整提示词、采样步数等参数精细化控制生成效果,同时支持图像修复、超分辨率等扩展任务。技术挑战包括平衡生成质量与计算资源消耗(需中高端 GPU)、避免生成偏见或敏感内容,以及优化实时交互体验。
本章节将演示如何在边缘设备上完成 ControlNet 部署、加载与推理流程。提供以下方式部署:
- AidLite Python API
在本案例中,模型推理运行在设备端 NPU 计算单元,通过代码调用相关接口接收用户输入并返回结果。
- 设备:Rhino Pi-X1
- 系统:Ubuntu 22.04
- 源模型:Stable Diffusion V2.1
- 模型精度:FP16
- Model Farm 模型参考:Stable Diffusion
支持平台
| 平台 | 运行方式 |
|---|---|
| Rhino Pi-X1 | Ubuntu 22.04, AidLux |
准备工作
- Rhino Pi-X1 硬件
- Ubuntu 22.04 系统或 AidLux 系统
下载 Stable-Diffusion-v2.1-W8A16 模型资源
bash
mms list Stable-Diffusion
#------------------------可以看到 Stable-Diffusion 模型------------------------
Model Precision Chipset Backend
----- --------- ------- -------
Stable-Diffusion-v2.1 W8A16 Qualcomm QCS8550 QNN2.31
# 下载 ControlNet-W8A16
mms get -m Stable-Diffusion-v2.1 -p w8a16 -c qcs8550 -b qnn2.31 -d /home/aidlux/stable_diffusion
cd /home/aidlux/stable_diffusion
# 解压
unzip stable_diffusion_v2_1_qcs8550_qnn2.31_w8a16_aidlite.zip💡注意
开发者也可以在 Model Farm 网页上搜索并下载
AidLite SDK 安装
开发者也可以参考模型文件夹中的 README.md 安装 SDK
- 确保 QNN 后端版本
≥ 2.31 - 确保
aidlite-sdk和aidlite-qnnxxx的版本是2.3.x
bash
# AidLite & QNN 版本检查
dpkg -l | grep aidlite
#------------------------ 可以看到类似如下输出 ------------------------
ii aidlite-qnn236 2.3.0.230 arm64 aidlux aidlite qnn236 backend plugin
ii aidlite-sdk 2.3.0.230 arm64 aidlux inference module sdkQNN & AidLite 版本更新
bash
# 安装 AidLite SDK
sudo aid-pkg update
sudo aid-pkg install aidlite-sdk
sudo aid-pkg install aidlite-qnn236
# aidlite sdk c++ check
python3 -c "import aidlite; print(aidlite.get_library_version())"
# aidlite sdk python check
python3 -c "import aidlite; print(aidlite.get_py_library_version())"AidLite Python API 部署
运行 Python API 例子
bash
# 安装相关 Python 依赖
cd /home/aidlux/stable_diffusion/model_farm_stable_diffusion_v2_1_qcs8550_qnn2.31_w8a16_aidlite
pip install -r python/requirements.txt
# --prompt: 提示词
# --save_path: 图片生成路径
python3 python/run_test.py --prompt 'Chinese garden at wildlife river and mountain range, highly detailed, digital illustration, artstation, concept art, matte, sharp focus, illustration, dramatic, sunset, hearthstone, art by Artgerm and Greg Rutkowski and Alphonse Mucha' --save_path python/generate_img.jpg可以在命令行看到模型推理耗时 (单位 ms)以及结果:
plain
Vae model loading successful!
>> Text model invoketime: 9.657859802246094 ms
>> Text model invoketime: 9.041786193847656 ms
>>>>>Step 0 Running...
>>>>>Step 1 Running...
>>>>>Step 2 Running...
>>>>>Step 3 Running...
>>>>>Step 4 Running...
>>>>>Step 5 Running...
>>>>>Step 6 Running...
>>>>>Step 7 Running...
>>>>>Step 8 Running...
>>>>>Step 9 Running...
>>>>>Step 10 Running...
>>>>>Step 11 Running...
>>>>>Step 12 Running...
>>>>>Step 13 Running...
>>>>>Step 14 Running...
>>>>>Step 15 Running...
>>>>>Step 16 Running...
>>>>>Step 17 Running...
>>>>>Step 18 Running...
>>>>>Step 19 Running...
>> Vae model invoketime: 218.69373321533203 ms
>>>Generated image has been saved to python/generate_img.jpg
Invoke time :4.754089832305908 s结果图片 generate_img.jpg 保存在路径 /home/aidlux/stable_diffusion/model_farm_stable_diffusion_v2_1_qcs8550_qnn2.31_w8a16_aidlite/python 下