目錄
方法
實驗
首頁 科技週邊 人工智慧 兩分鐘1200幀的長視訊產生器StreamingT2V來了,程式碼將開源

兩分鐘1200幀的長視訊產生器StreamingT2V來了,程式碼將開源

Mar 27, 2024 pm 03:17 PM
ai 訓練

廣大的戰場,風暴兵在奔跑…

兩分鐘1200幀的長視訊產生器StreamingT2V來了,程式碼將開源

prompt:Wide shot of battlefield, stormtroopers running...

這段時長達1200幀的2分鐘影片是由文字產生影片(text-to-video)模型產生的。儘管AI的痕跡仍然顯而易見,但其中的人物和場景展現出相當不錯的一致性。

這是如何辦到的呢?要知道,雖然近些年文生視訊技術的生成品質和文字對齊品質都已經相當出色,但大多數現有方法都聚焦於生成短影片(通常是 16 或 24 幀長度)。然而,適用於短視訊的現有方法通常無法用於長視訊(≥ 64 幀)。

即使是產生短序列,通常也需要成本高昂的訓練,例如訓練步數超過 260K,批次大小超過 4500。如果不在更長的視頻上進行訓練,透過短視頻生成器來製作長視頻,得到的長視頻通常質量不佳。而現有的自回歸方法(透過使用短視頻後幾幀生成新的短視頻,進而合成長視頻)也存在場景切換不一致等一些問題。

為了彌補現有方法的不足,Picsart AI Research等多個機構聯合提出了一種新的文生視訊方法:StreamingT2V。這種方法採用自回歸技術,並結合長短期記憶模組,使其能夠產生時間連貫性強的長影片。

兩分鐘1200幀的長視訊產生器StreamingT2V來了,程式碼將開源

  • 論文標題:StreamingT2V: Consistent, Dynamic, and Extendable Long Video Generation from Text
  • #論文網址:https://arxiv.org/abs/2403.14773
  • 計畫網址:https://streamingt2v.github.io/

#如下是一段600 幀1 分鐘的影片產生結果,可以看到蜜蜂和花朵都有非常出色的一致性:

因此,團隊提出了條件注意力模組(CAM)。 CAM利用其註意力機制,能夠有效地整合先前幀的資訊來產生新的幀,並且能夠自如地處理新幀中的運動情況,而不受先前幀結構或形狀的限制。

而為了解決生成的影片中人與物外觀變化的問題,團隊又提出了外觀保留模組(APM):其可從一個初始影像(錨定幀)提取物件或全域場景的外觀訊息,並使用該資訊調節所有視訊區塊的視訊生成過程。

為了進一步提升長影片產生的品質和分辨率,該團隊針對自回歸生成任務對一個影片增強模型進行了改進。為此,該團隊選擇了一個高解析度文生視訊模型並使用了 SDEdit 方法來提升連續 24 幀(其中有 8 幀重疊幀)視訊區塊的品質。

為了讓視訊區塊增強過渡變得平滑,他們也設計了一種隨機混合方法,能以無縫方式混合重疊的增強過的視訊區塊。

方法

首先,產生5 秒長的256 × 256 解析度的影片(16fps),然後將其增強至更高的分辨率(720 × 720)。圖 2 展示了其完整的工作流程。

兩分鐘1200幀的長視訊產生器StreamingT2V來了,程式碼將開源

長影片產生部分由初始化階段(Initialization Stage)和串流文生視訊階段(Streaming T2V Stage)構成。

其中,初始化階段是使用一個預先訓練的文生視訊模型(例如可以使用Modelscope)來產生第一個16 幀的視訊區塊;而串流文生視訊階段則是以自回歸方式產生後續幀的新內容。

對於自回歸過程(見圖 3),該團隊新提出的 CAM 可以利用先前視訊區塊最後 8 幀的短期訊息,實現區塊之間的無縫切換。另外,他們還會使用新提出的 APM 模組來提取一張固定錨定幀的長期訊息,使自回歸過程能穩健地應對事物和場景細節在生成過程中的變化。

兩分鐘1200幀的長視訊產生器StreamingT2V來了,程式碼將開源

在生成得到了長影片(80、240、600、1200 或更多影格)之後,他們再透過串流優化階段(Streaming Refinement Stage)來提升視訊品質。這個過程會以自回歸方式使用一個高解析度文生短視訊模型(如可使用 MS-Vid2Vid-XL),再搭配上新提出的用於無縫視訊區塊處理的隨機混合方法。而且後一步無需額外的訓練,這使得該方法無需較高的計算成本。

