整理|DiscoDiffusion引數效果大全(上)

Hi, 我是海辛,是一名影視導演,上面放的短片畫面是完全透過 AI Disco Diffusion 生成的。為了更好地學習如何提升 AI 畫面的質量,最近看了許多總結得很好的英文文件,在取得了原作者授權同意的情況,決定將其整理和翻譯為中文。

本文由 Disco Diffusion 創作者之一 Chris Allen 的兩篇技術文件組合構成,引數的基本介紹文件 Zippy's Disco Diffusion Cheatsheet [1] 和 引數的效果實驗整理 EZ Charts [2],因為兩篇文件都很長,今天的推文目前只總結整理了其中較為基礎的引數的資訊,希望上海解封前可以把(下)的部分也整理翻譯完吧。
這篇推文裡總結了以下引數的介紹和效果對比,請善用 ctrl/cmd + F 進行搜尋:
1. CLIP 模型 & 不同的模型選擇對比
2. use_secondary_model 次級模型及效果
3. Steps 訓練步數 & 不同訓練步數對比
4. Skip_steps 跳過步數 & 不同跳過步數效果對比
5. Clip_guidance_scale 效果 & 不同值效果對比

1. CLIP 模型 

Disco Diffusion 提供以下模型以供創作者進行選擇:ViTB32, ViTB16, ViTL14, RN101, RN50, RN50x4, RN50x16, RN50x64
不同的模型有著不一樣的“口味”,透過搭配不同的模型會得到不一樣的效果。但是其中一些模型極度消耗視訊記憶體,同時,開啟額外的模型會額外的消耗視訊記憶體與渲染時間,甚至有可能導致宕機崩潰。
不同模型【速度/耗記憶體】的大致順序如下(從最快到最慢):VitB32、RN50、RN101、VitB16、RN50x4、RN50x16、RN50x64、ViTL14
注:在使用 RN50x64 & ViTL14 模型時,你也許需要設定更少的 cuts, 這取決於你的 VRAM.

不同 CLIP 模型的選擇對比 [3]

  • Prompt: “A painting of sea cliffs in a tumultuous storm, Trending on ArtStation.” (提示文字:暴風雨中的海巖畫,在 Artstation 上熱搜。)
  • 固定隨機種子: 2472644150
  • 訓練步數:350
  • skip_steps:100
測試者輸入的參考圖片:
使用 ViTB32, ViTB16, RN50  (DD 預設引數)
只使用 ViTB32:
只使用 ViTB16:
使用 ViTB32, ViTB16, ViTL14, RN101, RN50, RN50x4:
只使用 RN50:
只使用 RN50x4:
只使用 RN50x16: (哈哈哈什麼,竟然變成了一隻龍。)
只使用 RN101:
只使用 ViTL14:
使用 ViTB32, ViTB16:
使用ViTB32, ViTL14:
使用ViTB32, ViTB16, RN101:
使用ViTB32, ViTB16, RN50, RN50x4:
測試者筆記:
我目前還在做更多的測試,但讓我們此刻問問自己:我們可以從目前的結果中得出什麼結論呢?🤔 或許,至少在較少步數的訓練生成中(250 steps 左右並且未跳過步數)
  • ViTB32 和 ViTB16 傾向於給出更多細節
  • 同時使用更多的設定會讓生成結果更趨於抽象
2. use_secondary_model 次級模型
use_secondary_model: (預設:開啟) 這給創作者一個選項,對於 Clip 評估是否使用次級模型來清理臨時擴散影像。如果這個選項被關閉,DD 會使用其常規(也就是更大的)擴散模型。通常,使用次級模型會更快,然而次級模型的庫會小許多,這也許會減弱生成影像的質量和細節。我建議你根據自己的需要對此進行試驗。

use_secondary_model 是否使用次級模型效果對比 [4]

