Sora之后,OpenAI Lilian Weng親自撰文教你從頭設(shè)計視頻生成擴(kuò)散模型
過去幾年來,擴(kuò)散模型強(qiáng)大的圖像合成能力已經(jīng)得到充分證明。研究社區(qū)現(xiàn)在正在攻克一個更困難的任務(wù):視頻生成。近日,OpenAI 安全系統(tǒng)(Safety Systems)負(fù)責(zé)人 Lilian Weng 寫了一篇關(guān)于視頻生成的擴(kuò)散模型的博客。
Lilian Weng
機(jī)器之心對這篇博客進(jìn)行了不改變原意的編譯、整理,以下是博客原文:
視頻生成任務(wù)本身是圖像合成的超集,因為圖像就是單幀視頻。視頻合成的難度要大得多,原因是:
1. 視頻合成還需要不同幀之間保持時間一致性,很自然,這需要將更多世界知識編碼到模型之中。
2. 相比于文本或圖像,收集大量高質(zhì)量、高維度的視頻數(shù)據(jù)要更為困難,更罔論配對的文本 - 視頻數(shù)據(jù)了。
如果你想了解擴(kuò)散模型在圖像生成方面的應(yīng)用,可參讀本文作者 Lilian Weng 之前發(fā)布的博文《What are Diffusion Models?》鏈接:https://lilianweng.github.io/posts/2021-07-11-diffusion-models/
從頭建模視頻生成
首先,我們先來看看如何從頭設(shè)計和訓(xùn)練擴(kuò)散視頻模型,也就是說不使用已經(jīng)預(yù)訓(xùn)練好的圖像生成器。
參數(shù)化和采樣
這里使用的變量定義與之前那篇文章稍有不同,但數(shù)學(xué)形式是一致的。令 ??~??_real 是從該真實數(shù)據(jù)分布采樣的一個數(shù)據(jù)點?,F(xiàn)在,在時間中添加少量高斯噪聲,創(chuàng)建出 ?? 的一個有噪聲變體序列,記為:{??_?? | ?? = 1..., ??},其中噪聲隨 ?? 的增加而增長,而最后的 ??(??_??)~??(??,??)。這個添加噪聲的前向過程是一個高斯過程。令 ??_?? 和 ??_?? 為這個高斯過程的可微噪聲調(diào)度(differentiable noise schedule):
為了表示 ??(??_??|??_??),其中 0≤??<??≤??,有:
令對數(shù)信噪比為
,則可將 DDIM 更新表示為:
Salimans & Ho (2022) 的論文《Progressive Distillation for Fast Sampling of Diffusion Models》為這里提出了一個特殊的 ?? 預(yù)測參數(shù):
。研究表明,相比于 ?? 參數(shù),?? 參數(shù)有助于避免視頻生成中出現(xiàn)顏色變化問題。
?? 的參數(shù)化是通過角坐標(biāo)中的技巧導(dǎo)出的。首先,定義 ??_??=arctan (??_??/??_??),由此可得到 ??_??=cos ??, ??_??=sin ??, ??_??=cos ????+sin ????。??_?? 的速度可以寫成:
然后可以推導(dǎo)出:
DDIM 更新規(guī)則就可以據(jù)此更新:
圖 1:以角坐標(biāo)形式展示擴(kuò)散更新步驟的工作方式,其中 DDIM 通過讓 z_{??_??} 沿
的方向移動而使其不斷演進(jìn)。
對模型來說,?? 的參數(shù)化就是預(yù)測
對于視頻生成任務(wù),為了延長視頻長度或提升幀率,需要擴(kuò)散模型運(yùn)行多個上采樣步驟。這就需要基于第一個視頻 ??^?? 采樣第二個視頻 ??^?? 的能力,
, 其中 ??^?? 可能是 ??^?? 的自回歸擴(kuò)展或是一個低幀率的視頻之中缺失的幀。
除了其自身對應(yīng)的有噪聲變量之外,??^?? 的采樣還需要基于 ??^??。Ho & Salimans 等人 2022 年的視頻擴(kuò)散模型(VDM)提出使用一種經(jīng)過調(diào)整的去噪模型來實現(xiàn)重構(gòu)引導(dǎo)方法,這樣就可以很好地以 ??^?? 為基礎(chǔ)實現(xiàn) ??^?? 的采樣:
其中 是 ??^?? 和 ??^?? 根據(jù)所提供的去噪模型的重構(gòu)。而 ??_?? 是一個加權(quán)因子,可以尋找一個較大的 ??_?? > 1 來提升采樣質(zhì)量。請注意,使用同樣的重建引導(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è)置,但對架構(gòu)進(jìn)行了一些修改,使之更適合視頻建模任務(wù)。它對 2D U-net 進(jìn)行了擴(kuò)展,使其能處理 3D 數(shù)據(jù),其中每個特征圖(feature map)都表示一個 4D 張量:幀數(shù) x 高度 x 寬度 x 通道數(shù)。這個 3D U-net 是在空間和時間上進(jìn)行分解,也就是說每一層都僅會操作空間或時間一個維度,而不會同時操作兩者。
- 處理空間:原本和 2D U-net 中一樣的 2D 卷積層會被擴(kuò)展成僅針對空間的 3D 卷積,具體來說,就是 3x3 卷積變成 1x3x3 卷積。每一個空間注意力模塊依然是關(guān)注空間的注意力,其中第一個軸(frames)則被當(dāng)成批(batch)維度處理。
- 處理時間:每個空間注意力模塊之后會添加一個時間注意力模塊。其關(guān)注的是第一個軸(frames)并將空間軸視為批維度。使用這種相對位置嵌入可以跟蹤幀的順序。這個時間注意力模塊可讓模型獲得很好的時間一致性。
圖 2:3D U-net 架構(gòu)。該網(wǎng)絡(luò)的輸入是有噪聲視頻 z_??、條件信息 c 和對數(shù)信噪比(log-SNR)λ_??。通道乘數(shù) M_1,...,M_?? 表示各層的通道數(shù)量。
Ho, et al. 在 2022 年提出的 Imagen Video 基于一組級聯(lián)的擴(kuò)散模型,其能提升視頻生成的質(zhì)量,并將輸出升級成 24 幀率的 1280x768 分辨率視頻。Imagen Video 架構(gòu)由以下組件構(gòu)成,總計 7 個擴(kuò)散模型。
- 一個凍結(jié)的 T5 文本編碼器,用以提供文本嵌入作為條件輸入。
- 一個基礎(chǔ)視頻擴(kuò)散模型。
- 一組級聯(lián)的交織放置的空間和時間超分辨率擴(kuò)散模型,包含 3 個 TSR(時間超分辨率)和 3 個 SSR(空間超分辨率)組件。
圖 3:Imagen Video 的級聯(lián)式采樣流程。在實踐中,文本嵌入會被注入到所有組件中,而不只是基礎(chǔ)模型中。
基礎(chǔ)去噪模型使用共享的參數(shù)同時在所有幀上執(zhí)行空間操作,然后時間層將各幀的激活混合起來,以更好地實現(xiàn)時間一致性;事實證明這種方法的效果優(yōu)于幀自回歸方法。
圖 4:Imagen Video 擴(kuò)散模型中一個空間 - 時間可分離模塊的架構(gòu)。
SSR 和 TSR 模型都基于在通道方面連接了有噪聲數(shù)據(jù) ??_?? 的上采樣的輸入。SSR 是通過雙線性大小調(diào)整來上采樣,而 TSR 則是通過重復(fù)幀或填充空白幀來上采樣。
Imagen Video 還應(yīng)用了漸進(jìn)式蒸餾來加速采樣,每次蒸餾迭代都可以將所需的采樣步驟減少一半。在實驗中,他們能夠?qū)⑺?7 個視頻擴(kuò)散模型蒸餾為每個模型僅 8 個采樣步驟,同時不會對感知質(zhì)量造成任何明顯損失。
為了更好地擴(kuò)大模型規(guī)模,Sora 采用了 DiT(擴(kuò)散 Transformer)架構(gòu),其操作的是視頻和圖像隱代碼的時空塊(spacetime patch)。其會將視覺輸入表示成一個時空塊序列,并將這些時空塊用作 Transformer 輸入 token。
圖 5:Sora 是一個擴(kuò)散 Transformer 模型。
調(diào)整圖像模型來生成視頻
在擴(kuò)散視頻建模方面,另一種重要方法是通過插入時間層來「擴(kuò)增」預(yù)訓(xùn)練的文生圖擴(kuò)散模型,然后就可以選擇僅在視頻上對新的層進(jìn)行微調(diào)或完全避免進(jìn)行額外的訓(xùn)練。這個新模型會繼承文本 - 圖像對的先驗知識,由此可以幫助緩解對文本 - 視頻對數(shù)據(jù)的需求。
在視頻數(shù)據(jù)上進(jìn)行微調(diào)
Singer et al. 在 2022 年提出的 Make-A-Video 是在一個預(yù)訓(xùn)練擴(kuò)散圖像模型的基礎(chǔ)上擴(kuò)展一個時間維度,其包含三個關(guān)鍵組件:
1. 一個在文本 - 圖像對數(shù)據(jù)上訓(xùn)練的基礎(chǔ)文生圖模型。
2. 時空卷積和注意力層,使網(wǎng)絡(luò)覆蓋時間維度。
3. 一個幀插值網(wǎng)絡(luò),用于高幀率生成。
圖 6:Make-A-Video 工作流程示意圖。
最終的視頻推理方案的數(shù)學(xué)形式可以寫成這樣:
其中:
- ?? 是輸入文本
- 是 BPE 編碼的文本
- 是 CLIP 文本編碼器
- P (.) 是先驗,給定文本嵌入 ??_?? 和 BPE 編碼的文本
- 生成圖像嵌入 ??_??:
- 這部分是在文本 - 圖像對數(shù)據(jù)上訓(xùn)練的,不會在視頻數(shù)據(jù)上進(jìn)行微調(diào)。
- 是時空解碼器,其能生成一系列的 16 幀視頻,其中每一幀都是低分辨率的 64x64 RGB 圖像
- 。
- 是幀插值網(wǎng)絡(luò),可通過在生成的幀之間插值而有效提升幀率。這是一個經(jīng)過微調(diào)的模型,可用于為視頻上采樣任務(wù)預(yù)測被掩蔽的幀。
- 是空間和時空超分辨率模型,可分別將圖像分辨率提升到 256x256 和 768x768。
- 是最終生成的視頻。
時空超分辨率層包含偽 3D 卷積層和偽 3D 注意力層:
- 偽 3D 卷積層:每個空間 2D 卷積層(由預(yù)訓(xùn)練圖像模型初始化)后面跟著一個時間 1D 層(由恒等函數(shù)初始化)。從概念上講,其中的 2D 卷積層首先生成多幀,然后這些幀會被調(diào)整為一段視頻。
- 偽 3D 注意力層:在每個(預(yù)訓(xùn)練)空間注意力層之后堆疊一個時間注意力層,從而近似得到一個完整的時空注意力層。
圖 7:偽 3D 卷積(左)和注意力(右)層的工作方式。
它們可以表示成:
其中有輸入張量 ??∈?^{??×??×??×??×??}(對應(yīng)于批量大小、通道數(shù)、幀數(shù)、高度和寬度);
的作用是交換時間和空間維度;flatten (.) 是一個矩陣算子,可將 ?? 轉(zhuǎn)換成 ??'∈?^{??×??×??×????},而 flatten?1(.) 的作用則相反。
訓(xùn)練時,Make-A-Video 工作流程中的不同組件是分開訓(xùn)練的。
1. 解碼器 D^??、先驗 P 和兩個超分辨率組件
首先單獨在圖像上訓(xùn)練,而不使用配對的文本。
2. 接下來添加新的時間層,其初始化為恒等函數(shù),然后在未標(biāo)注的視頻數(shù)據(jù)上進(jìn)行微調(diào)。
Wu et al. 在 2023 年提出的 Tune-A-Video 是對一個預(yù)訓(xùn)練圖像擴(kuò)散模型進(jìn)行擴(kuò)展,使之可以實現(xiàn)單樣本視頻微調(diào):給定一段包含 ?? 幀的視頻 ??={ ??_?? | ??=1,...,??},搭配上描述性的 prompt ??,任務(wù)目標(biāo)是基于經(jīng)過稍有編輯且相關(guān)的文本 prompt ??* 生成一段新視頻 ??*。舉個例子,?? = "A man is skiing" 可以擴(kuò)展成 ??* ="Spiderman is skiing on the beach"。Tune-A-Video 的設(shè)計目的是用于對象編輯、背景修改和風(fēng)格遷移。
除了擴(kuò)展 2D 卷積層之外,Tune-A-Video 的 U-Net 架構(gòu)還整合了 ST-Attention(時空注意力)模塊,可通過查詢在之前幀中的相關(guān)位置來實現(xiàn)時間一致性。給定幀 ??_??、前一幀 ??_{??-1} 和第一幀 ??_1 的隱含特征(它們被投射成查詢 ??、鍵 ?? 和值 ??),ST-Attention 的定義是:
圖 8:Tune-A-Video 架構(gòu)概況。在采樣階段之前,它首先在單個視頻上運(yùn)行一個輕量加權(quán)的微調(diào)階段。請注意整個時間自注意力(T-Attn)層都會得到微調(diào),因為它們是新加入的,但在微調(diào)階段,ST-Attn 和 Cross-Attn 中只有查詢投射會被更新,以保留先驗的文生圖知識。ST-Attn 能提升時空一致性,Cross-Attn 能優(yōu)化文本 - 視頻的對齊。
Esser et al. 在 2023 年提出的 Gen-1 模型(Runway)針對的任務(wù)是根據(jù)文本輸入編輯給定視頻。它在考慮生成條件時會將視頻的結(jié)構(gòu)和內(nèi)容分開處理:p (?? | ??,c)。但是,要將這兩方面清楚地分開實非易事。
- 內(nèi)容 ?? 是指視頻的外觀和語義,其可從文本采樣來進(jìn)行條件化編輯。視頻幀的 CLIP 嵌入能很好地表示內(nèi)容,并且能在很大程度上與結(jié)構(gòu)特征保持正交。
- 結(jié)構(gòu) ?? 描述了幾何性質(zhì)和動態(tài)情況,包括形狀、位置、物體的時間變化情況,?? 是從輸入視頻采樣的??梢允褂蒙疃裙烙嫽蚱渌槍μ囟ㄈ蝿?wù)的輔助信息(比如用于人類視頻合成的人體姿勢或人臉標(biāo)識信息)。
Gen-1 中的架構(gòu)變化相當(dāng)標(biāo)準(zhǔn),即在其殘差模塊中的每個 2D 空間卷積層之后添加 1D 時間卷積層,在其注意力模塊中的每個 2D 空間注意力模塊之后添加 1D 時間注意力模塊。訓(xùn)練期間,結(jié)構(gòu)變量 ?? 會與擴(kuò)散隱變量 ?? 連接起來,其中內(nèi)容變量 ?? 會在交叉注意力層中提供。在推理時間,會通過一個先驗來轉(zhuǎn)換 CLIP 嵌入 —— 將其從 CLIP 文本嵌入轉(zhuǎn)換成 CLIP 圖像嵌入。
圖 9:Gen-1 模型的訓(xùn)練流程概況。
Blattmann et al. 在 2023 年提出的 Video LDM 首先是訓(xùn)練一個 LDM(隱擴(kuò)散模型)圖像生成器。然后微調(diào)該模型,使之得到添加了時間維度的視頻。這個微調(diào)過程僅用于那些在編碼后的圖像序列上新增加的時間層。Video LDM 中的時間層
(見圖 10)會與已有的空間層
交錯放置,而這些空間層在微調(diào)過程中會保持凍結(jié)。也就是說,這里僅微調(diào)新參數(shù) ??,而不會微調(diào)預(yù)訓(xùn)練的圖像骨干模型參數(shù) ??。Video LDM 的工作流程是首先生成低幀率的關(guān)鍵幀,然后通過 2 步隱含幀插值過程來提升幀率。
長度為 ?? 的輸入序列會被解釋成用于基礎(chǔ)圖像模型 ?? 的一批圖像(即 ?????),然后再調(diào)整為用于
時間層的視頻格式。其中有一個 skip 連接通過一個學(xué)習(xí)到的融合參數(shù) ?? 導(dǎo)向了時間層輸出 ??' 和空間輸出 ?? 的組合。在實踐中,實現(xiàn)的時間混合層有兩種:(1) 時間注意力,(2) 基于 3D 卷積的殘差模塊。
圖 10:一個用于圖像合成的預(yù)訓(xùn)練 LDM 被擴(kuò)展成一個視頻生成器。B、??、??、??、?? 分別是批量大小、序列長度、通道數(shù)、高度和寬度。??_S 是一個可選的條件 / 上下文幀。
但是,LDM 的預(yù)訓(xùn)練自動編碼器依然還有問題:它只能看見圖像,永遠(yuǎn)看不見視頻。直接使用它來生成視頻會產(chǎn)生閃動的偽影,這樣的時間一致性就很差。因此 Video LDM 向解碼器添加了額外的時間層,并使用一個用 3D 卷積構(gòu)建的逐塊時間判別器在視頻數(shù)據(jù)進(jìn)行微調(diào),同時編碼器保持不變,這樣就依然還能復(fù)用預(yù)訓(xùn)練的 LDM。在時間解碼器微調(diào)期間,凍結(jié)的編碼器會獨立地處理視頻中每一幀,并使用一個視頻感知型判別器強(qiáng)制在幀之間實現(xiàn)在時間上一致的重建。
圖 11:視頻隱擴(kuò)散模型中自動編碼器的訓(xùn)練工作流程。其中編碼器的微調(diào)目標(biāo)是通過新的跨幀判別器獲得時間一致性,而編碼器保持不變。
類似于 Video LDM,Blattmann et al. 在 2023 年提出的 Stable Video Diffusion(SVD)的架構(gòu)設(shè)計也是基于 LDM,其中每一個空間卷積和注意力層之后都插入時間層,但 SVD 是在整個模型層面上執(zhí)行微調(diào)。訓(xùn)練視頻 LDM 分為三個階段:
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ù)集整編對模型性能的關(guān)鍵作用。他們使用了一個剪輯檢測流程來從每段視頻獲得更多剪輯,然后對其使用三個不同的字幕標(biāo)注器模型:(1) 用于中間幀的 CoCa,(2) 用于視頻字幕的 V-BLIP,(3) 基于前兩個標(biāo)注使用 LLM 來進(jìn)行標(biāo)注。然后他們還能繼續(xù)提升視頻數(shù)據(jù)集,其做法包括移除運(yùn)動更少的視頻片段(通過以 2 fps 速度計算低光流分?jǐn)?shù)進(jìn)行過濾)、清除過多的文本(使用光學(xué)字符識別來識別具有大量文本的視頻)、清除看起來不夠美的視頻(使用 CLIP 嵌入標(biāo)注每段視頻的第一幀、中間幀和最后幀并計算美學(xué)分?jǐn)?shù)和文本 - 圖像相似度)。實驗表明,使用經(jīng)過過濾的更高質(zhì)量的數(shù)據(jù)集能得到更好的模型質(zhì)量,即便這個數(shù)據(jù)集要小得多。
對于首先生成遠(yuǎn)距離關(guān)鍵幀然后再使用時間超分辨率進(jìn)行插值的方法,其中的關(guān)鍵挑戰(zhàn)是如何維持高質(zhì)量的時間一致性。Bar-Tal et al. 在 2024 年提出的 Lumiere 則是采用了一種時空 U-Net(STUNet)架構(gòu),其可在單次通過中一次性生成整段時間上持續(xù)的視頻,這樣就無需依賴 TSR(時間超分辨率)組件了。STUNet 會在時間和空間維度上對視頻進(jìn)行下采樣,因此會在一個緊湊的時間 - 空間隱空間內(nèi)具備很高的計算成本。
圖 12:Lumiere 無需 TSR(時間超分辨率)模型。由于內(nèi)存限制,經(jīng)過擴(kuò)展的 SSR 網(wǎng)絡(luò)可以僅使用視頻的短片段,因此 SSR 模型可以使用較短但重疊的視頻片段集。
STUNet 在預(yù)訓(xùn)練文生圖 U-Net 上擴(kuò)展之后能夠同時在時間和空間維度上對視頻進(jìn)行下采樣和上采樣。基于卷積的模塊由預(yù)訓(xùn)練的文生圖層構(gòu)成,之后是分解的時空卷積。而在最粗粒度 U-Net 層面上的基于注意力的模塊包含這個預(yù)訓(xùn)練文生圖模塊,之后是時間注意力。只有新添加的層需要進(jìn)一步訓(xùn)練。
圖 13:架構(gòu)示意圖:(a) 時空 U-Net(STUNet)、(b) 基于卷積的模塊、(c) 基于注意力的模塊。
無訓(xùn)練適應(yīng)
也有可能不使用任何訓(xùn)練就讓預(yù)訓(xùn)練的文生圖模型輸出視頻,這多少有點讓人驚訝。
如果我們直接簡單地隨機(jī)采樣一個隱含代碼的序列,然后用解碼出來的對應(yīng)圖像構(gòu)建一段視頻,那么無法保證物體和語義在時間上的一致性。Khachatryan et al. 在 2023 年提出的 Text2Video-Zero 可實現(xiàn)零樣本無訓(xùn)練的視頻生成,其做法是讓預(yù)訓(xùn)練的圖像擴(kuò)散模型具備用于時間一致性的兩個關(guān)鍵機(jī)制。
1. 采樣具有運(yùn)動動態(tài)的隱含代碼序列,以保證全局場景和背景的時間一致性。
2. 使用一個新的跨幀注意力(每一幀在第一幀上的注意力)重新編程幀層面的自注意力,以保證前景事物的上下文、外觀和身份信息的一致性。
圖 14:Text2Video-Zero 工作流程示意圖。
下面用數(shù)學(xué)描述這個采樣帶有運(yùn)動信息的隱含變量序列的過程:
1. 定義一個方向 ??=(??_??, ??_??)∈?2 來控制全局場景和相機(jī)運(yùn)動;默認(rèn)情況下,設(shè)定 ??=(1, 1)。再定義一個超參數(shù) λ>0,控制全局運(yùn)動的數(shù)量。
2. 首先隨機(jī)采樣第一幀的隱含代碼
3. 使用預(yù)訓(xùn)練的圖像擴(kuò)散模型(例如論文中的 Stable Diffusion(SD)模型)執(zhí)行 Δ??≥0 DDIM 后向更新步驟,得到相應(yīng)的隱含代碼
,其中 ??'=??-Δ??。
4. 對于該隱含代碼序列中的每一幀,使用一個扭曲操作(其定義為 ??^??=λ(??-1)?? )執(zhí)行相應(yīng)的運(yùn)動平移,得到
5. 最后對所有
使用 DDIM 前向步驟,得到
此外,Text2Video-Zero 還換掉了預(yù)訓(xùn)練 SD 模型中的自注意力層,并代之以一種參考第一幀的新型跨幀注意力機(jī)制。其目標(biāo)是在生成的視頻結(jié)果中保留前景事物的上下文、外觀和身份信息。
另外還可以選擇使用背景掩碼,以讓視頻背景過渡更平滑并進(jìn)一步提升背景一致性。假設(shè)我們已經(jīng)使用某種方法得到了第 ?? 幀相應(yīng)的前景掩碼 ??_??,然后背景平滑操作可根據(jù)以下背景矩陣將實際隱含代碼和擴(kuò)散步驟 ?? 扭曲過的隱含代碼融合起來:
其中
是實際的隱含代碼,
是在背景上扭曲的隱含代碼,?? 是一個超參數(shù),該論文的實驗中設(shè)定 ??=0.6。
Text2Video-Zero 可與 ControlNet 結(jié)合起來,其中在每個擴(kuò)散時間步驟 ??=??,...,1,每一幀都會在
(??=1,...,??)上使用 ControlNet 預(yù)訓(xùn)練的副本分支,并將該 ControlNet 分支的輸出添加到主 U-Net 的 skip 連接。
Zhang et al. 在 2023 年提出的 ControlVideo 的目標(biāo)是基于文本 prompt 和運(yùn)動序列(例如深度或邊緣圖)
生成視頻。該模型是基于 ControlNet 調(diào)整得到的,其中新增了三個機(jī)制:
1. 跨幀注意力:在自注意力模塊中添加完整的跨幀交互。它引入了所有幀之間的交互,其做法是將所有時間步驟的隱含幀映射到 ??、??、?? 矩陣,這不同于 Text2Video-Zero(其是讓所有幀都關(guān)注第一幀)。
2. 交替式幀平滑器(interleaved-frame smoother)機(jī)制是通過在交替幀上采用幀插值來減少閃爍效應(yīng)。在每個時間步驟 ??,該平滑器會插值偶數(shù)或奇數(shù)幀,以平滑其相應(yīng)的三幀剪輯。請注意,平滑步驟后幀數(shù)會隨時間推移而減少。
3. 分層式采樣器能在內(nèi)存限制下保證長視頻的時間一致性。一段長視頻會被分割成多段短視頻,其中每一段短視頻都會選出一幀關(guān)鍵幀。該模型會使用完全跨幀注意力預(yù)生成這些關(guān)鍵幀以實現(xiàn)長期一致性,而每段相應(yīng)的短視頻都基于這些關(guān)鍵幀按順序合成。
圖 15:ControlVideo 概覽。
本文轉(zhuǎn)自 機(jī)器之心 ,作者:機(jī)器之心
