NovelAI模型在AutoDL平臺多種顯卡上圖像生成的超級大評
還在無腦3090嗎?什么分辨率比較合適?加了--xformer到底能加速多少?會對畫面有影響嗎?
走過路過不要錯過,來看看工作量超級大的本超級大評測吧!
建議配合我的另一篇文章食用:震驚!你的顯卡性能越低,生成的圖片越有可能變異
要點前瞻
不同顯卡在不同分辨率下的推理速度和性價比對比
xformers對性能、性價比和圖片畫質的影響
黑圖現象及其解決方案測試
其他的圖片對比
1 實驗設置
1.1 目的
比較不同顯卡在用NovelAI模型做text2img生成的性能與性價比。img2img、非AutoDL平臺的用戶、用自己的顯卡、自己訓練NovelAI模型、做其他任務的人也可以以此為參考(相關度由高到低)。
1.2?參測顯卡
A5000,2080TI,A4000,3080,3090,V100,TITAN XP,A40,A100 PCIe 40G,A100 40G,A100 80G,3080TI,P40。
基本能測的卡都參與測試,除了3070,3060,4090和1080ti。也許用自己電腦的人更關心這些卡的數據,但是狼多肉少,這些卡我搶不到。
上述顯卡的顯存和算力參數參見:https://www.autodl.com/docs/gpu/#gpu_2
1.3?環(huán)境
環(huán)境為我自己的懶狗包,Python 3.10.4,PyTorch 1.12.1,CUDA 11.3
鏡像Readme:https://www.codewithgpu.com/i/AUTOMATIC1111/stable-diffusion-webui/SDwebui-LazyDog
1.4?參數
Prompt:
(((masterpiece))),?(((best?quality))),?((ultra-detailed)),?(illustration),?(detailed?light), ((an?extremely?delicate?and?beautiful)), (beautiful?detailed?eyes),?(sunlight), (angel), solo, young?girls, dynamic?angle, floating,?bare_shoulders, looking_at_viewer?,wings, arms_up, halo, Floating?white?silk, (Holy?Light), just?like?silver?stars?imploding?we?absorb?the?light?of?day, (((elegant)))
Negtive prompt:
owres,?bad?anatomy,?bad?hands,?text,?error,?missing?fingers,?extra?digit,?fewer?digits,?cropped,?worst?quality,?low?quality,?normal?quality,?jpeg?artifacts,?signature,?watermark,?username,?blurry, missing?fingers, bad?hands, missing?arms, large?breasts
Sampler: Euler a, CFG scale: 7, Seed: 3528433752, Model hash: 925997e9(animefull-final-pruned), Clip skip: 2, ENSD: 31337, no hiresfix
以上prompt來自于元素法典-圣光法(有修改):
https://docs.qq.com/doc/DWHl3am5Zb05QbGVs?&u=d105b60e326b4332a049f5733808dda8

如未說明,均默認為啟用混合精度推理(也是webui默認的)。
1.5 分辨率設置
中圖:512*768,150 steps
這是NovelAI官網默認的尺寸。150 steps 是為了拉長時間更容易對比,以及消除偶然的時間波動。
大圖:768*1152,150 steps
超大圖:1024*1536,75 steps
這個尺寸跑150步太花時間了,所以降了一半。
每個分辨率跑3-5次。
1.6 度量標準
顯存占用,顯卡占用率,這兩個不用我解釋吧。
推理時間:生成一張圖花費的時間.
單圖花費:單位為分,計算公式為?顯卡每小時租金/(3600秒/推理時間)*100。意義是租了這塊顯卡后一個小時內不停地生成圖片,平均每張圖片的花費金額(注意本實驗中steps和日常跑圖的steps的差距)
優(yōu)惠單圖花費:單位為分,AutoDL會有日常的優(yōu)惠價,以此作為租金計算單圖花費。由于優(yōu)惠價有變動,本項有時效性,僅供參考。
擬真單圖花費:單位為分,計算公式為?顯卡每小時租金/(3600秒/(推理時間+停頓時間))*100。因為實際使用不一定不停地生成圖片,可能有一段時間顯卡不干活,用戶欣賞、挑選圖片或者調整超參,因此計算包括停頓時間后單圖花費。停頓時間有三檔:30,60,120秒。
為什么停頓這么長的時間?因為實驗步數為75,150,而實際跑圖沒那么多,一般在20-50步間。150步停頓120秒,相當于25步停頓20秒,其實很合理。
加速比:計算使用Xformers后加速了多少。計算公式為 減少的時間/原時間。

