如何使用LLM實現(xiàn)文本自動生成視頻
推薦:使用NSDT場景編輯器助你快速搭建可二次編輯的3D應(yīng)用場景介紹
基于擴散的圖像生成模型代表了計算機視覺領(lǐng)域的革命性突破。這些進步由Imagen,DallE和MidJourney等模型開創(chuàng),展示了文本條件圖像生成的卓越功能。有關(guān)這些模型內(nèi)部工作的介紹,您可以閱讀本文。
然而,Text-2-Video模型的開發(fā)提出了更艱巨的挑戰(zhàn)。目標是在每個生成的幀之間實現(xiàn)連貫性和一致性,并保持從視頻開始到結(jié)束的生成上下文。
然而,基于擴散的模型的最新進展也為文本2視頻任務(wù)提供了廣闊的前景?,F(xiàn)在,大多數(shù)文本 2-視頻模型在預(yù)先訓(xùn)練的文本 2-圖像模型上采用微調(diào)技術(shù),集成動態(tài)圖像運動模塊,并利用各種文本 2-視頻數(shù)據(jù)集,如 WebVid 或 HowTo100M。
在本文中,我們的方法涉及利用HuggingFace提供的微調(diào)模型,該模型被證明有助于生成視頻。
實現(xiàn)先決條件我們使用HuggingFace提供的Diffusers庫,以及一個名為Accelerate的實用程序庫,它允許PyTorch代碼在并行線程中運行。這加快了我們的生成過程。
首先,我們必須安裝依賴項并為代碼導(dǎo)入相關(guān)模塊。
pip install diffusers transformers accelerate torch
然后,從每個庫中導(dǎo)入相關(guān)模塊。
import torch from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler from diffusers.utils import export_to_video創(chuàng)建管道
我們將ModelScope提供的Text-2-Video模型加載到HuggingFace中,在擴散管道中。該模型具有 1 億個參數(shù),基于 UNet7D 架構(gòu),該架構(gòu)通過迭代去噪過程從純噪聲生成視頻。它分為三部分。模型首先從簡單的英語提示符中執(zhí)行文本特征提取。然后將文本特征編碼到視頻潛在空間并進行去噪。最后,將視頻潛在空間解碼回視覺空間并生成短視頻。
pipe = DiffusionPipeline.from_pretrained( "damo-vilab/text-to-video-ms-1.7b", torch_dtype=torch.float16, variant="fp16") pipe.scheduler = DPMSolverMultistepScheduler.from_config( pipe.scheduler.config) pipe.enable_model_cpu_offload()
此外,我們使用 16 位浮點精度來降低 GPU 利用率。此外,還啟用了 CPU 卸載,可在運行時從 GPU 中刪除不必要的部分。
生成視頻prompt = "Spiderman is surfing" video_frames = pipe(prompt, num_inference_steps=25).frames video_path = export_to_video(video_frames)
然后,我們將提示傳遞給視頻生成管道,該管道提供一系列生成的幀。我們使用 25 個推理步驟,以便模型將執(zhí)行 25 次去噪迭代。更多的推理步驟可以提高視頻質(zhì)量,但需要更多的計算資源和時間。
然后使用擴散器的實用程序功能組合單獨的圖像幀,并將視頻保存在磁盤上。
然后,我們將提示傳遞給視頻生成管道,該管道提供一系列生成的幀。然后使用擴散器的實用程序功能組合單獨的圖像幀,并將視頻保存在磁盤上。
結(jié)論足夠簡單!我們得到了蜘蛛俠沖浪的視頻。雖然這是一個質(zhì)量不高的短視頻,但它仍然象征著這個過程的前景,它很快就會達到與Image-2-Text模型類似的結(jié)果。盡管如此,測試你的創(chuàng)造力和使用模型仍然足夠好。
原文鏈接:如何使用LLM實現(xiàn)文本自動生成視頻 (mvrlink.com)
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。