Skip to content

Stable Diffusion 部署

介绍

Stable-Diffusion 是由 Stability AI 开发的开源文本到图像生成模型,基于潜在扩散模型(Latent Diffusion)架构,能够根据自然语言描述生成高质量图像。该模型通过数十亿级图文对训练,支持多分辨率输出(如 512x512 至 1024x1024),可生成写实、艺术风格或抽象视觉内容,广泛应用于创意设计、广告素材生成、游戏资产创作及教育可视化。其开源特性允许用户本地部署,通过调整提示词、采样步数等参数精细化控制生成效果,同时支持图像修复、超分辨率等扩展任务。技术挑战包括平衡生成质量与计算资源消耗(需中高端 GPU)、避免生成偏见或敏感内容,以及优化实时交互体验。

本章节将演示如何在边缘设备上完成 ControlNet 部署、加载与推理流程。提供以下方式部署:

  • AidLite Python API

在本案例中,模型推理运行在设备端 NPU 计算单元,通过代码调用相关接口接收用户输入并返回结果。

支持平台

平台运行方式
Rhino Pi-X1Ubuntu 22.04, AidLux

准备工作

  1. Rhino Pi-X1 硬件
  2. 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-sdkaidlite-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 sdk

QNN & 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