RM新时代|官方理财平台

實(shí)操: 如何在A(yíng)irBox上跑Stable Diffusion 3

以下文章來(lái)源于Radxa ,作者瑞莎

Stable Diffusion 3 Medium 是一種多模態(tài)擴散變換器 (MMDiT) 文本到圖像模型,在圖像質(zhì)量、排版、復雜提示理解和資源效率方面具有顯著(zhù)提升的性能。

目前瑞莎團隊使用 Stable Diffusion 3 Medium 開(kāi)源模型,通過(guò) SOPHON SDK 移植到 SG2300X 處理器系列產(chǎn)品上進(jìn)行本地 TPU 硬件加速推理,實(shí)現在 radxa Airbox 上離線(xiàn)快速生成特色風(fēng)格且帶清晰文本的圖片。
有關(guān) Stable Diffusion 3 Medium 更多技術(shù)細節,請參閱官方網(wǎng)站和研究論文。

Stable diffusion 3 模型架構Stable diffusion 3 模型架構

?

環(huán)境準備

硬件準備

1、Airbox + 65W的配套電源
2、網(wǎng)線(xiàn)
3、在局域網(wǎng)內可使用瀏覽器訪(fǎng)問(wèn) PC
4、Type-C 數據線(xiàn)(可選)

將網(wǎng)線(xiàn)根據您的網(wǎng)絡(luò )環(huán)境選擇插入 WAN 口(推薦接入廣域網(wǎng))或者 LAN 口(接入局域網(wǎng)),根據您的使用習慣可選將 Type-C 數據線(xiàn) C 口端插入 Airbox Debug 口, A 口端插入至您的 PC,最后插入電源上電自動(dòng)開(kāi)機,更多詳細關(guān)于硬件準備工作請參考這里

軟件環(huán)境準備

針對熟練度不同的 Linux 開(kāi)發(fā)者,可以選擇兩種方式進(jìn)行環(huán)境準備。因 Airbox 鏡像已經(jīng)預裝 CasaOS,所以本文以 CasaOS 命令行模式為例子進(jìn)行部署 Stable Diffusion 3
1、終端命令行模式
2、CasaOS 命令行模式(新手推薦)

開(kāi)啟終端

待 Airbox 開(kāi)機后,通過(guò)您的 PC 瀏覽器訪(fǎng)問(wèn) Airbox 的 IP 地址的 81 端口便可登錄 CasaOS,如何獲取 Airbox IP 地址?請參考這里
CasaOS 用戶(hù)名和密碼
Username: radxa
Password: radxa

Airbox 系統終端用戶(hù)名和密碼
Username: linaro
Password: linaro

CasaOS登錄界面CasaOS登錄界面

?

點(diǎn)擊 CasaOS 左上角第三個(gè)圖標登陸 Airbox 系統終端

CasaOS 終端登陸界面CasaOS 終端登陸界面

?

代碼環(huán)境準備?

終端打開(kāi)后,接下來(lái)就直接復制提供的命令就好

克隆 SD3-Medium-TPU 代碼倉庫?
cd /data
git clone https://github.com/zifeng-radxa/SD3-Medium-TPU.git && cd SD3-Medium-TPU

配置運行環(huán)境(僅需運行一次)?
此腳本會(huì )自動(dòng)配置所需運行依賴(lài)的庫,請耐心等待安裝?
source env.sh


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

  • 如果您可以流暢訪(fǎng)問(wèn) github, 可直接運行 run.sh 腳本, 這會(huì )自動(dòng)從 github 上下載模型后并啟動(dòng)程序?

bash run.sh

  • 如果你出現下載的壓縮包 md5 比對不過(guò)可以通過(guò)模型下載腳本重新下載

bash tar_downloader.sh

  • 如果您無(wú)法使用 github 下載,radxa 提供百度云鏈接,請將下載好的 models 文件夾拷貝到 Airbox 上 SD-Medium-TPU/python_demo 文件夾中,您可以直接通過(guò) CasaOS 文件管理器中直接上傳至 Airbox

鏈接: https://pan.baidu.com/s/1ngEYqbJLm4PGPQxsozs-Kw?pwd=w9v9 提取碼: w9v9 ? ? ? --來(lái)自百度網(wǎng)盤(pán)超級會(huì )員v5的分享
啟動(dòng) Stable Diffusion 3 Gradio 服務(wù)
確保下載好模型好啟動(dòng)服務(wù)
bash run.sh


啟動(dòng)后在您的 PC 瀏覽器訪(fǎng)問(wèn) Airbox IP 的 8999 端口即可訪(fǎng)問(wèn) Stable Diffusion3 Gradio 服務(wù)

Stable Diffusion3 Gradio 服務(wù)界面Stable Diffusion3 Gradio 服務(wù)界面


使用示例

點(diǎn)擊右上角 Load Model 加載模型?

  • 因為模型接近 10G 如果您的模型存放在 emmc 中,加載速度會(huì )比較慢,可以選擇存放在 SSD 中
  • 在 CasaOS 終端中可以看到各個(gè)模型的加載細節, 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(跳過(guò)模型推理的最后層數,建議為0)和隨機種子,最后點(diǎn)擊 Submit 按鈕開(kāi)始生成任務(wù),生成的圖片結果會(huì )直接顯示在右邊,點(diǎn)擊下載圖標可自行下載

Stable Diffusion 3 生圖效果Stable Diffusion 3 生圖效果

終端中會(huì )打印運行進(jìn)度,可見(jiàn)平均每個(gè) step 需要 2.93s

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


更多例子

radxa 提供多個(gè) Example 例子,用戶(hù)只需單擊例子選項即可復現生成的圖片。

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

分享到 :
RM新时代|官方理财平台