T客邦 May 22, 2022
打三個表情就能畫出世界名畫?大家都在玩的Disco Diffusion是什麼Fd59964c2b40c54e06ee2270d503a501

四月初,我看到 CG 大佬 @瘋景CrazyJN 展示了一組科幻插畫,它們構圖巧妙,畫面精美,乍一看像某位概念設計大師的作品。

打幾個關鍵就能畫出世界名畫,教你怎麼用Disco Diffusion來當個AI小畫家

有意思的是,這些都是 AI 畫出來的。他用的工具是 Disco Diffusion,一個僅靠文字就能生成畫作的 AI。

我帶著疑問和期待,直奔電腦,隨手搜了一個快速入門教程。簡單來說,我只要打開瀏覽器,在網頁上寫好描述目標畫作的關鍵詞,然後就等著雲端算力(對電腦硬體無要求)幫我渲染、生成,接著就能收圖了。而這些圖,往往還都是傑作。

對著教程,我開始想描述語句。我想像力有限,那時只能想到梵谷的《星空》《向日葵》這兩幅名畫,「如果它們融合成一幅畫,會是什麼樣?」於是,我在描述框里輸入:星空下的向日葵花海。

之後,渲染框一幀一幀地變清晰,畫面一幀一幀地逐漸「離譜」。

打幾個關鍵就能畫出世界名畫,教你怎麼用Disco Diffusion來當個AI小畫家

成品並非是《星空》和《向日葵》的生硬拚接:巨大的向日葵就開在山後,背後是萬星璀璨的星空。

我意識到:一個新的時代已經悄然而至。誇張點說,這個工具出現後,人們「用嘴就能畫畫」。

我忙著在設計師圈里奔走相告,而 Disco Diffusion 這位 AI 畫師又勤勤懇懇地給我畫了好幾張圖。

打幾個關鍵就能畫出世界名畫,教你怎麼用Disco Diffusion來當個AI小畫家

我很感動,於是一口氣又讓它幫我畫了大半個月……

我幾乎每天都在測試描述詞、調教機器人,踩了很多坑,翻了不少車,現在想以新手視角寫一篇入門教程。放心,即使你沒有程式碼基礎也能看懂。

準備篇:沒什麼好準備的,有瀏覽器就行

Disco Diffusion 是一個直接執行在 Google 雲端電腦(Google Colab)的程式,所以對你的電腦配置沒有任何要求,有瀏覽器就能執行。對了,前提是你已經有一個 Google 帳號。

接下來,複製https://colab.research. Google .com/github/alembics/disco-diffusion/blob/main/Disco_Diffusion.ipynb到瀏覽器,開始 AI 繪畫之旅。

打幾個關鍵就能畫出世界名畫,教你怎麼用Disco Diffusion來當個AI小畫家

先別慌,我一開始也差點被這滿螢幕的英文和程式碼勸退,但咬牙刷了幾個入門教程後我就膨脹了:原來設置參數也就幾分鐘的事兒。

下面,我繼續教你。

入門篇:不騙你,五分鐘就能上路 第一步:儲存一份副本

由於原程式是公開給所有人使用的,沒有開放編輯權限,因此需要先儲存一份副本到你的 Google 硬碟,操作如下:文件 → 在雲端硬碟中儲存一份副本。

打幾個關鍵就能畫出世界名畫,教你怎麼用Disco Diffusion來當個AI小畫家

第二步:設置參數

初次使用的話,建議大部分參數保持預設,你可以等操作熟練了再繼續摸索。到這裡,你先修改下面六個參數。

首先,直接滑到【3. Settings】,修改這三個基礎參數:

打幾個關鍵就能畫出世界名畫,教你怎麼用Disco Diffusion來當個AI小畫家

batch_name:文件夾的名稱,所有生成結果都在這文件夾裡。

steps:迭代步數,一般情況下數值越大越精細,但耗時也越長,初次使用建議保持在 250,熟練之後再考慮 500,甚至 800。

width_height:圖片的尺寸,數值必須是 64 的倍數。初次使用非常不建議設置大尺寸,不僅更耗時,還會因為記憶體不足,導致出錯。我目前用得最多的尺寸是 [1024, 512]。

然後,到【Extra Settings】修改這個參數:

打幾個關鍵就能畫出世界名畫,教你怎麼用Disco Diffusion來當個AI小畫家

intermediate_saves:儲存次數,這決定生成多少張過程圖,我一般設置為 5。

最後,到【4. Diffuse!】裡修改這兩個參數:

打幾個關鍵就能畫出世界名畫,教你怎麼用Disco Diffusion來當個AI小畫家

display rate:更新頻率,用來預覽生成結果。我一般設置 25,每 25 幀刷新一次進度。

n_batches:這個數值決定了 AI 最終出多少張圖,由於我經常用來發微博九宮格,這裡設置了 9。你也可以設置大一點的數字,讓 AI 通宵加班。

