如何使用LLM實現文本自動生成視頻
推薦:使用NSDT場景編輯器助你快速搭建可二次編輯的3D應用場景介紹
基于擴散的圖像生成模型代表了計算機視覺領域的革命性突破。這些進步由Imagen,DallE和MidJourney等模型開創,展示了文本條件圖像生成的卓越功能。有關這些模型內部工作的介紹,您可以閱讀本文。
然而,Text-2-Video模型的開發提出了更艱巨的挑戰。目標是在每個生成的幀之間實現連貫性和一致性,并保持從視頻開始到結束的生成上下文。
然而,基于擴散的模型的最新進展也為文本2視頻任務提供了廣闊的前景。現在,大多數文本 2-視頻模型在預先訓練的文本 2-圖像模型上采用微調技術,集成動態圖像運動模塊,并利用各種文本 2-視頻數據集,如 WebVid 或 HowTo100M。
在本文中,我們的方法涉及利用HuggingFace提供的微調模型,該模型被證明有助于生成視頻。
實現先決條件我們使用HuggingFace提供的Diffusers庫,以及一個名為Accelerate的實用程序庫,它允許PyTorch代碼在并行線程中運行。這加快了我們的生成過程。
首先,我們必須安裝依賴項并為代碼導入相關模塊。
pip install diffusers transformers accelerate torch
然后,從每個庫中導入相關模塊。
import torch from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler from diffusers.utils import export_to_video創建管道
我們將ModelScope提供的Text-2-Video模型加載到HuggingFace中,在擴散管道中。該模型具有 1 億個參數,基于 UNet7D 架構,該架構通過迭代去噪過程從純噪聲生成視頻。它分為三部分。模型首先從簡單的英語提示符中執行文本特征提取。然后將文本特征編碼到視頻潛在空間并進行去噪。最后,將視頻潛在空間解碼回視覺空間并生成短視頻。
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 個推理步驟,以便模型將執行 25 次去噪迭代。更多的推理步驟可以提高視頻質量,但需要更多的計算資源和時間。
然后使用擴散器的實用程序功能組合單獨的圖像幀,并將視頻保存在磁盤上。
然后,我們將提示傳遞給視頻生成管道,該管道提供一系列生成的幀。然后使用擴散器的實用程序功能組合單獨的圖像幀,并將視頻保存在磁盤上。
結論足夠簡單!我們得到了蜘蛛俠沖浪的視頻。雖然這是一個質量不高的短視頻,但它仍然象征著這個過程的前景,它很快就會達到與Image-2-Text模型類似的結果。盡管如此,測試你的創造力和使用模型仍然足夠好。
原文鏈接:如何使用LLM實現文本自動生成視頻 (mvrlink.com)
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。