【个人开源】——从零开始在高通手机上部署sd(一)

代码:https://github.com/chenjun2hao/qualcomm.sd

从零基础开始,在自己的高通手机(骁龙8 gen1+)上用NPU跑文生图stable diffusion模型。包含:

  • 高通qnn下载安装
  • sd模型浮点/量化导出
  • 在高通手机上用cpu跑浮点模型,htp跑量化模型

1. python依赖安装

主要对齐transformers, diffusers的版本,其他参考requirements.txt

复制代码
pip install transformers==4.40.0 diffusers==0.32.2

2. python浮点模型测试

bash 复制代码
# 1.下载sd 模型
git clone https://hf-mirror.com/segmind/portrait-finetuned

# 2.通过diffuser的pipe测试模型
cd $PROJECT_HOME
python sd_portrait_diffpip.py

# 3.通过自己实现的pipe测试模型
python sd_portrait_ownpip.py

结果可视化:

3. 导出浮点模型/x64 cpu模拟推理/高通cpu推理

高通libQnnCpu.so好像只支持浮点模型,不支持量化模型(可能后续的硬件,会支持)。

3.1 高通qnn安装

coming soon ...

3.2 导出浮点模型

复制代码
cd $PROJECT_HOME
python export_model.py --export_quant_model false

导出的模型在qnn_models/xxx下. eg: qnn_models/text_encoder_float/x86_64-linux-clang/libtext_encoder.so是x64上模拟推理时需要的模型。qnn_models/text_encoder_float/aarch64-android/libtext_encoder.so是push到android手机上使用的模型

3.3 x64 cpu模拟推理

参考项目readme运行:qualcomm.ai

3.4 高通cpu推理

将所有依赖的东西push到android手机上。参考项目readme运行:qualcomm.ai

4. 导出量化模型/高通htp推理

4.1 生成量化用数据

bash 复制代码
cd $PROJECT_HOME
python make_calibration_data.py

4.2 导出量化模型

4.3 x64模拟htp推理

高通在x64平台上,有模拟HTP硬件执行的软件库,但是sd模型运行太慢了。

4.4 高通HTP推理

将所有依赖的东西push到android手机上。参考项目readme运行:qualcomm.ai

5. reference

  1. StableDiffusionOnDevice
相关推荐
wanhengidc13 小时前
云手机能够流畅运行大型游戏吗
运维·服务器·游戏·智能手机·云计算
啦啦91171416 小时前
Niagara Launcher 全新Android桌面启动器!给手机换个门面!
android·智能手机
不一样的故事12617 小时前
iPhone 17 Pro Max 的评测和用户反馈
数码相机·智能手机·iphone
夏之繁花17 小时前
追剧喵 v3.2.0 手机影视播放器工具
智能手机
青茶36020 小时前
iPhone苹果手机拍的照片默认是heic如何换成jpg格式
ios·智能手机·手机·iphone
mit6.8241 天前
[手机AI开发sdk] 模型冻结&解冻.pb | `aidlite`加速AI模型
人工智能·智能手机
nono牛2 天前
MTK平台详解`ro.boot.serialno` 的实现流程 adb devices输出序列号
adb·智能手机
JoyCong19982 天前
手机、平板、电脑如何投屏画面到电视?ToDesk远程控制TV版教程分享
智能手机·电脑
Digitally2 天前
如何用5种实用方法将电脑上的音乐传输到安卓手机
android·智能手机·电脑
wanhengidc2 天前
云手机的基本原理
运维·服务器·游戏·智能手机·云计算