00-人工智慧輔助視覺藝術創作初探…AI終於捲到了我頭上……

2015年3月,AlphaGo 跟李世石下了5番圍棋。戰果是4:1,一時到處都在討論AI在未來的各種可能。我跟霍炬在雪還沒化完的公園散步時,決定畫一個跟AI有關的科幻故事,也就是 4篇的小連載 《程式碼的深淵》——一個為了幫助程式設計師寫程式碼而設計的人工智慧 Betacat,最後卷死全人類的故事。(7年前我設定的故事就發生在2022年)

從 AlphaGo 之後,人工智慧在金融、製造、資訊和資料處理領域進展很大,普通人能感知到的有無人駕駛、機器翻譯、人臉識別、人機互動、醫療輔助,這些已經推進了很多年的方向。但超出我想象的是,在過去數年內,機器學習會在計算機視覺及藝術創作這個方向上突然爆發,在美術設定和插畫設計行業掀起海嘯。

先上幾張圖我上週用 AI 生成的圖給大家看,我所負責的部分,就只是輸入了幾句文字描述 ( Prompt, 單詞原意為“提示,給表演者的提詞” )。
Prompt:   "A beautiful painting of A beam of light shines over a dream palace under the sea, by Dan Mumford, artstation, light effect, high-definition, saturated color"
Prompt:   "a detailed matte landscape painting of a big cherry tree with petals flying in the sky, moonlight, by Victo Ngai, artstation, Detail, HD."
除了只用文字向 AI 輸入你的創作指令,還可以提供一張底圖 (初始化圖片,initial image)去控制構圖、佈局、形狀或顏色,提高對創作結果的控制
Prompt: "Dragon, By Dan Mumford, Saturated color, high-definition."
這個系列圖片是我用來對同一張 intial image,更換不同的 prompt 來測試不同的風格主題。使用的 Initial image 就是一張骷髏的灰度照片
下圖 prompt 與上圖 幾乎完全一樣(去掉了一條對色調的定義)。
AI 依此生成的兩批圖風格接近,但又不完全一樣。

復古科幻主題:
Prompt: "Sci-fi, by Bruce Pennington, Artstation"
上世紀科幻雜誌封面復古調調的異星文明   
Alien Landscape
哥特風格
Prompt:  "gothic, lithograph style, printmaking style, black and white, high-contrast."
黑暗童話風格

下面三張我是對現代風格的山水畫主題測試


風格寫實的

場景概念設定 matte landscape painting

也可以勝任。對於做

遊戲或影視戲劇美術行業

,這應該有很值得探索的可應用潛力。

(使用了initial image 控制構圖)


傳統藝術風格  Fine Art Style 也能輕鬆駕馭。
將十七世紀荷蘭黃金時代 Dutch Golden Age 的花卉靜物畫與水母的形態相嫁接(我使用了水母圖片作為 initial image)

這是什麼軟體/工具實現的?

可能部分讀者已經猜到了。我使用的這款 TTI 生成工具 (Text to Image Generator) 就是最近火出了機器學習圈的 Disco Diffusion v5.2
DD v5.2 是一種基於 CLIP(一種跨模態預訓練模型)來“理解”使用者輸入的文字,再使用 一種 Diffusion model擴散模型)來生成影像的工具。
它是一個部署在 Colab 的開源專案 (Colab 是資料科學家和AI研究者們非常喜歡的用來線上編寫並執行 Python 程式的 notebookGoogle家的,用法跟 Jupyter notebook 接近 ),所以線上就可以出圖。當然因為需要耗費巨量的顯示卡資源,Colab 每天給免費使用者使用的計算資源有限制。雖然DD 專案基於 MIT license,使用者使用它是免費的,但你可能需要為雲計算資源買單。
當然你也可以在 DD 的 Github 下載原始碼和模型,在本地執行。但是最好有一張至少 24G視訊記憶體的顯示卡,才有可能生成大圖(步數設定合理以及足夠有耐心的前提下)。所謂大圖,也不過 1280 畫素 

Colab 和 Github 的連結地址我都放在文末

Disco Diffusion 值得關注嗎?

