成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型

發(fā)布于 2024-4-22 12:54
瀏覽
0收藏

過去幾年來,擴(kuò)散模型強(qiáng)大的圖像合成能力已經(jīng)得到充分證明。研究社區(qū)現(xiàn)在正在攻克一個(gè)更困難的任務(wù):視頻生成。近日,OpenAI 安全系統(tǒng)(Safety Systems)負(fù)責(zé)人 Lilian Weng 寫了一篇關(guān)于視頻生成的擴(kuò)散模型的博客。


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

Lilian Weng


機(jī)器之心對(duì)這篇博客進(jìn)行了不改變?cè)獾木幾g、整理,以下是博客原文:


視頻生成任務(wù)本身是圖像合成的超集,因?yàn)閳D像就是單幀視頻。視頻合成的難度要大得多,原因是:


1. 視頻合成還需要不同幀之間保持時(shí)間一致性,很自然,這需要將更多世界知識(shí)編碼到模型之中。

2. 相比于文本或圖像,收集大量高質(zhì)量、高維度的視頻數(shù)據(jù)要更為困難,更罔論配對(duì)的文本 - 視頻數(shù)據(jù)了。


如果你想了解擴(kuò)散模型在圖像生成方面的應(yīng)用,可參讀本文作者 Lilian Weng 之前發(fā)布的博文《What are Diffusion Models?》鏈接:https://lilianweng.github.io/posts/2021-07-11-diffusion-models/


從頭建模視頻生成


首先,我們先來看看如何從頭設(shè)計(jì)和訓(xùn)練擴(kuò)散視頻模型,也就是說不使用已經(jīng)預(yù)訓(xùn)練好的圖像生成器。


參數(shù)化和采樣


這里使用的變量定義與之前那篇文章稍有不同,但數(shù)學(xué)形式是一致的。令 ??~??_real 是從該真實(shí)數(shù)據(jù)分布采樣的一個(gè)數(shù)據(jù)點(diǎn)。現(xiàn)在,在時(shí)間中添加少量高斯噪聲,創(chuàng)建出 ?? 的一個(gè)有噪聲變體序列,記為:{??_?? | ?? = 1..., ??},其中噪聲隨 ?? 的增加而增長(zhǎng),而最后的 ??(??_??)~??(??,??)。這個(gè)添加噪聲的前向過程是一個(gè)高斯過程。令 ??_?? 和 ??_?? 為這個(gè)高斯過程的可微噪聲調(diào)度(differentiable noise schedule):


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


為了表示 ??(??_??|??_??),其中 0≤??<??≤??,有:


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


令對(duì)數(shù)信噪比為

Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

,則可將 DDIM 更新表示為:


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


Salimans & Ho (2022) 的論文《Progressive Distillation for Fast Sampling of Diffusion Models》為這里提出了一個(gè)特殊的 ?? 預(yù)測(cè)參數(shù):

Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

。研究表明,相比于 ?? 參數(shù),?? 參數(shù)有助于避免視頻生成中出現(xiàn)顏色變化問題。


?? 的參數(shù)化是通過角坐標(biāo)中的技巧導(dǎo)出的。首先,定義 ??_??=arctan (??_??/??_??),由此可得到 ??_??=cos ??, ??_??=sin ??, ??_??=cos ????+sin ????。??_?? 的速度可以寫成:


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


然后可以推導(dǎo)出:


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


DDIM 更新規(guī)則就可以據(jù)此更新:


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

圖 1:以角坐標(biāo)形式展示擴(kuò)散更新步驟的工作方式,其中 DDIM 通過讓 z_{??_??} 沿 

Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

的方向移動(dòng)而使其不斷演進(jìn)。


對(duì)模型來說,?? 的參數(shù)化就是預(yù)測(cè)

Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


對(duì)于視頻生成任務(wù),為了延長(zhǎng)視頻長(zhǎng)度或提升幀率,需要擴(kuò)散模型運(yùn)行多個(gè)上采樣步驟。這就需要基于第一個(gè)視頻 ??^?? 采樣第二個(gè)視頻 ??^?? 的能力,

Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

