c做網站百度云登錄
目錄
- 一、CogVideoX簡介
- 二、CogVideoX部署實踐流程
- 2.1、創(chuàng)建丹摩實例
- 2.2、配置環(huán)境和依賴
- 2.3、上傳模型與配置文件
- 2.4、開始運行
- 最后
一、CogVideoX簡介
智譜AI在8月6日宣布了一個令人興奮的消息:他們將開源視頻生成模型CogVideoX。目前,其提示詞上限為 226 個 token,視頻長度為 6 秒,幀率為 8 幀 / 秒,視頻分辨率為 720*480,而這僅僅是初代,性能更強參數(shù)量更大的模型正在路上。先看兩個效果(均為個人本次實踐復現(xiàn)得出):
CogVideoX生成視頻1
CogVideo生成視頻2
首先簡單介紹下原理,CogVideoX的核心在于它的3D變分自編碼器,這項技術能夠將視頻數(shù)據壓縮至原來的2%,極大地降低了模型處理視頻時所需的計算資源,還巧妙地保持了視頻幀與幀之間的連貫性,有效避免了視頻生成過程中可能出現(xiàn)的閃爍問題。
為了進一步提升內容的連貫性,CogVideoX采用了3D旋轉位置編碼(3D RoPE)技術,使得模型在處理視頻時能夠更好地捕捉時間維度上的幀間關系,建立起視頻中的長期依賴關系,從而生成更加流暢和連貫的視頻序列。
在可控性方面,智譜AI研發(fā)了一款端到端的視頻理解模型,這個模型能夠為視頻數(shù)據生成精確且與內容緊密相關的描述。這一創(chuàng)新極大地增強了CogVideoX對文本的理解和對用戶指令的遵循能力,確保了生成的視頻不僅與用戶的輸入高度相關,而且能夠處理超長且復雜的文本提示。
- 代碼倉庫:
https://github.com/THUDM/CogVideo
- 模型下載:
https://huggingface.co/THUDM/CogVideoX-2b
- 技術報告:
https://github.com/THUDM/CogVideo/blob/main/resources/CogVideoX.pdf
- 丹摩智算平臺:
https://damodel.com/register?source=1D5686A0
本篇博客將詳細介紹,使用丹摩服務器部署和初步使用CogVideoX的實踐流程。
二、CogVideoX部署實踐流程
2.1、創(chuàng)建丹摩實例
首先進入控制臺,選擇GPU云實例,點擊創(chuàng)建實例:
由于CogVideoX在FP-16 精度下的推理至少需 18GB 顯存,微調則需要 40GB 顯存,我們這里可以選擇L40S顯卡(推薦)或者4090顯卡,硬盤可以選擇默認的100GB系統(tǒng)盤和50GB數(shù)據盤,鏡像選擇PyTorch2.3.0、Ubuntu-22.04,CUDA12.1鏡像,創(chuàng)建并綁定密鑰對,最后啟動。
2.2、配置環(huán)境和依賴
進入JupyterLab后,打開終端,首先輸入git clone https://github.com/THUDM/CogVideo.git
,拉取CogVideo代碼的倉庫,如遇到github連接超時,可以使用本地下載壓縮包然后上傳到服務器解壓,拉取成功后會顯示CogVideo-main的文件夾如下:
其次,cd進入CogVideo-main文件夾,輸入pip install -r requirements.txt
安裝對應依賴:
其中第一個依賴需要從GitHub倉庫中安裝特定版本的diffusers包,在安裝中可能會出現(xiàn)Running command git clone --filter=blob:non
過久:
這種情況可以選擇使用本地下載diffusers-0.30.0.dev0-py3-none-any.whl文件(夸克網盤鏈接:https://pan.quark.cn/s/67d4bf445556)
再使用pip install diffusers-0.30.0.dev0-py3-none-any.whl
安裝對應版本的diffusers
然后再刪除requirements.txt文件中的git+https://github.com/huggingface/diffusers.git@878f609aa5ce4a78fea0f048726889debde1d7e8#egg=diffusers
那一行
最后,繼續(xù)使用pip安裝剩下的依賴:
以上依賴安裝好后,可以在終端輸入python,然后輸入以下代碼進行測試:
import torch
from diffusers import CogVideoXPipeline
from diffusers.utils import export_to_video
顯示如下狀態(tài),沒有報錯就說明依賴安裝成功!
2.3、上傳模型與配置文件
除了配置代碼文件和項目依賴,還需要上傳CogVideoX模型文件和對應的配置文件。打開huggingface,進入https://huggingface.co/THUDM/CogVideoX-2b/tree/main
倉庫,找到Files and versions目錄,將其中的所有模型和配置文件全部下載到本地。
一共大概9GB+大小的文件,下載完成后的目錄如下:
然后點擊丹摩控制臺-文件存儲-上傳文件,將剛剛下載好的整個CogVideo文件夾上傳,上傳好后的文件存在實例的/root/shared-storage目錄。
上傳完成后,繼續(xù)打開終端,cd進入/root/shared-storage,輸入ls可以看到剛剛上傳好的CogVideo的文件夾已經顯示在文件目錄中。
2.4、開始運行
上傳完成后,在CogVideo-main文件新建一個test.py文件
test.py代碼內容如下,主要使用diffusers庫中的CogVideoXPipeline模型,加載了一個預訓練的CogVideo模型,然后根據一個詳細的文本描述(prompt),生成對應視頻。
import torch
from diffusers import CogVideoXPipeline
from diffusers.utils import export_to_video# prompt里寫自定義想要生成的視頻內容
prompt = "A panda, dressed in a small, red jacket and a tiny hat, sits on a wooden stool in a serene bamboo forest. The panda's fluffy paws strum a miniature acoustic guitar, producing soft, melodic tunes. Nearby, a few other pandas gather, watching curiously and some clapping in rhythm. Sunlight filters through the tall bamboo, casting a gentle glow on the scene. The panda's face is expressive, showing concentration and joy as it plays. The background includes a small, flowing stream and vibrant green foliage, enhancing the peaceful and magical atmosphere of this unique musical performance."pipe = CogVideoXPipeline.from_pretrained("root/shared-storage/CogVideo", # 這里填CogVideo模型存放的位置,此處是放在了丹摩實例的共享空間,也可以放到項目文件夾里torch_dtype=torch.float16
).to("cuda")# 參數(shù)do_classifier_free_guidance設置為True可以啟用無分類器指導,增強生成內容一致性和多樣性
# num_videos_per_prompt控制每個prompt想要生成的視頻數(shù)量
# max_sequence_length控制輸入序列的最大長度
prompt_embeds, _ = pipe.encode_prompt(prompt=prompt,do_classifier_free_guidance=True,num_videos_per_prompt=1,max_sequence_length=226,device="cuda",dtype=torch.float16,
)video = pipe(num_inference_steps=50,guidance_scale=6,prompt_embeds=prompt_embeds,
).frames[0]export_to_video(video, "output.mp4", fps=8)
運行成功后,可以在當前文件夾中找到對應prompt生成的output.mp4視頻:
最近正好奧運會,我還試著生成了一些比較有難度的運動員的視頻,感覺效果還不錯,后面再研究研究視頻的prompt怎么寫。
CogVideo生成視頻4
最后
💖 個人簡介:人工智能領域碩士畢業(yè),某央企AI工程師
📝 關注我:中杯可樂多加冰
🎉 支持我:點贊👍+收藏??+留言📝