條件注意力模組

#首先,將所使用的預訓練文生(短)視訊模型記為Video-LDM。注意力模組(CAM)的構成是一個特徵提取器、一個向 Video-LDM UNet 注入的特徵注入器。

其中特徵提取器使用了逐幀的圖像編碼器,之後是與Video-LDM UNet 直到中間層一直使用的一樣的編碼器層(並透過UNet 的權重初始化)。

對於特徵注入,這裡的設計則是讓 UNet 中的每個長程跳躍連接透過交叉注意力關注 CAM 產生的相應特徵。

外觀保留模組

#APM 模組可透過使用固定錨定幀中的信息來將長期記憶整合進影片產生過程中。這有助於維持視訊區塊生成過程中的場景和物件特徵。

為了讓APM 能平衡處理錨定幀和文本指令給出的引導信息,該團隊做出了兩點改進:(1)將錨幀的CLIP 圖像token 與文本指令的CLIP 文字token 混合起來;(2)為每個交叉注意力層引入了一個權重來使用交叉注意力。

自回歸視訊增強

為了自回歸地增強24 幀的生成視訊區塊,這裡使用的是高解析度(1280x720)的文生(短)視訊模型(Refiner Video-LDM,見圖3)。這個過程的做法是先向輸入視訊區塊加入大量噪聲,然後再使用這個文生視訊擴散模型來進行去噪處理。

不過,這種方法不足以解決視訊區塊之間的過渡不匹配的問題。

為此,該團隊的解決方案是隨機混合方法。具體詳情請參閱原論文。

實驗

在實驗中,團隊所使用的評估指標包括:用於評估時間一致性的SCuts 分數、用於評估運動量和扭變誤差的運動感知扭變誤差(MAWE)、用於評估文字對齊品質的CLIP 文字影像相似度分數(CLIP)、美學分數(AE)。

消融研究

#為了評估各種新元件的有效性,團隊從驗證集中隨機採樣75 個prompt 執行了消融研究。

用於條件處理的 CAM:CAM 能幫​​助模型產生更一致的視頻,其 SCuts 分數比相比較的其它基線模型低 88%。

長期記憶:圖 6 顯示長期記憶能在自迴歸生成過程中極大地幫助維持物件和場景的特徵穩定。

兩分鐘1200幀的長視訊產生器StreamingT2V來了,程式碼將開源

在一個定量評估指標(人再識別分數)上,APM 實現了 20% 的提升。

用於影片增強的隨機混合:與其它兩個基準相比,隨機混合能帶來顯著的品質提升,從圖4 也能看到:StreamingT2V 可以得到更平滑的過渡。

兩分鐘1200幀的長視訊產生器StreamingT2V來了,程式碼將開源

StreamingT2V 比較基線模型

##該團隊透過定量和定性評估比較了整合上述改進的StreamingT2V 與多種模型,包括使用自回歸方法的圖像到視頻方法I2VGen-XL、SVD、DynamiCrafter-XL、SEINE,視頻到視頻方法SparseControl,文本到長視頻方法FreeNoise。

定量评估:从表 8 可以看出,在测试集上的定量评估表明,StreamingT2V 在无缝视频块过渡和运动一致性方面的表现最佳。新方法的 MAWE 分数也显著优于其它所有方法 —— 甚至比第二好的 SEINE 低 50% 以上。SCuts 分数上也有类似表现。

兩分鐘1200幀的長視訊產生器StreamingT2V來了,程式碼將開源

此外,在生成视频的单帧质量上,StreamingT2V 仅略逊于 SparseCtrl。这表明这个新方法能够生成高质量的长视频,并且比其它对比方法具有更好的时间一致性和运动动态。

定性评估:下图展示了 StreamingT2V 与其它方法的效果比较,可以看出新方法能在保证视频动态效果的同时维持更好的一致性。

兩分鐘1200幀的長視訊產生器StreamingT2V來了,程式碼將開源

 更多研究细节,可参考原论文。

以上是兩分鐘1200幀的長視訊產生器StreamingT2V來了,程式碼將開源的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1269
29
C# 教程
1248
24
如何理解C  中的DMA操作? 如何理解C 中的DMA操作? Apr 28, 2025 pm 10:09 PM

DMA在C 中是指DirectMemoryAccess,直接內存訪問技術,允許硬件設備直接與內存進行數據傳輸,不需要CPU干預。 1)DMA操作高度依賴於硬件設備和驅動程序,實現方式因係統而異。 2)直接訪問內存可能帶來安全風險,需確保代碼的正確性和安全性。 3)DMA可提高性能,但使用不當可能導致系統性能下降。通過實踐和學習,可以掌握DMA的使用技巧,在高速數據傳輸和實時信號處理等場景中發揮其最大效能。

