蜘蛛俠妖嬈起舞,下一代ControlNet來了!賈佳亞團(tuán)隊(duì)推出,即插即用,還能控制視頻生成
只用不到10%的訓(xùn)練參數(shù),就能實(shí)現(xiàn)ControlNet一樣的可控生成!
而且SDXL、SD1.5等Stable Diffusion家族的常見模型都能適配,還是即插即用。
同時(shí)還能搭配SVD控制視頻生成,動作細(xì)節(jié)控制得精準(zhǔn)到手指。
在這些圖像和視頻的背后,就是港中文賈佳亞團(tuán)隊(duì)推出的開源圖像/視頻生成引導(dǎo)工具——ControlNeXt。
從這個名字當(dāng)中就能看出,研發(fā)團(tuán)隊(duì)給它的定位,就是下一代的ControlNet。
像大神何愷明與謝賽寧的經(jīng)典大作ResNeXt(ResNet的一種擴(kuò)展),起名字也是用的這個路數(shù)。
有網(wǎng)友認(rèn)為這個名字是實(shí)至名歸,確實(shí)是下一代的產(chǎn)品,將ControlNet提高了一個檔次。
還有人直言ControlNeXt是規(guī)則改變者,讓可控生成的效率提升了一大截,期待看到人們用它創(chuàng)作的作品。
蜘蛛俠跳起美女舞蹈
ControlNeXt支持多款SD系模型,而且即插即用。
其中包括了圖像生成模型SD1.5、SDXL、SD3(支持Super Resolution),還有視頻生成模型SVD。
話不多說,直接看效果。
可以看到,在SDXL中加入邊緣(Canny)引導(dǎo),繪制出的二次元少女和控制線條幾乎完美貼合。
即使控制輪廓又多又細(xì)碎,模型依然可以繪制出符合要求的圖片。
而且無需額外訓(xùn)練就可與其他LoRA權(quán)重?zé)o縫集成。
比如在SD1.5中,可以把姿勢(Pose)控制條件與各種LoRA搭配使用,形成風(fēng)格迥異乃至跨越次元,但動作相同的角色。
另外,ControlNeXt也支持遮罩(mask)和景深(depth)的控制模式。
在SD3當(dāng)中還支持Super Resolution(超級分辨率),可生成超高清晰度的圖像。
視頻生成當(dāng)中,ControlNeXt可以實(shí)現(xiàn)對人物動作的控制。
比如讓蜘蛛俠也跳起TikTok中的美女舞蹈,就連手指的動作也模仿得相當(dāng)精準(zhǔn)。
甚至讓一把椅子也長出手跳同樣的舞蹈,雖然是抽象了一些,但單看動作復(fù)刻得還算不錯。
而且相比于原始的ControlNet,ControlNeXt需要的訓(xùn)練參數(shù)更少,收斂速度也更快。
比如在SD1.5和SDXL中,ControlNet需要的可學(xué)習(xí)參數(shù)分別是3.61億和12.51億,但ControlNeXt分別只需要3千萬和1.08億,不到ControlNet的10%。
而在訓(xùn)練過程中,ControlNeXt在400步左右就已接近收斂,但ControlNet卻需要十倍甚至數(shù)十倍的步數(shù)。
生成的速度也比ControlNet更快,平均下來ControlNet相當(dāng)于基礎(chǔ)模型會帶來41.9%的延時(shí),但ControlNeXt只有10.4%。
那么,ControlNeXt是如何實(shí)現(xiàn)的,對ControlNet進(jìn)行了哪些改進(jìn)呢?
更輕量化的條件控制模塊
首先用一張圖來了解一下ControlNeXt的整個工作流程。
其中輕量化的關(guān)鍵,是ControlNeXt移除了ControlNet中的龐大控制分支,改為引入一個由少量ResNet塊組成的輕量級卷積模塊。
這個模塊負(fù)責(zé)提取控制條件(如語義分割掩碼、關(guān)鍵點(diǎn)先驗(yàn)等)的特征表示。
其中的訓(xùn)練參數(shù)量通常不到ControlNet中預(yù)訓(xùn)練模型的10%,但仍能很好地學(xué)習(xí)將輸入的條件控制信息,這種設(shè)計(jì)大大降低了計(jì)算開銷和內(nèi)存占用。
具體來說,它從預(yù)訓(xùn)練模型的不同網(wǎng)絡(luò)層的中等距采樣,形成用于訓(xùn)練的參數(shù)子集,其余參數(shù)則被凍結(jié)。
另外在設(shè)計(jì)ControlNeXt的架構(gòu)時(shí),研究團(tuán)隊(duì)還保持了模型結(jié)構(gòu)與原始架構(gòu)的一致性,從而實(shí)現(xiàn)了即插即用。
無論是ControlNet還是ControlNeXt,條件控制信息的注入都是一個重要環(huán)節(jié)。
在這個過程中,ControlNeXt研究團(tuán)隊(duì)主要針對兩個關(guān)鍵問題進(jìn)行了深入研究——注入位置的選擇和注入方式的設(shè)計(jì)。
研究團(tuán)隊(duì)觀察發(fā)現(xiàn),在大多數(shù)可控生成任務(wù)中,指導(dǎo)生成的條件信息形式相對簡單,且與去噪過程中的特征高度相關(guān)。
所以團(tuán)隊(duì)認(rèn)為,沒有必要在去噪網(wǎng)絡(luò)的每一層都注入控制信息,于是選擇了只在網(wǎng)絡(luò)的中間層將條件特征與去噪特征聚合。
聚合的方式也盡可能簡單——在用交叉歸一化對齊兩組特征的分布后,直接將其相加。
這樣既能確??刂菩盘栍绊懭ピ脒^程,又避免了注意力機(jī)制等復(fù)雜操作引入額外的學(xué)習(xí)參數(shù)和不穩(wěn)定性。
這之中的交叉歸一化,也是ControlNeXt的另一項(xiàng)核心技術(shù),替代了此前常用的zero-convolution等漸進(jìn)式初始化策略。
傳統(tǒng)方法通過從零開始逐步釋放新模塊的影響力來緩解崩塌問題,但往往導(dǎo)致的結(jié)果就是收斂速度慢。
交叉歸一化則直接利用主干網(wǎng)絡(luò)去噪特征的均值μ和方差σ對控制模塊輸出的特征做歸一化,使二者的數(shù)據(jù)分布盡量對齊。
(注:?是為數(shù)值穩(wěn)定性而添加的小常數(shù),γ為縮放參數(shù)。)
歸一化后的控制特征再通過尺度和偏移參數(shù)調(diào)整幅度和基線,再與去噪特征相加,既避免了參數(shù)初始化的敏感性,又能在訓(xùn)練初期就讓控制條件發(fā)揮作用,加快收斂進(jìn)程。
此外,ControlNeXt還借助控制模塊學(xué)習(xí)條件信息到隱空間特征的映射,使其更加抽象和語義化,更有利于泛化到未見過的控制條件。
項(xiàng)目主頁:??https://pbihao.github.io/projects/controlnext/index.html???
論文地址:???https://arxiv.org/abs/2408.06070???
GitHub:???https://github.com/dvlab-research/ControlNeXt??
本文轉(zhuǎn)自 量子位 ,作者:量子位
