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