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

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

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

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

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

环境准备

硬件准备

  • 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登陆界面

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

代码环境准备

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

克隆 SD3-Medium-TPU 代码仓库

cd /data
git 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

    链接: https://pan.baidu.com/s/1ngEYqbJLm4PGPQxsozs-Kw?pwd=w9v9 提取码: w9v9 --来自百度网盘超级会员v5的分享

启动 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_defined
    open 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_defined
    open 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_defined
    open 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_defined
    open 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_defined
    open 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: 1
    You 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 按钮开始生成任务,生成的图片结果会直接显示在右边,点击下载图标可自行下载
Stable Diffusion 3 生图效果

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

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

更多例子

radxa 提供多个 Example 例子,用户只需单击例子选项即可复现生成的图片。
Prompt: A vibrant street wall covered in colorful graffiti, the centerpiece spells "Radxa Airbox", in a storm of colors

Prompt: a cyberpunk hotel with the neon sign with the text Radxa Airbox

Prompt: Astronaut in a jungle, cold color palette, muted colors, detailed, 8k

相关推荐
SharpCJ14 小时前
ComfyUI 基础教程(五) —— 应用 IP-Adapter 实现图像风格迁移
stable diffusion·aigc·comfyui
清图2 天前
智能营销才是营销的未来
人工智能·chatgpt·ai作画·stable diffusion·aigc·dall·e 2·ai-native
python零基础入门小白4 天前
Stable Diffusion4.9(Ai绘画)安装教程(永久许可)
stable diffusion·aigc
雪碧有白泡泡4 天前
Stable Diffusion AI算法,实现一键式后期处理与图像修复魔法
人工智能·算法·stable diffusion
AliCloudROS4 天前
基于 ROS 的Terraform托管服务轻松部署Stable Diffusion
云原生·stable diffusion·ros·terraform·iac
xiaoh_75 天前
Comfy UI使用最新SD3模型,并解决报错‘NoneType‘ object has no attribute ‘tokenize‘【实测可行】
ui·ai作画·stable diffusion
Percep_gan5 天前
stable diffusion 反推提示词插件 tagger 的安装,很详细
stable diffusion
雄狮少年5 天前
Stable diffusion生图原理
人工智能·ai作画·stable diffusion·aigc·sd
flydean程序那些事7 天前
在stable diffussion中完美修复AI图片
人工智能·深度学习·计算机视觉·ai·stable diffusion·ai绘画·程序那些事
肖遥Janic7 天前
Stable Diffusion绘画 | ControlNet应用-Tile(分块)—tile_colorfix+sharp(分块-固定颜色+锐化)
人工智能·ai·ai作画·stable diffusion