簡單、快速、低成本、強(qiáng)大!高分辨率圖像生成擴(kuò)散外推方法CutDiffusion發(fā)布! 精華

文章:https://arxiv.org/pdf/2404.15141
代碼:https://github.com/lmbxmu/CutDiffusion
將大預(yù)訓(xùn)練的低分辨率擴(kuò)散模型轉(zhuǎn)換以滿足更高分辨率需求,即擴(kuò)散外推,顯著提高了擴(kuò)散適應(yīng)性。本文提出了無調(diào)優(yōu)的CutDiffusion,旨在簡化和加速擴(kuò)散外推過程,使其更具成本效益并提高性能。CutDiffusion遵循現(xiàn)有的基于patch的外推方法,但將標(biāo)準(zhǔn)的patch擴(kuò)散過程分為一個(gè)初步階段,專注于全面的結(jié)構(gòu)去噪,以及一個(gè)后續(xù)階段,專注于特定細(xì)節(jié)的改進(jìn)。
全面的實(shí)驗(yàn)突顯了CutDiffusion的眾多優(yōu)點(diǎn):
- 簡單的方法構(gòu)建,使得在不需要第三方參與的情況下實(shí)現(xiàn)了簡潔的高分辨率擴(kuò)散過程;
- 通過單步高分辨率擴(kuò)散過程實(shí)現(xiàn)了快速推理速度,并且需要更少的推理patch;
- 通過patch推理和在全面結(jié)構(gòu)去噪過程中需要更少的patch,從而降低了GPU成本;
- 強(qiáng)大的生成性能,源自于對特定細(xì)節(jié)改進(jìn)的重視。


介紹
作為擴(kuò)散架構(gòu)模型的一員,也被稱為潛在擴(kuò)散模型,Stable Diffusion主要用于根據(jù)文本描述生成詳細(xì)的圖像,被認(rèn)為是生成式人工智能持續(xù)蓬勃發(fā)展的關(guān)鍵組成部分。與其逼真的圖像生成相結(jié)合,Stable Diffusion是開源的,并支持在大多數(shù)配備了適度的4GB VRAM GPU的消費(fèi)級硬件上運(yùn)行。因此,它標(biāo)志著與僅通過云服務(wù)訪問的許多專有文本到圖像模型(如DALL-E系列和Midjourney)的不同之處。
其中一個(gè)主要的現(xiàn)實(shí)世界應(yīng)用是生成高分辨率圖像。最初版本的Stable Diffusion是在512×512分辨率的數(shù)據(jù)集上進(jìn)行訓(xùn)練的,導(dǎo)致在用戶指定的分辨率偏離其“期望”時(shí)出現(xiàn)質(zhì)量問題。雖然隨后的2.0版本增強(qiáng)了生成768×768分辨率圖像的能力,而Stable DiffusionXL(SDXL)則發(fā)布了原生1024×1024分辨率,但由于其重復(fù)的、順序性質(zhì),Stable Diffusion模型的重新訓(xùn)練速度較慢,并且由于潛在像素空間中的操作,對于高分辨率圖像而言,內(nèi)存消耗巨大。
據(jù)報(bào)道,初始版本的訓(xùn)練使用了256個(gè)Nvidia A100 GPU在亞馬遜網(wǎng)絡(luò)服務(wù)上共計(jì)150,000 GPU小時(shí),估計(jì)成本為60萬美元。在更高分辨率下,費(fèi)用會(huì)大幅增加,這幾乎是不可接受的,即使對于大多數(shù)小型和中型企業(yè)而言,逐一為特定分辨率大小訓(xùn)練大型擴(kuò)散模型也是如此,尤其是考慮到超高分辨率,如4096×4096或8192×8192。
為了解決訓(xùn)練初始模型的障礙,擴(kuò)散外推,依賴于預(yù)訓(xùn)練的低分辨率模型,并實(shí)現(xiàn)更高分辨率圖像擴(kuò)散,引起了極大的興趣。最近的研究人員選擇進(jìn)行微調(diào)參與,甚至是無調(diào)優(yōu)實(shí)現(xiàn),以實(shí)現(xiàn)更具用戶特定的生成輸出。
在下表1中,考慮了無調(diào)優(yōu)、快速推理速度、廉價(jià)GPU成本、相等參數(shù)、性能和方法簡單性等因素,評估了這些方法的主要優(yōu)缺點(diǎn)。根據(jù)微調(diào)參與的思路,大多數(shù)方法努力進(jìn)行參數(shù)高效優(yōu)化,以實(shí)現(xiàn)對“意外”分辨率生成的快速適應(yīng)。例如,DiffFit對特定層中的偏差項(xiàng)和新增的縮放因子進(jìn)行微調(diào),Self-Cascade升級了時(shí)間感知特征上采樣模塊,以注入來自新獲得的更高分辨率數(shù)據(jù)的側(cè)面信息。