, 其中 ??^?? 可能是 ??^?? 的自回歸擴(kuò)展或是一個(gè)低幀率的視頻之中缺失的幀。


除了其自身對(duì)應(yīng)的有噪聲變量之外,??^?? 的采樣還需要基于 ??^??。Ho & Salimans 等人 2022 年的視頻擴(kuò)散模型(VDM)提出使用一種經(jīng)過調(diào)整的去噪模型來實(shí)現(xiàn)重構(gòu)引導(dǎo)方法,這樣就可以很好地以 ??^?? 為基礎(chǔ)實(shí)現(xiàn) ??^?? 的采樣:


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


其中  是 ??^?? 和 ??^?? 根據(jù)所提供的去噪模型的重構(gòu)。而 ??_?? 是一個(gè)加權(quán)因子,可以尋找一個(gè)較大的 ??_?? > 1 來提升采樣質(zhì)量。請(qǐng)注意,使用同樣的重建引導(dǎo)方法,也有可能基于低分辨率視頻來擴(kuò)展樣本,使之變成高分辨率樣本。


模型架構(gòu):3D U-Net 和 DiT


類似于文生圖擴(kuò)散模型,U-Net 和 Transformer 依然是常用的架構(gòu)選擇。谷歌基于 U-net 架構(gòu)開發(fā)了一系列擴(kuò)散視頻建模論文,OpenAI 近期的 Sora 模型則是利用了 Transformer 架構(gòu)。


VDM 采用了標(biāo)準(zhǔn)的擴(kuò)散模型設(shè)置,但對(duì)架構(gòu)進(jìn)行了一些修改,使之更適合視頻建模任務(wù)。它對(duì) 2D U-net 進(jìn)行了擴(kuò)展,使其能處理 3D 數(shù)據(jù),其中每個(gè)特征圖(feature map)都表示一個(gè) 4D 張量:幀數(shù) x 高度 x 寬度 x 通道數(shù)。這個(gè) 3D U-net 是在空間和時(shí)間上進(jìn)行分解,也就是說每一層都僅會(huì)操作空間或時(shí)間一個(gè)維度,而不會(huì)同時(shí)操作兩者。


  • 處理空間:原本和 2D U-net 中一樣的 2D 卷積層會(huì)被擴(kuò)展成僅針對(duì)空間的 3D 卷積,具體來說,就是 3x3 卷積變成 1x3x3 卷積。每一個(gè)空間注意力模塊依然是關(guān)注空間的注意力,其中第一個(gè)軸(frames)則被當(dāng)成批(batch)維度處理。
  • 處理時(shí)間:每個(gè)空間注意力模塊之后會(huì)添加一個(gè)時(shí)間注意力模塊。其關(guān)注的是第一個(gè)軸(frames)并將空間軸視為批維度。使用這種相對(duì)位置嵌入可以跟蹤幀的順序。這個(gè)時(shí)間注意力模塊可讓模型獲得很好的時(shí)間一致性。


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


圖 2:3D U-net 架構(gòu)。該網(wǎng)絡(luò)的輸入是有噪聲視頻 z_??、條件信息 c 和對(duì)數(shù)信噪比(log-SNR)λ_??。通道乘數(shù) M_1,...,M_?? 表示各層的通道數(shù)量。


Ho, et al. 在 2022 年提出的 Imagen Video 基于一組級(jí)聯(lián)的擴(kuò)散模型,其能提升視頻生成的質(zhì)量,并將輸出升級(jí)成 24 幀率的 1280x768 分辨率視頻。Imagen Video 架構(gòu)由以下組件構(gòu)成,總計(jì) 7 個(gè)擴(kuò)散模型。


  • 一個(gè)凍結(jié)的 T5 文本編碼器,用以提供文本嵌入作為條件輸入。
  • 一個(gè)基礎(chǔ)視頻擴(kuò)散模型。
  • 一組級(jí)聯(lián)的交織放置的空間和時(shí)間超分辨率擴(kuò)散模型,包含 3 個(gè) TSR(時(shí)間超分辨率)和 3 個(gè) SSR(空間超分辨率)組件。


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