2 結果
數據鏈接:
鏈接:https://pan.baidu.com/s/19n7U4DSHFjuxiP1eUt7xzw?pwd=4nvk?
提取碼:4nvk
2.1 總體數據

2.2?使用Xformers的數據


3 總體結論
以下顯卡排名均分先后。
綜合考慮,最推薦 3080,3080TI,3090,A5000。
性價比三巨頭為三個80:3080,2080TI,3080TI。
性價比第二檔為 3090,A5000。他們速度和顯存有優(yōu)勢,而且數量大好搶。
小圖沒必要用太強的卡。
專業(yè)卡用作圖片生成性價比一般,只適合連續(xù)不斷大量出高分辨率圖。
P40和TITANXP看起來便宜,但是出圖速度實在太慢,以至于性價比居然比最貴的A100 80G還差(A100的速度甩這兩個老爺車n條街)(特惠區(qū)并不特惠)。
相同種子和參數,不同型號的顯卡出圖確實有細微差別;同型號顯卡,不論是同一張卡重啟,還是不同卡,出圖都是一樣。
超高分辨率(指1024+)的圖細節(jié)明顯少于更低的分辨率,出圖速度更慢。最致命的是有概率出黑圖。建議降低分辨率然后使用其他超分辨率模型。
默認的半精度推理出黑圖時,改用全精度有可能會修復,但是構圖會有可感知乃至巨大的改變,并且速度受到巨大損失。
啟用xformers對大圖及以上有極為巨大的性能提升,極大幅度降低顯存占用,并且有很大可能修復黑圖。代價是部分細節(jié)可能有些許改變(有可能有巨大改變)。如果你不是非常吹毛求疵,強烈推薦使用xformers生成高分辨率的圖片。
避免黑圖最有效的方法:降低分辨率,降低步數,別寫那么長的prompt。如果硬要這么做,可以換不出黑圖的卡。
AutoDL最推薦北京區(qū),網速最快。泉州南京少碰,拉鏡像特別慢,能等到你懷疑人生。(我泉州一個P40拉了兩天還沒拉完)

4 度量指標分析
4.1 推理時間

超大分辨率最能體現一張顯卡的硬實力。推理時間的排名基本按照顯卡的算力(混合精度算力)。
大圖分辨率也基本按照顯卡硬實力的排名,不過因為A100和V100開始吃不滿,導致A100和后面的差距減小,V100掉了名次。
中圖排名就群魔亂舞了。因為大多數顯卡都吃不滿載,高端專業(yè)卡的半精算力有勁沒處使。排名顯得非常混亂,猜測排名開始與顯存性能和架構新舊相關。A100 PCIe 40G排名居然掉了那么多,A40又跑了上來,我是沒想到的。當然,吊車尾兩兄弟——TITANXP和P40,以及卡皇A100 80G的地位依然穩(wěn)固。
此外,不同區(qū)域同一型號顯卡速度沒差別,所以一個區(qū)域沒卡了可以去別的區(qū)域找同型號卡。
4.2 單圖花費

超大圖和大圖里,由于兩個老爺車(P40和TITANXP)實在是太慢了,以至于其性價比甚至低于每小時貴達8塊錢的A100 80G,遠不如兩個A100 40G,更別說A100的速度甩這兩個老爺車n條街了。看起來好像老卡特惠,其實廠商比咱們精著呢。
中圖里,因為高端卡和其他卡速度拉不開差距,租金又貴,導致其性價比低于超大圖和大圖。
4.3 擬真單圖花費
不是所有人都不停地生成圖片,我猜一般都是生成后有一段時間停頓再接著生成。停頓時間越久,越浪費錢,單圖花費就越高,越便宜的卡就越有性價比優(yōu)勢。
由于性能不錯、價格便宜,2080ti和3080在長停頓時間的場景里優(yōu)勢非常突出,幾乎是首選。而在停頓120秒、中圖的設置里,卡皇A100的性價比極低,單圖花費幾乎是兩個80的5-10倍。雖然停頓120秒、中圖的設置里TITANXP性價比第一,但是考慮到一分半鐘的生成時間,還是別用它了。
大家普遍無腦選擇的3090和A5000,因為本身價格有點小貴,在停頓時間很長的場景里性價比是遠不如80系的。