這些調(diào)優(yōu)方法在準(zhǔn)確描繪局部結(jié)構(gòu)細(xì)節(jié)方面表現(xiàn)出色。它們一步到位地?cái)U(kuò)展到目標(biāo)分辨率的能力有助于實(shí)現(xiàn)快速推理速度。然而,直接在更高分辨率進(jìn)行推理會(huì)導(dǎo)致可持續(xù)的頂峰GPU內(nèi)存開銷增加,因?yàn)橄袼馗啵⑶覅?shù)調(diào)優(yōu)增加了復(fù)雜性,有時(shí)還會(huì)增加額外的參數(shù)。
在無調(diào)優(yōu)實(shí)現(xiàn)中,所有方法都保持與原始模型相同的參數(shù)數(shù)量。一種直接的方法是直接進(jìn)行更高分辨率的推理,這提供了快速的速度,但需要高的GPU消耗,類似于微調(diào)方法。[6]中使用SDXL(記為SDXL-DI)的結(jié)果顯示了較差的對象重復(fù)、扭曲的對象和不合理的結(jié)構(gòu)等問題。Attn-SF通過將注意熵與token數(shù)量平衡來簡化其方法,然而仍然承受著對象重復(fù)質(zhì)量差的問題。ScaleCrafter確定了卷積核的有限感受野,并強(qiáng)調(diào)了擴(kuò)張步幅、注入步驟等復(fù)雜調(diào)整。而更大的核影響了推理速度。另一種無調(diào)優(yōu)實(shí)現(xiàn)以patch方式進(jìn)行擴(kuò)散外推,從而降低了推理GPU的成本。
例如,MultiDiffusion將整個(gè)高分辨率噪聲分割成多個(gè)重疊的patch,并通過多個(gè)擴(kuò)散生成過程將它們綁定在一起。盡管其簡單性有利,但缺乏全局信息導(dǎo)致了重復(fù)和扭曲的生成問題。最近的DemoFusion構(gòu)建了殘差連接和擴(kuò)張采樣,以整合全局語義信息。盡管其性能更好,但這些操作使得DemoFusion變得復(fù)雜。此外,DemoFusion采用了漸進(jìn)式放大的方式,例如,4096×4096圖像的生成是在1024×1024、2048×2048和3072×3072的中間擴(kuò)散基礎(chǔ)上構(gòu)建的,這導(dǎo)致了更多的擴(kuò)散步驟和更慢的推理延遲。
本文致力于通過patch式生成方法探索無調(diào)優(yōu)擴(kuò)散外推的潛力。主要目標(biāo)是簡化和加速擴(kuò)散外推過程,最終使其更具成本效益并增強(qiáng)其整體性能。考慮到這一目標(biāo),在本文中提出了CutDiffusion,這是一個(gè)全能的方法,它將傳統(tǒng)的patch擴(kuò)散過程分為兩個(gè)獨(dú)立的階段,每個(gè)階段都采用不同的子patch劃分方法。
在初步階段,從獨(dú)立的高斯分布中任意采樣非重疊的patch,并以空間像素交互的方式恢復(fù)它們,以確保每個(gè)patch都集中于去噪整個(gè)結(jié)構(gòu)。本質(zhì)上,每個(gè)單獨(dú)的patch都努力遵守相同的文本指令,并產(chǎn)生類似的內(nèi)容。在隨后的階段中,重新組裝第一階段子patch的相同空間像素,創(chuàng)建一個(gè)更精細(xì)的高分辨率高斯噪聲。然后,遵循MultiDiffusion的方法來開發(fā)重疊的patch,其中每個(gè)單獨(dú)的patch都設(shè)計(jì)為專注于改進(jìn)和增強(qiáng)整個(gè)圖像的部分細(xì)節(jié)。正如表1中所列,除了無調(diào)優(yōu)完成和不引入?yún)?shù)之外,所提出的CutDiffusion在以下方面還提供了實(shí)質(zhì)性的優(yōu)勢:
- 簡單的方法構(gòu)建。CutDiffusion建立在標(biāo)準(zhǔn)的擴(kuò)散過程之上,只改變了子patch采樣,從而消除了復(fù)雜的第三方參與,創(chuàng)建了更簡潔的高分辨率過程。
- 快速推理速度。CutDiffusion執(zhí)行單步放大到目標(biāo)分辨率,這是漸進(jìn)式放大的有效替代方案,并且在去噪全面結(jié)構(gòu)過程中需要更少的推理patch。
- 廉價(jià)的GPU成本。CutDiffusion采用patch式方法進(jìn)行外推,并減少了用于結(jié)構(gòu)去噪的非重疊patch的數(shù)量,有效地減輕了對頂峰GPU內(nèi)存的需求。
- 強(qiáng)大的生成性能。盡管其采用了單步放大的方法和沒有第三方參與,但CutDiffusion優(yōu)雅地執(zhí)行了部分細(xì)節(jié)的改進(jìn),因此實(shí)現(xiàn)了更出色的生成性能。
相關(guān)工作
擴(kuò)散模型
擴(kuò)散模型,通常被稱為概率擴(kuò)散模型,屬于潛在變量生成模型。一個(gè)經(jīng)典的擴(kuò)散模型由正向過程、逆向過程和采樣方法組成。正向過程從給定的起始點(diǎn)開始,并持續(xù)向系統(tǒng)中引入噪聲。逆向過程通常涉及教授神經(jīng)網(wǎng)絡(luò)從模糊圖像中去除高斯噪聲。該模型旨在對抗圖像中的噪聲添加過程,并通過對隨機(jī)噪聲圖像進(jìn)行細(xì)化和去噪來進(jìn)行圖像生成。采樣機(jī)制通過導(dǎo)航參數(shù)并減小樣本的方差,從而產(chǎn)生更準(zhǔn)確的期望分布近似。DDIM允許利用在 DDPM 損失 上訓(xùn)練的任何模型進(jìn)行采樣,并略過一些步驟,以換取可修改的質(zhì)量量。LDM首先壓縮圖像,然后應(yīng)用擴(kuò)散模型來表示編碼圖像的分布,最后將其解碼為圖像。其卓越的性能使其廣泛應(yīng)用于生成文本驅(qū)動(dòng)的圖像。
擴(kuò)散外推
微調(diào)參與。對于預(yù)訓(xùn)練的擴(kuò)散模型進(jìn)行微調(diào)以適應(yīng)生成更高分辨率圖像是一個(gè)合理的想法。由于這些模型的訓(xùn)練成本相當(dāng)高,尋找參數(shù)高效優(yōu)化方法已成為微調(diào)領(lǐng)域的研究人員和從業(yè)者的重點(diǎn)關(guān)注。在他們的研究中,xie等人采用了一種創(chuàng)新的方法,即凍結(jié)潛在擴(kuò)散模型中的大部分參數(shù)。他們專注于訓(xùn)練特定參數(shù),如偏差項(xiàng)、歸一化和類條件模塊。此外,他們還將可學(xué)習(xí)的縮放因子納入模型中,以進(jìn)一步增強(qiáng)其性能和適應(yīng)性。guo等人開發(fā)了一個(gè)創(chuàng)新的級聯(lián)框架,該框架在其初始尺度上包含低分辨率模型,并在較高尺度上增加了額外的新模塊。
無調(diào)優(yōu)實(shí)現(xiàn)。另一條研究線路是尋找無調(diào)優(yōu)的擴(kuò)散外推方法。在 Attn-SF中,較低分辨率的圖像顯示了不完整的對象,而較高分辨率的圖像則存在重復(fù)混亂。因此,添加了一個(gè)縮放因子來解決注意力熵的變化并修復(fù)缺陷。He等人發(fā)現(xiàn),擴(kuò)散模型中的對象重復(fù)和結(jié)構(gòu)問題的根本原因是有限的卷積核感知。他們建議動(dòng)態(tài)感知場調(diào)整,并提出了分散卷積和噪聲抑制引導(dǎo)等方法,用于超高分辨率的生成。MultiDiffusion展示了將幾個(gè)重疊的去噪路徑組合起來創(chuàng)建全景圖像的能力。DemoFusion的研究通過使用中間的噪聲反轉(zhuǎn)表示作為跳過殘差,創(chuàng)新地增強(qiáng)了全局信息的注入。此外,在去噪路徑中使用擴(kuò)張采樣也進(jìn)一步促進(jìn)了改進(jìn)。
方法
背景