Disco Diffusion v5.2 生成的圖片的視覺效果及風格讓我感到頗為驚訝,從中可以看到了極大的應用潛力、探索空間和創作自由度。這也是為什麼它從4月以來,吸引了插畫美術設計行業的關注。也讓許多普通人,之前不具備影像繪製或處理能力,卻一下子看到了為自己的小說、詩歌、桌遊卡牌、唱片專輯、MV 親手創作概念圖或封面圖的可能。心理學分析從業者也從中窺見了應用靈感,例如用它幫助使用者描繪夢境或將意識裡的場景視覺化。甚至,你可以跟家裡小朋友一起玩“你說我畫”,畫怪獸再也難不倒爸爸了,要多少有多少 

當然這樣一個在應用效果上頗為成功的 AI 專案是不可能從是石頭縫裡蹦出來的。它基於整個機器學習行業裡許多開發者、公司、資料集和科學家們的多年累積的成果。同時在 Disco Diffusion 之外,還有不少同類的 TTI generator 專案值得關注。

AI 藝術創作的第一步,“聽懂”人話——CLIP 是什麼?

下面寫的都是一些我的個人理解和學習筆記,希望分享出來,讓跟我一樣對此有興趣的普通人們多瞭解一點 “人工智慧 + 數字視覺創作” 正在發生什麼,有什麼新方向值得關注,什麼上下游工具值得探索。在 AI 視覺藝術創作這麼新的一個領域,大家都是漫長道路上的學習者、巨大迷宮裡的探尋者。
我只是個寫碼不能、數學稀爛的視覺藝術從業者,我盡個人最大努力。如果有 AI 或 CV 領域的專業人士不幸看到本文,請高抬貴手,切勿見笑。不吝賜教,多多指點我的錯誤。

要讓 AI 作畫,先要讓程式“聽懂”你的指令,比如
 “a big cherry tree above a lake with flying  petals in the sky, lake reflection.”
 (描繪一棵浮在湖面上的櫻花樹,花瓣漫天飄舞,湖面有倒影 )
對這麼一個相對複雜場景的文字描述,AI 需要能“理解”並匹配到對應的畫面,大部分同類項目依賴的都是一個叫 CLIP 的模型。有人把它比作 "自然語言處理的方向盤" (natural language steering wheel),幫助藝術家僅透過輸入文字:一行標題、一首詩、一組關鍵詞,就有可能創造出各種有趣的視覺藝術
CLIP 和 各類圖片生成模型結合後,擁有非常大的創造力,能生成不可思議的風格,從寫實到抽象、魔幻到唯美的風格的圖片,雖然其中大部分作品看了會讓人 san 值掉光。
在 AI art 創作中,提詞的設計是關鍵。CLIP 是一個開放沙盒,你可以放心往裡面輸入任何描述,無論是否存在於世界上,從 “正在金字塔頂上閱讀浮士德的貓” 到 “長著八條腿的綠毛水怪躺在河岸邊”——可以創造任何東西。”
CLIP 經過了對一組組文字-影像對照資料的海量訓練,資料集使用的是 LAION-400M,包含4億組從網際網路上收集的文本-圖片對。文字編碼器提取文字特徵,圖片編碼器提取圖片特徵,兩個放到一起對比相似度。選擇相似度最高的文字所對應的類別作為影像分類預測結果,用相似度的數值用於以後計算每個類別的預測機率,使得一個未知資料透過這個分類器的時候能夠以相對高的機率的預測出其所屬分類。從而讓 AI 先“掌握”文字-影像對的匹配關係,所以 CLIP 的全稱是 Contrastive Language–Image Pre-training,一種基於對比的圖片-文字學習的跨模態預訓練模型。
但只依靠這樣訓練資料集去實現分類器,即使向 CLIP 輸入了4億個文圖對,也是不夠的。沒有任何一個文圖對裡有我們想要的“八腿綠毛水怪”對吧。而 CLIP 的一大優勢就是可以直接實現 zero-shot 的影像分類,來推測出“八腿綠毛水怪”的影像。
Source: 

Learning Transferable Visual Models From Natural Language Supervision

https://arxiv.org/abs/2103.00020

