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