Open-Sora 1.1重磅更新+解讀:完全開源的高效復現(xiàn)類Sora視頻生成方案!YYDS! 精華
項目鏈接:https://github.com/hpcaitech/Open-Sora
Open Sora 1.1是Colossal AI開發(fā)的開源視頻生成模型的最新迭代,標志著在這個快速發(fā)展的領域取得了實質性的飛躍。在其前身Open Sora 1.0的基礎上,該版本在功能、訓練效率和整體靈活性方面進行了顯著改進。
Open-Sora項目是一項致力于高效制作高質量視頻,并使所有人都能使用其模型、工具和內容的計劃。通過采用開源原則,Open-Sora 不僅實現(xiàn)了先進視頻生成技術的低成本普及,還提供了一個精簡且用戶友好的方案,簡化了視頻制作的復雜性。通過 Open-Sora,我們希望更多開發(fā)者一起探索內容創(chuàng)作領域的創(chuàng)新、創(chuàng)造和包容。
解決Open-Sora 1.0的限制
雖然Open-Sora 1.0提供了一種有前途的視頻生成方法,但在視頻長度(限制為2秒)和整體質量方面存在限制。Open-Sora 1.1直面這些限制,提供了以下增強功能:
- 延長視頻長度:最顯著的改進之一是能夠生成長達15秒的視頻,與Open-Sora 1.0的2秒限制相比,這是一個顯著的增加。這個擴展的時間范圍為更廣泛的創(chuàng)意應用打開了大門。
- 可變輸出:Open-Sora 1.1在視頻輸出方面提供了更多靈活性。它可以生成不同分辨率(從144p到720p)和寬高比的視頻,滿足多樣化的項目需求。
- 圖像生成:除了視頻生成,Open-Sora 1.1還擴展了其功能,包括圖像生成。這種多功能性使用戶能夠在生成視頻的同時創(chuàng)建高質量的靜態(tài)圖像。
- 增強提示功能:Open-Sora 1.1在提示功能方面引入了進步,使用戶能夠利用圖像和視頻作為視頻生成的提示。這種功能解鎖了令人興奮的可能性,例如:
(1)使圖像動畫化:通過生成短視頻序列為靜態(tài)圖像賦予生命。
(2)延長生成的視頻:在保持連貫性的同時,無縫地延長生成視頻的長度。
(3)視頻到視頻編輯:通過使用視頻提示插入或修改片段來編輯現(xiàn)有視頻。
(4)拼接視頻:為不同視頻片段之間創(chuàng)建平滑過渡,實現(xiàn)統(tǒng)一的流暢。
揭開技術進步的面紗
Open-Sora 1.1的顯著改進歸因于幾項關鍵技術進步:
模型規(guī)模和數(shù)據(jù)集增加:與Open-Sora 1.0相比,Open-Sora 1.1利用了一個規(guī)模顯著更大的數(shù)據(jù)集(1000萬個視頻)。此外,模型本身擁有7億個參數(shù),潛在地有助于提高視頻質量。
多任務學習: Open-Sora 1.1在訓練過程中采用了多任務學習方法。這使得模型能夠同時處理各種視頻屬性,包括分辨率、幀長和寬高比。通過在訓練過程中考慮這些因素,模型可以適應并生成具有多種特性的視頻。
模型架構修改(ST-DiT-2): 開發(fā)人員引入了ST-DiT-2,這是Open-Sora 1.0中使用的原始模型架構的改進版本。這種修改促進了更好的訓練穩(wěn)定性和整體性能,為改進視頻生成奠定了基礎。
揭示數(shù)據(jù)預處理流程
Open-Sora 1.1的成功不僅取決于模型的架構和訓練,還取決于其訓練所使用的數(shù)據(jù)質量。為了確保高質量的訓練數(shù)據(jù),采用了一套細致的數(shù)據(jù)處理流程。以下是涉及的關鍵步驟的詳細說明:
原始視頻分割: 該過程始于原始視頻素材,可以從在線來源或公共數(shù)據(jù)集獲取。這些原始視頻根據(jù)場景檢測算法被分割成較短的片段。此分割確保每個訓練樣本聚焦于視頻中的一個連貫場景。
多分數(shù)評估: 在分割之后,每個視頻片段都經(jīng)歷了一個評估過程,在這個過程中使用預訓練模型預測了多個分數(shù)。這些分數(shù)評估了視頻質量的各個方面,以及適用于訓練Open-Sora 1.1的程度。
美觀分數(shù): 這個分數(shù)衡量了視頻片段的視覺吸引力。模型認為外觀上吸引人的視頻更可能被選中用于訓練。
光流分數(shù): 這個分數(shù)分析了視頻中的運動模式。具有顯著運動的片段對于訓練模型生成動態(tài)視頻內容更具信息量。
光學字符識別(OCR): 此步驟涉及檢測和識別視頻片段中存在的任何文本。文本信息可以為模型在訓練期間提供寶貴的上下文,有助于生成語義一致的視頻。
字幕和匹配分數(shù)計算: 只有通過了美觀分數(shù)、光流分數(shù)和文本存在(如果適用)的初始評估的視頻片段才會進入下一階段。在這里,為這些入選片段生成字幕。這些字幕提供了視頻內容的文本描述,進一步豐富了訓練數(shù)據(jù)。此外,還計算了匹配分數(shù),以評估生成的字幕與實際視頻內容之間的對齊程度。與字幕和視覺之間存在強烈相關性的視頻對于訓練更具價值。
最終過濾和攝像機運動檢測: 在最后階段,視頻片段根據(jù)匹配分數(shù)進行過濾。匹配分數(shù)較低的片段將被丟棄。剩下的片段經(jīng)歷攝像機運動檢測。此步驟分析視頻中的攝像機運動,為模型學習并生成具有多樣化攝像機工作的視頻提供了寶貴信息。
生成高質量的視頻文本對: 通過經(jīng)過這些步驟精心處理原始視頻,數(shù)據(jù)處理流程確保為訓練Open-Sora 1.1創(chuàng)建高質量的視頻文本對。這些視頻文本對具有以下幾個關鍵特點:
高審美質量: 被選用用于訓練的視頻在視覺上具有吸引力,有助于生成外觀上吸引人的輸出。
大視頻運動: 在訓練數(shù)據(jù)中存在顯著運動,使模型能夠生成動態(tài)且引人入勝的視頻。
強語義一致性: 從視頻中提取的文本信息以及在訓練期間對齊的字幕促進了語義一致性,使模型能夠生成與描述相符的視頻。
總的來說,如下圖所示的數(shù)據(jù)處理流程是一個關鍵的篩選器,僅選擇和準備最適合用于訓練Open-Sora 1.1的視頻文本對。這一細致的過程為模型生成高質量和語義有意義的視頻奠定了基礎。
揭秘Bucket系統(tǒng)和masking策略
用于高效多分辨率訓練的Bucket系統(tǒng): 在不同分辨率的視頻上高效訓練模型可能需要大量計算資源。Open-Sora 1.1通過引入Bucket系統(tǒng)來解決這一挑戰(zhàn)。根據(jù)視頻的分辨率、幀數(shù)和寬高比將視頻分組成Bucket。這樣可以通過確保具有相似屬性的視頻一起訓練,從而在具有有限資源的GPU上實現(xiàn)高效處理。該系統(tǒng)還包括 keep_prob 和 batch_size 等功能,以控制計算成本并在訓練期間平衡GPU負載。
圖像/視頻調節(jié)的masking策略:Open-Sora 1.1利用Transformers執(zhí)行圖像到圖像和視頻到視頻生成任務。為了基于圖像或視頻提示來引導生成過程,模型采用了一種masking策略。在提示中具體幀被顯示(未遮擋),使模型能夠專注于這些元素并將它們融入生成的視頻中。
Open-Sora 1.0在將這種策略直接應用于預訓練模型時面臨挑戰(zhàn),實際上,該模型在處理單個樣本中具有不同時間步長的幀時遇到困難,因為它沒有針對這種情況進行訓練。為了解決這個問題,Open-Sora 1.1在訓練過程中引入了一種隨機masking策略。這涉及到在各種組合中顯示幀(第一幀、最后一幀、隨機幀等)。通過在訓練期間讓模型接觸各種遮擋場景,模型在用于圖像/視頻調節(jié)期間視頻生成時能更有效地處理具有不同時間步長的幀。
解決訓練挑戰(zhàn)
Open-Sora 1.1團隊認識到訓練過程中受到資源限制的限制。這些限制需要在整個過程中進行仔細的監(jiān)控和調整訓練策略。以下是訓練細節(jié)和特定選擇背后的原因:
數(shù)據(jù)集限制:
原計劃數(shù)據(jù)集: 團隊最初計劃利用一個更大的數(shù)據(jù)集,可能達到3000萬個視頻(panda-70M和額外的數(shù)據(jù))。有限的預處理: 磁盤I/O瓶頸阻礙了完整的數(shù)據(jù)處理,導致了一個更小的、1000萬個視頻的數(shù)據(jù)集用于訓練。
訓練細節(jié):
微調: 訓練過程從對不同分辨率的圖像進行微調開始,持續(xù)了6k步,利用了來自Pixart-alpha-1024的checkpoints。這展示了模型適應生成具有不同分辨率圖像的能力。
用于加速擴散訓練的SpeeDiT: 采用了SpeeDiT(一種擴散訓練加速算法)來加快擴散訓練過程。
多階段訓練: 預訓練階段涉及多個階段,每個階段都有不同的配置。
階段1
這個初始階段專注于教會模型基礎知識。它使用較小的批量大小進行更好的學習,并在較低分辨率(240p)的視頻上進行訓練。盡管視頻質量看起來還不錯,但模型仍然需要了解如何處理隨時間變化的視頻序列的更多信息(時間知識)。為了解決這個問題,開發(fā)人員做出了一些調整,比如增加訓練時間,切換到不同的訓練方法(從iddpm-speed切換到iddpm),改變模型看待部分訓練數(shù)據(jù)的方式(遮擋比例),增加有關視頻幀速率(fps調節(jié))的信息。
階段2和3:
在這里,模型處理更高分辨率的視頻,逐漸從240p/480p移動到480p/720p。每個階段都使用了所有的訓練數(shù)據(jù),完成一個階段大約需要一天的時間。有趣的是,模型能夠在最后一個階段通過使用前一個階段訓練的信息來更快地學習。
總體而言,Open-Sora 1.1的訓練大約需要64個H800 GPU耗時約9天。
限制和未來工作
Open-Sora 1.1的開發(fā)人員承認當前版本存在幾個限制,并強調了未來改進的方向:
生成失敗: 在某些情況下,特別是在處理復雜內容或大量tokens時,模型無法生成所需的場景。潛在的原因包括時間注意力崩潰和代碼中發(fā)現(xiàn)的錯誤。團隊正在積極尋找解決方法,并計劃在未來版本中增加模型大小和訓練數(shù)據(jù)量,以提高生成質量。
生成噪音和流暢性: 生成的視頻可能會出現(xiàn)噪聲和缺乏流暢性,特別是對于較長的視頻。這歸因于缺乏時間VAE(變分自動編碼器)。受Pixart-Sigma關于適應新VAE的發(fā)現(xiàn)的啟發(fā),開發(fā)人員計劃在下一個版本中加入時間VAE。
缺乏時間一致性: 在視頻幀之間保持一致性,特別是在較長的視頻中,仍然是一個挑戰(zhàn)。有限的訓練FLOP(浮點運算)被認為是一個 contributing 因素。團隊計劃通過收集更多數(shù)據(jù)并延長訓練過程來解決這個問題。
人物視頻生成質量低下: 模型在生成具有人物的高質量視頻方面存在困難。這可能是由于用于訓練的人物數(shù)據(jù)量有限。開發(fā)人員計劃收集更多的人物數(shù)據(jù),并對模型進行微調以提高人物視頻生成的質量。
審美分數(shù)低: 生成的視頻當前的審美質量并不理想。在訓練期間缺乏審美評分過濾,受到I/O瓶頸的影響,被認為是一個潛在的原因。團隊計劃實現(xiàn)基于審美評分的數(shù)據(jù)過濾,并微調模型以生成更具審美吸引力的視頻。
較長視頻的質量下降: 對于相同提示的不同視頻長度,生成的視頻質量往往會隨著視頻長度的增加而下降。這表明模型在不同視頻長度之間保持圖像質量的一致性方面存在困難。開發(fā)人員計劃通過改進模型適應不同序列長度的能力來解決這個問題。
結論
Open Sora 1.1代表著視頻生成技術普及化的重大飛躍。事實上,通過提供擴展的視頻長度、可變的輸出格式、增強的提示功能和提高的訓練效率,它為用戶提供了更大的創(chuàng)作自由。技術進步,包括更大的模型和數(shù)據(jù)集、多任務學習和改進的架構,為進一步改進奠定了基礎。盡管仍然存在局限性,但開發(fā)人員致力于通過整合臨時VAE、收集更多樣的訓練數(shù)據(jù)和改進訓練過程等策略來解決這些問題,這為未來迭代中更強大、更通用的視頻生成鋪平了道路。Open Sora 1.1是邁向高質量視頻創(chuàng)作面向更廣泛觀眾的未來的墊腳石。
附錄
更新時間表
[2024.04.25] ?? 我們在 Hugging Face Spaces 上發(fā)布了 Gradio demo for Open-Sora (??https://huggingface.co/spaces/hpcai-tech/open-sora)。??
[2024.04.25] ?? 我們發(fā)布了 Open-Sora 1.1 版本,支持 2 秒到 15 秒、144p 到 720p、任何縱橫比的文本轉圖像、文本轉視頻、圖像轉視頻、視頻轉視頻、無限時間生成。此外,發(fā)布了完整的視頻處理流程。[checkpoint] (https://github.com/hpcaitech/Open-Sora/tree/main)[報告](https://github.com/hpcaitech/Open-Sora/blob/main/docs/report_02.md)
[2024.03.18] 我們發(fā)布了 Open-Sora 1.0 版本,這是一個完全開源的視頻生成項目。Open-Sora 1.0 支持完整的視頻數(shù)據(jù)預處理、帶加速的訓練、推斷等流程。我們的模型只需 3 天訓練就能生成 2 秒 512x512 的視頻。[檢查點](https://github.com/hpcaitech/Open-Sora?tab=readme-ov-file#open-sora-10-model-weights) [博客] (https://hpc-ai.com/blog/open-sora-v1.0)[報告](https://github.com/hpcaitech/Open-Sora/blob/main/docs/report_01.md)
[2024.03.04] Open-Sora 提供的訓練可以減少 46% 的成本。[博客](https://hpc-ai.com/blog/open-sora)
最新視頻
您可以在我們的?? Gradio application on Hugging Face (https://huggingface.co/spaces/hpcai-tech/open-sora)應用程序中體驗 Open-Sora。我們的Gallery(https://hpcaitech.github.io/Open-Sora/)中還提供更多樣本。
新功能/更新
?? Open-Sora 1.1 發(fā)布。模型權重可在此處(??https://github.com/hpcaitech/Open-Sora?tab=readme-ov-file???)獲取。它在 0 秒到 15 秒、144p 到 720p、各種縱橫比的視頻上進行訓練。查看我們的報告 1.1 (??https://github.com/hpcaitech/docs/report_02.md??)獲取更多討論內容。
?? 數(shù)據(jù)處理流程 v1.1 已發(fā)布。提供從原始視頻到(文本,視頻剪輯)配對的自動處理pipeline(??https://github.com/hpcaitech/Open-Sora?tab=readme-ov-file#data-processing??),包括場景切割、濾波(審美、光流、OCR 等)、字幕生成和管理。使用此工具,您可以輕松構建您的視頻數(shù)據(jù)集。
? 修改后的 ST-DiT 架構包括繩索位置編碼、qk 規(guī)范、更長的文本長度等。
? 支持以任何分辨率、縱橫比和持續(xù)時間(包括圖像)進行訓練。
? 支持圖像和視頻調節(jié)以及視頻編輯,從而支持圖像動畫、視頻連接等功能。
?? Open-Sora 1.0 發(fā)布。模型權重可在此處(https://github.com/hpcaitech/Open-Sora?tab=readme-ov-file#model-weights)獲取。僅使用 400K 視頻剪輯和 200 個 H800 天(與 Stable Video Diffusion 的 152M 個樣本相比),我們就能生成 2 秒 512×512 的視頻。查看我們的報告 1.0 (https://github.com/hpcaitech/docs/report_01.md)獲取更多討論內容。
? 從圖像擴散模型到視頻擴散模型的三階段訓練。我們提供每個階段的權重。
? 支持訓練加速,包括加速Transformers、更快的 T5 和 VAE,以及序列并行化。Open-Sora 在訓練 64x512x512 視頻時提高了 55% 的訓練速度。詳細信息請參閱 acceleration.md(https://github.com/hpcaitech/docs/acceleration.md)。
?? 數(shù)據(jù)預處理流程 v1.0,包括下載(https://github.com/tools/datasets/README.md)、視頻剪輯(https://github.com/tools/scenedetect/README.md)和字幕生成工具(https://github.com/tools/caption/README.md)。我們的數(shù)據(jù)收集計劃可以在 datasets.md (https://github.com/hpcaitech/docs/datasets.md)中找到。
下一步計劃【按優(yōu)先級排序】
- 訓練 Video-VAE 并將我們的模型調整到新的 VAE。【進行中】
- 調整模型參數(shù)和數(shù)據(jù)集大小。【進行中】
- 引入更好的調度器,例如 SD3 中的修正流。【進行中】
本文轉自 AI生成未來 ,作者:Elmo&Open-Sora
