以下文章來源于Radxa ,作者瑞莎
Stable Diffusion 3 Medium 是一種多模態擴散變換器 (MMDiT) 文本到圖像模型,在圖像質量、排版、復雜提示理解和資源效率方面具有顯著提升的性能。
目前瑞莎團隊使用 Stable Diffusion 3 Medium 開源模型,通過 SOPHON SDK 移植到 SG2300X 處理器系列產品上進行本地 TPU 硬件加速推理,實現在 radxa Airbox 上離線快速生成特色風格且帶清晰文本的圖片。
有關 Stable Diffusion 3 Medium 更多技術細節,請參閱官方網站和研究論文。
Stable diffusion 3 模型架構
環境準備
硬件準備
將網線根據您的網絡環境選擇插入 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: 1Youset`add_prefix_space`.Thetokenizerneedstobeconvertedfromtheslowtokenizers
填入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]
-
變換器
+關注
關注
17文章
2099瀏覽量
109305 -
圖像
+關注
關注
2文章
1084瀏覽量
40463 -
模型
+關注
關注
1文章
3243瀏覽量
48840
發布評論請先 登錄
相關推薦
評論