圖 3:Imagen Video 的級(jí)聯(lián)式采樣流程。在實(shí)踐中,文本嵌入會(huì)被注入到所有組件中,而不只是基礎(chǔ)模型中。


基礎(chǔ)去噪模型使用共享的參數(shù)同時(shí)在所有幀上執(zhí)行空間操作,然后時(shí)間層將各幀的激活混合起來,以更好地實(shí)現(xiàn)時(shí)間一致性;事實(shí)證明這種方法的效果優(yōu)于幀自回歸方法。


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


圖 4:Imagen Video 擴(kuò)散模型中一個(gè)空間 - 時(shí)間可分離模塊的架構(gòu)。


SSR 和 TSR 模型都基于在通道方面連接了有噪聲數(shù)據(jù) ??_?? 的上采樣的輸入。SSR 是通過雙線性大小調(diào)整來上采樣,而 TSR 則是通過重復(fù)幀或填充空白幀來上采樣。


Imagen Video 還應(yīng)用了漸進(jìn)式蒸餾來加速采樣,每次蒸餾迭代都可以將所需的采樣步驟減少一半。在實(shí)驗(yàn)中,他們能夠?qū)⑺?7 個(gè)視頻擴(kuò)散模型蒸餾為每個(gè)模型僅 8 個(gè)采樣步驟,同時(shí)不會(huì)對(duì)感知質(zhì)量造成任何明顯損失。


為了更好地?cái)U(kuò)大模型規(guī)模,Sora 采用了 DiT(擴(kuò)散 Transformer)架構(gòu),其操作的是視頻和圖像隱代碼的時(shí)空塊(spacetime patch)。其會(huì)將視覺輸入表示成一個(gè)時(shí)空塊序列,并將這些時(shí)空塊用作 Transformer 輸入 token。


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


圖 5:Sora 是一個(gè)擴(kuò)散 Transformer 模型。


調(diào)整圖像模型來生成視頻


在擴(kuò)散視頻建模方面,另一種重要方法是通過插入時(shí)間層來「擴(kuò)增」預(yù)訓(xùn)練的文生圖擴(kuò)散模型,然后就可以選擇僅在視頻上對(duì)新的層進(jìn)行微調(diào)或完全避免進(jìn)行額外的訓(xùn)練。這個(gè)新模型會(huì)繼承文本 - 圖像對(duì)的先驗(yàn)知識(shí),由此可以幫助緩解對(duì)文本 - 視頻對(duì)數(shù)據(jù)的需求。


在視頻數(shù)據(jù)上進(jìn)行微調(diào)


Singer et al. 在 2022 年提出的 Make-A-Video 是在一個(gè)預(yù)訓(xùn)練擴(kuò)散圖像模型的基礎(chǔ)上擴(kuò)展一個(gè)時(shí)間維度,其包含三個(gè)關(guān)鍵組件:


1. 一個(gè)在文本 - 圖像對(duì)數(shù)據(jù)上訓(xùn)練的基礎(chǔ)文生圖模型。

2. 時(shí)空卷積和注意力層,使網(wǎng)絡(luò)覆蓋時(shí)間維度。

3. 一個(gè)幀插值網(wǎng)絡(luò),用于高幀率生成。


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


圖 6:Make-A-Video 工作流程示意圖。


最終的視頻推理方案的數(shù)學(xué)形式可以寫成這樣:


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


其中:


  • ?? 是輸入文本
  • Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

  • 是 BPE 編碼的文本
  • Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

  • 是 CLIP 文本編碼器
  • Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

  • P (.) 是先驗(yàn),給定文本嵌入 ??_?? 和 BPE 編碼的文本
  • Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

  • 生成圖像嵌入 ??_??:
  • Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

  • 這部分是在文本 - 圖像對(duì)數(shù)據(jù)上訓(xùn)練的,不會(huì)在視頻數(shù)據(jù)上進(jìn)行微調(diào)。
  • Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

  • 是時(shí)空解碼器,其能生成一系列的 16 幀視頻,其中每一幀都是低分辨率的 64x64 RGB 圖像
  • Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

  • Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

  • 是幀插值網(wǎng)絡(luò),可通過在生成的幀之間插值而有效提升幀率。這是一個(gè)經(jīng)過微調(diào)的模型,可用于為視頻上采樣任務(wù)預(yù)測(cè)被掩蔽的幀。
  • Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

  • 是空間和時(shí)空超分辨率模型,可分別將圖像分辨率提升到 256x256 和 768x768。
  • Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

  • 是最終生成的視頻。