Zero-shot learning 就是讓模型能夠對其從沒見過的輸入樣本進行分類,這不是很難理解,因為跟人類思維的推理及學習過程很接近。零次(Zero-shot)指的就是對需要分類的類別物件,學習次數為零。
業內最常拿來舉例子是斑馬
下面這兩段引自 知乎作者 兩太陽的栗子社長 的《零次學習(Zero-Shot Learning)入門》https://zhuanlan.zhihu.com/p/34656727
“ 假設小暗(純粹因為不想用小明)和爸爸,到了動物園,看到了馬,然後爸爸告訴他,這就是馬;之後,又看到了老虎,告訴他:“看,這種身上有條紋的動物就是老虎。”;最後,又帶他去看了熊貓,對他說:“你看這熊貓是黑白色的。”然後,爸爸給小暗安排了一個任務,讓他在動物園裡找一種他從沒見過的動物,叫斑馬,並告訴了小暗有關於斑馬的資訊:“斑馬有著馬的輪廓,身上有像老虎一樣的條紋,而且它像熊貓一樣是黑白色的。”最後,小暗根據爸爸的提示,在動物園裡找到了斑馬(意料之中的結局。。。)。
上述例子中包含了一個人類的推理過程,就是利用過去的知識(馬,老虎,熊貓和斑馬的描述),在腦海中推理出新物件的具體形態,從而能對新物件進行辨認。(如圖所示)ZSL就是希望能夠模仿人類的這個推理過程,使得計算機具有識別新事物的能力。”

為什麼我關注 CLIP

