- 代碼地址:https://github.com/KwaiVGI/LivePortraitGI/LivePortraitGI/LivePortrait。 /2407.03168
- 專案首頁:https://liveportrait.github.io/
-
HuggingFace Space一鍵線上體驗:https://hugging.Portco/spacespaces/KwaiV/M LivePortrait到底用了什麼樣的技術,能夠在全網快速"走紅"呢?
方法介紹和當前主流基於擴散模型的方法不同,LivePortrait探索並拓展了基於隱式和當前主流基於擴散模型的方法不同,LivePortrait探索並拓展了計算基於隱式框架的潛力和關鍵點框架的潛力,從而平衡計算模型。 LivePortrait聚焦於更好的泛化性,可控性和實用的效率。為了提升生成能力和可控性,LivePortrait採用69M高品質訓練幀,影片-圖片混合訓練策略,升級網路結構,並設計了更好的動作建模和優化方式。此外,LivePortrait將隱式關鍵點看成一種臉部混合變形 (Blendshape) 的有效隱式表示,並基於此精心提出了貼合 (stitching) 和重定向 (retargeting) 模組。這兩個模組為輕量MLP網絡,因此在提升可控性的同時,計算成本可以忽略。即使是和一些已有的基於擴散模型的方法比較,LivePortrait依舊很能打。同時,在RTX4090 GPU上,LivePortrait的單幀生成速度能夠達到12.8ms,若經過進一步優化,如TensorRT,預計能達10ms以內! LivePortrait的模型訓練分為兩階段。第一階段為基礎模型訓練,第二階段為貼合和重新導向模組訓練。 ),為第一個階段,如同在組合中ace Vid2vid[1],做了一系列改進,包括: :LivePortrait採用了公開視訊資料集Voxceleb[2],MEAD[3],RAVDESS [4]和風格化圖片資料集AAHQ[5]。此外,還使用了大規模4K分辨率的人像視頻,包含不同的表情和姿態,200餘小時的說話人像視頻,一個私有的數據集LightStage[6],以及一些風格化的視頻和圖片。 LivePortrait將長影片分割成少於30秒的片段,並確保每個片段只包含一個人。為了確保訓練資料的質量,LivePortrait使用快手自研的KVQ[7](快手自研的視訊品質評估方法,能夠綜合感知視訊的品質、內容、場景、美學、編碼、音訊等特徵,執行多維度評價)來過濾低品質的影片片段。總訓練資料有69M視頻,包含18.9K身份和60K靜態風格化人像。 :僅使用真人人像影片訓練的模型對於真人人像表現良好,但對風格化人像(例如動漫)的泛化能力不足。風格化的人像影片是較為稀有的,LivePortrait從不到100個身分中收集了僅約1.3K影片片段。相較之下,高品質的風格化人像圖片更為豐富,LivePortrait收集了大約60K身份互異的圖片,提供多元身分資訊。為了利用這兩種資料類型,LivePortrait將每張圖片視為一幀影片片段,並同時在影片和圖片上訓練模型。這種混合訓練提升了模型的泛化能力。 :LivePortrait將規範隱式關鍵點估計網絡(L),頭部姿態估計網絡(H) 和表情變形估計網絡(Δ) 統一為了一個單一模型(M),並採用ConvNeXt-V2-Tiny[8]為其結構,從而直接估計輸入圖片的規範隱式關鍵點,頭部姿態和表情變形。此外,受到face vid2vid相關工作啟發,LivePortrait採用效果更優的SPADE[9]的解碼器作為生成器 (G)。隱式特徵 (fs) 在變形後被細緻地輸入SPADE解碼器,其中隱式特徵的每個通道作為語義圖來產生驅動後的圖片。為了提升效率,LivePortrait也插入PixelShuffle[10]層作為 (G) 的最後一層,從而將解析度由256提升為512。 :原始隱式關鍵點的計算建模方式忽略了縮放係數,導致此縮放容易被學到表情係數裡,使得訓練難度變大。為了解決這個問題,LivePortrait在建模中引入了縮放因子。 LivePortrait發現縮放正規投影會導致過於靈活的可學習表情係數,造成跨身分驅動時的紋理黏連。因此LivePortrait所採用的變換是一種靈活性和驅動性之間的折衷。 :原始的隱式點框架似乎缺少生動驅動面部表情的能力,例如眨眼和眼球運動。具體來說,驅動結果中人像的眼球方向和頭部朝嚮往往保持平行。 LivePortrait將這些限制歸因於無監督學習細微臉部表情的困難。為了解決這個問題,LivePortrait引入了2D關鍵點來捕捉微表情,用關鍵點引導的損失 (Lguide)作為隱式關鍵點優化的引導。 :LivePortrait採用了face vid2vid的隱式關鍵點不變損失(LE),關鍵點先驗損失(LL),頭部姿態損失(LH) 和變形先驗損失(LΔ)。為了進一步提升紋理質量,LivePortrait採用了感知和GAN損失,不僅對輸入圖的全局領域,面部和嘴部的局部領域也施加了這些損失,記為級聯感知損失(LP,cascade) 和級聯GAN損失(LG,cascade) 。面部和嘴部區域由2D語義關鍵點定義。 LivePortrait也採用了人臉身分損失 (Lfaceid) 來保留參考圖片的身份。 第一階段的所有模組為從頭訓練,總的訓練最佳化函數 (Lbase) 為以上損失項的加權和。 LivePortrait將隱式關鍵點可以看成一種隱式混合變形,並發現這種組合只需借助一個輕量的MLP便可被較好地學習,計算消耗可忽略。考慮到實際需求,LivePortrait設計了一個貼合模組、眼部重定向模組和嘴部重定向模組。當參考人像被裁切時,驅動後的人像會從裁圖空間被反貼回原始影像空間,貼合模組的加入是為了避免反貼過程中出現像素錯位,例如肩膀區域。由此,LivePortrait能對更大的圖片尺寸或多人合照進行動作驅動。眼部重定向模組旨在解決跨身分驅動時眼睛閉合不完全的問題,尤其是當眼睛小的人像驅動眼睛大的人像時。嘴部重定向模組的設計想法類似於眼部重定向模組,它透過將參考圖片的嘴部驅動為閉合狀態來規範輸入,從而更好地進行驅動。
合模組:在訓練過程中,貼合模組(S) 的輸入為參考圖的隱式關鍵點(xs) 和另一個身分驅動影格的隱式關鍵點(xd),並估計驅動隱式關鍵點(xd) 的表情變化量 (Δst)。可以看到,和第一階段不同,LivePortrait採用跨身分的動作取代同身分的動作來增加訓練難度,旨在使貼合模組具有更好的泛化性。接著,驅動隱式關鍵點 (xd) 被更新,對應的驅動輸出為 (Ip,st) 。 LivePortrait在此階段也同時輸出自重建圖片 (Ip,recon)。最後,貼合模組的損失函數 (Lst) 計算兩者肩膀區域的像素一致損失以及貼合變化量的正規損失。 眼部和嘴部重定向模組:眼部重定向模組(Reyes) 的輸入為參考圖隱式關鍵點(xs),參考圖眼部張開條件元組和一個隨機的驅動眼部張開係數,由此估計驅動關鍵點的變形變化量(Δeyes)。眼部張開條件元組表示眼部張開比例,越大表示眼部張開程度越大。類似的,嘴部重定向模組(Rlip) 的輸入為參考圖隱式關鍵點(xs),參考圖嘴部張開條件係數和一個隨機的驅動嘴部張開係數,並由此估計驅動關鍵點的變化量 (Δlip)。接著,驅動關鍵點 (xd) 分別被眼部和嘴部對應的變形變化量更新,對應的驅動輸出為 (Ip,eyes) 和 (Ip,lip) 。最後,眼部和嘴部重定向模組的目標函數分別為(Leyes) 和 (Llip),分別計算眼部和嘴部區域的像素一致性損失,眼部和嘴部變化量的正則損失,以及隨機驅動係數與驅動輸出的張開條件係數之間的損失。眼部和嘴部的變化量 (Δeyes) 和 (Δlip) 是相互獨立的,因此在推理階段,它們可以被線性相加並更新驅動隱式關鍵點。 同身份驅動:由如上同擴散模型對比的結果,與未上相同的方法比較具有較好的生成品質和驅動精確度,可以捕捉驅動幀的眼部和嘴部細微表情,同時保有參考圖片的紋理和身份。即使在較大的頭部姿態下,LivePortrait也有較穩定的表現。
跨身份驅動:由如上跨身份驅動對比結果可見,與已有的方法相比,LivePortrait可以準確地繼承驅動視頻中細微的眼部和嘴部動作,同時在姿態較大時也比較穩定。 LivePortrait在生成品質上略弱於基於擴散模型的方法AniPortrait[11],但與後者相比,LivePortrait具有極快的推理效率且需要較少的FLOPs。 多人驅動:驅動得益於LivePortrait的貼合工具多人合照驅動,拓寬了LivePortrait的實際應用。 動物驅動:LivePortrait不僅對人像具有良好的泛化性,當在動物資料集上微調後,對動物肖像也可進行精準驅動。
人像視頻編輯:除了人像照片,給定一段人像視頻,比如舞蹈視頻,LivePortrait可以用驅動視頻對頭部區域進行動作編輯。由於貼合模組,LivePortrait可以精準地編輯頭部區域的動作,如表情、姿態等,而不影響非頭部區域的畫面。 LivePortrait的相關技術點,已在快手的諸多業務版中、以及快手孵化的面向年輕人的噗嘰APP等,並將探索新的落地方式,持續為用戶創造價值。此外,LivePortrait會基於可靈基礎模型,進一步探索多模態驅動的人像影片生成,追求更高品質的效果。 [1] Ting-Chun Wang, Arun Mallya, and Ming-Yu Liu. One-shot free-view 2021.[2] Arsha Nagrani, Joon Son Chung, and Andrew Zisserman. Voxceleb: a large-scale speaker identification dataset. In Interspeech, 2017.33uananyuan. Wu, Linsen Song, Zhuoqian Yang, Wayne Wu, Chen Qian, Ran He, Yu Qiao, and Chen Change Loy. Mead: A large-scale audio-visual dataset for emotional talking-face generation. In ECCV, 2020. [4] Steven R Livingstone and Frank A Russo. The ryerson audio-visual database of emotional speech and song (ravdess): A dynamic, multimodal set of facial and vocal expressions in north american eng 是. [5] Mingcong Liu, Qiang Li, Zekui Qin, Guoxin Zhang, Pengfei Wan, and Wen Zheng. Blendgan: [ 6] Haotian Yang, Mingwu Zheng, Wanquan Feng, Haibin Huang, Yu-Kun Lai, Pengfei Wan, Zhongyuan Wang, and Chongyang Ma. Towards practical capture of high-fidelity relightable avatars. In SIGGRAPRAPHAsia, 20ture of high-fidelity relightable avatars. In SIGGRAPRAPHAsia, 20233. [7] Kai Zhao, Kun Yuan, Ming Sun, Mading Li, and Xing Wen. Quality-aware pre-trained models for blind image qualityassessment. [8] Sanghyun Woo, Shoubhik Debnath, Ronghang Hu, Xinlei Chen, Zhuang Liu, In So Kweon, and Saining Xie. Con- CVvnext v2: Co-designing and scaling conutof. 2023.[9] Taesung Park, Ming-Yu Liu, Ting-Chun Wang, and Jun-Yan Zhu. Semantic image synthe CVsis with sally-adaptive normalization. Inn [10] Wenzhe Shi, Jose Caballero, Ferenc Husz ´ar, Johannes Totz, Andrew P Aitken, Rob Bishop, Daniel Rueckert, and Zehan Wang. Real-time single image and video super-resolution using an efficient sub-pixel convolutional neural network . In CVPR, 2016.[11] Huawei Wei, Zejun Yang, and Zhisheng Wang. Aniportrait: Audio-driven synthesis of photorealis portrait ani6mation. 0X 月
|