不使用次級模型的渲染生成時間:7 分鐘 27 秒
使用次級模型的渲染生成時間:3 分鐘 12 秒 
不使用次級模型的渲染效果似乎更加有意思,你能感受到似乎有更大的影像資料庫與更進階的演算法效果加在了生成的圖片上。 
圖 1 不使用次級模型:
使用次級模型:
圖 2 不使用次級模型:
使用次級模型:
3. Steps 訓練步數
steps: (250|50-10000) 當建立一個影像時,去噪曲線被細分為訓練步數。每一步(或迭代)涉及人工智慧檢視被稱為 "cuts" 的影像子集,並計算影像應被引導的 "方向",使其更符合提示文字。然後它在擴散去噪器的幫助下調整影像,並進入下一個訓練步數。
增加訓練步數給了 AI 更多調整影像的機會,每一步的調整會越來越小,並越來越精確和細節。增加訓練步數會帶來更長的渲染時間。同時,雖然增加訓練步數可以提升圖片質量,但超過 250~500 步後,就會有邊際效應遞減

的情況。當然,一些複雜的影像可能會需要 1000, 2000 甚至更多的步數,這取決於具體的專案及測試者。

記住訓練步數直接影響渲染時間,一些其他引數的調整可以極大地改變圖片質量,同時不增加額外的渲染時間。

不同 Steps 訓練步數效果對比 [5]

這組實驗統一設定了解析度 1280 x 960, cutn_batches = 2, 固定隨機種子 87654321,而其他引數皆為預設引數,訓練步數分別為:250, 500, 1000, 1500.

下圖是固定了隨機種子和包括 clamp_max 在內的其他引數後,調整每張影像的訓練步數,不同的影像所對應的生成結果。

四張圖的提示文字分別是:
  • an ominous painting of the Eiffel tower by Zdzisław Beksiński (由JJ和RT創作的在不祥氛圍籠罩的埃菲爾鐵塔畫作。)
  • a beautiful painting of a building in a serene landscape by Greg Rutkowski and Thomas Kinkade, trending on ArtStation. (由GS和TK創作的一幅寧靜建築的畫作,在 Artstation 上熱搜中。)
  • a beautiful portrait of mecha statue of liberty by  James Jean and Ross Tran(由JJ和RT創作的一幅美麗的自由女神畫作。)
  • a magic realism painting by Gediminas Pranckevicius depicting an abandoned building in a field of flowers landscape, vibrant, cinematic lighting(由GP創作的一幅魔幻現實主義的花田中的廢棄建築畫作,充滿活力感,電影光效)

4. Skip_steps 跳過步數

Skip_steps: (10 | 最高到設定的訓練總步數)參考下圖,噪聲排程(去噪強度)開始時非常高,隨著擴散步驟的進行,噪聲逐漸變得越來越低。由於前幾步的噪聲水平非常高,所以影像在早期步驟中變化很大。當 DD 沿著曲線移動時,噪聲水平(以及因此每一步產生的影像變化量)會下降,並且從一個步驟到下一個步驟的影像一致性會增加。
去噪的前幾步往往是如此戲劇性,以至於一些訓練步數(可能是總數的10-15%)可以被跳過而不影響最終的影像。你可以嘗試用這種方法來縮短渲染時間。然而,如果你跳過了太多的訓練步數,剩下的噪聲可能不足以產生新的內容,因此可能沒有 "剩餘時間 "來完成一幅令人滿意的影像。
此外,根據你的其他設定,你可能需要跳過一些步驟,以防止 CLIP 過度處理你的目標,導致遠超預期的顏色(過飽和,純白色,或純黑色區域)或其他不良的影像質量。考慮到去噪過程在早期步驟中是最強的,所以跳過訓練步數有時可以緩解其他問題。
最後,如果使用 init_image(參考影像) 你需要跳過~50%的訓練步數,以保留原始initimage中的形狀。當然,你也可以出於創造性的原因上下調整跳過的訓練步數。 跳過的訓練步數少,你可以得到一個 "受 "初始影像啟發的結果,它將保留顏色和粗略的佈局和形狀,但看起來很不同。跳過的訓練步數多,你可以保留 init_image的大部分內容,只是對紋理進行微調。

不同 Skip_steps 跳過步數的效果對比 [6]

