寡姐帶貨國風Polo衫,馬斯克穿牛仔走紅毯!虛擬試衣新框架火了,只需兩張圖30秒即生成
只需兩張圖像,不到30秒,就能讓馬斯克穿牛仔走紅毯~
或者讓寡姐帶貨國風Polo衫~
就是二次元換裝也不在話下。
來自中山大學、Pixocial等機構聯合發布輕量化模型架構CatVTON。他們是以Stable Diffusion v1.5 inpainitng為基礎模型。
來看看更多效果。
用擴散模型進行虛擬試衣
CatVTON可以實現傳統平鋪服裝圖到人物的換裝。
不管是上衣、褲子、裙子,還是套裝,各種不同品類服裝都可以。
其形狀和紋理都能保持較高的一致性。
另外,CatVTON 還可以實現人物A到人物B的換裝。
無需顯式地指定類別,根據 Mask 的不同即可完成目標服裝的試穿,支持單獨的上衣、褲子、裙子或者全身多件服裝同時更換 。
既然如此,那又是如何實現的呢?
輕量化模型架構
CatVTON 在功能上豐富多樣, 但其模型架構卻十分簡潔高效:
- 2個網絡模塊(VAE+UNet)
- 899.06M總參數量
- < 8G推理顯存(輸出圖像 1024×768 )
輕量化的架構來源于 CatVTON 對現有方法模塊冗余的觀察:
- 基于Warping的方法依靠幾何匹配對服裝進行形變再利用試穿模塊融合,結果生硬不自然;
- 基于擴散模型的方法引入ReferenceNet,加重了訓練和推理的負擔;
具體而言,CatVTON 通過在輸入上把人物、服裝在通道維度拼接(Concatenate),在結構上擺脫了對額外的 ReferenceNet 的依賴,跳過了對圖像虛擬試衣來說沒有顯著幫助的文本交叉注意力,同時也不需要任何額外的圖像編碼器來輔助生成。
下表詳細地比較了不同方法與 CatVTON 的模塊數量、參數量、可訓練參數量、顯存占用、推理條件。
在網絡模塊上,CatVTON 只需要 VAE+UNet,無需任何額外的編碼器;在模型總參數量上,CatVTON 比其他方法至少縮減了44% ;在顯存占用上,CatVTON 也只有其他方法的一半甚至更低,體現了 CatVTON 在模型架構輕量化上的優勢。
△模型高效性相關項詳細比較
在訓練上,CatVTON 探究了在將預訓練擴散模型遷移到 TryOn 任務時去噪 UNet 中真正起作用的模塊。
首先,去噪 UNet 在結構上是由不同特征尺度的ResNet 和 Transformer Blocks 堆疊而成(如下圖)。其中 ResNet 是卷積網絡,具有空間不變性,適用于特征的提取,并不負責跨空間的特征交互,這一部分在擴散模型進行大規模預訓練時,已經具備了足夠的特征編碼能力,因此與遷移到 TryOn任務關聯性不強。
Transformer Block 內部結構又可以細化為三個部分:Self Attention, Cross Attention 和 FFN。其中Cross Attention在 T2I 任務中用于與文本信息交互,FFN 起到特征映射的作用,因此與服裝、人物特征交互最相關的便是 Self Attention。
理論上確定了需要訓練的模塊后,在實驗上,CatVTON 文中還進行了消融,發現對 UNet、Transformer Block 和 Self Attention 分別進行解鎖訓練,其可視化結果并沒有明顯的差異,同時在指標上也十分接近,驗證了“Self Attention是將預訓練擴散模型遷移到 TryOn 任務的關鍵模塊”的假設。
最后通過理論和實驗鎖定的Self Attention 部分,只有49.57M 參數,僅占總參數量 5.71% 的部分,對其進行微調,就可以實現逼真的試穿效果,在上一節表格中可以看到,相較于其他方法,CatVTON 將可訓練參數量減少了10 倍以上。
最后總結,CatVTON重新思考和設計了基于擴散模型的虛擬試穿框架,將多任務、多品類的虛擬試衣集成到同一模型中,以輕量化的框架和參數高效的訓練策略實現了SOTA的試穿效果,降低了模型的訓練、推理計算需求,更有利于虛擬試衣模型走向落地與應用。
項目主頁:https://zheng-chong.github.io/CatVTON
論文地址:https://arxiv.org/abs/2407.15886