合成數據助力視頻生成提速8.5倍,上海AI Lab開源AccVideo
雖然擴散模型在視頻生成領域展現出了卓越的性能,但是視頻擴散模型通常需要大量的推理步驟對高斯噪聲進行去噪才能生成一個視頻。這個過程既耗時又耗計算資源。例如,HunyuanVideo [1] 需要 3234 秒才能在單張 A100 上生成 5 秒、720×1280、24fps 的視頻。
為了解決上述問題,上海AI Lab提出了一種創新性的高效蒸餾方法 AccVideo,旨在利用合成數據集加速視頻擴散模型。AccVideo 相比于教師模型(HunyuanVideo)[1] 提升了 8.5 倍的生成速度并保持相當的性能。此外,通過使用合成數據集,AccVideo 顯著提升訓練效率并減少數據需求。僅需 8 塊 A100 顯卡,使用 3.84 萬條合成數據訓練 12 天,即可生成高質量 5s、720×1280、24fps 的視頻。
- 開源鏈接:https://github.com/aejion/AccVideo
- 項目主頁:https://aejion.github.io/accvideo
- 論文鏈接:https://arxiv.org/abs/2503.19462
該模型受到包括 Reddit 等在內的社區廣泛關注,目前已經集成 ComfyUI,并且支持 Lora。
- Reddit 討論鏈接:https://www.reddit.com/r/StableDiffusion/comments/1jnb5rt/accvideo_85x_faster_than_hunyuan/
研究動機
作者首先在 1D toy 實驗上對現有蒸餾擴散模型的方法進行了細致的分析。如圖 1 所示,現有的方法在通常需要前向擴散來計算蒸餾數據點,但是由于數據集不匹配(教師模型和學生模型訓練時使用的數據集不匹配)或者高斯噪聲不匹配(高斯噪聲和真實數據的不匹配)的問題,計算出來的數據點可能是無用的。這會導致教師模型為學生模型提供不可靠的指導(如圖 1 紅框所示),從而影響模型的蒸餾效率以及生成結果。
圖 1. 1D toy 實驗圖,展示了現有蒸餾方法在蒸餾時會使用無用數據點的問題。e) 無用數據點的頻率會隨著數據集不匹配的程度大幅增長
方法概述
本文方法旨在通過蒸餾預訓練視頻擴散模型(HunyuanVideo)來減少推理步數,從而加速視頻生成。基于上面的分析,作者嘗試在蒸餾過程中避免了無效數據點的使用。具體而言,作者首先構建了一個合成視頻數據集 SynVid,該數據集利用教師模型生成高質量合成視頻及其去噪軌跡。隨后,作者提出了一種基于軌跡的少步指導機制和一種對抗訓練策略,從而以更少推理步數生成視頻并充分利用 SynVid 所捕獲的每個擴散時間步的數據分布特性,進一步提升模型性能。圖 2 展示了本方法的總覽圖。
圖 2. AccVideo 方法總覽圖
(1)合成視頻數據集,SynVid
作者采用 HunyuanVideo 作為生成器來構建合成數據,如圖 3 所示。作者構建的合成數據集包含高質量的合成視頻
、潛在空間中的去噪軌跡
以及它們對應的文本提示
,其中
表示數據數量,n=50表示推理步數,
表示推理擴散時間步。文本提示
通過使用 InternVL2.5 標注互聯網上的高質量視頻獲得。對于高斯噪聲
,去噪軌跡可以通過以下方式求解:
合成視頻可以通過 VAE 解碼干凈的潛在編碼
得到。值得注意的是,
中的數據點是通向正確視頻的中間結果,因此它們都是有效且有意義的。這有助于高效蒸餾并顯著減少對數據量的需求。
圖 3. 合成視頻數據集 SynVid 構建圖
(2)基于軌跡的少步指導機制
視頻擴散模型通常需要大量的推理步驟來生成視頻。為了加速生成過程,作者設計了一個學生模型,該學生模型從預訓練視頻擴散模型(即教師模型)生成的去噪軌跡中學習,能以更少的推理步數生成視頻。具體而言,作者提出了一種基于軌跡的損失函數,以 m 步學習教師模型的去噪過程。該損失選擇m+1個關鍵擴散時間步
,并在每條去噪軌跡上獲取它們對應的潛在編碼
,并通過這些關鍵潛在編碼學習高斯噪聲到視頻的映射關系:
其中。這些關鍵潛在編碼構建了一條從高斯噪聲到視頻潛在編碼的更短路徑,通過學習這個更短路徑,學生模型顯著減少了推理步數。在實驗中,作者m=5設置,與教師模型相比,推理步驟數量減少了 10 倍,從而大大加速了視頻生成過程。
(3)對抗訓練策略
除了高斯噪聲與視頻潛在編碼之間的一對一映射外,SynVid 還包含每個擴散時間步的許多潛在編碼
,這些潛在編碼隱式地代表了在這個擴散時間步下的數據分布
。為了充分釋放合成數據集中的知識并提升學生模型
的性能,作者提出了一種對抗訓練策略,以最小化對抗散度
,其中
表示學生模型
在擴散時間步
生成的數據分布。訓練目標遵循標準的生成對抗網絡:
其中D表示判別器。由于判別器需要區分不同擴散時間步的噪聲潛在編碼,作者設計的判別器D包含一個噪聲感知的特征提取器和m個擴散時間步感知的投影頭
需要注意的是,該對抗訓練策略避免了現有方法中常用的前向擴散操作,從而防止了對無用數據點進行蒸餾。這確保了教師模型能夠為學生模型提供準確的指導。此外,基于軌跡的少步指導機制提升了對抗學習的穩定性,無需復雜的正則化設計。
實驗結果
視頻展示了 AccVideo 在不同分辨率下和 VideoCrafter2 [2]、T2V-Turbo-V2 [3]、LTX-Video [4]、CogVideoX [5]、PyramidFlow [6] 以及 HunyuanVideo [1] 的定性對比結果。AccVideo 生成的視頻偽影更少(例如小女孩的手部細節)。相比 CogVideoX1.5,本方法生成的視頻具有更高保真度的畫面和更優質的背景效果。與 HunyuanVideo 相比,本方法的結果能更好地匹配文本描述(例如復古 SUV 的呈現效果)。
總結
在本文中,作者首先系統分析了現有擴散蒸餾方法因使用無效數據點而導致的關鍵問題。基于這一發現,作者提出了一種高效蒸餾新方法以加速視頻擴散模型。具體而言:1)構建了包含有效蒸餾數據點的合成視頻數據集 SynVid;2)提出基于軌跡的少步指導機制,使學生模型僅需 5 步即可生成視頻,較教師模型實現顯著加速;3)設計了利用合成數據集分布特性的對抗訓練策略以提升視頻質量。實驗表明,AccVideo 在保持性能相當的前提下,生成速度較教師模型提升 8.5 倍。