文字產生圖像的魔術

最進社群媒體上的朋友們經常在用 MidJourney(MJ) 或者 Disco.Diffusion(DD)這些由文字產生圖像的AI軟體,產生大量的創作。有趣的是,當你嘗試想多瞭解這兩個軟體背後的理論時,網上給你的資料絕大多數都是如何操作這兩個軟體。

也許這就是所謂的知難行易,會開車的不需要會修車吧。但是基於好奇,也怕被人問,我還是努力的把我所找到的資料整理如下,敬請指教。

文字變圖像的範疇其實已經有一陣子了,學習深度學習的人都知道有GAN和VAE這兩種方法可以製造偽鈔或產生不存在人臉。但是普遍都有可信度太高,創作力不足,或者創作力太高,超現實太過分的問題,難以控制。而谷歌和OpenAI提出來的擴散(Diffusion)模型,恰巧可以在創造力和可信度之間得到一個平衡。(至於Disco是什麼?其實它衹是一個python筆記編輯器罷了,所以我們專注在Diffusion Model即可)

所有的藝術家都希望模仿偉大作品的風格,但又希望模仿時有自己的創意,而創意也不會完全失控,這就是擴散模型勝出的原因。

GAN/VAE等生成模型都要經過訓練。首先是把各種文字和他所收集的4億筆(omg!)圖像關連接起來,無論你寫什麼文字,他最後都會用Transformer或者是GPT-3將其編碼成一個向量,然後指向這4億張圖的入選者。但它絕對不只是一個文字到若干圖像的AI檢索系統。

接下來才是主秀,也就是擴散模型開始表演。這個模型也是先經過訓練,將所有的圖逐漸加入高斯分佈的雜訊,到完全變成雜訊為止。如果原圖是一張清晰的貓,它就變成一張全是高斯分佈雜訊的貓。4億張圖訓練完了,就等著你的文字輸入。

這個雜訊一旦加上特徵向量,也就是我們輸入的文字經過NLP的Tranaformer或GPT-3編碼之後產生的向量,我們就可以由雜訊圖反向產生一張和原圖類似,但又不一樣的,有創意的圖。為什麼不一樣呢?因為當初在訓練的時候就加入了很多常態分佈的雜訊,所以在反向去雜訊的製圖過程當中,絕不可能和原圖一樣,因而產生好多所謂的創意。

就在從雜訊變回圖的過程中,我們的文字又被用來增加成品的變化性,所以人人都可以經由文字,將原本四億張圖之一轉換成,或者說畫出,自己偉大的創意,甚至於可以從好多個創意中再選出自己中意的,再改變,創意多得遠遠超過畢卡索或者達利的想像。

如果我說,其實所謂的創意,就是高斯分佈的雜訊,而所謂的雜訊,其實部分就是你所寫的文字造成的,你同意嗎?

(以下是由Disco Diffusion 產生的圖,寫Python程式的朋友可以去:

https://colab.research.google.com/github/alembics/disco-diffusion/blob/main/Disco_Diffusion.ipynb 試試

不寫程式的朋友也可去 https://www.craiyon.com/ 玩玩)

延伸閱讀

智商與常態分佈

一次快篩陽性就是確診嗎?

如何理解民調:95%信心,誤差3%的支持度

作者:陳少君

經歷:
在矽谷創業20年,後因照顧父母回國服務。
曾任長鑫存儲CIO/VP
曾任資策會數教所資深總監
曾任台灣佳能資深技術總監
曾任浩鑫資深技術總監

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

回到頂端