這些方法中大多數(shù)需要復(fù)雜的第三方參與,如微調(diào),低分辨率圖像生成,漸進(jìn)式放大等等。通過采用基于patch的策略來發(fā)展我們的方法,這個(gè)策略專門設(shè)計(jì)用于簡化和有效管理涉及到這些復(fù)雜過程的操作,確保更高效和用戶友好的方法。
動(dòng)機(jī)和框架
動(dòng)機(jī)。在下圖1中,LDM通過迭代步驟逐漸去噪圖1(b)中的隨機(jī)噪聲,直到達(dá)到預(yù)定的計(jì)數(shù)(t = 50 → 1)。生成的圖1(a)捕捉了提示P的概念。通過檢查從圖1(b)到圖1(k),最終到圖1(a)的進(jìn)展,可以推理擴(kuò)散過程涉及到一個(gè)初步階段去噪整個(gè)結(jié)構(gòu),然后是一個(gè)后續(xù)階段去噪部分細(xì)節(jié)。
在早期的時(shí)間步驟中,各種輪廓逐漸變得更加可識別。在步驟 t = 40 時(shí),類似狗的輪廓變得清晰。當(dāng)我們移動(dòng)到步驟 t = 35 時(shí),樹木的輪廓開始形成。進(jìn)一步到步驟 t = 30 時(shí),椅子的輪廓開始顯現(xiàn),使其更加清晰,最后到達(dá)步驟 t = 25 時(shí),海灘、天空和海洋的輪廓變得更清晰,從而使場景的整體結(jié)構(gòu)更好地展現(xiàn)出來。在后續(xù)的時(shí)間步驟中,從 t = 20 到 t = 5,對生成的輪廓輪廓進(jìn)行局部細(xì)節(jié)的改進(jìn),以增強(qiáng)對象的逼真性。
例如,沙子似乎在椅子腿周圍坍塌,天空和云彩無縫融合在一起,狗的毛發(fā)變成了更自然、柔軟的狀態(tài),以及許多其他改進(jìn)。因此,我們認(rèn)識到了一種新的視角,即擴(kuò)散外推可以通過遵循漸進(jìn)圖像生成的規(guī)律來發(fā)展。這包括最初優(yōu)先考慮全面的結(jié)構(gòu)去噪,然后是對特定細(xì)節(jié)的精煉,以生成更連貫的高分辨率擴(kuò)散圖像。