給 Disco Diffusion 的參考影像:
跳過 0%(總共 250 步,跳過 0 步)
跳過 5%(總共 263 步,跳過 13 步)[ 注意:這些數字可能看起來很奇怪。這是因為我希望無論跳過最初的多少步,每張影像最終都能執行 250 步 ] 
跳過 10%(總共 278 步,跳過 25 步) 
跳過 15%(總共 294 步,跳過 44 步) 
跳過 20%(總共 313 步,跳過 63 步) 
跳過 30%(其實是 28%)(總共 350 步,跳過 100 步) 
跳過 40%(總共 417 步,跳過 167 步)
跳過 50%(總共 500 步,跳過 250 步)
跳過 60%(總共 625 步,跳過 375 步)

5. Clip_guidance_scale

clip_guidance_scale: (5000|1500-100000) CGS 是你將使用的最重要的引數之一。它告訴 DD 你希望 CLIP 在每個時間段向你的“提示文字”靠近的效果有多強。一般來說,越高越好,但如果 CGS 太強,可能會過度接近目標因此扭曲影像。所以一個“中庸”的值,效果可能是更好的,CGS 的調整還需要一些實踐的經驗。
請注意,這個引數一般會隨著影像尺寸的變化而變化。如果你的總尺寸增加了50%(例如,從512 x 512變為512 x 768),那麼為了保持對影像的相同效果,你要將 clip_guidance_scale 從5000增加到7500。
在所有的基礎設定中,clip_guidance_scale、step 和 skip_steps 對影像質量影響最大的,值得好好學習及實驗。

不同 Clip_guidance_scale 效果對比 [7]

針對同一個提示文字,固定訓練步數在內的其他引數,CGS 值從 500、1500、5000、15000、45000、135000 的影像效果。
四張圖的提示文字分別是:
  • an ominous painting of the Eiffel tower by Zdzisław Beksiński (由JJ和RT創作的在不祥氛圍籠罩的埃菲爾鐵塔畫作。)

  • a magic realism painting by Gediminas Pranckevicius depicting an abandoned building in a field of flowers landscape, vibrant, cinematic lighting(由GP創作的一幅魔幻現實主義的花田中的廢棄建築畫作,充滿活力感,電影光效)
  • a beautiful painting of a building in a serene landscape by Greg Rutkowski and Thomas Kinkade, trending on ArtStation. (由GS和TK創作的一幅寧靜建築的畫作,在 Artstation 上熱搜中。)
  • a beautiful portrait of mecha statue of liberty by James Jean and Ross Tran(由JJ和RT創作的一幅美麗的自由女神畫作。)

以上就是 Disco Diffusion 引數效果大全(上)的內容,因為存在著一些整理和篩選,希望此文只是拋磚引玉,大家可以 Reference 的部分找到每部分對應的連結,並直接閱讀英文原文。(下)會翻譯及整理實驗效果的引數有:Clamp_max, ETA, Cut_overview, cut_innercut, cut_ic_pow, output_image_size 等,歡迎關注!另外,我自己也有在做關於 Disco Diffusion 的引數實驗筆記,希望能給你的 DD 之旅提供幫助。
另外,我們有一個關於女性 AI 藝術家的共學小組,如果你是對 AI 感興趣的女性藝術家,歡迎通過後臺留言的方式告訴我你的微訊號,在不忙的時候我會加你並且拉你進群。

Reference: 
[1] Zippy’s Disco Diffusion Cheatsheet: https://docs.google.com/document/d/1l8s7uS2dGqjztYSjPpzlmXLjl5PM3IGkRWI3IiCuK7g/edit
[2] EZ Charts: https://docs.google.com/document/d/1ORymHm0Te18qKiHnhcdgGp-WSt8ZkLZvow3raiu2DVU/edit#heading=h.poduwvqudgpt
[3] Clip model:  https://discord.com/channels/944025072648216586/944025513322774608/949139807341252619
[4] Secondary_model: https://discord.com/channels/944025072648216586/949776749456138320/952628761726165083
[5] steps: https://twitter.com/KyrickYoung/status/1500196286930292742
[6] skip_steps: https://discord.com/channels/944025072648216586/949776749456138320/950153822947397762
[7] cgs: https://twitter.com/KyrickYoung/status/1502839197882793987?s=20&t=RXMx505dK7a_nz1N1I-0JA


相關文章