至此,六個基本參數設置完畢。接下來,就是最重要的描述詞環節了。

第三步:撰寫描述詞

描述詞(Prompts)寫對了,Disco Diffusion 才能輸出越接近你預期的畫作。所以,撰寫描述詞這一步非常關鍵。

打幾個關鍵就能畫出世界名畫,教你怎麼用Disco Diffusion來當個AI小畫家

如果你是初次使用,我建議你先在官方示例描述詞的基礎上修改,先別著急照抄網上現成的描述詞。

舉個例子,官方示例描述詞是「A beautiful painting of a singular lighthouse, shining its light across a tumultuous sea of blood by greg rutkowski and Thomas kinkade, Trending on artstation.」, 「yellow color scheme」

官方示例描述詞生成圖丨Disco Diffusion ▲ 官方示例描述詞生成圖丨Disco Diffusion

簡單分析一下,你會發現這段在描述一個燈塔的畫面時,還附加了很多特殊的關鍵詞:

  • 藝術家的名稱:by greg rutkowski and Thomas kinkade
  • 畫風:Trending on artstation (知名藝術社群 Artstation 上的流行畫風)
  • 顏色主題:yellow color scheme

這些關鍵詞都會直接影響生成結果的畫風。於是,我有樣學樣地修改了一些字眼:把「燈塔」替換成「星夜」,把「動盪的血海」改成「向日葵花海」,藝術家替換成「James Gurney」。

打幾個關鍵就能畫出世界名畫,教你怎麼用Disco Diffusion來當個AI小畫家

「A beautiful painting of a starry night, shining its light across a sunflower sea by James Gurney, Trending on artstation.」

開篇提到的向日葵花海,就是由這段描述詞產生成。

關於描述詞的更多注意事項,我會在後面的進階篇細講,這裡先把流程跑通再說。

第四步:點擊執行

你已經完成了所有配置,直接執行吧!依次點擊:程式碼執行程式 → 全部執行

打幾個關鍵就能畫出世界名畫,教你怎麼用Disco Diffusion來當個AI小畫家

在程式執行過程中,會詢問你是否允許存取 Google 硬碟,點擊【連接】。然後,就等著收圖吧!

最終產生結果以及過程圖,都會存放在 Google 硬碟的【images_out】文件夾裡:

打幾個關鍵就能畫出世界名畫,教你怎麼用Disco Diffusion來當個AI小畫家

以上,就是使用 Disco Diffusion 的整個流程。

進階篇 :如何寫好描述詞

為了讓 AI 能聽懂我的話,過去的大半個月我都在跟 Disco Diffusion「吵架」,積累了不少經驗,下面分享 8 個小竅門:

1. 英文不好沒關係,機翻可能更對機器人的口味。

2. 不建議製作生物,尤其是人類。同理,也不建議加入常畫人物的藝術家為關鍵詞。否則你會得到一堆扭曲的肉,為了保住大家的「san 值」,我就不放圖了。

3. 酌情加入 Unreal Engine, C4D, 3dMax, Maya, V-Ray 等關鍵詞,它們都可以讓 AI 模仿主流 3D 引擎的算繪效果。

以這個異形情境為例,加入「Unreal Engine「前,畫面有點平,像作者的手稿 ▲ 以這個異形情境為例,加入「Unreal Engine「前,畫面有點平,像作者的手稿

加入「Unreal Engine「後,我能清楚地感受到輝光、景深以及金屬光澤,這讓畫面更有電影質感 ▲ 加入「Unreal Engine「後,我能清楚地感受到輝光、景深以及金屬光澤,這讓畫面更有電影質感

4. 加入能讓畫面更高解析的關鍵詞,比如:high detailed, detailed, 8k, intricate, elaborate 等。

我在生成達文西手稿時做了對比測試,能感受到明顯的精細度變化。

「animal skull sketch, by Leonardo davinci journal」 ▲ 「animal skull sketch, by Leonardo davinci journal」

「detailed animal skull sketch, by Leonardo davinci journal」 ▲ 「detailed animal skull sketch, by Leonardo davinci journal」

5. 加入可以幫 AI 去掉作者本人照片的關鍵詞:human:-2

有時候,AI 會把藝術家本人照片當成是藝術風格之一融入到生成圖中,尤其是一些有自畫像的作者。此時,你可以在描述詞中強行把人類權重降低。還是以達文西手稿為例:

「a time machine blueprint, by Leonardo da vinci journal」 ▲ 「a time machine blueprint, by Leonardo da vinci journal」

「a time machine blueprint, by Leonardo da vinci journal」, 「human:-2」 ▲ 「a time machine blueprint, by Leonardo da vinci journal」, 「human:-2」

6. 加入可以去掉煩人景深的關鍵詞:blur:-2, depth of field:-2。

AI 為畫面加入的景深是隨機的,有時候甚至會反噬畫面,如果你不想被隨機景深影響,也可以強行把景深的權重降低,看下面這組對比:

打幾個關鍵就能畫出世界名畫,教你怎麼用Disco Diffusion來當個AI小畫家

「Mount Fuji, Sakura, by Phil Greenwood」

「Mount Fuji, Sakura, by Phil Greenwood」, 「depth of field:-2」 ▲ 「Mount Fuji, Sakura, by Phil Greenwood」, 「depth of field:-2」

7. 給 AI 多一點提示,用上關鍵詞組合:名畫名字 + 作者名字。

比如很多非英語地區的名畫,其英文譯名都是後加的,AI 並不能很好地辨識出來,不能被準確識別的關鍵詞,也就是無效的關鍵詞。

舉例,日本的《神奈川衝浪裏》的英文名是「the Great Wave」,如果你只在描述詞中寫這個英文名,AI 可能只會幫你畫一個普通的大浪,請看下面這組對比:

「the Great Wave, rendered in high resolution by Greg Rutkowski, trending on artstation」,不加原作者,AI 就按他的理解給我畫了一個驚濤浪 ▲ 「the Great Wave, rendered in high resolution by Greg Rutkowski, trending on artstation」,不加原作者,AI 就按他的理解給我畫了一個驚濤駭浪

「the Great Wave by Hokusai, rendered in high resolution by Greg Rutkowski, trending on artstation」,加上名畫作者葛飾北齋的名後,AI 就能精準還原原作的一些特徵了 ▲ 「the Great Wave by Hokusai, rendered in high resolution by Greg Rutkowski, trending on artstation」,加上名畫作者葛飾北齋的名字後,AI 就能精準還原原作的一些特徵了

8. 巧用一些特殊畫風關鍵詞。

Disco Diffusion 能模仿的遠不止 Artstation 上的流行藝術家,它還能畫水墨畫和異形主題畫。我列舉一些用過的特殊畫風關鍵詞:

水墨風關鍵詞:Chinese ink painting, Chinese Shanshui

莫比斯風格關鍵詞:moebius, mœbius, Jean Giraud(莫比斯本名) ▲ 莫比斯風格關鍵詞:moebius, mœbius, Jean Giraud(莫比斯本名)

異形主題關鍵詞:Alien, H. R. Giger(異形之父) ▲ 異形主題關鍵詞:Alien, H. R. Giger(異形之父)

打幾個關鍵就能畫出世界名畫,教你怎麼用Disco Diffusion來當個AI小畫家

更多有趣的關鍵詞,可以關注這份由網友 proximasan 和 sureailabs 整理出來的畫風詞典: [https:]] 。他們用同一組描述詞,測試了 70 多位藝術家的畫風在 Disco Diffusion 上的表現,並製作了非常直觀的對比圖。

打幾個關鍵就能畫出世界名畫,教你怎麼用Disco Diffusion來當個AI小畫家

如果你還不滿足,強烈建議到 Disco Diffusion 的 Discord 社群逛一逛:discord.gg/QFjmfjXE。在那裡,來自全世界的高級玩家不間斷地討論著同一個話題:如何產生更好的效果?資訊量大到即使你偶爾瞄一眼,都能獲得很多實用小技巧。

如你所見,關於「如何寫好描述詞」,是沒有天花板的。總有你沒見過的風格,總有你學不完的參數設置。

在用 AI 產生畫作的這大半個月,我越發驚嘆人類藝術家的造詣。那些擁有自己成熟畫風的藝術家是多麼的偉大,試想,這每個名字背後得濃縮多少才華和心血才能達到影響 AI 畫風的程度呢?

人類還沒輸。

「AI 超越人類」的新聞沒有停過,人們擔心自己會因此失業。但我想,面對一項新技術,消除焦慮最好的方法就是先學會它。

AI 不會讓我失業,它大機率能讓我早點下班。它有著更「脫韁」的想像力,能毫不費力地產出大量天馬行空的畫面,規則之外的構圖,想都不敢想的混搭。有一些藝術家開始嘗試在 Disco Diffusion 生成圖的基礎上再加工,再創作。

我用 Disco Diffusion 做了一段影片 ▲ 我用 Disco Diffusion 做了一段影片

還有人擔心它存在版權風險。Disco Diffusion 產生圖理論上可以商用,其程式基於 MIT 開源協議,所有網路使用者可以免費使用、複製、修改甚至出售製作產生的圖片。但我覺得還是存有風險。風險主要來源於你的描述詞會引來畫風抄襲的爭議。

當你使用了風格鮮明的藝術家(尤其是在世的藝術家),以及某部商業作品作為關鍵詞時,都請不要直接拿來商用。

註:以上所有理論知識和操作技巧均來自 YouTuber Quick-Eyed Sky 的入門。文中配圖如無特殊說明,均為作者提供。

  • 本文授權轉載自:36kr
加入T客邦Facebook粉絲團 固定链接 '打幾個關鍵字就能畫出世界名畫,教你怎麼用Disco Diffusion來當個AI小畫家' 提交: May 22, 2022, 10:30pm CST