長視頻生成速度提升100倍!新加坡國立提出Video-Infinity:分布式長視頻生成 精華
文章鏈接:https://arxiv.org/abs/2406.16260
工程地址:https://video-infinity.tanzhenxiong.com/
代碼地址:https://github.com/Yuanshi9815/Video-Infinity
雖然最近擴(kuò)散模型在視頻生成方面取得了顯著的成果,但生成的視頻通常僅限于少量幀,導(dǎo)致剪輯只持續(xù)幾秒鐘。生成較長視頻的主要挑戰(zhàn)包括顯著的內(nèi)存需求以及在單個(gè)GPU上所需的長時(shí)間處理。一個(gè)簡單的解決方案是將工作負(fù)載分散到多個(gè)GPU上,但這會導(dǎo)致兩個(gè)問題:
- 確保所有GPU有效通信以共享時(shí)間和上下文信息;
- 修改現(xiàn)有的視頻擴(kuò)散模型,這些模型通常在短序列上進(jìn)行訓(xùn)練,以創(chuàng)建更長的視頻而無需額外訓(xùn)練。
為了解決這些問題,本文介紹了Video-Infinity,一種分布式推理pipeline,能夠在多個(gè)GPU上并行處理以生成長視頻。具體來說,提出了兩種一致性機(jī)制:剪輯并行和雙范圍注意力。剪輯并行優(yōu)化了跨GPU的上下文信息收集和共享,最小化通信開銷,而雙范圍注意力則調(diào)節(jié)時(shí)間自注意力,在設(shè)備之間有效平衡局部和全局上下文。兩種機(jī)制結(jié)合在一起,分配工作負(fù)載并實(shí)現(xiàn)快速生成長視頻。在8×Nvidia 6000 Ada GPU(48G)設(shè)置下,本文的方法可以在大約5分鐘內(nèi)生成最多2300幀的視頻,使得長視頻生成的速度比現(xiàn)有方法快100倍。
亮點(diǎn)直擊
- 首次通過分布式并行計(jì)算解決長視頻生成問題,提高了可擴(kuò)展性并減少了生成時(shí)間。
- 引入了兩種相互關(guān)聯(lián)的機(jī)制:剪輯并行化優(yōu)化了GPU間的上下文信息共享,雙范圍注意力機(jī)制調(diào)整時(shí)間自注意力以確保設(shè)備間視頻的連貫性。
- 本文的實(shí)驗(yàn)表明,與現(xiàn)有的超長文本到視頻方法Streaming T2V 相比,本文的方法可以快達(dá)100倍。
生成效果展示
介紹
人類一直以來追求在數(shù)字系統(tǒng)中復(fù)制我們所生活的動態(tài)世界。傳統(tǒng)上這部分工作由物理學(xué)和圖形學(xué)主導(dǎo),但最近隨著數(shù)據(jù)驅(qū)動生成模型的出現(xiàn)而得到了增強(qiáng)。這些模型可以創(chuàng)建高度逼真的圖像和視頻,使其與現(xiàn)實(shí)難以區(qū)分。然而,這些模型通常只能生成非常短的視頻片段,大多數(shù)限制在16-24幀。一些模型可以擴(kuò)展到60或120幀,但在分辨率和視覺質(zhì)量上做出了很大妥協(xié)。
生成長視頻面臨重大挑戰(zhàn),主要是由于模型訓(xùn)練和推理所需的資源需求巨大。當(dāng)前的模型受限于可用資源,通常在短片段上進(jìn)行訓(xùn)練,很難在更長的序列中保持質(zhì)量。此外,一次性生成一分鐘長的視頻可能會占用GPU內(nèi)存,使任務(wù)顯得難以實(shí)現(xiàn)。
現(xiàn)有的解決方案,包括自回歸方法、分層方法和從短到長的方法,提供了部分補(bǔ)救措施,但存在顯著的局限性。自回歸方法按順序生成幀,依賴于前面的幀。分層方法先創(chuàng)建關(guān)鍵幀,然后填充過渡幀。此外,一些方法將長視頻視為多個(gè)重疊的短視頻片段。這些方法不是端到端的;它們通常缺乏全局連續(xù)性,需要大量計(jì)算,尤其是在重疊區(qū)域,并且在跨段一致性方面掙扎。
為了解決這些問題,本文引入了一個(gè)用于分布式長視頻生成的新框架,稱為Video-Infinity。從高層次來看,它采用分而治之的原則。它將長視頻生成任務(wù)分解為較小的、可管理的段。這些段分布在多個(gè)GPU上,允許并行處理。所有客戶端應(yīng)協(xié)同工作,以確保最終視頻在語義上的連貫性。
這種設(shè)置雖然簡單明了,但面臨兩個(gè)主要挑戰(zhàn):確保所有GPU之間有效通信以共享上下文信息,以及調(diào)整現(xiàn)有模型(通常在較短序列上訓(xùn)練)以生成更長的視頻而無需額外的訓(xùn)練。
為了克服這些挑戰(zhàn),本文引入了兩種協(xié)同機(jī)制:剪輯并行化和雙范圍注意力機(jī)制。剪輯并行化通過將上下文信息分成三部分,實(shí)現(xiàn)了多個(gè)GPU之間的高效協(xié)作。它采用交錯(cuò)通信策略,分三步完成共享。在剪輯并行化的基礎(chǔ)上,雙范圍注意力機(jī)制精細(xì)調(diào)整時(shí)間自注意力機(jī)制,以在設(shè)備間實(shí)現(xiàn)局部和全局上下文的最佳平衡。這種平衡使得在短片段上訓(xùn)練的模型能夠擴(kuò)展到長視頻生成,同時(shí)保持整體連貫性。
更令人興奮的是,通過利用這兩種策略,Video-Infinity將內(nèi)存開銷從二次方減少到線性。憑借多設(shè)備并行的強(qiáng)大能力和足夠的顯存,本文的系統(tǒng)可以生成任意長度甚至無限長的視頻。
因此,本文的方法顯著延長了可生成視頻的最大長度,并加快了長視頻生成的速度。具體而言,在8×Nvidia 6000 Ada(48G)設(shè)置下,本文所提出的方法在僅5分鐘內(nèi)就能生成長達(dá)2300幀的視頻。
前提
視頻生成的擴(kuò)散模型
分布式長視頻生成
在本文的核心pipeline中,Video-Infinity將視頻的潛變量分割成多個(gè)片段,然后分布到多個(gè)設(shè)備上。如下圖 3 所示,在其中沿著時(shí)間維度劃分視頻的潛變量。這種分割允許在不同設(shè)備上并行地對不重疊幀進(jìn)行去噪處理。為了實(shí)現(xiàn)這一點(diǎn),本文提出了剪輯并行機(jī)制(在后面章節(jié)中詳細(xì)介紹),它有效地同步設(shè)備間的時(shí)間信息。此外,本文也引入了雙范圍注意力機(jī)制,調(diào)節(jié)時(shí)間注意力以確保無需額外訓(xùn)練的長視頻一致性。
視頻擴(kuò)散的剪輯并行化機(jī)制
為了確保分布在不同設(shè)備上的片段的一致性,本文提出了剪輯并行機(jī)制,如上圖3所示。該機(jī)制并行化了視頻擴(kuò)散模型的時(shí)間層,并實(shí)現(xiàn)了高效的設(shè)備間通信。
并行化的時(shí)間模塊:在標(biāo)準(zhǔn)擴(kuò)散模型中,時(shí)間模塊聚合跨幀的特征,可以簡化為:
這種連接提供了對處理特征的整體視圖,保持了分布式系統(tǒng)中時(shí)間的一致性。關(guān)于這些時(shí)間模塊如何整合上下文的進(jìn)一步細(xì)節(jié)將在文章的后面章節(jié)中討論。
最終,所有節(jié)點(diǎn)完成上下文同步,確保每個(gè)設(shè)備擁有執(zhí)行計(jì)算所需的全部上下文。更多細(xì)節(jié)可以參考原文附錄。
將每個(gè)模塊并行化
在剪輯并行化的基礎(chǔ)上,本節(jié)詳細(xì)介紹了每個(gè)時(shí)間模塊中信息如何進(jìn)行同步。關(guān)鍵技術(shù)是雙范圍注意力(Dual-scope attention),它促進(jìn)了無需訓(xùn)練的長視頻生成并降低了通信成本。
視頻擴(kuò)散模型通常包括三個(gè)時(shí)間模塊:注意力模塊(Attention())、卷積模塊(Conv())和群規(guī)范化模塊(GroupNorm())。本文定制了這些模塊,使它們能夠集成到剪輯并行化中,實(shí)現(xiàn)跨多設(shè)備的分布式處理,從而有效地實(shí)現(xiàn)視頻內(nèi)容的同步和一致性。
DualScope注意力模塊。在并行推理中應(yīng)用注意力帶來了新的挑戰(zhàn)。原始的注意力模塊需要同時(shí)訪問所有輸入標(biāo)記。為了在剪輯并行性下采用它,需要跨設(shè)備聚合標(biāo)記,這導(dǎo)致了巨大的通信成本。此外,當(dāng)應(yīng)用于更長序列時(shí),那些在較短視頻片段上訓(xùn)練的注意力模塊通常會降低質(zhì)量。
實(shí)驗(yàn)
設(shè)置
基礎(chǔ)模型。在實(shí)驗(yàn)中,選擇了文本到視頻模型VideoCrafter2 (320 x 512) 作為本文方法的基礎(chǔ)模型。VideoCrafter2 模型是在16幀視頻上訓(xùn)練的,擅長生成既一致又高質(zhì)量的視頻片段。它還是VBench 評估中得分最高的開源視頻生成模型。
指標(biāo)評估。使用VBench 作為綜合視頻評估工具,涵蓋各種視頻維度的廣泛指標(biāo)。對于每種方法,使用VBench 提供的提示生成視頻進(jìn)行評估。所測量的指標(biāo)包括VBench 中視頻質(zhì)量類別下的所有指標(biāo),包括主體一致性、背景一致性、時(shí)間閃爍、運(yùn)動平滑度、動態(tài)程度、美學(xué)質(zhì)量和成像質(zhì)量??紤]到VBench 評估通常針對16幀視頻片段進(jìn)行,本文對超過16幀的視頻進(jìn)行了評估方法的修改:從每個(gè)視頻中隨機(jī)抽取五個(gè)16幀片段進(jìn)行單獨(dú)評估,然后計(jì)算這些評估的平均分?jǐn)?shù)。
基線方法。本文的方法與幾種其他方法進(jìn)行了基準(zhǔn)比較:
- FreeNoise : 本文選擇FreeNoise作為基準(zhǔn),因?yàn)樗彩且环N無需訓(xùn)練的方法,可以基于VideoCrafter2 模型生成長視頻。它采用重新調(diào)度技術(shù)來初始化噪聲,并結(jié)合基于窗口的注意力融合來生成更長的視頻。
- Streaming T2V : 為了評估本文方法在生成長視頻方面的有效性,選擇了Streaming T2V作為基準(zhǔn)。Streaming T2V涉及訓(xùn)練一個(gè)新模型,使用自回歸方法生成長格式視頻。與本文的方法類似,它也具備生成超過1000幀視頻的能力。
- OpenSora V1.1 : 基于DiT 的視頻擴(kuò)散模型,支持最多120幀,可以在各種分辨率下生成視頻,并專門針對長視頻序列進(jìn)行了訓(xùn)練,以增強(qiáng)其擴(kuò)展視頻生成能力。
?
實(shí)現(xiàn)細(xì)節(jié)。默認(rèn)情況下,所有擴(kuò)散的參數(shù)均保持與VideoCrafter2 的原始推理設(shè)置一致,去噪步驟設(shè)置為30。本文的實(shí)驗(yàn)在8 × Nvidia 6000 Ada(48G內(nèi)存)上進(jìn)行。為了實(shí)現(xiàn)剪輯并行化中的時(shí)間模塊,本文使用 torch.distributed 工具包,并使用Nvidia的NCCL作為后端,以促進(jìn)高效的GPU間通信。此外,所有fps條件設(shè)置為24,分辨率設(shè)置為512 × 320。請注意,Streaming T2V的分辨率無法修改,因此視頻以其默認(rèn)分辨率生成(預(yù)覽視頻為256 × 256,最終視頻為720 × 720)。
主要結(jié)果
容量和效率
本文在8 × Nvidia 6000 Ada(48G)設(shè)置上評估了本文所提出方法的能力。本文的方法成功地生成了分辨率為512 × 320、時(shí)長達(dá)95秒(以24幀每秒計(jì)算)的2300幀視頻。值得注意的是,得益于高效的通信和多GPU并行處理的利用,整個(gè)計(jì)算過程大約花費(fèi)了5分鐘(312秒)。
下表1展示了各種方法在相同設(shè)備規(guī)格下生成長視頻的能力。為了確保可比性,本文將所有方法生成的視頻分辨率標(biāo)準(zhǔn)化為512x320。對于StreamingT2V,本文提供了兩組數(shù)據(jù):一組用于生成預(yù)覽視頻,分辨率為256x256;另一組用于生成分辨率為720x720的最終視頻。結(jié)果表明,本文的方法在端到端類別中是最具能力的,可以生成長達(dá)2300幀的最長視頻 — 比OpenSora V1.1多8.2倍。此外,本文的方法在生成128幀短視頻和1024幀長視頻方面始終表現(xiàn)出最短的時(shí)間。值得注意的是,在生成1024幀視頻時(shí),本文的方法比唯一能夠生成這種長度視頻的基線方法StreamingT2V快100多倍。即使與StreamingT2V生成更小、分辨率較低的預(yù)覽視頻的速度相比,本文的方法也快16倍。
視頻質(zhì)量本文比較了本文方法生成的視頻與FreeNoise 和StreamingT2V 在長視頻生成方面的表現(xiàn)。下圖4展示了使用相同提示生成的不同方法生成的一些視頻幀。此外,下表2顯示了這些方法生成的視頻質(zhì)量,評估了VBench 中的各種指標(biāo)。
如上圖所示,雖然StreamingT2V方法生成了具有足夠動態(tài)性的長視頻,但它們在開始和結(jié)束之間缺乏一致性。相比之下,F(xiàn)reeNoise 生成的視頻在整個(gè)過程中對象位置保持一致,但視覺上變化較少。例如,彈吉他的人的視頻保持了單一的姿勢,僅有微小的移動。同樣地,左側(cè)的狗專注地看著攝像頭,耳朵、鼻子或身體的位置沒有變化。OpenSora V1.1 未能生成第一個(gè)視頻,第二個(gè)視頻的背景也不夠平滑。相反,本文的方法不僅確保了更好的一致性,而且在生成的視頻中呈現(xiàn)出更明顯的運(yùn)動。
上表 2顯示,與本文中提到的基礎(chǔ)模型VideoCrafter 2 相比,本文的方法在大多數(shù)指標(biāo)上略有下降,除了動態(tài)指標(biāo)。在生成64幀視頻時(shí),本文的方法與其他方法相比表現(xiàn)出優(yōu)勢和劣勢。然而,本文的平均指標(biāo)得分高于FreeNoise和OpenSora V1.1。在生成更長的192幀視頻時(shí),本文的方法在大多數(shù)評估指標(biāo)上表現(xiàn)優(yōu)于StreamingT2V,這是唯一能夠生成這種長度視頻的其他方法。
消融
移除局部上下文。從上圖5的頂部面板可以觀察到,ResNet()中同步信息的缺失導(dǎo)致在設(shè)備(1)上的最后一幀(第23幀)和設(shè)備(2)上的第一幀(第24幀)之間出現(xiàn)了細(xì)節(jié)上的差異,這些差異在圖中用紅色標(biāo)出。例如,人物服裝顏色的差異和機(jī)器人手上桌面零件的形狀差異,這些在原始推斷中并不存在。當(dāng) Attention() 模塊的上下文缺失時(shí),第23幀和第24幀變成了明顯不同的圖像,顯示出相鄰設(shè)備生成的視頻段之間存在顯著的不連續(xù)性。這些觀察結(jié)果表明,ResNet() 和 Attention() 模塊中的同步對于在不同設(shè)備上生成的視頻幀的視覺一致性和連續(xù)性至關(guān)重要。
移除全局上下文。上圖5的底部面板展示了當(dāng)全局上下文同步缺失時(shí),視頻內(nèi)部的內(nèi)容一致性難以維持的情況。例如,在第12幀和第16幀中,地平線保持較高,但在第20幀以后,地平線明顯上升。此外,當(dāng)移除局部上下文同步時(shí),雖然不同設(shè)備片段之間的內(nèi)容保持一致,但在過渡區(qū)域缺乏共享上下文導(dǎo)致異常。例如,第22幀的雪內(nèi)容突然過渡到圖中標(biāo)記為紅色的狗。這些示例突顯了全局和局部上下文同步在視頻生成中的重要性。
結(jié)論
本文介紹了Video-Infinity,這是一個(gè)利用多個(gè)GPU進(jìn)行長視頻生成的分布式推斷pipeline。提出了兩種機(jī)制,剪輯并行化和雙范圍注意力機(jī)制,來解決分布式視頻生成中的關(guān)鍵挑戰(zhàn)。剪輯并行化通過優(yōu)化上下文信息的交換來減少通信開銷,而雙范圍注意力修改了自注意力機(jī)制以確保設(shè)備間的一致性。這些創(chuàng)新共同促成了高達(dá)2,300幀的視頻快速生成,大幅提升了與現(xiàn)有方法相比的生成速度。這種方法不僅擴(kuò)展了擴(kuò)散模型在視頻制作中的實(shí)際應(yīng)用性,還為長視頻生成效率設(shè)立了新的基準(zhǔn)。
限制
為了充分發(fā)揮本文方法的潛力,它依賴于多個(gè)GPU的可用性。此外,本文的方法在涉及場景轉(zhuǎn)換的視頻生成方面表現(xiàn)不佳。
本文轉(zhuǎn)自 AI生成未來 ,作者:Zhenxiong Tan等