全面的結(jié)構(gòu)去噪


像素交互。 雖然方程(2)從相同的文本描述P生成隱變量,但它僅確保與相同主題相關(guān)的圖像,并不包含相似的內(nèi)容。因此,在不同patch之間引入空間像素交互。如圖2頂部所示,在去噪之前,隨機(jī)交換具有相同空間坐標(biāo)(x,y)的不同patch中的像素。

randperm()函數(shù)返回其輸入序列的隨機(jī)排列,使得像素可以為其他圖像的去噪做出貢獻(xiàn),并促進(jìn)跨patch的內(nèi)容生成相似性。
具體細(xì)節(jié)的優(yōu)化

像素重新定位。



實(shí)驗(yàn)
實(shí)驗(yàn)設(shè)置
使用預(yù)訓(xùn)練的SDXL進(jìn)行實(shí)驗(yàn),其中T = 50默認(rèn),以展示CutDiffusion的簡單性、效率、廉價(jià)和性能。在單個(gè)3090 GPU上評估推理時(shí)間和GPU內(nèi)存消耗。鑒于CutDiffusion的無需調(diào)整特性,我們將其與SDXL-DI、Attn-SF、ScaleCrafter、MultiDiffusion和DemoFusion進(jìn)行比較。
采用三種指標(biāo)進(jìn)行定量評估:FID(Frechet Inception Distance)、IS(Inception Score)和CLIP Score。FIDr和ISr將高分辨率生成的圖像與真實(shí)圖像進(jìn)行比較,但需要調(diào)整大小為2992。根據(jù)[3, 6],我們裁剪并調(diào)整大小為1×分辨率的10個(gè)局部patch來計(jì)算FIDc和ISc。CLIP分?jǐn)?shù)評估圖像嵌入和文本提示之間的余弦相似度。我們使用10,000張Laion-5B [20]圖像作為真實(shí)圖像,以及1,000個(gè)文本提示供CutDiffusion生成高分辨率圖像。
方法比較
在本小節(jié)中,展示了我們的CutDiffusion方法相對于方法簡單性、推理時(shí)間、GPU成本和生成性能的全能能力。
方法簡單性。
值得注意的是,我們的CutDiffusion在T′ = T時(shí)使MultiDiffusion [1]成為一個(gè)特例,在這種情況下,沒有進(jìn)行全面的結(jié)構(gòu)去噪。只是修改了子patch方法為隨機(jī)高斯抽樣,并加入了額外的像素交互和重新定位操作。因此,CutDiffusion保留了MultiDiffusion的簡單性,同時(shí)減少了初始階段所需的patch數(shù)量。與更復(fù)雜的第三方參與方,如微調(diào)、低分辨率圖像生成和漸進(jìn)式放大相比,CutDiffusion方法為生成高分辨率圖像提供了更簡潔和直接的流程。
推理時(shí)間。
表2中的結(jié)果與表1中的結(jié)論一致,即直接的高分辨率推理方法通常提供更快的速度。這種趨勢的一個(gè)例外是ScaleCrafter,其使用更大的卷積核影響推理速度,特別是在超高分辨率設(shè)置中。盡管采用了基于patch的推理方法,提出的CutDiffusion方法實(shí)現(xiàn)了快速的推理速度。這些速度不僅與直接推理方法相媲美,而且比基于patch的對手[1, 6]的速度要快得多。例如,CutDiffusion比DemoFusion [6]快三倍。CutDiffusion的速度優(yōu)勢源于在全面去噪過程中需要更少的推理patch,而不像MultiDiffusion需要許多子patch。DemoFusion的推理時(shí)間延長是由于其漸進(jìn)式放大策略需要更多的擴(kuò)散步驟。
GPU成本
表3顯示了圖像外推方法的最小GPU內(nèi)存需求。直接方法具有更快的推理速度,但GPU需求更高,特別是在增加分辨率時(shí)[8,11,13]。像CutDiffusion這樣的基于patch的方法始終具有更低的峰值內(nèi)存使用量,使其更易于使用[1,6]。此外,CutDiffusion在全面結(jié)構(gòu)去噪的patch數(shù)量減少了GPU運(yùn)行時(shí)間的長短[1,6]。
生成性能
我們進(jìn)一步提供了定性比較的可視化結(jié)果以及定量比較的指標(biāo)性能,展示了我們提出的CutDiffusion方法的強(qiáng)大生成能力。
定性比較。在不同的寬高比(1:1,1:2和2:1)和外推比率(2×、4×和9×)下進(jìn)行了定性比較。在圖3中,SDXL-DI顯示出嚴(yán)重的重復(fù)和結(jié)構(gòu)失真。盡管調(diào)整了注意力縮放因子,Attn-SF仍然面臨相同的問題。雖然ScaleCrafter生成了不重復(fù)的圖像,但人手和熊貓腳等局部細(xì)節(jié)缺乏準(zhǔn)確性。MultiDiffusion由于全局結(jié)構(gòu)信息不足而導(dǎo)致重復(fù)和不一致的內(nèi)容。DemoFusion偶爾會(huì)產(chǎn)生重復(fù)的小對象,例如樹干下面的小熊貓。由于協(xié)同的兩階段生成過程,CutDiffusion產(chǎn)生了高質(zhì)量、更高分辨率的圖像。
定量比較。下表4表明,CutDiffusion優(yōu)于其他圖像外推方法,在1024 ×2048和2048 ×1024的分辨率下取得了最佳的FIDr分?jǐn)?shù)。盡管CutDiffusion的FIDc和CLIP分?jǐn)?shù)略低于MultiDiffusion,但值得注意的是,F(xiàn)IDc指示了細(xì)節(jié)生成能力。MultiDiffusion在整個(gè)過程中生成局部細(xì)節(jié),而CutDiffusion僅在第二階段進(jìn)行,結(jié)果略遜一籌。

