原創 | 量子位
克雷西 蕭簫 發自 凹非寺
量子位 | 公眾號 QbitAI
AI畫的瑪麗蓮·夢露,倒轉180°後,竟然變成了愛因斯坦?!
這是最近在社交媒體上爆火的擴散模型視錯覺畫,隨便給AI兩組不同的提示詞,它都能給你畫出來!
哪怕是截然不同的對象也可以,例如一位男子,經過反色處理,就神奇地轉變成一名女子:
就連單詞也能被翻轉出新效果,happy和holiday只在一旋轉間:
原來,這是來自密西根大學的一項「視覺字謎」新研究,論文一發出就在Hacker News上爆火,熱度飆至近800。
英偉達高級AI科學家Jim Fan讚嘆稱:
這是我近期見到最酷的擴散模型!
還有網友感嘆稱:
這讓我想到了從事分形壓縮工作的那段經歷。我一直認為它是純粹的藝術。
要知道,創作一幅經過旋轉、反色或變形後呈現出新主題的繪畫作品,怎麼也需要畫家對色彩、形狀、空間具備一定的理解能力。
如今連AI也能畫出這樣的效果,究竟是如何實現的?實際效果是否有這麼好?
我們上手試玩了一番,也探究了一下背後的原理。
Colab就能直接試玩
我們用這個模型繪製了一組Lowpoly風格的畫,讓它正著看是一座山,反過來則是城市的天際線。
同時,我們讓ChatGPT(DALL·E-3)也試著畫了一下,結果除了清晰度高一些之外似乎就沒什麼優勢了。
而作者自己展示的效果則更加豐富,也更為精彩。
一座雪後的山峰,旋轉90度就變成了一匹馬;一張餐桌換個角度就成了瀑布……
最精彩的還要屬下面這張圖——從上下左右四個角度看,每個方向的內容都不一樣。
(這裡先考驗一下各位讀者,你能看出這四種動物分別是什麼嗎?)
以兔子為初始狀態,每逆時針旋轉90度,看到的依次是鳥、長頸鹿和泰迪熊。
而下面這兩張圖雖然沒做到四個方向每個都有「新內容」,但還是做出了三個不同的方向。
除了旋轉,它還可以把圖像切割成拼圖,然後重組成新的內容,甚至是直接分解到像素級。
風格也是千變萬化,水彩、油畫、水墨、線稿……應有盡有。
那麼這個模型去哪裡能玩呢?
為了能讓更多網友體驗到這個新玩具,作者準備了一份Colab筆記。
不過免費版Colab的T4不太能帶動,V100偶爾也會顯存超限,要用A100才能穩定運行。
甚至作者自己也說,如果誰發現免費版能帶動了,請馬上告訴他。
言歸正傳,第一行代碼運行後會讓我們填寫Hugging Face的令牌,並給出了獲取地址。
同時還需要到DeepFloyd的項目頁面中同意一個用戶協議,才能繼續後面的步驟。
準備工作完成後,依次運行這三個部分的代碼完成環境部署。
需要注意的是,作者目前還沒有給模型設計圖形介面,效果的選擇和提示詞的修改需要我們手動調整代碼。
作者在筆記中放了三種效果,想用哪個就取消注釋(去掉那一行前面的井號),並把不用的刪除或注釋掉(加上井號)。
這裡列出的三種效果不是全部,如果想用其他效果可以手動替換代碼,具體支持的效果有這些:
修改好後要運行這行代碼,然後提示詞也是如法炮製:
修改好並運行後,就可以進入生成環節了,這裡也可以對推理步數和指導強度進行修改。
需要注意的是,這裡一定要先運行image_64函數生成小圖,然後再用後面的image變成大圖,否則會報錯。
做個總結的話,我們體驗後的一個感覺是,這個模型對提示詞的要求還是比較高的。
作者也意識到了這一點,並給出了一些提示詞技巧:
機翻,僅供參考
那麼,研究團隊是如何實現這些效果的呢?
「糅合」多視角圖像噪聲
首先來看看作者生成視錯覺圖像的關鍵原理。
為了讓圖像在不同視角下,能根據不同的提示詞呈現出不同的畫面效果,作者特意採用了「噪聲平均」的方法,來進一步將兩個視角的圖像糅合在一起。
簡單來說,擴散模型(DDPM)的核心,是通過訓練模型將圖像「打碎重組」,基於「噪點圖」來生成新圖像:
所以,要想讓圖像在變換前後,能根據不同提示詞生成不同圖像,就需要對擴散模型的去噪過程進行改動。
簡單來說,就是對原始圖像和變換後的圖像,同時用擴散模型進行「打碎」處理做成「噪點圖」,並在這個過程中將處理後的結果取平均,計算出一個新的「噪點圖」。
隨後,基於這個新的「噪點圖」生成的圖像,就能在經過變換後呈現出想要的視覺效果。
當然,這個變換的圖像處理過程,必須要是正交變換,也就是我們在展示效果中看到的旋轉、變形、打碎重組或反色等操作。
具體到擴散模型的選擇上,也有要求。
具體來說,這篇論文採用了DeepFloyd IF來實現視錯覺圖像生成。
DeepFloyd IF是一個基於像素的擴散模型,相比其他擴散模型,它能直接在像素空間(而非潛在空間或其他中間表示)上進行操作。
這也讓它能更好地處理圖像的局部信息,尤其在生成低解析度圖像上有所幫助。
這樣一來,就能讓圖像最終呈現出視錯覺效果。
為了評估這種方法的效果,作者們基於GPT-3.5自己編寫了一個50個圖像變換對的數據集。
具體來說,他們讓GPT-3.5隨機生成一種圖像風格(例如油畫風、街頭藝術風),然後再隨機生成兩組提示詞(一個老人、一個雪山),並交給模型生成變換畫。
這是一些隨機變換生成的結果:
隨後,他們也拿CIFAR-10進行了一下不同模型間圖像生成的測試:
隨後用CLIP評估了一下,結果顯示變換後的效果和變換之前的質量一樣好:
作者們也測試了一下,這個AI能經得起多少個圖像塊的「打碎重組」。
事實證明,從8×8到64×64,打碎重組的圖像效果看起來都不錯:
對於這一系列圖像變換,有網友感嘆「印象深刻」,尤其是男人轉變成女人的那個圖像變換:
我看了大概有10遍左右。
還有網友已經想把它做成藝術作品掛在牆上了,或是使用電子墨水屏:
但也有專業的攝影師認為,現階段AI生成的這些圖像仍然不行:
仔細觀察的話,會發現細節經不起推敲。敏銳的眼睛總是能分辨出糟糕的地方,但大眾並不在意這些。
那麼,你覺得AI生成的這一系列視錯覺圖像效果如何?還能用在哪些地方?