4.4 Xformers對速度的影響

Xformers(以下簡稱XF)對速度影響非常大,特別是大圖和專業(yè)卡。
超大圖里,基本都有50%+的加速提升(也就是耗時砍半+)。最離譜的是A40,開了XF后加速比高達70%,相當于少了近3/4的耗時,本來墊底的速度直接殺入前列,擠到了3090前頭,僅次于A100系列。
XF的加速表現隨著分辨率降低而變差,到了中圖,30系只有20%左右的加速比。但是專業(yè)卡基本都能保持在50%的加速比上,使得原本推理速度較差的專業(yè)卡有了一定補足。
但是A100的表現大跌眼鏡,愧對了卡皇的名頭。A100 80G在中圖中甚至只有5%的加速,導致開了XF后其他卡的速度都能輕易趕上A100。
XF能顯著減少顯存占用。由圖 2.1 和 2.2 可以看出,如果不加 XF,隨著圖片分辨率的增加,顯存占用會以非??植赖乃俣仍鲩L(不過低顯存會自適應減少占用),但是開了之后,除了模型基本的約4G占用,圖片分辨率的增加只增加幾百M的顯存。
4.5?Xformers對性價比的影響
對于大圖和超大圖來說,開啟XF能顯著提高性價比,特別是專業(yè)卡。A5000開了XF后性價比直接趕超3090,而速度也相差無幾;A40則性價比也有大提升,速度也超過了3090(3090恐成最大輸家),不過因為本身租金就挺貴的,所以性價比排名沒有太大提升,但是單圖花費很接近不開XF時的性價比之王3080了。
小圖性價比提升不如高分辨率那么大。加上推理速度也沒有特別亮眼的提升,小圖本來就出圖快(別忘了這里的steps是150,實際只有20-50),XF開的必要性不是很大。




5 黑圖分析
5.1 黑圖是什么
黑圖指在使用webui前端、NovelAI生成涂片時,出來的圖片的全黑的現象。還有一個綠圖現象,指出來的圖片全綠,但是更加罕見,我目前沒遇到過。
5.2 黑圖發(fā)生的原因
目前尚不清楚。最有說服力的解釋是在生成的過程中某些參數由于精度不足發(fā)生了溢出。
就我目前的使用經驗來看,黑圖高概率發(fā)生在生成超高分辨率大圖(主要原因)、輸入的prompt太長、steps太多的時候。
除了縮小圖片、減少輸入外,解決方案有兩種:一個是普遍流傳的全精度推理,另一個是開啟XF(不知道網上有無流傳,我是測試時偶然發(fā)現的)。
5.3 使用全精度推理修復黑圖的結果

因為黑圖現象只發(fā)生在超大圖的生成,所以只做這一分辨率的測試。3090沒有黑圖但是也參加測試,為了做對比全精度推理和默認的半精度的差距。A40未參與測試,因為當時沒搶到卡。全精度推理有兩種:一個是只用全精度的VAE(nohalfvae,nhv),一個是整個網絡都全精度。
實驗結果表明全精度推理不一定能解決黑圖問題。只有2080TI和A100 PCIe 40G能解決,并且圖片都有所改變。不過兩個A100 PCIE 和 3090 的全精度倒是相差不大。
全精度推理的另一個問題是對性能影響過于嚴重。所有的顯卡的推理時間都增加了至少一倍,V100還爆顯存了。

5.4 使用Xformers修復黑圖的結果
我覺得這個比全精度推理靠譜多了。速度快,成功率還高,除了2080TI的黑圖,其他都修復了。對比圖見后面章節(jié)。

6 圖片對比
6.1 不同顯卡對畫面有影響嗎?
有,但是只是細節(jié)上一些變化,不AB對比看不出來。此外,對于同一型號顯卡,同一臺機重啟、不同機器不同顯卡的圖沒有差別。

6.2 Xformers對圖片細節(jié)的改變
即使同一種子、同一參數,使用XF后每次出的圖都有點變化,主要是物件的邊緣。但是和顯卡型號的改變一樣,只是細節(jié)上一些變化,不AB對比看不出來。請自行衡量能不能接受這些改變。
如果不開XF,同一種子、參數和顯卡型號出的圖是完全一樣的。

但是XF有很小的可能在某些顯卡上讓構圖發(fā)生巨大改變。目前我只碰到一例。