我在努力去了解 CLIP,有4個原因:
1. 開發 CLIP 的公司 OpenAI 也開發了畫圖能力更為驚人的 DALL·E 2  
2. 除 DALL·E 2 之外的,目前跟 DD 同類的 TTI AI 藝術創作工具,文字到影像這個步驟的實現大多基於 CLIP (CLIP Guided ****
3. 後幾篇文章我會詳細寫下我認為的目前 AI ART 創作中最重要的事:“如何設計 text Prompt ”。要了解 Prompt 是如何起作用的,怎麼寫能更有效,這就繞不開 CLIP
4. 我也會分享一些選項設定的心得 “ DD哪些設定項最值得關注”,翻譯一些文件。設定項中讓很多人不明就裡且十分糾結的“模型選擇器”(ViTL14、RN50、VITB32 ……),也跟 CLIP 高度相關

Open AI 和 GPT-3

下面我們快速過一下 開發 CLIP 的這家公司:OpenAI 的背景與歷史。
OpenAI 成立於六年前,總部位於舊金山。創始人是 山姆·阿爾特曼(著名創業孵化器 YC 的總裁)和伊隆·馬斯克(2018年退出董事會)。組織當初的目標是透過與其他機構和研究者的“自由合作”,促進和發展友好的人工智慧,向公眾開放專利和研究成果。成立之初是一家非營利研究機構,2019 年,從非營利性轉變為“有上限”的營利性(capped-profit)。並接受微軟10億美元注資,隨後宣佈打算對其技術進行商業許可,微軟是其首選合作伙伴。
2019年2月,OpenAI 宣佈了大型自然語言處理模型 GPT-2,讓AI可以幫你續寫文字,效果在“上下文連貫性和情感表達上都超過了人們的預期”。
2019年4月,OpenAI 開發的 Self-Play 機器人在 Dota2 1v1 直播賽事裡 以 2:0 虐了世界冠軍 Dendi
2020年5月,釋出了 GPT-3, 一種具有 1750 億引數的自迴歸語言模型,微軟於2020年9月22日取得獨家授權。“引數量要比 2 月份剛剛推出的、全球最大深度學習模型 Turing NLP 大上十倍,而且不僅可以更好地答題、翻譯、寫文章,還帶有一些數學計算的能力”。
source: 機器之心《1750億引數,史上最大AI模型GPT-3上線:不僅會寫文章、答題,還懂數學》https://www.jiqizhixin.com/articles/2020-05-30-6
GPT-3 的釋出給AI行業甚至圈外帶來了不小的震盪。它驚人的“智慧”程度和應用潛力吸引了大量開發者,也引發了很多對人工智慧和演算法倫理偏見的憂慮,同時,已經變得越來越“商業” 的OpenAI 的封閉性和資本集中效應,也讓業界開始擔憂。
但這並不妨礙熱血上頭的開發者們利用 GPT-3 開放的API 來開發了各種好玩的小應用,比如文字冒險遊戲、小說完成器、聊天機器人、假新聞編寫器……還有開發者用 GPT-3 編寫了一款名為 debuild.co 的實驗性小工具,號稱能幫你 build web apps,只要輸入文字描述,AI 就可以為你生成可互動的網頁元件、頁面佈局。往網際網路資訊池塘以及 Github 程式碼庫裡倒入了整車整車的巴西龜。
所以……如果能用文字描述生成網頁佈局,能用文字描述生成圖片也不遠了吧。
沒錯 

半年後,2021年1月,OpenAI 在同一天釋出兩個重磅模型,DALL·E 和 CLIP, 前者是文字 ->圖片的生成器,後者就是前文說的 文字-圖片的跨模態預訓練模型

 同學們,我跑題終於跑回來了

DALL·E 的釋出

DALL·E 跟 Disco Diffusion 屬於同一類工具,但所生產圖片的風格差別很大。DALL·E 生成的圖片更接近現實中的照片,也擅長建立卡通漫畫,比如 “穿燕尾服抽雪茄的臭鼬會說話的挖掘機的卡通版本”,以合理的方式組合不相關的概念,比如生成 “牛油果形狀的躺椅”、“刺蝟表面的椅墊”,還能在圖片中指定位置插入指定風格的文字,比如“加一塊寫著 CLOSED 的霓虹燈招牌”,或根據現有影像,對區域性做編輯或補充在沙發上新增一隻牛油果”。

Prompt: “an illustration of a baby daikon radish in a tutu walking a dog”

一張插畫:穿芭蕾舞裙遛狗的蘿蔔寶寶

Prompt: “an armchair in the shape of an avocado.”

牛油果形狀躺椅

上面兩張圖片均來自 OpenAI 官網 

https://openai.com/blog/dall-e/

用 CLIP 拼大樂高

轉回來說 CLIP。因為 OpenAI 一直沒有開放 DALL·E 的全部模型,所以“駭客”們 一直試圖用 CLIP 加上其它模型部件 來開發目的類似的工具。不專業如我,會把這些專案想象成一個有兩三塊大樂高的積木,文字->圖片用 CLIP 樂高塊,圖片生成用 VQGAN、StyleGAN 或各類 Diffusion Model。如果想方便不擅長用英文寫 prompt 的使用者,文字輸入前面再接一個 DeepL ?
這些工具都可以稱之為 TTI ART Tool
而前文我用的 Disco Diffusion 就是 CLIP + Diffusion model,除了圖片生成模型,它還花了一年多時間銜接了動畫、影片、VR 的生成模型。
下面列出了一些我準備探索的專案,會一一寫文向大家彙報結果。
  • Centipede Diffusion
  • CLIP-Guided StyleGAN3
  • CogView 2 (清華大學唐傑團隊開發的,原生支援中文)
  • Improved Multi-Perceptor VQGAN + CLIP
  • Stylegan-Humans+CLIP
  • Pixray
  • The Big Sleep: BigGAN x CLIP
這裡有兩個可以在頁面裡直接試用TTI 模型。沒有命令列的,沒有的。
CogView :清華的專案,prompt 原生支援中文。40億引數,VQ-VAE tokenizer Transformer。據團隊釋出的論文裡稱“人工評估的測試中,CogView被選為最好的機率為37.02%,遠遠超過其他基於GAN的模型。” 
Source:CogView: Mastering Text-to-Image Generation via Transformers https://arxiv.org/abs/2105.13290
好像上個月釋出了 CogView 2, 還沒處試用,很期待。
試用地址:
https://wudao.aminer.cn/CogView/index.html
下面是我跑的,8張結果裡有2張只有湖水。不過也很正常啦。
Prompt: “一棵湖面上的櫻花樹,花瓣飄在天空中,湖水倒影”

Dalle-Mini:但注意這個專案只是名叫 mini Dalle,不要跟 OpenAI 的 DALL·E 混淆。
這個專案連線了3個預訓練模型:VQGAN, BART encoder 和 CLIP。DALL·E 用了120億 GPT-3 訓過的引數(parameter version),而 Dalle-Mini 的訓練量只有它的 1/27。DALL·E 用 VQVAE 進行影像編碼,而 Dalle-Mini 用的是 VQGAN。 
source:https://wandb.ai/dalle-mini/dalle-mini/reports/DALL-E-mini–Vmlldzo4NjIxODA#the-dall-e-experiment
試用地址:
https://huggingface.co/spaces/flax-community/dalle-mini
下面是我跑的櫻花樹,Prompt 見圖

DALL·E 2

好了。這篇寫得夠多了。下篇我會介紹一下 DALL·E 2,今年4月由 OpenAI 釋出後,吸引了無數開發者和藝術家在內測 waiting list 翹首等候。
目前DALL·E 2 沒有開放測試,如果你有興趣,建議先在 wainting list 占上位置。下面是申請地址: https://labs.openai.com/waitlist
下一篇文章裡我還會重點比較一下同一 Prompt 下, DD5 和 DALL·E 2 會分別出來什麼不一樣的作品。先看一張效果,同一個Prompt:  
“group of angels having a board meeting in a summer garden, by Asher Brown Durand”  
譯:一群天使在夏日花園裡開董事會,阿什·布朗·杜蘭德的畫風。
Disco Diffusion 生成
DALL·E 2 生成
(圖片經作者 Tom Mason @nin_artificial 授權轉載,他也是DD團隊的開發者之一)
而下圖是 十九世紀美國浪漫主義風景畫家 阿什·布朗·杜蘭德 的真人原作:(他的作品中沒有畫過天使,也罕有群像主題)

最後看幾張 Disco Diffusion 大師的作品賞析

TOP artist works !
下面所有作品推薦全部得到了作者的授權,除了最後一張實在找不到。
我加了個 AI art QQ 群裡,分享兩位調參高手的作品。兩位都做了不錯的教程影片,組織了國內的 AI 創作社群。
JZ_打個比方 作品。國內最早的DD玩家之一。作品風格非常多樣。  https://space.bilibili.com/7213238
弈湘君 作品:國內最早的DD玩家之一,擅長古風和魔法風。https://space.bilibili.com/23290330 

下面是我在 twitter 和 discord 上關注的幾位海外AI藝術家的作品:
@BinxNet 作品https://foundation.app/collection/binx
@QmediaFX 作品
https://objkt.com/profile/tz1djQgsrvLKLf3iNbbMaAye7k1NMNwheA7E/created
他正在OpenSea 上開售的 龍蛋系列,早期DD玩家跟NFT社群有很大的交匯。https://opensea.io/collection/dragoncrystal-eggs

@TrebzAI 作品

https://twitter.com/TrebzAI

@AetherialDnB 作品https://objkt.com/profile/tz1NY7s7ehQQb5pLZrrp1Zuog7JWpwUnihBu/created
@unltd_dream_co 

不過這位藝術家用的不是DD,而是

VQGAN + Clip

他的網站 

https://www.unlimiteddreamco.xyz/

上有關於  VQGAN + Clip 的技術教程分享。

Armoured 作品:
https://www.reddit.com/user/armoured/ (非常抱歉這張沒能聯絡到作者,但我實在是非常喜歡這張的主題和畫風)

最後我想引用我一位做DL研究朋友的看法結束這篇長文:
“比如不管是 CLIP 還是各種 Diffusion,還只是起步階段的玩具,未來有更多資料和更好的模型框架,它們絕不會侷限在現在的框架裡,你所看到的現在某個模型的侷限性,極大機率都不是 AI art 未來的侷限範圍。
以前蒸汽機只能抽水,
但人類的想象力讓發動機上了天。”
謝謝觀看
擁抱你們

Disco Diffusion V 5.2 Colab 地址:
https://colab.research.google.com/github/alembics/disco-diffusion/blob/main/Disco_Diffusion.ipynb
Disco Diffusion Github:
https://github.com/alembics/disco-diffusion
Disco Diffusion Discord:
Disco Diffusion User Discord

因為最近十分上癮,下面我會更新一系列 AI ART 創作方面的文章和教程。漫畫我也會接著畫的,說不定還會增加 DL 相關主題的故事哦。請大家不要跑(拖住大腿.GIF)


相關文章