因此這部分其實ARM晶片性能還未發(fā)揮
光用手機(jī)12秒內(nèi)就可以生成一張Stable Diffusion圖像!Google提出擴(kuò)散模型推理加速
google這個優(yōu)化,讓手機(jī)晶片跑到接近RTX 3060~3070做記憶體優(yōu)化過的水平
如果是公司,多臺一點(diǎn)大概跑個幾個月你差價就馬上出現(xiàn)
因此Apple 2023才開始嘗試提供ml-stable-diffusion,基於NPU運(yùn)作
- automatice 1111: 使用這方法你至少要是資訊系畢業(yè)比較好,這樣指令上你就會容易理解為什麼要那樣做
- ml-stable-diffusion: 這個比automatice 1111更進(jìn)階應(yīng)用,屬於更原始的核心程式碼,想開發(fā)可以從這邊入手
- Mochi Diffusion: 這適合懂a(chǎn)pple電腦的人嘗鮮,可以自訂模型與使用類神經(jīng)網(wǎng)路,算是最有效發(fā)揮apple晶片的產(chǎn)品
- StableBee: 這適合什麼都不懂的人嘗鮮,速度還可以,下載後直接能執(zhí)行,但不能換模型,單純用MPS
- 請先安裝git,版本任意
- 安裝python 3.10版本,建議3.10.11
- 用git 下載 stable diffusion automatic 1111
在你要放新程式的資料夾中開終端機(jī),建議使用外接硬碟,因為mac寸土寸金
執(zhí)行g(shù)it clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
到你的資料夾看,他下載好會新增一個資料夾,同樣方法進(jìn)去 - 製作虛擬環(huán)境放python安裝,主要是mac寸土寸金,不太適合用conda,而是virtualenv比較合適,雖然說conda還是比較穩(wěn)定
下指令python3.10 -m venv venv
(如果有例外狀況再說,正常都有支援virtualenv)
跑完資料夾內(nèi)應(yīng)該有venv
執(zhí)行 source venv/bin/activate 啟動虛擬環(huán)境 - 開始執(zhí)行stable diffusion第一次安裝
在venv環(huán)境下執(zhí)行安裝,下指令 ./webui.sh
通常第一次會停在一半,主要是還沒有放模型,讓他自己跑第一次主要是便利於自動建立一些資料夾
執(zhí)行第一次後關(guān)掉,下載模型 - 放模型
因為他是直接pytorch跑,所以你可以去下載一般模型
https://civitai.com/
同樣放在model下的stable-diffusion - 再一次執(zhí)行stable diffusion
同樣指令 ./webui.sh
連線一樣 http://127.0.0.1:7860
登入後介面跟一般電腦一樣,你也能做訓(xùn)練
運(yùn)作後理論上gpu會有效利用
同樣測試一個prompt: cat ,512*512,20 step
txt2img: 30~40秒之間
img2img:25~35秒之間
詳細(xì)對比可看Stable Diffusion 性能測試與加速方法
我這臺是一臺最廉價連風(fēng)扇都沒有的macbook air M1 8GB版本
但以結(jié)果來看
大約性能就是接近1060 6g、2060 6g這類卡,遠(yuǎn)遠(yuǎn)快於1650或1050超過一分半
如果你N卡xformers沒開,那就是超車3050或1070,xformers是一個記憶體優(yōu)化策略
目前google才剛通過實驗?zāi)茏宎pple 或高通晶片加速30~50%
所以apple m1的gpu速度,理論上就算stable diffusion能壓到15秒內(nèi),至少應(yīng)該比手機(jī)的12秒還快
如前面貼的文章,若真的未來google研究成功導(dǎo)入
那就是能跟3060或3070對頭
我也嘗試跑更複雜的DPM++ 2M Karras,速度也不差,step 25在CFG 10的情況下,大約50秒上下能完成,算是很不錯,至少比一眾顯卡快很多,不需要被風(fēng)扇噪音與電熱拷問
不過因為mac記憶體會跟顯示記憶體搶空間,
所以你在跑圖片時,建議關(guān)掉消耗記憶體的東西,
通常大約等於你記憶體扣掉4~6GB才是你目前擁有的顯示記憶體大小,
所以如果你要跑圖,可以考慮買擁有16GB以上的mac mini
當(dāng)然另一個方法就是不花錢,因爲(wèi)NPU在算這個非常省資源
我測試,除了第一次執(zhí)行要做下載安裝,後面就是按下馬上得到prompt,算是表現(xiàn)不錯
不過更快的NPU是多少呢?
第一次啟動跟第一次算圖都會非常久,後面載入記憶體後就沒這問題,反正你如果有用過webUI大概會知道後面就是在跑那些確認(rèn)與安裝之類的動作,webUI切換模型也是非常花時間
安裝後可以做一些額外設(shè)定
儲存與模型路徑
我個人是把他設(shè)成外接硬碟,這樣就可以
另外更改採樣器可以在這邊用,其中你可以看他介紹,若你要用APPLE NPU(類神經(jīng)網(wǎng)路引擎),就要下載相對應(yīng)的模型,也就是split-einsum
(如果你只用就NPU的模型,ML計算單元建議直接選擇類神經(jīng)網(wǎng)路引擎的選項,載入模型快很多)
這個特殊的 split-einsum model 有兩個下載點(diǎn)
(1) Apple 提供:模型較少
https://huggingface.co/apple
(2) 其他人轉(zhuǎn)檔的
https://huggingface.co/coreml
點(diǎn)選之後,他模型通常是抓CivitAI去轉(zhuǎn)成NPU能用的model,所以會附上連結(jié),你能過去看看是否是你要的模型,當(dāng)然裡面也有一些警告語,
那麼這個NPU到底優(yōu)勢是什麼呢?
其實他跟TPU一樣,都是特殊優(yōu)化的ASIC晶片,主要針對量多的邏輯推理與訓(xùn)練設(shè)計,
像TPU在規(guī)模運(yùn)算就會出現(xiàn)絕對優(yōu)勢,而APPLE NPU目前測試起來則是針對大照片有一定加速水平,
以我只用M1最低階的air 8gb版本,
5張圖40step就能平均20~30秒內(nèi)跑出一張 2048 X 2048 的圖,
整個介面畫面是這樣,功能還不算齊全,不過展示了NPU的淺力
實際紀(jì)錄一下速度
不過這程式是swiftUI