時(shí)空超分辨率層包含偽 3D 卷積層和偽 3D 注意力層:


  • 偽 3D 卷積層:每個(gè)空間 2D 卷積層(由預(yù)訓(xùn)練圖像模型初始化)后面跟著一個(gè)時(shí)間 1D 層(由恒等函數(shù)初始化)。從概念上講,其中的 2D 卷積層首先生成多幀,然后這些幀會(huì)被調(diào)整為一段視頻。
  • 偽 3D 注意力層:在每個(gè)(預(yù)訓(xùn)練)空間注意力層之后堆疊一個(gè)時(shí)間注意力層,從而近似得到一個(gè)完整的時(shí)空注意力層。


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


圖 7:偽 3D 卷積(左)和注意力(右)層的工作方式。


它們可以表示成:


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


其中有輸入張量 ??∈?^{??×??×??×??×??}(對(duì)應(yīng)于批量大小、通道數(shù)、幀數(shù)、高度和寬度);

Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

的作用是交換時(shí)間和空間維度;flatten (.) 是一個(gè)矩陣算子,可將 ?? 轉(zhuǎn)換成 ??'∈?^{??×??×??×????},而 flatten?1(.) 的作用則相反。


訓(xùn)練時(shí),Make-A-Video 工作流程中的不同組件是分開訓(xùn)練的。


1. 解碼器 D^??、先驗(yàn) P 和兩個(gè)超分辨率組件

Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

首先單獨(dú)在圖像上訓(xùn)練,而不使用配對(duì)的文本。

2. 接下來添加新的時(shí)間層,其初始化為恒等函數(shù),然后在未標(biāo)注的視頻數(shù)據(jù)上進(jìn)行微調(diào)。


Wu et al. 在 2023 年提出的 Tune-A-Video 是對(duì)一個(gè)預(yù)訓(xùn)練圖像擴(kuò)散模型進(jìn)行擴(kuò)展,使之可以實(shí)現(xiàn)單樣本視頻微調(diào):給定一段包含 ?? 幀的視頻 ??={ ??_?? | ??=1,...,??},搭配上描述性的 prompt ??,任務(wù)目標(biāo)是基于經(jīng)過稍有編輯且相關(guān)的文本 prompt ??* 生成一段新視頻 ??*。舉個(gè)例子,?? = "A man is skiing" 可以擴(kuò)展成 ??* ="Spiderman is skiing on the beach"。Tune-A-Video 的設(shè)計(jì)目的是用于對(duì)象編輯、背景修改和風(fēng)格遷移。


除了擴(kuò)展 2D 卷積層之外,Tune-A-Video 的 U-Net 架構(gòu)還整合了 ST-Attention(時(shí)空注意力)模塊,可通過查詢?cè)谥皫械南嚓P(guān)位置來實(shí)現(xiàn)時(shí)間一致性。給定幀 ??_??、前一幀 ??_{??-1} 和第一幀 ??_1 的隱含特征(它們被投射成查詢 ??、鍵 ?? 和值 ??),ST-Attention 的定義是:


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

