Diffusers 中開放視訊生成模型的現狀

Hugging Face 已詳細說明開放視訊生成模型的當前格局,以及 Diffusers 庫中可用的技術優化,以使這些資源密集型模型在消費者硬體上可訪問。主要的收穫是,儘管高品質視訊生成在計算上仍然昂貴,但量化、卸載和分塊推理的結合可以大幅降低顯存需求,而不會對速度造成嚴重的妥協。

視訊生成模型的格局

視訊生成目前在專有閉源模閉源模型與日益成原始碼模型與日益成長的開源替代方案生態系統之間進行分割。

閉源模型

主要產業玩家提供高能力但專有的模型,包括:

  • OpenAI:Sora
  • Google:Veo 2
  • Meta:MovieGen
  • RunwayML:Gen 3 Alpha
  • Pika Labs:Pika 2.0
  • KlingAI:Kling
  • Haliluo:MiniMax

開源模型

若干開放模型已經出現,以提供社區對視訊生成的存取,包括:

  • Tencent:Hunyuan Video
  • Genmo:Mochi-1
  • RhymesAI:Allegro
  • Lightricks:LTX Video
  • THUDM:CogVideoX

技術挑戰與限制

視訊生成相比圖像生成複雜得多,因為除了寫實、美學和遵守輸入條件之外,它還需要在幀之間維持時空一致性和連貫性。

主要限制

  • 高資源需求:資料集收集、硬體和訓練迭代的成本使得開源開發變得昂貴。
  • 泛化能力:某些開放模型在分布外數據上會遇到困難,或需要高度特定、詳細的提示(例如 LTX-Video)才能獲得高品質結果。
  • 延遲:高計算和記憶體需求導致顯著的生成延遲,這通常成為本地部署的障礙。

開放視訊模型的架構

現代開放視訊生成模型通常遵循類似於文本到圖像模型的結構,但具備 3D 處理能力:

  • 文本編碼器:大多數模型偏好 T5,儘管 HunYuan 同時使用 CLIP-L 和 LLaMa 3。
  • 去噪網路:基於 DiT(擴散變壓器)架構,並融合 PixArt 的元素,處理同時捕捉空間和時間數據的 3D 視訊標記。
  • 編碼器-解碼器:同時採用空間和時間壓縮,以在像素空間和潛在空間之間進行轉換。逐幀解碼常被用來管理記憶體。
  • 排程器:一個非參數排程器管理時間步計算和去噪過程。

Diffusers 中的記憶體優化

運行最先進的視訊模型通常需要驚人的顯存量。例如,對於 $121 \times 512 \times 768$ 解析度的視訊,使用標準的 torch.bfloat16 設置,基線顯存需求為:

  • HunyuanVideo:60.09 GB
  • CogVideoX (1.5 5B):36.51 GB
  • LTX-Video:17.75 GB

優化套件

為了將這些模型帶到消費者硬體上,Diffusers 提供了幾個可選擇的優化類別:

  1. 量化:透過 bitsandbytestorchaoGGUF 等後端降低權重精度。
  2. 卸載:使用 enable_model_cpu_offload()enable_sequential_cpu_offload() 將層在非活動計算時移至 CPU。
  3. 分塊推理:通過前饋分塊、解碼器平鍊/切割和分割注意力推理來減少激活狀態開銷。
  4. 狀態重用:通過重用過去的注意力和 MLP 狀態來跳過某些去噪步驟。

優化對 HunyuanVideo 的影響

Hugging Face 透過鏈結這些技術示範,HunyuanVideo 的顯存需求可以從 60.10 GB (BF16 Base) 降低到 6.56 GB,方法是結合 FP8 Upcasting、Group offload (leaf) 和 VAE 平鍊。進一步降低到約 5 GB 是可能的,透過使用 Flash Attention 和優化的前饋網路。

訓練與微調

蒸餾技術

為了提升推理速度,主要使用兩種蒸餾方法:

  • 時間步蒸餾:教導模型在更少的步驟中預測最終輸出(例如 Flux.1-Schnell、FastHunyuan)。
  • 指引蒸餾:將 Classifier-Free Guidance 所需的兩次前向傳遞減少為一次,以將生成時間減半(例如 HunyuanVideo、Flux.1-Dev)。

使用 finetrainers 進行微調

Hugging Face 推出了 finetrainers 儲存庫,以簡化開放視訊模型的微調。這使得使用者能够對特定模型(例如 CogVideoX)應用如 LoRA 等技術,以模擬特定的視覺效果,例如「溶解」效果。

Sources