快手開源LivePortrait,GitHub 6.6K Star,實現表情姿態極速遷移
機器之心發佈
機器之心編輯部
近日,快手可靈大模型團隊開源了名爲LivePortrait的可控人像視頻生成框架,該框架能夠準確、實時地將驅動視頻的表情、姿態遷移到靜態或動態人像視頻上,生成極具表現力的視頻結果。如下動圖所示:
來自網友測試LivePortrait
來自網友測試LivePortrait
快手開源的LivePortrait對應的論文題目爲:
《 LivePortrait: Efficient Portrait Animation with Stitching and Retargeting Control 》
LivePortrait論文首頁
並且,LivePortrait發佈即可用,秉承快手風格,論文、主頁、代碼一鍵三連。LivePortrait一經開源,就得到了HuggingFace首席執行官Clément Delangue的關注轉發,首席戰略官 Thomas Wolf還親自體驗了功能,厲害了!
並引起了全世界網友的大規模評測:
視頻剪輯素材均來自X
視頻鏈接:https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650926594&idx=3&sn=7d44eac3409c6c2d5587ef80d7575a69&chksm=84e42a7cb393a36a0da7b8d223f28c5ed51095e53a449ea8e341ddd5f71576595776c02109b6&token=1755385124&lang=zh_CN#rd
同時,LivePotrait獲得了開源社區的廣泛關注,短短一週多時間左右,在GitHub上總計收穫了6.4K Stars,550 Forks,140 Issues&PRs,獲得廣泛好評,關注仍在持續增長中:
此外,HuggingFace Space、Papers with code趨勢榜連續一週榜一,近日登頂HuggingFace所有主題排行榜榜一:
HuggingFace Space榜一
Papers with code榜一
HuggingFace所有主題排行榜一
更多資源信息,可以查看:
LivePortrait到底用了什麼樣的技術,能夠在全網快速"走紅"呢?
方法介紹
和當前主流基於擴散模型的方法不同,LivePortrait探索並拓展了基於隱式關鍵點框架的潛力,從而平衡了模型計算效率和可控性。LivePortrait聚焦於更好的泛化性,可控性和實用的效率。爲了提升生成能力和可控性,LivePortrait採用69M高質量訓練幀,視頻-圖片混合訓練策略,升級網絡結構,並設計了更好的動作建模和優化方式。此外,LivePortrait將隱式關鍵點看成一種面部混合變形 (Blendshape) 的有效隱式表示,並基於此精心提出了貼合 (stitching) 和重定向 (retargeting) 模塊。這兩個模塊爲輕量MLP網絡,因此在提升可控性的同時,計算成本可以忽略。即使是和一些已有的基於擴散模型的方法比較,LivePortrait依舊很能打。同時,在RTX4090 GPU上,LivePortrait的單幀生成速度能夠達到12.8ms,若經過進一步優化,如TensorRT,預計能達10ms以內!
LivePortrait的模型訓練分爲兩階段。第一階段爲基礎模型訓練,第二階段爲貼合和重定向模塊訓練。
第一階段基礎模型訓練
第一階段基礎模型訓練
在第一階段模型訓練中,LivePortrait對基於隱式點的框架,如Face 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可以準確地繼承驅動視頻中細微的眼部和嘴部動作,同時在姿態較大時也比較穩定。LivePortrait在生成質量上略弱於基於擴散模型的方法AniPortrait[11],但與後者相比,LivePortrait具有極快的推理效率且需要較少的FLOPs。
拓展
多人驅動:得益於LivePortrait的貼合模塊,對於多人合照,LivePortrait可以用指定驅動視頻對指定人臉進行驅動,從而實現多人合照驅動,拓寬了LivePortrait的實際應用。
視頻鏈接:https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650926594&idx=3&sn=7d44eac3409c6c2d5587ef80d7575a69&chksm=84e42a7cb393a36a0da7b8d223f28c5ed51095e53a449ea8e341ddd5f71576595776c02109b6&token=1755385124&lang=zh_CN#rd
動物驅動:LivePortrait不僅對人像具有良好的泛化性,當在動物數據集上微調後,對動物肖像也可進行精準驅動。
人像視頻編輯:除了人像照片,給定一段人像視頻,比如舞蹈視頻,LivePortrait可以用驅動視頻對頭部區域進行動作編輯。得益於貼合模塊,LivePortrait可以精準地編輯頭部區域的動作,如表情、姿態等,而不影響非頭部區域的畫面。
視頻鏈接:https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650926594&idx=3&sn=7d44eac3409c6c2d5587ef80d7575a69&chksm=84e42a7cb393a36a0da7b8d223f28c5ed51095e53a449ea8e341ddd5f71576595776c02109b6&token=1755385124&lang=zh_CN#rd
落地與展望
LivePortrait的相關技術點,已在快手的諸多業務完成落地,包括快手魔錶、快手私信、快影的AI表情玩法、快手直播、以及快手孵化的面向年輕人的噗嘰APP等,並將探索新的落地方式,持續爲用戶創造價值。此外,LivePortrait會基於可靈基礎模型,進一步探索多模態驅動的人像視頻生成,追求更高品質的效果。
參考文獻
[1] Ting-Chun Wang, Arun Mallya, and Ming-Yu Liu. One-shot free-view neural talking-head synthesis for video conferencing. In CVPR, 2021.
[2] Arsha Nagrani, Joon Son Chung, and Andrew Zisserman. Voxceleb: a large-scale speaker identification dataset. In Interspeech, 2017.
[3] Kaisiyuan Wang, Qianyi 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 english. In PloS one, 2018
[5] Mingcong Liu, Qiang Li, Zekui Qin, Guoxin Zhang, Pengfei Wan, and Wen Zheng. Blendgan: Implicitly gan blending for arbitrary stylized face generation. In NeurIPS, 2021.
[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 SIGGRAPH Asia, 2023.
[7] Kai Zhao, Kun Yuan, Ming Sun, Mading Li, and Xing Wen. Quality-aware pre-trained models for blind image quality
assessment. In CVPR, 2023.
[8] Sanghyun Woo, Shoubhik Debnath, Ronghang Hu, Xinlei Chen, Zhuang Liu, In So Kweon, and Saining Xie. Con-
vnext v2: Co-designing and scaling convnets with masked autoencoders. In CVPR, 2023.
[9] Taesung Park, Ming-Yu Liu, Ting-Chun Wang, and Jun-Yan Zhu. Semantic image synthesis with spatially-adaptive normalization. In CVPR, 2019.
[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 photorealistic portrait animation. arXiv preprint:2403.17694, 2024.