前言
在前面AI三部曲中的第二部「安裝Stable Diffusion需要哪種等級的顯卡與電腦?」中
吉米跟大家分享了不管你是PC還是蘋果電腦,安裝Stable Diffusion之後,大概會有怎樣的效能
當然這個效能僅供參考,因為那是吉米自己研究手邊設備的效能數據
今天,吉米就要進一步來研究,「我自己」要怎麼升級我的設備
其實從上面那個測試結果,吉米因為是macOS使用者,所以我心裡出現了兩個疑問
1.既然都要花錢買顯卡,是不是乾脆再買一台兒子那台內建3060的筆電?
2.是否可能透過外接顯卡的方式?來讓我的黑蘋果可以外掛N家顯卡(以下簡稱N卡)來加強算圖?
吉米加入Dark Side應該不只四年了
當初吉米本來要分享eGPU對於蘋果電腦有很大的幫助,撰文時想要佐以實測數據時
不小心捅到了大大的蜂窩,發現了不能說的祕密
推薦大家來看看這篇「《吉米教你看》外掛eGPU甚至AMD高檔顯卡對於FCP X輸出效果的幫助(最終回)」
你們就會知道阿婆這幾年不斷自廢武功、壓抑效能的故事
這場實驗結束後,我手邊就多了一台可以跑macOS的PC組裝電腦
這邊非常感謝XFastest的站長半夜陪我搞這些有的沒的
與我的蘋果顧問MAQ的技術支援
所以以下內容,都是我自己需求為出發點,衍生出的各種測試
還有一個很大的重點,就是黑蘋果只能用A卡,所以機箱內一定得是A卡,不然無法使用macOS
3060筆電真的那麼快嗎?
要確認這個想法,第一件事情當然就是借一張Nvidia RTX 3080 10GB的顯卡來測試囉
當然搭配OWC推出的Thunderbolt3外接顯卡盒
就這樣RTX 3080透過Thunderbolt3連接到了我的電腦
這裡我們得到了第一個結論:
macOS無法使用外接方式連接N卡
蘋果電腦,不管是白的還是黑的,因為多年前恩怨,所以打死不認識前男友N卡
就算我們放在外接盒裡面想要借屍還魂,也因為macOS底層就不想認識它
因此什麼虛擬機還是其他方式外掛啟動N卡是不可能的
不然我們用黑蘋果的人早就全換3080或是4090了
若你是使用2015年之後,機器上面有原生Thunderbolt3的蘋果電腦,或是你也在Dark Side
只要重新開機進入Windows,你就可以接著看下去
Windows透過Thunderbolt3外掛N卡
開機後,插上連接外接顯卡盒的Thunderbolt3排線,螢幕有沒有接在它後面沒有差別
除非你是要用這張卡來打電動,才需要把主要螢幕設定在這張外接顯卡後方的輸出
等電腦辨識成功之後就會出現兩張顯卡啦
這時候執行Stable Diffusion,因為N卡支援CUDA,所以只會用N卡來跑算圖,A卡就負責畫面顯示功能
測試基準
既然要測試,當然所有方式都要相同,以下是出圖數據,有興趣的話你也來試試看你電腦數據是多少
SD 模型:https://civitai.com/models/6424/chilloutmix
Lora 模型:https://civitai.com/models/7716/taiwan-doll-likeness
Prompt:
Negative prompt:
測試一:
Size: 512×768
Seed: 537380690
Steps: 28
Sampler: DPM++ SDE Karras
CFG scale: 8
Hires steps: 0
Hires upscale: 1.75,
Hires upscaler: Latent (bicubic antialiased)
Denoising strength: 0.5
測試二:
Size: 512×768
Seed: 537380690
Steps: 28
Batch count: 2
Batch Size: 2
Sampler: DPM++ SDE Karras
CFG scale: 8
Hires steps: 0
Hires upscale: 1.75,
Hires upscaler: Latent (bicubic antialiased)
Denoising strength: 0.5
然後看看所需時間
基準線Baseline
本來依照慣例,跑基準線應該要用我天天在用的A卡來測試
但是測試一預估就要25分鐘45秒,我就不想測試了,直接按取消,它說多少就是多少
所以我們今天用兒子的筆電來當基準線
Asus 3060 筆電
實驗一:3分10秒
實驗二:8分22秒
RTX 3080
其實經過吉米實測,3080不管是外接的方式,還是內接插在主板上面,成績都差不多
實驗一:2分09秒
實驗二:3分31秒
這裡大家可以觀察到,其實跑SD最重要的是VRAM越大越好,這張3080卡上有10GB的VRAM,最大已經用掉8,927MB的VRAM,難怪算再大一點的圖就爆掉了
RTX 4070 Ti
這時候好心的海盜船長,直接買了一張全新的RTX 4070 Ti 12GB來借我測試
這張卡已經巨大到無法塞入外接顯卡盒
所以內接一定是唯一解
但這樣就違反的第一個原則,黑蘋果機箱內一定要裝A卡,不然永遠回不到macOS,所以4070Ti裝在機殼內的時間,就只能當純PC來使用啦
實驗一:1分10秒
實驗二:4分34秒
這個部分我實在不太懂,為什麼後期會變慢
而且我們觀察到VRAM最大使用來到12,132MB
根本就把12GB的VRAM給搾乾啦
所以測試到這裡,我又上網爬文去了
Xformers
Xformers是一個資料庫可以幫我們快速生成影像,並且減少VRAM的使用,但是這個優化只能針對N卡來使用
AUTOMATIC1111官方安裝教學請看這裡:https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Xformers
玩到這裡,大家應該都會搞了,所以這部份就不贅述了
重點在於安裝成功之後
這改webui-user.bat (windows使用者),找到「COMMANDLINE_ARGS=」字串,加上–xformers
修改 webui-user.sh(mac或是Linux使用者),找到「export COMMANDLINE_ARGS=」字串加上–xformers
啟動後看到字串有被吃到,就可以啦,其他所有東西都不變
3080 +xformers 實驗一:41秒
3080 +xformers 實驗一:2分13秒
4070 Ti +xformers 實驗一:42秒
4070 Ti +xformers 實驗一:2分44秒
VRAM最多也只用到8,197MB
真的是除了快很多之外,VRAM的使用也變小了
至於4070 Ti在吉米這幾天的測試下比3080慢,我剛爬文可能是CUDA沒有更新到最新版,我寫到這裡才知道CUDA要另外安裝驅動,呵呵
總結一下
從上面的表來看,先不管4070 Ti的奇怪表現,但是在3080上面有顯著的效能提昇,刷掉了將近一半的時間
所以若你有玩SD的話,強烈推薦安裝啊
當然這是N卡才有的福利
算圖速度快與慢,整個思考邏輯大不同
這就是我這個週末摸索的內容
顯卡的快慢,真的是「非常的重要」
你看我現在完全不提算一張3秒還是5秒嗎?
我這個週末算的圖,單一張用4070Ti都要將近一分鐘
因為當我們算力慢的時候,一張圖3分鐘,你下的prompt相對保守,因為你不知道3分鐘之後,是正妹還是后里蟹
算力快的時候,一張圖3秒鐘、5秒鐘,你就會開始變鬼變怪
例如超好用的魔咒百科词典 https://aitag.top/
解決了一堆我不知道女性服裝正確的英文名稱,這可真是考倒我了,還有各種運鏡、角度、情景的參考
從使用一個LORA,到多組日本、台灣、韓國、中國的LORA混合在一起…
產出更複雜精緻的圖片,產出更精緻的圖片之後,又會想要再放大、再細緻、再拓展
對,你今天看到的圖片全部都是AI生成
甚至生成之後,再用其他AI繼續擴展
這個在草地上面歡迎大家來到黑暗面的女孩
與前男友賭氣,打死不相往來的哭臉妹仔
還有這三位拿電腦採購單要我簽的秘書,你以為我這麼容易就放行嗎?
我還得問問資訊室的主管才行啊~
硬體升級之路
言歸正傳,畢竟不是每個人的鈔能力都沒有極限,全部都是選好選滿
當然若你是擁有這種鈔能力的課長,吉米建議你直接組一台最強的PC,不管是算圖還是電競,就算是看盤或是看小說,都覺得讓你飛天遁地
若你是intel晶片的蘋果電腦使用者,或是機箱裡面裝的是A卡的中階PC使用者,你可以考慮用Thunderbolt3的顯卡外接盒(約一萬出頭),再買一張N卡,撰文的現在3060約一萬元上下,3080約兩萬上下,又回到了鈔能力的原點,但前提是要有Thunderbolt3,且全程在Windows下面算圖,不能用虛擬機
雖然我已經有了顯卡外接盒,目前可能找張二手3080,沒事可以玩PC GAME,特效選項應該可以比我的VEGA64選好選滿
但缺點就是要佔用電腦時間,用PC就不能用Mac,兩難啊
或是直接去買一台3060的筆電,三萬元起跳也是多一台電腦,但這選擇適合沒有外接顯卡盒與顯卡的人,因為這兩個最基本就要兩萬了,你多花一萬就多一台電腦,多好
另一種不需要買硬體的方式,就是把網路上提供的雲計算服務,買好買滿,相信兩萬元低消,應該可以買不少時數,而且你還不用真的一次就花這麼多錢,先玩看看,有興趣再加碼
若你是M1/M2的蘋果電腦使用者,那你就跟Tim一樣… 只好去買Mac Studio Ultra +128GB RAM囉
你現在知道上面幾張圖是怎麼生成了吧
以上就是我的應用方式,我生圖用來不是只有電風扇,而是用來寫文當插圖,或是影片B Roll的用途
光看是這三部曲的封面圖,就比吉米之前都放自己的照片香太多了,不是嗎?
吉米,你不會裡面裝一張,外接再一張?
內接4070 Ti,外接3080,根本就是人生勝利組的感覺嘛~
當然這麼惡劣的想法我也想過啦
只是到我分享這篇文章之前,爬過了好多地方,很多人說python本身就支援多GPU,但是SD有沒有支援都沒有人測試成功
倒是有另外一個dream的AI平台,它比較像指派中心,把prompt丟給SD去跑,而這個指派中心有支援多CPU
也許不久的將來,就有支援吧
目前的測試是只有一張顯卡會運作