PTT推薦

[討論] 手機跑AI繪圖 Stable Diffusion

看板MobileComm標題[討論] 手機跑AI繪圖 Stable Diffusion作者
ivon852
(內容農場殺手)
時間推噓29 推:29 噓:0 →:12

AI繪圖軟體,最近比較熱門的是Stable Diffusion,它的好處為能在自己的電腦跑,而不用依賴雲端服務,硬體到位想做什麼都可以。

這時候不禁想到,手機是否也有跑AI繪圖模型的辦法?畢竟都有人用樹莓派跑了

最近有開發者自行移植Stable Diffusion到iOS平台,蘋果使用者可以直接下載APP來玩,配合最新iPhone的性能,幾分鐘就能出圖,該APP稱之為Draw Things。

那如果是Android平台呢?乾脆直接跑電腦版Stable Diffusion吧,所以有了這篇的實驗。

網誌好讀版:https://reurl.cc/a155Ml

建議硬體:

1. 8GB以上RAM的手機,有「虛擬記憶體」功能的更好,因為Stable Diffusion建議規格是12GB以上RAM。
2. 30GB以上的儲存空間
3. S865以上的處理器
4. 很快的網路


手機不需要root,然而沒root的情況最多只能算到320x320的圖片。有root的話可以上到512x512。

首先我們需要Linux環境,當然就是請出Termux,然後裝Debian。

(選擇性) 編譯virgl使之能存取手機的GPU(需要支援Vulkan)

進入Debian環境,安裝Python和Pip

接著下載Stable Diffusion v1.5的模型 (30GB),要畫動漫人物則是找Anything。

WebUI目前我是裝不起來

寫個Python小程式開始算圖,關鍵字填維多利亞,長寬320像素
https://i.imgur.com/GwiyIMI.png

圖 手機跑AI繪圖 Stable Diffusion

開發人員選項禁止所有APP在背景執行

開始算圖,等個20分鐘 (用GPU算的話15分鐘)就會出圖。關鍵字設定不好就會恐怖谷。
https://i.imgur.com/Dqfa7w8.png

圖 手機跑AI繪圖 Stable Diffusion

如果想要算到512x512像素,我們就得另外設定Debian/Ubuntu的chroot環境。又Termux一旦執行Stable Diffusion算更大的圖,會因佔用過多CPU被系統殺掉,因此要從電腦ADB
Shell進入手機的終端機,進入chroot,從這裡啟動算圖程式節省資源。

(嗯都用到電腦了我幹嘛還用手機算呢,電腦出圖只要30秒)

Stable Diffusion算的圖片大小越高,越吃資源。
https://i.imgur.com/gUosjoX.png

圖 手機跑AI繪圖 Stable Diffusion

順帶一提手機沒有虛擬記憶體功能的,也可以手動在chroot裡面建立SWAP file,並將之掛載到系統,這樣8GB手機也能擴張到20GB的RAM。

接著只要等一小時圖就會出來了 (沒辦法,chroot無法用GPU)
https://i.imgur.com/HVlfSi2.png

圖 手機跑AI繪圖 Stable Diffusion


經歷幾小時系統不斷的崩潰和等待,做完實驗後發現我的美好星期天只剩下三個小時了。

結論是勉強可行,運算時手機其實也沒燒起來。
若有人能利用Android的AI技術移植Stable Diffusion就更好了,能有效利用手機GPU。
目前只有ncnn版的Stable Diffusion能在手機跑。

--
最真實的1944年日美海空戰,絕贊上映中。
https://i.imgur.com/XvVnOv9.png

圖 手機跑AI繪圖 Stable Diffusion
https://i.imgur.com/z3atpS6.png
圖 手機跑AI繪圖 Stable Diffusion
https://i.imgur.com/QrmG2LL.png
圖 手機跑AI繪圖 Stable Diffusion
https://i.imgur.com/zZ0vNvR.png
圖 手機跑AI繪圖 Stable Diffusion
https://i.imgur.com/dlhNnEL.png
圖 手機跑AI繪圖 Stable Diffusion

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.40.6.25 (臺灣)

※ 文章網址:
https://www.ptt.cc/MobileComm/E.J0mfLAOxFQPc

※ 編輯: ivon852 (114.40.6.25 臺灣), 02/20/2023 00:18:21

benjaminchia02/20 00:21自言自語

NX999902/20 00:31彩!!

jaspergod02/20 00:39實驗精神推XD 瞎搞也是種浪漫

saimeitetsu02/20 00:58PC都熱爆了,用手機跑soc應該會提早虛焊

其實CPU算的時候並沒有比長時間錄製4K熱

sismiku02/20 02:00然後就可以出保了

hollen902/20 06:30某樓標準劣幣逐良幣

jhangyu02/20 07:29推,不過實在太久了,3060出圖不過6~8秒

BlackCoal02/20 07:51S865的手機價格,組一台PC還比較划算

sixkeeper02/20 08:49好猛推個,不曉得有沒有可能推APP出來?

Arbin02/20 08:50Termux那ART沙箱環境做chroot的效能會差一點

s7851322102/20 08:51我還是手機上colab吧

Arbin02/20 08:52只是也不知道直接用root的方式做chroot會不會有其他問題就

Arbin02/20 08:52是了

從ADB shell進入chroot就不會有Termux耗盡記憶體崩潰的問題。ADB Shell是純文字介面, Android圖形介面當掉的時候照樣能運作

keigowei02/20 09:05真的很爛慢…很厲害的實驗

weltschmerz02/20 09:16放過手機 請用雲端算圖==

Sinreigensou02/20 09:22為何要用手機做啊 技術展示?

lkj12tw02/20 09:34推一個

kkagq02/20 09:36應該拿pixel來試試,這兩年吹AI多強,真正應用派上用場,

kkagq02/20 09:36看是不是真有本事

首先要有蘋果那種成熟的AI框架給人利用

emptie02/20 09:52推實驗精神

sheng7631402/20 10:47手機都能算 a卡…

square402/20 10:52都走雲端,幾秒鐘出圖https://i.imgur.com/kR0ybym.jpg

圖 手機跑AI繪圖 Stable Diffusion

lsps4080302/20 10:53雲端就能做到的事為什麼要虐待你的手機...

雲端有可能擋nsfw =w= 不過控制的好也是比自家電腦快很多

milk83012202/20 10:53因為這個還是對n卡支援好很多 沒vram算都超慢的 不如

milk83012202/20 10:53用網路的幫你算

abc092200102/20 11:01

double591502/20 11:16手機:....幫復....

guogu02/20 11:29a卡能算阿 網路上教學也不少吧

louie090902/20 12:16是說手機的npu有開放api之類的嗎 每次新處理器發表都

louie090902/20 12:16再吹ai性能多猛多猛

henrylin808602/20 12:16這折騰很像很好玩

LoveShibeInu02/20 12:17笑死 美好星期天就是要這樣浪費

※ 編輯: ivon852 (223.139.117.41 臺灣), 02/20/2023 12:31:31

superstu02/20 12:44猛欸,跪著看這篇

shengshampoo02/20 13:27物盡其用不是壞事,DIY土炮也可以發揮創意。

shengshampoo02/20 13:30徒手製作噴射火箭飛上天空,也是需要這類人才能付

shengshampoo02/20 13:30諸實行。

Loliprpr02/20 15:15雲端都有免費P100能用 怎麼會想用手機跑XD

a0910bb02/20 17:44

ymx3xc02/20 20:43推 新燒機模式

ncuephysics02/21 04:03用模擬器好了

devilhades02/21 14:34我...我還是乖乖NovelAI吧