導(dǎo)讀
本文介紹了由香港中文大學(xué)和粵港澳大灣區(qū)數(shù)字經(jīng)濟(jì)院聯(lián)合提出的基于 Diffusion 的 Inversion 方法 Direct Inversion,可以在現(xiàn)有編輯算法上即插即用,無(wú)痛提點(diǎn)。
現(xiàn)有主流編輯算法大多為雙分支結(jié)構(gòu),一個(gè)分支主要負(fù)責(zé)編輯,另一個(gè)分支則負(fù)責(zé)重要信息保留,Direct Inversion 可以完成(1)對(duì)兩分支解耦(2)使兩分支分別發(fā)揮最大效能,因此可以大幅提升現(xiàn)有算法的編輯效果。
同時(shí),為了更加公平公正的進(jìn)行基于 text 的編輯效果對(duì)比,這篇文章提出了 PIE-Bench,一個(gè)包含 700 張圖片和 10 個(gè)編輯類(lèi)別的“圖片-編輯指令-編輯區(qū)域”數(shù)據(jù)集,并提供一系列包含結(jié)構(gòu)保留性、背景保留性、編輯結(jié)果與編輯指令一致性、編輯時(shí)間四個(gè)方面的評(píng)測(cè)指標(biāo)。
數(shù)值結(jié)果和可視化結(jié)果共同展示了Direct Inversion的優(yōu)越性。
主頁(yè):https://idea-research.github.io/DirectInversion/
代碼:https://arxiv.org/abs/2310.01506
論文:https://github.com/cure-lab/DirectInversion
這篇論文是如何發(fā)現(xiàn)過(guò)往方法問(wèn)題,并找到新解決方案的呢?
基于 Diffusion 的編輯在近兩年來(lái)一直是文生圖領(lǐng)域的研究重點(diǎn),也有無(wú)數(shù)文章從各個(gè)角度(比如效果較好的在Stable Diffusion的Attention Map上特征融合)對(duì)其進(jìn)行研究,作者在文章中進(jìn)行了一個(gè)比較全面的相關(guān)方法review,并把這些方法從“重要信息保留”和“編輯信息添加”兩個(gè)方面分別進(jìn)行了四分類(lèi),具體可以參見(jiàn)原文,此處不再贅述。
這里提到了一個(gè)編輯的重點(diǎn),也就是“重要信息保留”和“編輯信息添加”。事實(shí)上,這兩個(gè)要點(diǎn)正是編輯所需要完成的兩個(gè)任務(wù),比如把圖1的貓變成狗,那紅色的背景和貓的位置需要保留,這就是“重要信息保留”;同時(shí)編輯要完成“變成狗”的任務(wù),這就是“編輯信息添加”。
為了完成這兩個(gè)任務(wù),最為直覺(jué),也是使用最多的方式就是:使用兩個(gè)分支來(lái)完成這兩件事,一個(gè)用來(lái)保留信息,一個(gè)用來(lái)添加信息。之前的編輯算法大多可以劃分出這兩個(gè)分支,但可能隱含在模型中或者沒(méi)有顯式割離,也正是在這篇文章中,作者將兩個(gè)概念劃分清楚并給出了過(guò)往方法的分類(lèi)。
到現(xiàn)在為止,已經(jīng)弄清楚了編輯的兩個(gè)分支及其各自作用,但編輯不僅僅只需要這兩個(gè)分支,還需要重要的一步,也就是Inversion。
圖1 基于 Diffusion 的編輯算法總結(jié)
我們都知道,Diffusion是一個(gè)把噪聲映射到有用信息(比如圖片)的過(guò)程,但 Diffusion 到噪聲的過(guò)程是單向的,它并不可逆,不能直接像VAE一樣直接把有用信息再映射回到隱空間,即,可以根據(jù)一個(gè)噪聲得到圖片,但不能根據(jù)一張圖片得到“可以得到這張圖片的噪聲”,但這個(gè)噪聲又在編輯中非常重要,因?yàn)樗请p分支的起點(diǎn)。
所以大部分人就采用了一種近似的方法,即 DDIM Inversion,它能夠?qū)D片映射到噪聲,但從這個(gè)噪聲得到的新圖片就會(huì)稍微偏離原圖片一點(diǎn)(如圖DDIM Inversion上標(biāo)注的distance),其實(shí)如果不給模型文本控制條件,偏離還不太嚴(yán)重,但當(dāng)文本的控制加強(qiáng)時(shí),偏離就會(huì)逐漸不可接受。
因此,一系列的 Inversion 方法被提出用來(lái)修正這一偏差,比如著名的基于優(yōu)化的 Null-Text Inversion,而在無(wú)數(shù)方法進(jìn)行嘗試和探索之后,大家似乎得到了一個(gè) common sense:好的偏離修正必須要包含優(yōu)化過(guò)程。所以這篇文章就更加深入的探索了一下基于優(yōu)化的inversion(或者說(shuō)修正)到底在做什么。
這些方法在優(yōu)化什么??jī)?yōu)化真的必要嗎?
基于優(yōu)化的Inversion方法通常使用一個(gè)模型輸入變量(如Null Text)存儲(chǔ)剛剛提到的偏差,而這一偏差則作為優(yōu)化過(guò)程中的loss,通過(guò)梯度下降來(lái)擬合變量。因此優(yōu)化的過(guò)程本質(zhì)上就是把一個(gè)高精度的偏差存儲(chǔ)在了一個(gè)低精度的變量中(該變量的數(shù)值精度相對(duì) noise latent 更不敏感)。
但這種做法是存在問(wèn)題的:(1)優(yōu)化相當(dāng)于在推導(dǎo)過(guò)程中訓(xùn)練,非常消耗時(shí)間,比如Null-Text Inversion通常需要兩三分鐘編輯一張圖片;(2)優(yōu)化存在誤差,因此不能完全消除“偏差”,如圖2 Null-Text Inversion/StyleDiffusion中畫(huà)出的,保留分支與原始inversion分支之間的偏差只是被縮小并沒(méi)有被消除,這就使得重要信息的保護(hù)沒(méi)有發(fā)揮到最大限度;(3)優(yōu)化得到的變量其實(shí)在Diffusion模型訓(xùn)練過(guò)程中并未出現(xiàn)過(guò),因此相當(dāng)于進(jìn)行了強(qiáng)制賦值,會(huì)影響模型輸入和模型參數(shù)之間數(shù)據(jù)分布的協(xié)調(diào)。
回到上文提到的雙分支編輯,之前的方法訓(xùn)練好優(yōu)化的變量之后,就會(huì)將其同時(shí)送入到編輯分支和保留分支(其實(shí)不僅僅是基于優(yōu)化的方法,非基于優(yōu)化的方法也沒(méi)有將兩分支解耦),根據(jù)上面的分析,其實(shí)可以發(fā)現(xiàn)一個(gè)很簡(jiǎn)單的改進(jìn)策略:將可編輯分支和保留分支解耦,使兩個(gè)分支充分發(fā)揮各自效能。
圖2 各類(lèi) Inversion 方法對(duì)比
Direct Inversion
這篇文章通過(guò)解耦編輯分支和保留分支,僅用三行代碼就能夠大幅提升現(xiàn)有編輯算法效果(如圖3中偽代碼),具體做法非常簡(jiǎn)單,即:將保留分支加回到原始DDIM Inversion路徑,而保持編輯分支不被影響。
圖3 偽代碼
PIE-Bench
盡管基于 Diffusion 的編輯在近幾年引起了廣泛關(guān)注,但各類(lèi)編輯方法的評(píng)估主要依賴于主觀且不確定性的可視化。因此這篇文章為了系統(tǒng)驗(yàn)證所提出的Direct Inversion,并對(duì)比過(guò)往Inversion方法,以及彌補(bǔ)編輯領(lǐng)域的性能標(biāo)準(zhǔn)缺失,構(gòu)建了一個(gè)基準(zhǔn)數(shù)據(jù)集,名為PIE-Bench(Prompt-based Image Editing Benchmark)。
PIE-Bench包括700張圖像,涵蓋了10種不同的編輯類(lèi)型。這些圖像均勻分布在自然和人工場(chǎng)景(例如繪畫(huà)作品)中,分為四個(gè)類(lèi)別:動(dòng)物、人物、室內(nèi)和室外。PIE-Bench中的每張圖像都包括五個(gè)注釋?zhuān)涸磮D像提示語(yǔ)句、目標(biāo)圖像提示語(yǔ)句、編輯指令、主要編輯部分和編輯掩碼。值得注意的是,編輯掩碼注釋?zhuān)词褂靡粋€(gè)mask指示預(yù)期的編輯區(qū)域)在準(zhǔn)確的指標(biāo)計(jì)算中至關(guān)重要,因?yàn)槠谕庉媰H發(fā)生在指定的區(qū)域內(nèi)。
圖4 PIE-Bench
實(shí)驗(yàn)效果
數(shù)值結(jié)果
在各個(gè)編輯算法上對(duì)比不同Inversion和Direct Inversion 算法效果
Direct Inversion 在多種編輯方法上對(duì)比其他 inversion 方法的效果。編輯方法:Prompt-to-Prompt (P2P), MasaCtrl, Pix2Pix-Zero (P2P-Zero), Plug-and-Play (PnP), Inversion方法:DDIM Inversion (DDIM), Null-Text Inversion (NT), Negative-Prompt Inversion (NP), StyleDiffusion (SD)
各類(lèi) Inversion 算法運(yùn)行時(shí)間對(duì)比
運(yùn)行時(shí)間對(duì)比
可視化對(duì)比
圖5 Direct Inversion 與四種基于 Diffusion 的編輯方法結(jié)合后在各種編輯類(lèi)別(從上到下依次為:風(fēng)格轉(zhuǎn)移、物體替換和顏色變更)上的性能提升,每組結(jié)果第一列為未加 Direct Inversion,第二列為添加 Direct Inversion
圖6 不同 inversion 和編輯技術(shù)的可視化結(jié)果
更多可視化和消融實(shí)驗(yàn)結(jié)果可以參考原論文。
-
算法
+關(guān)注
關(guān)注
23文章
4620瀏覽量
93045 -
代碼
+關(guān)注
關(guān)注
30文章
4801瀏覽量
68733 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1208瀏覽量
24737
原文標(biāo)題:簡(jiǎn)單有效!Direct Inversion:三行代碼提升基于擴(kuò)散的圖像編輯效果
文章出處:【微信號(hào):CVer,微信公眾號(hào):CVer】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論