Pine 發自 凹非寺
量子位 | 公眾號 QbitAI
當你拍照片時,“模特不好好配合”怎麼辦?
沒事!現在只用一句話就能後期P圖了,還是能改變動作、表情的那種!
比如說你能輕鬆讓鳥張開翅膀(輸入“張開翅膀的鳥”即可):
又或者說,想要讓一隻站立的狗蹲下:
看起來還真不賴!而這個新的“P圖”方法呢,名叫Imagic,是基於爆火的擴散模型(Diffusion Model)來實現的。
是的,又是擴散模型,它的能耐想必也不用多介紹了吧(那看那鋪天蓋地和它相關的論文就能佐證)。
那在擴散模型加持下的Imagic到底有何厲害之處,話不多說,一起來看看吧!
多達6種功能據不完全統計,Imagic的功能就有6種。
改變姿勢、變換構圖、切換濾鏡、多個物件編輯、新增物件、更改顏色……
先來看看這個P圖神器改變姿勢的效果,比如說輸入一條站立的狗,透過變換提示文字,得到的效果是醬紫的~
或者說輸入一個隨意站立的人,輸入口令,他就“乖乖聽話,任你擺佈”(手動狗頭)了,甚至還能憑空出現一個水杯。
還沒看夠?那再來康康Imagic其他功能:改變顏色,或者增加物件,也可以多種功能同時使用。
總的來說,Imagic的厲害之處太多,這裡就不一一詳細展開了,效果可以看下圖。
除了這麼多功能之外,Imagic還有另外一個比較人性化的點,就是當你告訴它要如何“P圖”後,它會隨機生成幾個不同的選項供你選擇。
其實這種在真實影象上編輯的模型Imagic不是第一個,在此之前就已經有很多個類似的模型。
這時就會有網友問了,“Imagic有什麼厲害的點呢?”
話不多說,直接上效果對比。
這裡選取了比較常見的基於真實影象編輯的兩個模型:SDEdit、Text2LIVE與Imagic作對比。
結果很顯然,Imagic完成“P圖指令”的效果很好,在細節上也絲毫不遜色其他模型。
(確實妙啊)
那Imagic是如何“擊敗”SDEdit、Text2LIVE,實現這樣的效果呢?
是怎樣實現的千言萬語匯成四個字:擴散模型,在論文的標題上它都赫然在列。
具體到Imagic中,擴散模型的作用是如何發揮出來的,來看看詳細的“P圖”過程。
整體來說分為三大步。
第一步是最佳化文字嵌入層。
具體來說,先給定輸入的影象和目標文字,然後對目標文字進行編碼,得到初始的嵌入層。
然後不斷調整初始嵌入層,讓其能夠透過預先訓練的擴散模型很好地重建輸入影象。
這樣一來,最終便會得到最佳化後的嵌入層(能夠很好地重建輸入影象)。
第二步是對擴散模型進行微調,這時就要用到上一步已經最佳化之後的嵌入層,讓嵌入層經過模型後重建輸入影象。
在重建的過程,需要不斷更改模型中損失函式的引數,以讓模型適應最佳化後的輸入層,直到能夠很好地重建輸入影象時為止,這樣一來便得到了微調之後的模型。
第三步就要開始正式P圖了。
值得一提的是,這一步除了輸入初始的目標嵌入層(tgt)外,還會插入最佳化好的嵌入層(opt),它們的關係如下圖。
透過變換引數,實際的效果如下圖。
如果你想更加詳細地瞭解Imagic,可以戳文末連結閱讀論文原文。
研究團隊Imagic的六位作者均來自Google Research,論文有兩位第一作者:Bahjat Kawar和Shiran Zada,均來自以色列。
值得一提的是,Bahjat Kawar還是一位以色列理工學院在讀博士,他是在Google Research實習期間完成了這項研究。
而Shiran Zada今年5月剛加入Google Research,目前是計算機視覺研究員。
他曾在微軟擔任軟體工程師以及技術主管的職務,主要負責網路安全相關的專案開發。
參考連結:[1]https://arxiv.org/abs/2210.09276[2]https://twitter.com/Buntworthy/status/1582307817884889088[3]https://github.com/justinpinkney/stable-diffusion/blob/main/notebooks/imagic.ipynb
— 完 —
量子位 QbitAI · 頭條號簽約