前言:
這篇主要是比較目前在stable diffusion webui下的20種採樣方式的圖片生成速度與生成結果比較。此處所說的採樣即是Sampling method,也有的會翻成取樣方法。保險起見,給個新手提示,採樣方式的選單位置如下圖所示,這是常用功能,理論上應該大家都知道它是啥:
目前採樣方式是20種,以後有可能隨著版本更新再增加,若到時stable diffusion webui還是熱門工具並且我還心有餘力的話,我會再對此篇文章隨時更新。
如果你的stable diffusion webui的採樣方式比我列的少,有可能是你還沒有更新版本,記得去更新,最近新增的採樣方式UniPC我覺得還算不錯。
每個人的軟硬體環境都不同,就算你跟我用同樣的顯卡速度也未必會跟我一模一樣,所以在這篇內容中要關注的是各採樣方法間的相對速度,而不是實際秒數。
測試環境:
我的顯卡是NVIDIA RTX 3080 10G,生成模型統一採用Chilloutmix-Ni,
採樣步數(Sampling steps)一律設成30步,圖片size設為800*800,
並且不額外使用其它的ControlNet與Lora等影響生圖速度的套件。
僅單純的用內建功能使用同一組prompt隨機生圖,一次生4張。
並且生圖過程中不會開啟其它軟體或對電腦做其餘操作,以免影響生圖速度。
其餘不太影響生成速度的軟硬體細節我就不再多說了。
測試結果:
想不到方格子這麼狠心,竟然不支援表格,請各位將就一下吧
- Euler a,總耗時02:18,平均34.5秒
- Euler,總耗時02:12,平均33秒
- LMS,總耗時02:13,平均33.25 秒
- LMS(增為40步),總耗時03:05,平均46.25秒 (30步時會採樣不足,這步是多測的)
- Heun,總耗時04:29,平均67.25秒
- DPM2,總耗時04:36,平均69秒
- DPM2 a,總耗時04:37,平均69.25秒
- DPM++2S a,總耗時04:35,平均68.75秒
- DPM++2M,總耗時02:19,平均34.75秒
- DPM++SDE,總耗時04:30,平均67.5秒
- DPM fast,總耗時02:21,平均35.25秒
- DPM fast(增為50步),總耗時03:51,平均57.75秒(30步時會採樣不足,這步是多測的)
- DPM adaptive,總耗時05:08,平均77秒
- LMS Karras,總耗時02:13,平均33.25秒
- DPM2 Karras,總耗時04:23,平均65.75秒
- DPM2 a Karras,總耗時04:38,平均69.5秒
- DPM++2S a Karras,總耗時04:39,平均69.75秒
- DPM++2M Karras,總耗時02:20,平均35秒
- DPM++SDE Karras,總耗時04:40,平均70秒
- DDIM,總耗時02:25,平均36.25秒
- PLMS,總耗時02:42,平均40.5秒
- PLMS(增為40步),總耗時03:18,平均49.5秒(30步時會採樣不足,這步是多測的)
- UniPC,總耗時02:19,平均34.75秒
有三種採樣方式比較特別,LMS/DPM fast/PLMS,這三種在30步時採樣不足會生出異形圖,必須提高步數才行,這可以理解為,它們在相同基準上,速度不會比別人慢,但它們必要的基礎步數會比別人高。
以上是依stable diffusion webui中的介面排序來列,你們可能更想知道的是速度排名。整理如下。
依速度排列:
- Euler
- LMS
- LMS Karras
- Euler a
- DPM++2M
- UniPC
- DPM++2M Karras
- DPM fast
- DDIM
- PLMS
- DPM2 Karras
- Heun
- DPM++SDE
- DPM++2S a
- DPM2
- DPM2 a
- DPM2 a Karras
- DPM++2S a Karras
- DPM++SDE Karras
- DPM adaptive
但測試時其實是有誤差值存在的,就算是同一種採樣方式,也不會每次跑都是同樣秒數,所以我必須再次強調,重點不是秒數,而是相對的快慢。整體來說可以分成三個段次來理解:
前段班:(平均每張圖3X秒) - Euler
- LMS
- LMS Karras
- Euler a
- DPM++2M
- UniPC
- DPM++2M Karras
- DPM fast
- DDIM
- PLMS
後段班:(平均每張圖6X秒) - DPM2 Karras
- Heun
- DPM++SDE
- DPM++2S a
- DPM2
- DPM2 a
- DPM2 a Karras
- DPM++2S a Karras
- DPM++SDE Karras
放牛班:(平均每張圖7X秒,甚至更久)
圖片隨機生成結果比較:
這些圖都是使用同樣prompt與同樣設定的生成結果,並且不使用任何套件功能,然而在不使用Lora或其它功能的狀況下,顯然生出來圖的就是目前在AI繪圖圈中爛大街的那張網美臉,沒辦法。
Euler a,總耗時02:18,平均34.5秒
Euler,總耗時02:12,平均33秒
LMS,總耗時02:13,平均33.25 秒
LMS(增為40步),總耗時03:05,平均46.25秒 (30步時會採樣不足,這步是多測的)
Heun,總耗時04:29,平均67.25秒
DPM2,總耗時04:36,平均69秒
DPM2 a,總耗時04:37,平均69.25秒
DPM++2S a,總耗時04:35,平均68.75秒
DPM++2M,總耗時02:19,平均34.75秒
DPM++SDE,總耗時04:30,平均67.5秒
DPM fast,總耗時02:21,平均35.25秒
DPM fast(增為50步),總耗時03:51,平均57.75秒(30步時會採樣不足,這步是多測的)
DPM adaptive,總耗時05:08,平均77秒
LMS Karras,總耗時02:13,平均33.25秒
DPM2 Karras,總耗時04:23,平均65.75秒
DPM2 a Karras,總耗時04:38,平均69.5秒
DPM++2S a Karras,總耗時04:39,平均69.75秒
DPM++2M Karras,總耗時02:20,平均35秒
DPM++SDE Karras,總耗時04:40,平均70秒
DDIM,總耗時02:25,平均36.25秒
PLMS,總耗時02:42,平均40.5秒
PLMS(增為40步),總耗時03:18,平均49.5秒(30步時會採樣不足,這步是多測的)
UniPC,總耗時02:19,平均34.75秒
也許是我眼拙,我看不出有哪個採樣方法可以保證一定特別漂亮或是特別醜,如果在個人審美觀都覺得差不多的情況下,我會選擇速度快的。如果你們覺得有哪個採樣方法特別厲害或特別慘,歡迎留言討論一下。
咒語參考:
有格友留言說想參考原始prompt,用以驗證一下繪圖咒語跟生成圖片的關連性,我補充這裡。
prompt:
1girl, asia face,(colorful dress),young face, blue eyes,lively street, looking at viewer, facing front, ultra high res, (photorealistic:1.4),masterpiece,best quality,official art, (8k, RAW photo:1.2),(portrait:1.4), cinematic lighting ,(solo:1.7), (eyelashes:1.1), (happy:1.21), (depth of field:1.1), lens flare, (chromatic aberration:1.1), (caustics:1.1),full body,delicated,
負面提示詞(negative):
paintings, sketches, fingers, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, age spot, (outdoor:1.6), backlight,(ugly:1.331), (duplicate:1.331), (morbid:1.21), (mutilated:1.21), (tranny:1.331), mutated hands, (poorly drawn hands:1.5), blurry, (bad anatomy:1.21), (bad proportions:1.331), extra limbs, (disfigured:1.331), (more than 2 nipples:1.331), (missing arms:1.331), (extra legs:1.331), (fused fingers:1.61051), (too many fingers:1.61051), (unclear eyes:1.331), lowers, bad hands, missing fingers, extra digit, (futa:1.1),bad hands, missing fingers,nipple,nude,sexy,nsfw