然而,在下圖3中,MultiDiffusion展示了顯著的對象重復(fù),盡管其CLIP和FIDc更高。鑒于定量和定性結(jié)果,CutDiffusion超越了MultiDiffusion。在分辨率為2048 ×2048和3072 ×3072時(shí),CutDiffusion似乎達(dá)到了次佳效果。從圖4中可以看出,DemoFusion的跳躍連接生成了一個(gè)3072 ×3072的圖像,其內(nèi)容與預(yù)訓(xùn)練的1024 ×1024圖像相同。這意味著DemoFusion的性能優(yōu)勢是由于低分辨率而不是其固有能力。為了確認(rèn)這一點(diǎn),將圖像插值從1024 ×1024插值到3096 ×3096分辨率,得到了最佳的FIDr(58.50)和ISr(17.38)。

因此得出結(jié)論,模仿低分辨率分布會(huì)導(dǎo)致來自預(yù)訓(xùn)練的SDXL模型的更高FID分?jǐn)?shù)。然而,如圖3和下圖4所示,這種方法會(huì)導(dǎo)致重復(fù)問題,甚至在插值時(shí)缺乏高分辨率的細(xì)節(jié)。排除與DemoFusion的不公平比較,我們的CutDiffusion達(dá)到了最佳效果。

消融研究