圖 8:Tune-A-Video 架構(gòu)概況。在采樣階段之前,它首先在單個(gè)視頻上運(yùn)行一個(gè)輕量加權(quán)的微調(diào)階段。請(qǐng)注意整個(gè)時(shí)間自注意力(T-Attn)層都會(huì)得到微調(diào),因?yàn)樗鼈兪切录尤氲模谖⒄{(diào)階段,ST-Attn 和 Cross-Attn 中只有查詢投射會(huì)被更新,以保留先驗(yàn)的文生圖知識(shí)。ST-Attn 能提升時(shí)空一致性,Cross-Attn 能優(yōu)化文本 - 視頻的對(duì)齊。


Esser et al. 在 2023 年提出的 Gen-1 模型(Runway)針對(duì)的任務(wù)是根據(jù)文本輸入編輯給定視頻。它在考慮生成條件時(shí)會(huì)將視頻的結(jié)構(gòu)和內(nèi)容分開處理:p (?? | ??,c)。但是,要將這兩方面清楚地分開實(shí)非易事。


  • 內(nèi)容 ?? 是指視頻的外觀和語義,其可從文本采樣來進(jìn)行條件化編輯。視頻幀的 CLIP 嵌入能很好地表示內(nèi)容,并且能在很大程度上與結(jié)構(gòu)特征保持正交。
  • 結(jié)構(gòu) ?? 描述了幾何性質(zhì)和動(dòng)態(tài)情況,包括形狀、位置、物體的時(shí)間變化情況,?? 是從輸入視頻采樣的。可以使用深度估計(jì)或其它針對(duì)特定任務(wù)的輔助信息(比如用于人類視頻合成的人體姿勢(shì)或人臉標(biāo)識(shí)信息)。


Gen-1 中的架構(gòu)變化相當(dāng)標(biāo)準(zhǔn),即在其殘差模塊中的每個(gè) 2D 空間卷積層之后添加 1D 時(shí)間卷積層,在其注意力模塊中的每個(gè) 2D 空間注意力模塊之后添加 1D 時(shí)間注意力模塊。訓(xùn)練期間,結(jié)構(gòu)變量 ?? 會(huì)與擴(kuò)散隱變量 ?? 連接起來,其中內(nèi)容變量 ?? 會(huì)在交叉注意力層中提供。在推理時(shí)間,會(huì)通過一個(gè)先驗(yàn)來轉(zhuǎn)換 CLIP 嵌入 —— 將其從 CLIP 文本嵌入轉(zhuǎn)換成 CLIP 圖像嵌入。


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


圖 9:Gen-1 模型的訓(xùn)練流程概況。


Blattmann et al. 在 2023 年提出的 Video LDM 首先是訓(xùn)練一個(gè) LDM(隱擴(kuò)散模型)圖像生成器。然后微調(diào)該模型,使之得到添加了時(shí)間維度的視頻。這個(gè)微調(diào)過程僅用于那些在編碼后的圖像序列上新增加的時(shí)間層。Video LDM 中的時(shí)間層

Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

(見圖 10)會(huì)與已有的空間層

Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

交錯(cuò)放置,而這些空間層在微調(diào)過程中會(huì)保持凍結(jié)。也就是說,這里僅微調(diào)新參數(shù) ??,而不會(huì)微調(diào)預(yù)訓(xùn)練的圖像骨干模型參數(shù) ??。Video LDM 的工作流程是首先生成低幀率的關(guān)鍵幀,然后通過 2 步隱含幀插值過程來提升幀率。


長(zhǎng)度為 ?? 的輸入序列會(huì)被解釋成用于基礎(chǔ)圖像模型 ?? 的一批圖像(即 ?????),然后再調(diào)整為用于

Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

時(shí)間層的視頻格式。其中有一個(gè) skip 連接通過一個(gè)學(xué)習(xí)到的融合參數(shù) ?? 導(dǎo)向了時(shí)間層輸出 ??' 和空間輸出 ?? 的組合。在實(shí)踐中,實(shí)現(xiàn)的時(shí)間混合層有兩種:(1) 時(shí)間注意力,(2) 基于 3D 卷積的殘差模塊。


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

圖 10:一個(gè)用于圖像合成的預(yù)訓(xùn)練 LDM 被擴(kuò)展成一個(gè)視頻生成器。B、??、??、??、?? 分別是批量大小、序列長(zhǎng)度、通道數(shù)、高度和寬度。??_S 是一個(gè)可選的條件 / 上下文幀。


但是,LDM 的預(yù)訓(xùn)練自動(dòng)編碼器依然還有問題:它只能看見圖像,永遠(yuǎn)看不見視頻。直接使用它來生成視頻會(huì)產(chǎn)生閃動(dòng)的偽影,這樣的時(shí)間一致性就很差。因此 Video LDM 向解碼器添加了額外的時(shí)間層,并使用一個(gè)用 3D 卷積構(gòu)建的逐塊時(shí)間判別器在視頻數(shù)據(jù)進(jìn)行微調(diào),同時(shí)編碼器保持不變,這樣就依然還能復(fù)用預(yù)訓(xùn)練的 LDM。在時(shí)間解碼器微調(diào)期間,凍結(jié)的編碼器會(huì)獨(dú)立地處理視頻中每一幀,并使用一個(gè)視頻感知型判別器強(qiáng)制在幀之間實(shí)現(xiàn)在時(shí)間上一致的重建。


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


圖 11:視頻隱擴(kuò)散模型中自動(dòng)編碼器的訓(xùn)練工作流程。其中編碼器的微調(diào)目標(biāo)是通過新的跨幀判別器獲得時(shí)間一致性,而編碼器保持不變。


類似于 Video LDM,Blattmann et al. 在 2023 年提出的 Stable Video Diffusion(SVD)的架構(gòu)設(shè)計(jì)也是基于 LDM,其中每一個(gè)空間卷積和注意力層之后都插入時(shí)間層,但 SVD 是在整個(gè)模型層面上執(zhí)行微調(diào)。訓(xùn)練視頻 LDM 分為三個(gè)階段:


1. 文生圖預(yù)訓(xùn)練很重要,有助于提升質(zhì)量以及遵從 prompt 的能力。

2. 將視頻預(yù)訓(xùn)練分開是有利的,理想情況下應(yīng)當(dāng)在更大規(guī)模的經(jīng)過整編的數(shù)據(jù)集上進(jìn)行。

3. 使用一段更小的、高視覺保真度的預(yù)先標(biāo)注了字幕的視頻進(jìn)行高質(zhì)量視頻微調(diào)。


SVD 專門強(qiáng)調(diào)了數(shù)據(jù)集整編對(duì)模型性能的關(guān)鍵作用。他們使用了一個(gè)剪輯檢測(cè)流程來從每段視頻獲得更多剪輯,然后對(duì)其使用三個(gè)不同的字幕標(biāo)注器模型:(1) 用于中間幀的 CoCa,(2) 用于視頻字幕的 V-BLIP,(3) 基于前兩個(gè)標(biāo)注使用 LLM 來進(jìn)行標(biāo)注。然后他們還能繼續(xù)提升視頻數(shù)據(jù)集,其做法包括移除運(yùn)動(dòng)更少的視頻片段(通過以 2 fps 速度計(jì)算低光流分?jǐn)?shù)進(jìn)行過濾)、清除過多的文本(使用光學(xué)字符識(shí)別來識(shí)別具有大量文本的視頻)、清除看起來不夠美的視頻(使用 CLIP 嵌入標(biāo)注每段視頻的第一幀、中間幀和最后幀并計(jì)算美學(xué)分?jǐn)?shù)和文本 - 圖像相似度)。實(shí)驗(yàn)表明,使用經(jīng)過過濾的更高質(zhì)量的數(shù)據(jù)集能得到更好的模型質(zhì)量,即便這個(gè)數(shù)據(jù)集要小得多。

