給Imagen加上“指哪打哪”的能力,會變得有多強?隻需上傳3-5張指定物體的照片,再用文字描述想要生成的背景、動作或表情,就能讓指定物體“閃現”到你想要的場景中,動作表情也都栩栩如生。不止是動物,其他物體像墨鏡、書包、花瓶,也都能做出幾乎以假亂真的成品:
屬於是發朋友圈也不會被別人看出破綻的那種。(手動狗頭)
這個神奇的文字-圖像生成模型名叫DreamBooth,是Google的最新研究成果,基於Imagen的基礎上進行調整,一經發佈就在Twitter上引發熱議。
有網友調侃:這簡直是最先進的梗圖生成器。
目前相關研究論文已上傳至arXiv。
幾張照片就能“環遊世界”
在介紹原理前,讓我們先來看看DreamBooth的各種能力,包括換景、指定動作表情服飾、更迭風格等。
如果你是個“鏟屎官”,有這個模型的“ 換景能力”,就能足不出戶送自傢狗子走出傢門,凡爾賽宮裡、富士山腳下……通通不在話下。
△光照也比較自然
不僅如此,寵物的 動作和表情也都能隨意指定,屬實是把“一句話P圖”的細節拿捏到位。
除上面的“基操”以外,DreamBooth甚至還能更換各種照片風格,也就是所謂的“加濾鏡”。
例如,各種“世界名畫”畫風、各種視角的狗子,簡直不要太藝術:
至於給它們 加上裝飾?各種cosplay的小道具,也是小菜一碟。
除此之外,無論是更換顏色:
還是更魔幻一點,更換物種,這隻AI也都能做到。
那麼,如此有趣的效果背後的原理是什麼呢?
給輸入加個“特殊標識符”
研究人員做個對比,相較於其他大規模文本-圖像模型如DALL-E2、Imagen等,隻有采用DreamBooth的方法,才能做到對輸入圖像的忠實還原。
如下圖所示,輸入3張右邊表盤上畫著黃色“3”的小鬧表,其中DreamBooth生成的圖像完美保留鐘表的所有細節,但DALL-E2和Imagen幾次生成的鐘都與原來的鐘“有那麼點差異”。
△李逵和“李鬼”
而這也正是DreamBooth最大的特點—— 個性化表達。
用戶可以給定3-5張自己隨意拍攝的某一物體的圖片,就能得到不同背景下的該物體的新穎再現,同時又保留其關鍵特征。
當然,作者也表示,這種方法並不局限於某個模型,如果DALL·E2經過一些調整,同樣能實現這樣的功能。
具體到方法上,DreamBooth采用給物體加上“ 特殊標識符”的方法。
也就是說,原本圖像生成模型收到的指令隻是一類物體,例如[cat]、[dog]等,但現在DreamBooth會在這類物體前加上一個特殊標識符,變成[V][物體類別]。
以下圖為例,將用戶上傳的三張狗子照片和相應的類名(如“狗”)作為輸入信息,得到一個經過微調的文本-圖像擴散模型。
該擴散模型用“a [V] dog”來特指用戶上傳圖片中的狗子,再把其帶入文字描述中,生成特定的圖像,其中[V]就是那個特殊標識符。
至於為什麼不直接用[V]來指代整個[特定物體]?
作者表示,受限於輸入照片的數量,模型無法很好地學習到照片中物體的整體特征,反而可能出現過擬合。
因此這裡采用微調的思路,整體上仍然基於AI已經學到的[物體類別]特征,再用[V]學到的特殊特征來修飾它。
以生成一隻白色的狗為例,這裡模型會通過[V]來學習狗的顏色(白色)、體型等個性化細節,加上模型在[狗]這個大的類別中學到的狗的共性,就能生成更多合理又不失個性的白狗的照片。
為訓練這個微調的文本-圖像擴散模型,研究人員首先根據給定的文本描述生成低分辨率圖像,這時生成的圖像中狗子的形象是隨機的。
然後再應用超分辨率的擴散模型進行替換,把隨機圖像換成用戶上傳的特定狗子。
研究團隊
DreamBooth的研究團隊來自Google,第一作者是Nataniel Ruiz。
Nataniel Ruiz是波士頓大學圖像和視頻計算組的四年級博士生,目前在Google實習。主要研究方向是生成模型、圖像翻譯、對抗性攻擊、面部分析和模擬。