像素交互的消融。正如前面所述,像素交互確保圖像不僅與相同主題相關(guān),而且具有相似的內(nèi)容。圖6(a)證實(shí)了這一說法。像素交互確保子patch描繪出相似的貓,最終產(chǎn)生了高質(zhì)量、高分辨率的圖像。相反,缺乏像素交互導(dǎo)致子patch呈現(xiàn)出不同的貓,從而損害了高分辨率圖像的生成。


限制和未來工作
CutDiffusion方法存在一些限制:
- 與其他方法類似,CutDiffusion生成的高分辨率圖像的質(zhì)量在某種程度上取決于預(yù)訓(xùn)練的擴(kuò)散模型。
- CutDiffusion的第二階段仍然需要與現(xiàn)有方法一樣多的patch,阻礙了進(jìn)一步的加速。未來的工作可能會(huì)研究以非重疊patch的方式進(jìn)行更高分辨率的生成,從而進(jìn)一步提高推理速度。
結(jié)論
本文提出了一個(gè)強(qiáng)大的擴(kuò)散外推方法CutDiffusion,它簡化了流程,加速了過程,同時(shí)增強(qiáng)了性能和可負(fù)擔(dān)性。CutDiffusion將標(biāo)準(zhǔn)的patch擴(kuò)散過程分為初始的全面結(jié)構(gòu)去噪和后續(xù)的特定細(xì)節(jié)細(xì)化。它只修改了子patch采樣方法,在各自的階段集成了像素交互和重定位。與在特定領(lǐng)域表現(xiàn)突出的現(xiàn)有方法不同,CutDiffusion在簡單方法構(gòu)建、快速推理速度、低廉的GPU成本和強(qiáng)大的生成性能方面都有著突出的表現(xiàn)。



本文轉(zhuǎn)自 AI生成未來 ,作者:Mingbao Lin等

