對(duì)于首先生成遠(yuǎn)距離關(guān)鍵幀然后再使用時(shí)間超分辨率進(jìn)行插值的方法,其中的關(guān)鍵挑戰(zhàn)是如何維持高質(zhì)量的時(shí)間一致性。Bar-Tal et al. 在 2024 年提出的 Lumiere 則是采用了一種時(shí)空 U-Net(STUNet)架構(gòu),其可在單次通過中一次性生成整段時(shí)間上持續(xù)的視頻,這樣就無需依賴 TSR(時(shí)間超分辨率)組件了。STUNet 會(huì)在時(shí)間和空間維度上對(duì)視頻進(jìn)行下采樣,因此會(huì)在一個(gè)緊湊的時(shí)間 - 空間隱空間內(nèi)具備很高的計(jì)算成本。


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


圖 12:Lumiere 無需 TSR(時(shí)間超分辨率)模型。由于內(nèi)存限制,經(jīng)過擴(kuò)展的 SSR 網(wǎng)絡(luò)可以僅使用視頻的短片段,因此 SSR 模型可以使用較短但重疊的視頻片段集。


STUNet 在預(yù)訓(xùn)練文生圖 U-Net 上擴(kuò)展之后能夠同時(shí)在時(shí)間和空間維度上對(duì)視頻進(jìn)行下采樣和上采樣。基于卷積的模塊由預(yù)訓(xùn)練的文生圖層構(gòu)成,之后是分解的時(shí)空卷積。而在最粗粒度 U-Net 層面上的基于注意力的模塊包含這個(gè)預(yù)訓(xùn)練文生圖模塊,之后是時(shí)間注意力。只有新添加的層需要進(jìn)一步訓(xùn)練。


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

