实操: 如何在AirBox上跑Stable Diffusion 3

描述

以下文章来源于Radxa ,作者瑞莎

Stable Diffusion 3 Medium 是一种多模态扩散变换器 (MMDiT) 文本到图像模型,在图像质量、排版、复杂提示理解和资源效率方面具有显著提升的性能。

 

目前瑞莎团队使用 Stable Diffusion 3 Medium 开源模型,通过 SOPHON SDK 移植到 SG2300X 处理器系列产品上进行本地 TPU 硬件加速推理,实现在 radxa Airbox 上离线快速生成特色风格且带清晰文本的图片。

有关 Stable Diffusion 3 Medium 更多技术细节,请参阅官方网站和研究论文。

变换器

Stable diffusion 3 模型架构

环境准备

硬件准备

  • Airbox + 65W的配套电源
  • 网线 
  • 在局域网内可使用浏览器访问 PC 
  • Type-C 数据线(可选) 

将网线根据您的网络环境选择插入 WAN 口(推荐接入广域网)或者 LAN 口(接入局域网),根据您的使用习惯可选将 Type-C 数据线 C 口端插入 Airbox Debug 口, A 口端插入至您的 PC,最后插入电源上电自动开机,更多详细关于硬件准备工作请参考这里

软件环境准备

针对熟练度不同的 Linux 开发者,可以选择两种方式进行环境准备。因 Airbox 镜像已经预装 CasaOS,所以本文以 CasaOS 命令行模式为例子进行部署 Stable Diffusion 3

  • 终端命令行模式 
  • CasaOS 命令行模式(新手推荐)

开启终端

待 Airbox 开机后,通过您的 PC 浏览器访问 Airbox 的 IP 地址的 81 端口便可登录 CasaOS,如何获取 Airbox IP 地址?请参考这里

CasaOS 用户名和密码 

  •  
  •  

Username: radxaPassword: radxa

Airbox 系统终端用户名和密码 

  •  
  •  

Username: linaroPassword: linaro

 

点击 CasaOS 左上角第三个图标登陆 Airbox 系统终端

变换器CasaOS 终端登陆界面

代码环境准备 

终端打开后,接下来就直接复制提供的命令就好

    克隆 SD3-Medium-TPU 代码仓库 

  •  
  •  

cd /datagit clone https://github.com/zifeng-radxa/SD3-Medium-TPU.git && cd SD3-Medium-TPU

    配置运行环境(仅需运行一次) 此脚本会自动配置所需运行依赖的库,请耐心等待安装 

  •  

source env.sh

下载 radxa 提供好的 Stable Diffusion 3 bmodel 格式模型 

如果您可以流畅访问 github, 可直接运行 run.sh 脚本, 这会自动从 github 上下载模型后并启动程序 

  •  

bash run.sh

如果你出现下载的压缩包 md5 比对不过可以通过模型下载脚本重新下载

  •  

bash tar_downloader.sh

如果您无法使用 github 下载,radxa 提供百度云链接,请将下载好的 models 文件夹拷贝到 Airbox 上 SD-Medium-TPU/python_demo 文件夹中,您可以直接通过 CasaOS 文件管理器中直接上传至 Airbox

 

启动 Stable Diffusion 3 Gradio 服务确保下载好模型好启动服务

  •  

bash run.sh

启动后在您的 PC 浏览器访问 Airbox IP 的 8999 端口即可访问 Stable Diffusion3 Gradio 服务

变换器

Stable Diffusion3 Gradio 服务界面

使用示例

    点击右上角 Load Model 加载模型 

因为模型接近 10G 如果您的模型存放在 emmc 中,加载速度会比较慢,可以选择存放在 SSD 中

在 CasaOS 终端中可以看到各个模型的加载细节, SSD 中加载模型需要 37 秒

  •  

read file models/mmdit.bmodel, size 100000, duration 0.000318, speed 0.292869 GB/s[BMRT][bmcpu_setup:406] INFO:cpu_lib 'libcpuop.so' is loaded.bmcpu init: skip cpu_user_definedopen usercpu.so, init user_cpu_init [BMRT][load_bmodel:1084] INFO:Loading bmodel from [models/mmdit.bmodel]. Thanks for your patience...[BMRT][load_bmodel:1023] INFO:pre net num: 0, load net num: 26[BMRT][bmcpu_setup:406] INFO:cpu_lib 'libcpuop.so' is loaded.bmcpu init: skip cpu_user_definedopen usercpu.so, init user_cpu_init [BMRT][load_bmodel:1084] INFO:Loading bmodel from [models/clip_g.bmodel]. Thanks for your patience...[BMRT][load_bmodel:1023] INFO:pre net num: 0, load net num: 14[BMRT][bmcpu_setup:406] INFO:cpu_lib 'libcpuop.so' is loaded.bmcpu init: skip cpu_user_definedopen usercpu.so, init user_cpu_init [BMRT][load_bmodel:1084] INFO:Loading bmodel from [models/clip_l.bmodel]. Thanks for your patience...[BMRT][load_bmodel:1023] INFO:pre net num: 0, load net num: 34[BMRT][bmcpu_setup:406] INFO:cpu_lib 'libcpuop.so' is loaded.bmcpu init: skip cpu_user_definedopen usercpu.so, init user_cpu_init [BMRT][load_bmodel:1084] INFO:Loading bmodel from [models/t5.bmodel]. Thanks for your patience...[BMRT][load_bmodel:1023] INFO:pre net num: 0, load net num: 26[BMRT][bmcpu_setup:406] INFO:cpu_lib 'libcpuop.so' is loaded.bmcpu init: skip cpu_user_definedopen usercpu.so, init user_cpu_init [BMRT][load_bmodel:1084] INFO:Loading bmodel from [models/vae_decoder.bmodel]. Thanks for your patience...[BMRT][load_bmodel:1023] INFO:pre net num: 0, load net num: 1You set `add_prefix_space`. The tokenizer needs to be converted from the slow tokenizers
 

填入 Prompt 信息

  • 在 Prompt 填入英文提示词,比如
  •  

A cat with a sign text Welcome to radxa!

  • 可选填入 Negative Prompt 反向提示词(输入不想出现的物体)
  •  

deformed, lowres, bad anatomy, error, extra digit, fewer digits, cropped, worst quality, low quality, jpeg artifacts, signature, watermark, username, blurry, artist name

选择合理的步数和 CFG值,可选 clip skip(跳过模型推理的最后层数,建议为0)和随机种子,最后点击 Submit 按钮开始生成任务,生成的图片结果会直接显示在右边,点击下载图标可自行下载
 


 

终端中会打印运行进度,可见平均每个 step 需要 2.93s

  •  
  •  
  •  
  •  

set seed to: 15>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>100%|████████████████████████████████████████████████████████████████████| 28/28 [01:22<00:00,  2.93s/it]

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分