Hi, 我是海辛,是一名影視導演。最近使用 AI Disco Diffusion [1] 製作了新的詩歌動畫《外婆的掌心》,故事依舊選自我的超短篇集《夢境碎件》。這一次測試了在夢裡夢外不同場景選用不同的畫家風格,然後有意從講故事的文學性語言,調整成了更加描述性的語言去描述畫面分鏡,以下是本次成果。
製作完成後回看,希望能夠增強自己對於 AI 畫面的掌控能力,於是今天細讀了一篇 Zippy 詳細介紹 Disco Diffusion 各個引數的技術文件。[2] 我讀了整整一天,感覺對自己非常有幫助,於是將其中的精華整理好後,決定用一個專案的方式進行 Disco Diffusion 引數調節的實驗和學習,也將經驗分享給大家。
實驗目標:出一張太陽朋克城市的俯檢視。
Text prompt 1: ["a solarpunk city by greg rutkowski and john howe, trending on artstation."](譯:一個太陽朋克城市,greg rutkowski and john howe 畫的,在 artstation 上熱搜。)
不同的藝術家會有不同的效果,這裡有完整的藝術家姓名及對應風格參考 [3] 因為這次只是測試引數,所以直接選了常被用到的兩個場景大神。而 trending on artstation 基本上是出優質原畫的一個常用技巧, Artstation, Unreal Engine, CG Society 則有不同的效果。下圖是 AI 根據文字描述生成的原畫。

↑ 調整思路:作為太陽朋克城市來說,綠植有點太少了。決定使用 Disco Diffusion “權重” 的功能對文字描述進行修改。
“權重”是 DD 文字描述部分的重要功能,😡 可以分配不同引號間的權重。比如我希望增加一些樹木,可以試著增加了"tree"的 prompt, 然後在兩個 prompt 間設定權重是 4:2(注:權重相加不能為零)於是生成了如下 text prompt:
Text prompt 2: ["a solarpunk city by greg rutkowski and john howe, Trending on artstation:4","tree:2"](譯:“一個太陽朋克城市,greg rutkowski and john howe 畫的,在 artstation 上熱搜:4”, "樹:2")

↑ 調整思路:綠植的數量比重有明顯增加。接下來想做的是調整視角,一般太陽朋克城市都會更加強調建築物的垂直感,所以想試試用俯視的鏡頭,決定在 text prompt 中加入"視角"。

↑ 從左到右分別試著加入了 overhead angle, depression angle, high angle 後生成的圖,發現視角並沒有什麼變化。
由此猜想表述“俯視”這個視角的常用英文描述應該不是這些詞彙,在 pinterest 做了一下調查發現應該最常用的是 bird view. (這裡其實還有另外一種方法是直接提供參考圖片,還未測試)
Text prompt 3: ["a solarpunk city by greg rutkowski and john howe, bird view, Trending on artstation:4","tree:2"],

↑ 調整思路:這次生成的圖視角對了,但細節比較少,噪點比較重,模糊油畫的感覺很重,這個也是目前 DD 的常見畫風,猜測用預設引數很大比例會出這種畫風的圖,其實除了調節 text prompt 以外,還可以調節 notebook 裡的引數來調節畫面的效果。
根據下午對 DD 引數文件 [2] 的學習,在 DD 裡可以提升細節的相關引數有:(用ctrl/cmd+F 搜尋引數在文件中的位置)
-
steps:訓練步數,最常見的引數,訓練步數越多,細節越多。 -
clip_guidance_scale: 1500~100000,預設 5000,數值越高越匹配文字描述,但太高了會 overshoot 或者扭曲畫面。 -
tv_scale: 0~1000, 預設 0,數值越高噪點越低。 -
cutn_batches: 1~8, 預設 4,cut 越多 DD 每步處理的單位越小,細節越多。=1時有16cut, =4時有64cut, 對應渲染時間也會變成 4 倍。 -
use_secondary_model: 預設是 true, 關掉的話會用更大的 diffusion model, 生成更高的圖片質量和細節,但時間會翻倍。 -
cut_ic_pos: 0.5~100,預設是1.0,也是用於增加細節的。
另外影像顏色上有一些 flat,希望能增加對比度,圖片飽和度還好,相關引數有:
-
range_scale: 0~1000, 預設 150,對比度引數。降低數值可以增強對比度,低數值對應顏色較少且對比強的海報類圖片;高數值降低對比,生成 muted images. 數值為 0 時本項關閉。 -
sat_scale: 0~20000,預設 0 ,飽和度引數,升高這個數值可以降低飽和度,數值為 0 時本項關閉。
在 text prompt 和訓練步數不變的情況下,對以下引數進行調節:
-
增強細節:tv_scale: 0 -> 500 / cutn_batches: 4->8 / cut_ic_pos: 1.0->30 -
增強對比:range_scale:150->80

↑ 可以看到油畫質感其實已經降下來了,但是和文字描述差距又大了一些,有點碎片,整體性弱了一些,懷疑是 cutn_batches 調高了,不過整個這個鏡頭質感和大方向大概是我想要的。
-
固定隨機種子:從上一次生成的報告中,找到了上張圖對應的 seed 值,將這個 seed 值填寫在新的設定中 set seed 這個引數裡,如果不填的話會隨機生成 seed. -
針對切分太多,整體性弱了一點,修改 cutn_batches: 8->4 -
針對和文字描述差距大這一點,修改 clip_guidence: 5000->6000

↑ 得到一張比較滿意的太陽朋克城市俯瞰圖。再嘗試一下關掉 use_secondary_model,使用更大的 Diffusion Model.

最後同個 text prompt 不同引數生成的結果:

將將將!對本次學習成果很滿意,果然要做出更好的作品,更好的瞭解自己的工具是必不可少的一步啊。準備從明天開始就投入到新一章詩歌動畫的製作!感覺自己變強(tu)了。那麼,敬請期待!
Reference
[1] https://colab.research.google.com/github/alembics/disco-diffusion/blob/main/Disco_Diffusion.ipynb#scrollTo=DoTheRun
[2] https://docs.google.com/document/d/1l8s7uS2dGqjztYSjPpzlmXLjl5PM3IGkRWI3IiCuK7g/mobilebasic
[3] https://weirdwonderfulai.art/resources/disco-diffusion-70-plus-artist-studies/#H.-R.-(Hans-Ruedi)-Giger

關鍵詞
引數
圖片
畫面
on artstation
文字描述