C  中的chrono庫如何使用? C 中的chrono庫如何使用? Apr 28, 2025 pm 10:18 PM

使用C 中的chrono庫可以讓你更加精確地控制時間和時間間隔,讓我們來探討一下這個庫的魅力所在吧。 C 的chrono庫是標準庫的一部分,它提供了一種現代化的方式來處理時間和時間間隔。對於那些曾經飽受time.h和ctime折磨的程序員來說,chrono無疑是一個福音。它不僅提高了代碼的可讀性和可維護性,還提供了更高的精度和靈活性。讓我們從基礎開始,chrono庫主要包括以下幾個關鍵組件:std::chrono::system_clock:表示系統時鐘,用於獲取當前時間。 std::chron

怎樣在C  中測量線程性能? 怎樣在C 中測量線程性能? Apr 28, 2025 pm 10:21 PM

在C 中測量線程性能可以使用標準庫中的計時工具、性能分析工具和自定義計時器。 1.使用庫測量執行時間。 2.使用gprof進行性能分析,步驟包括編譯時添加-pg選項、運行程序生成gmon.out文件、生成性能報告。 3.使用Valgrind的Callgrind模塊進行更詳細的分析,步驟包括運行程序生成callgrind.out文件、使用kcachegrind查看結果。 4.自定義計時器可靈活測量特定代碼段的執行時間。這些方法幫助全面了解線程性能,並優化代碼。

量化交易所排行榜2025 數字貨幣量化交易APP前十名推薦 量化交易所排行榜2025 數字貨幣量化交易APP前十名推薦 Apr 30, 2025 pm 07:24 PM

交易所內置量化工具包括:1. Binance(幣安):提供Binance Futures量化模塊,低手續費,支持AI輔助交易。 2. OKX(歐易):支持多賬戶管理和智能訂單路由,提供機構級風控。獨立量化策略平台有:3. 3Commas:拖拽式策略生成器,適用於多平台對沖套利。 4. Quadency:專業級算法策略庫,支持自定義風險閾值。 5. Pionex:內置16 預設策略,低交易手續費。垂直領域工具包括:6. Cryptohopper:雲端量化平台,支持150 技術指標。 7. Bitsgap:

怎樣在C  中處理高DPI顯示? 怎樣在C 中處理高DPI顯示? Apr 28, 2025 pm 09:57 PM

在C 中處理高DPI顯示可以通過以下步驟實現:1)理解DPI和縮放,使用操作系統API獲取DPI信息並調整圖形輸出;2)處理跨平台兼容性,使用如SDL或Qt的跨平台圖形庫;3)進行性能優化,通過緩存、硬件加速和動態調整細節級別來提升性能;4)解決常見問題,如模糊文本和界面元素過小,通過正確應用DPI縮放來解決。

C  中的實時操作系統編程是什麼? C 中的實時操作系統編程是什麼? Apr 28, 2025 pm 10:15 PM

C 在實時操作系統(RTOS)編程中表現出色,提供了高效的執行效率和精確的時間管理。 1)C 通過直接操作硬件資源和高效的內存管理滿足RTOS的需求。 2)利用面向對象特性,C 可以設計靈活的任務調度系統。 3)C 支持高效的中斷處理,但需避免動態內存分配和異常處理以保證實時性。 4)模板編程和內聯函數有助於性能優化。 5)實際應用中,C 可用於實現高效的日誌系統。

給MySQL表添加和刪除字段的操作步驟 給MySQL表添加和刪除字段的操作步驟 Apr 29, 2025 pm 04:15 PM

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,刪除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段時,需指定位置以優化查詢性能和數據結構;刪除字段前需確認操作不可逆;使用在線DDL、備份數據、測試環境和低負載時間段修改表結構是性能優化和最佳實踐。

C  中的字符串流如何使用? C 中的字符串流如何使用? Apr 28, 2025 pm 09:12 PM

C 中使用字符串流的主要步驟和注意事項如下:1.創建輸出字符串流並轉換數據,如將整數轉換為字符串。 2.應用於復雜數據結構的序列化,如將vector轉換為字符串。 3.注意性能問題,避免在處理大量數據時頻繁使用字符串流,可考慮使用std::string的append方法。 4.注意內存管理,避免頻繁創建和銷毀字符串流對象,可以重用或使用std::stringstream。

See all articles