圖 13:架構(gòu)示意圖:(a) 時(shí)空 U-Net(STUNet)、(b) 基于卷積的模塊、(c) 基于注意力的模塊。


無訓(xùn)練適應(yīng)


也有可能不使用任何訓(xùn)練就讓預(yù)訓(xùn)練的文生圖模型輸出視頻,這多少有點(diǎn)讓人驚訝。


如果我們直接簡(jiǎn)單地隨機(jī)采樣一個(gè)隱含代碼的序列,然后用解碼出來的對(duì)應(yīng)圖像構(gòu)建一段視頻,那么無法保證物體和語義在時(shí)間上的一致性。Khachatryan et al. 在 2023 年提出的 Text2Video-Zero 可實(shí)現(xiàn)零樣本無訓(xùn)練的視頻生成,其做法是讓預(yù)訓(xùn)練的圖像擴(kuò)散模型具備用于時(shí)間一致性的兩個(gè)關(guān)鍵機(jī)制。


1. 采樣具有運(yùn)動(dòng)動(dòng)態(tài)的隱含代碼序列,以保證全局場(chǎng)景和背景的時(shí)間一致性。

2. 使用一個(gè)新的跨幀注意力(每一幀在第一幀上的注意力)重新編程幀層面的自注意力,以保證前景事物的上下文、外觀和身份信息的一致性。


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


圖 14:Text2Video-Zero 工作流程示意圖。


下面用數(shù)學(xué)描述這個(gè)采樣帶有運(yùn)動(dòng)信息的隱含變量序列的過程:


1. 定義一個(gè)方向 ??=(??_??, ??_??)∈?2 來控制全局場(chǎng)景和相機(jī)運(yùn)動(dòng);默認(rèn)情況下,設(shè)定 ??=(1, 1)。再定義一個(gè)超參數(shù) λ>0,控制全局運(yùn)動(dòng)的數(shù)量。

2. 首先隨機(jī)采樣第一幀的隱含代碼

Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

3. 使用預(yù)訓(xùn)練的圖像擴(kuò)散模型(例如論文中的 Stable Diffusion(SD)模型)執(zhí)行 Δ??≥0 DDIM 后向更新步驟,得到相應(yīng)的隱含代碼

Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

,其中 ??'=??-Δ??。

4. 對(duì)于該隱含代碼序列中的每一幀,使用一個(gè)扭曲操作(其定義為 ??^??=λ(??-1)?? )執(zhí)行相應(yīng)的運(yùn)動(dòng)平移,得到

Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

5. 最后對(duì)所有

Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

使用 DDIM 前向步驟,得到

Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


此外,Text2Video-Zero 還換掉了預(yù)訓(xùn)練 SD 模型中的自注意力層,并代之以一種參考第一幀的新型跨幀注意力機(jī)制。其目標(biāo)是在生成的視頻結(jié)果中保留前景事物的上下文、外觀和身份信息。


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


