即插即用,效率遠(yuǎn)超ControlNet!賈佳亞團(tuán)隊(duì)重磅開源ControlNeXt:超強(qiáng)圖像視頻生成方法
文章鏈接:https://arxiv.org/pdf/2408.06070
git鏈接:https://github.com/dvlab-research/ControlNeXt
項(xiàng)目鏈接:https://pbihao.github.io/projects/controlnext/index.html?
亮點(diǎn)直擊
- 提出了ControlNeXt,這是一種強(qiáng)大且高效的圖像和視頻生成方法,大幅減少了延遲開銷和參數(shù)量。
- 引入了交叉歸一化(Cross Normalization)用于微調(diào)預(yù)訓(xùn)練的大型模型,從而促進(jìn)高效且穩(wěn)定的訓(xùn)練收斂。
- ControlNeXt可以作為一個(gè)輕量級(jí)的即插即用模塊,可以與其他LoRA權(quán)重集成,以無需額外訓(xùn)練的方式改變生成樣式。
擴(kuò)散模型在圖像和視頻生成方面展示了顯著且穩(wěn)定的能力。為了實(shí)現(xiàn)對(duì)生成結(jié)果的更大控制,研究人員引入了額外的架構(gòu),如ControlNet、Adapters和ReferenceNet,以整合條件控制。然而,當(dāng)前可控生成方法通常需要大量額外的計(jì)算資源,尤其是在視頻生成方面,并且在訓(xùn)練中面臨挑戰(zhàn)或控制效果較弱。本文提出了ControlNeXt:一種強(qiáng)大且高效的可控圖像和視頻生成方法。
首先設(shè)計(jì)了一個(gè)更簡(jiǎn)單且高效的架構(gòu),取代了沉重的額外分支,只需在基礎(chǔ)模型上增加極少的成本。這種簡(jiǎn)潔的結(jié)構(gòu)還使本文的方法能夠無縫集成其他LoRA權(quán)重,實(shí)現(xiàn)樣式更改而無需額外訓(xùn)練。在訓(xùn)練方面,減少了多達(dá)90%的可學(xué)習(xí)參數(shù),相較于其他方法。此外,還提出了稱為交叉歸一化(Cross Normalization, CN)的方法,以替代“零卷積”實(shí)現(xiàn)快速且穩(wěn)定的訓(xùn)練收斂。多項(xiàng)實(shí)驗(yàn),使用不同的基礎(chǔ)模型在圖像和視頻領(lǐng)域,證明了本文方法的穩(wěn)健性。
方法
深入分析架構(gòu)設(shè)計(jì)并對(duì)其進(jìn)行剪枝,以構(gòu)建一個(gè)簡(jiǎn)潔明了的結(jié)構(gòu)。隨后介紹交叉歸一化(Cross Normalization),該方法用于通過引入額外的參數(shù)對(duì)大型預(yù)訓(xùn)練模型進(jìn)行微調(diào)。
架構(gòu)剪枝
動(dòng)機(jī)。ControlNet的關(guān)鍵創(chuàng)新在于增加了一個(gè)控制分支,該分支提取條件控制并將其整合到主網(wǎng)絡(luò)中。這個(gè)分支共享了可訓(xùn)練參數(shù),這些參數(shù)初始化為原始分支一半的副本,并行運(yùn)行,使用零卷積作為橋梁來整合條件控制。具體來說:
然而,這樣的設(shè)計(jì)雖然引入了控制能力,但也帶來了顯著的成本。額外的分支會(huì)使延遲最多增加50%,這一點(diǎn)在視頻生成中尤為顯著,因?yàn)槊恳粠夹枰幚?。此外,這些可訓(xùn)練參數(shù)量龐大且固定,幾乎等同于所有預(yù)訓(xùn)練參數(shù)的一半。除了冗余之外,僅優(yōu)化ControlNet也限制了整個(gè)模型的上限,因?yàn)樗粫?huì)影響預(yù)訓(xùn)練的生成模型。為提高效率和簡(jiǎn)潔性,首先通過移除額外的分支簡(jiǎn)化了ControlNet的原始設(shè)計(jì)。接著,對(duì)預(yù)訓(xùn)練模型中選定的子集進(jìn)行訓(xùn)練,從而得到一個(gè)更有效且高效的架構(gòu)。
架構(gòu)剪枝。 需要注意的是,預(yù)訓(xùn)練模型通常是在大規(guī)模數(shù)據(jù)集(例如LAION-5B)上進(jìn)行訓(xùn)練的,而微調(diào)則始終在規(guī)模小得多的數(shù)據(jù)集上進(jìn)行,往往小上千倍?;诖耍J(rèn)為預(yù)訓(xùn)練的大型生成模型已經(jīng)足夠強(qiáng)大,且無需引入如此大量的額外參數(shù)來實(shí)現(xiàn)控制生成的能力。
具體來說,移除了控制分支,并用一個(gè)輕量級(jí)的卷積模塊代替,該模塊僅由多個(gè)ResNet塊組成。這個(gè)模塊的規(guī)模遠(yuǎn)小于預(yù)訓(xùn)練模型,旨在從條件控制中提取指導(dǎo)信息,并將其與去噪特征對(duì)齊。由于其小巧的體積,更多地依賴生成模型本身來處理控制信號(hào)。在訓(xùn)練過程中,凍結(jié)了大部分預(yù)訓(xùn)練模塊,并選擇性地優(yōu)化預(yù)訓(xùn)練生成模型中一小部分可訓(xùn)練參數(shù)。
這種方法將可能由訓(xùn)練過程引起的遺忘風(fēng)險(xiǎn)降到最低。它還可以與參數(shù)高效的微調(diào)方法(如LoRA)結(jié)合使用。研究者們努力通過避免對(duì)原始架構(gòu)進(jìn)行重大修改來保持模型結(jié)構(gòu)的一致性。直接訓(xùn)練這些模型還能帶來更大的有效性和效率,并能自適應(yīng)地調(diào)整可學(xué)習(xí)參數(shù)的規(guī)模以適應(yīng)不同的任務(wù)。表達(dá)為:
關(guān)于條件控制的注入,觀察到對(duì)于大多數(shù)可控生成任務(wù),控制信號(hào)通常具有簡(jiǎn)單的形式或與去噪特征保持高度一致,因此無需在多個(gè)階段插入控制信號(hào)。在單個(gè)選定的中間塊中將控制信號(hào)與去噪分支集成,通過交叉歸一化進(jìn)行歸一化后,直接將其添加到去噪特征中。該模塊可以作為一個(gè)即插即用的模塊,由輕量級(jí)卷積模塊和可學(xué)習(xí)參數(shù)構(gòu)成,這些參數(shù)是預(yù)訓(xùn)練模型的一個(gè)子集,其表示如下:
交叉歸一化
動(dòng)機(jī)。 在對(duì)預(yù)訓(xùn)練大型模型進(jìn)行持續(xù)訓(xùn)練時(shí),通常面臨的一個(gè)問題是如何適當(dāng)?shù)匾腩~外的參數(shù)和模塊。由于直接組合新的參數(shù)通常會(huì)導(dǎo)致訓(xùn)練崩潰和收斂性差,最近的工作廣泛采用了零初始化,即將連接預(yù)訓(xùn)練模型和新增模塊的橋接層初始化為零。這種操作確保了在訓(xùn)練開始時(shí)新引入的模塊不會(huì)產(chǎn)生影響,從而實(shí)現(xiàn)穩(wěn)定的熱身階段。然而,零初始化可能導(dǎo)致收斂緩慢并增加訓(xùn)練挑戰(zhàn),因?yàn)樗柚沽四K從損失函數(shù)中獲得準(zhǔn)確的梯度。這會(huì)導(dǎo)致一種稱為“突發(fā)收斂”的現(xiàn)象,即模型在經(jīng)過一段較長的訓(xùn)練時(shí)間后并沒有逐漸學(xué)習(xí)條件,而是突然開始遵循這些條件。
本節(jié)分析了在添加新參數(shù)時(shí)訓(xùn)練崩潰的原因,并提出了交叉歸一化作為零卷積的替代方案,以確保穩(wěn)定和高效的訓(xùn)練。
交叉歸一化。 研究者們發(fā)現(xiàn)訓(xùn)練崩潰的關(guān)鍵原因是引入的模塊和預(yù)訓(xùn)練模型之間的數(shù)據(jù)分布不對(duì)齊和不兼容。經(jīng)過大規(guī)模數(shù)據(jù)訓(xùn)練后,預(yù)訓(xùn)練生成模型通常表現(xiàn)出穩(wěn)定的特征和數(shù)據(jù)分布,其特征是均值和標(biāo)準(zhǔn)差的一致性。然而,新引入的神經(jīng)模塊通常僅使用隨機(jī)方法(例如高斯初始化)進(jìn)行初始化。這導(dǎo)致新引入的神經(jīng)模塊產(chǎn)生具有顯著不同均值和標(biāo)準(zhǔn)差的特征輸出。直接添加或組合這些特征會(huì)導(dǎo)致模型不穩(wěn)定。
歸一化方法(如bn和層歸一化)通過標(biāo)準(zhǔn)化層輸入來提高訓(xùn)練穩(wěn)定性和速度。它們通過將輸入標(biāo)準(zhǔn)化為零均值和單位方差來實(shí)現(xiàn)這一點(diǎn),這在神經(jīng)網(wǎng)絡(luò)訓(xùn)練中被廣泛使用。受到這些方法的啟發(fā),本文提出了交叉歸一化,以對(duì)齊處理過的條件控制和主分支特征,從而確保訓(xùn)練的穩(wěn)定性和速度。
然后,使用去噪特征的均值和方差對(duì)控制特征進(jìn)行歸一化:
交叉歸一化對(duì)齊了去噪特征和控制特征的分布,充當(dāng)了連接擴(kuò)散和控制分支的橋梁。它加速了訓(xùn)練過程,確保即使在訓(xùn)練開始時(shí)控制對(duì)生成的有效性,并減少對(duì)網(wǎng)絡(luò)權(quán)重初始化的敏感性。
實(shí)驗(yàn)
本節(jié)展示了在各種任務(wù)和基礎(chǔ)模型上進(jìn)行的系列實(shí)驗(yàn)。本文的方法在圖像和視頻生成方面表現(xiàn)出卓越的效率和通用性。
通用性
為了展示本文方法的魯棒性和通用性,首先在多個(gè)基于擴(kuò)散的基礎(chǔ)模型上實(shí)現(xiàn)了本文的方法,如Stable Diffusion 1.5、Stable Diffusion XL、Stable Diffusion 3 和 Stable Video Diffusion。這些實(shí)驗(yàn)涵蓋了圖像生成、高分辨率生成和視頻生成等廣泛任務(wù),并使用了各種類型的條件控制。定性結(jié)果如下圖1所示。結(jié)果表明,本文的方法具有魯棒性和廣泛的適應(yīng)性,能夠有效適應(yīng)各種架構(gòu),并滿足不同任務(wù)的要求。
各種條件控制。 ControlNeXt 還支持各種類型的條件控制。在這一小節(jié)中,選擇了“mask”、“depth”(深度)、“canny”(邊緣)和“pose”(姿態(tài))作為條件控制,分別展示在下圖5的從上到下的位置。
所有實(shí)驗(yàn)均基于Stable Diffusion 1.5架構(gòu)進(jìn)行構(gòu)建。更多穩(wěn)定視頻生成的結(jié)果(利用姿態(tài)序列作為角色動(dòng)畫的指導(dǎo))展示在圖6中。SDXL的結(jié)果展示在圖7中,通過提取輸入圖像中的Canny邊緣并使用SDXL模型生成輸出,實(shí)現(xiàn)了風(fēng)格遷移。
訓(xùn)練收斂性
可控生成中的一個(gè)典型問題是訓(xùn)練收斂困難,這意味著需要數(shù)千步或更多步驟的訓(xùn)練才能學(xué)習(xí)條件控制。這種現(xiàn)象被稱為“突發(fā)收斂問題”,發(fā)生在模型最初無法學(xué)習(xí)控制能力,然后突然獲得這一技能。這主要由以下兩個(gè)方面造成:
- 零卷積抑制了損失函數(shù)的影響,導(dǎo)致模型在學(xué)習(xí)初期難以有效開始學(xué)習(xí),從而延長了熱身階段。
- 預(yù)訓(xùn)練生成模型完全凍結(jié),而ControlNet作為一個(gè)適配器,無法立即影響模型。
在ControlNeXt中,消除了這兩個(gè)限制,從而顯著加快了訓(xùn)練收斂速度。使用了兩種類型的控制進(jìn)行了實(shí)驗(yàn),結(jié)果和比較如下圖3所示。可以看出,ControlNeXt在僅經(jīng)過幾百步訓(xùn)練后就開始收斂,而ControlNet則需要數(shù)千步。這顯著緩解了突發(fā)收斂問題。
效率
本文的方法僅向原始預(yù)訓(xùn)練模型添加了一個(gè)輕量級(jí)模塊,確保其保持高效,并且不會(huì)引入顯著的延遲。本節(jié)提供了更多細(xì)節(jié),并進(jìn)行了額外的實(shí)驗(yàn)以展示本文方法的效率。
參數(shù)。 首先,提供了關(guān)于參數(shù)的統(tǒng)計(jì)信息,包括總參數(shù)和可學(xué)習(xí)參數(shù),這些統(tǒng)計(jì)僅計(jì)算了UNet模型(不包括VAE和編碼器部分)。結(jié)果顯示在下表1中??梢钥闯觯疚牡姆椒▋H添加了一個(gè)輕量級(jí)模塊,額外參數(shù)非常少,保持了與原始預(yù)訓(xùn)練模型的一致性。至于訓(xùn)練,本文的方法最多僅需不到10%的可學(xué)習(xí)參數(shù),使其成為一個(gè)非常輕量且即插即用的模塊。您還可以根據(jù)不同的任務(wù)和性能要求自適應(yīng)調(diào)整可學(xué)習(xí)參數(shù)的數(shù)量。關(guān)于參數(shù)數(shù)量對(duì)模型影響的更多細(xì)節(jié)將在后文討論。
推理時(shí)間。 研究者們比較了不同方法在各種基礎(chǔ)模型上的推理時(shí)間。結(jié)果顯示在下表2中,該表呈現(xiàn)了一個(gè)推理步驟的計(jì)算時(shí)間,僅考慮了UNet和ControlNet部分,排除了編碼和解碼過程??梢钥闯?,由于本文的方法僅添加了一個(gè)輕量級(jí)模塊,與預(yù)訓(xùn)練基礎(chǔ)生成模型相比,其延遲增加極小。這確保了本文方法在效率上的顯著優(yōu)勢(shì)。
即插即用
ControlNeXt 的設(shè)計(jì)旨在保持生成模型原始架構(gòu)的一致性,確保其兼容性和有效性。它可以作為一個(gè)即插即用、無需訓(xùn)練的模塊,與各種基礎(chǔ)模型和開源 LoRA 無縫集成,實(shí)現(xiàn)生成風(fēng)格的變化。
無需訓(xùn)練的集成。 研究者們首先收集了從 Civitai 下載的各種 LoRA 權(quán)重,涵蓋了不同的生成風(fēng)格。然后,在基于 SD1.5 架構(gòu)的各種基礎(chǔ)模型上進(jìn)行了實(shí)驗(yàn),包括 SD1.5、AnythingV3 和 DreamShaper。結(jié)果顯示在下圖8中??梢杂^察到,ControlNeXt 可以以無需訓(xùn)練的方式與各種基礎(chǔ)模型和 LoRA 權(quán)重集成,有效地改變生成圖像的質(zhì)量和風(fēng)格。這主要?dú)w因于本文方法的輕量級(jí)設(shè)計(jì),該設(shè)計(jì)主要保持了預(yù)訓(xùn)練基礎(chǔ)模型的一致性,并且僅添加了極少的附加模塊。這些優(yōu)勢(shì)使其能夠作為一個(gè)具有通用兼容性的即插即用模塊。
穩(wěn)定生成。 為了生成令人滿意的結(jié)果,生成模型通常需要迭代調(diào)整提示。ControlNeXt 作為一個(gè)插件單元,能夠以最小的努力和成本實(shí)現(xiàn)穩(wěn)定生成。提供了一個(gè)簡(jiǎn)單的提示,“一個(gè)女人”,生成結(jié)果的比較(有無本文的方法)如下圖9所示。
結(jié)論
本文提出了 ControlNeXt,一種先進(jìn)且高效的可控圖像和視頻生成方法。ControlNeXt 采用簡(jiǎn)化和精簡(jiǎn)的架構(gòu),消除了重型輔助組件,以最小化延遲開銷并減少可訓(xùn)練參數(shù)。這種輕量級(jí)設(shè)計(jì)使其能夠作為一個(gè)即插即用模塊,具有強(qiáng)大的魯棒性和兼容性,并進(jìn)一步支持與其他 LoRA 權(quán)重的集成,從而在無需額外訓(xùn)練的情況下改變生成風(fēng)格。提出了交叉歸一化,用于對(duì)預(yù)訓(xùn)練大型模型進(jìn)行微調(diào),處理新引入的參數(shù),從而促進(jìn)更快和更穩(wěn)定的訓(xùn)練收斂。通過在各種圖像和視頻生成基礎(chǔ)模型上的廣泛實(shí)驗(yàn),展示了本文方法的有效性和魯棒性。
本文轉(zhuǎn)自 AI生成未來 ,作者:Bohao Peng等