另外還可以選擇使用背景掩碼,以讓視頻背景過渡更平滑并進(jìn)一步提升背景一致性。假設(shè)我們已經(jīng)使用某種方法得到了第 ?? 幀相應(yīng)的前景掩碼 ??_??,然后背景平滑操作可根據(jù)以下背景矩陣將實(shí)際隱含代碼和擴(kuò)散步驟 ?? 扭曲過的隱含代碼融合起來:


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)


其中

Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

是實(shí)際的隱含代碼,

Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

是在背景上扭曲的隱含代碼,?? 是一個(gè)超參數(shù),該論文的實(shí)驗(yàn)中設(shè)定 ??=0.6。


Text2Video-Zero 可與 ControlNet 結(jié)合起來,其中在每個(gè)擴(kuò)散時(shí)間步驟 ??=??,...,1,每一幀都會(huì)在

Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

(??=1,...,??)上使用 ControlNet 預(yù)訓(xùn)練的副本分支,并將該 ControlNet 分支的輸出添加到主 U-Net 的 skip 連接。


Zhang et al. 在 2023 年提出的 ControlVideo 的目標(biāo)是基于文本 prompt 和運(yùn)動(dòng)序列(例如深度或邊緣圖)

Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

生成視頻。該模型是基于 ControlNet 調(diào)整得到的,其中新增了三個(gè)機(jī)制:


1. 跨幀注意力:在自注意力模塊中添加完整的跨幀交互。它引入了所有幀之間的交互,其做法是將所有時(shí)間步驟的隱含幀映射到 ??、??、?? 矩陣,這不同于 Text2Video-Zero(其是讓所有幀都關(guān)注第一幀)。


2. 交替式幀平滑器(interleaved-frame smoother)機(jī)制是通過在交替幀上采用幀插值來減少閃爍效應(yīng)。在每個(gè)時(shí)間步驟 ??,該平滑器會(huì)插值偶數(shù)或奇數(shù)幀,以平滑其相應(yīng)的三幀剪輯。請(qǐng)注意,平滑步驟后幀數(shù)會(huì)隨時(shí)間推移而減少。


3. 分層式采樣器能在內(nèi)存限制下保證長(zhǎng)視頻的時(shí)間一致性。一段長(zhǎng)視頻會(huì)被分割成多段短視頻,其中每一段短視頻都會(huì)選出一幀關(guān)鍵幀。該模型會(huì)使用完全跨幀注意力預(yù)生成這些關(guān)鍵幀以實(shí)現(xiàn)長(zhǎng)期一致性,而每段相應(yīng)的短視頻都基于這些關(guān)鍵幀按順序合成。


Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計(jì)視頻生成擴(kuò)散模型-AI.x社區(qū)

圖 15:ControlVideo 概覽。

本文轉(zhuǎn)自 機(jī)器之心 ,作者:機(jī)器之心


原文鏈接:??https://mp.weixin.qq.com/s/C8JoiTHwW7T-g66EBPcfDg??

收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦
主站蜘蛛池模板: 精品亚洲一区二区三区四区五区 | 中文字幕一区二区三区乱码在线 | 久久精品二区 | 日韩精品在线一区 | 亚洲精品日韩在线 | 草久久| 久久国产精品偷 | 狠狠干狠狠操 | 欧美日韩视频在线 | 国产一区二区三区色淫影院 | 91精品免费| 欧美色综合一区二区三区 | 韩国成人在线视频 | 看真人视频一级毛片 | 中文字幕在线观看一区二区 | 日韩日b视频| 91久久 | 精品国产欧美一区二区 | 精品av| 亚洲精品1区 | 国产在线观看一区二区三区 | 日韩激情视频一区 | 老牛嫩草一区二区三区av | 成人性视频免费网站 | 中文字幕福利 | cao在线| 亚洲成人在线免费 | 久久一区二区av | 亚洲一区二区三区久久久 | 天堂成人国产精品一区 | 日韩有码在线观看 | 日韩一二三| 久久久片| 国产999精品久久久久久 | 在线观看中文字幕 | 天天操夜夜操 | 久久精品一区 | 日本久久久一区二区三区 | 日韩色视频 | 91天堂网| 久久精品久久久久久 |