自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

AI自動生成創(chuàng)意視頻:如何讓大模型助你一臂之力

原創(chuàng) 精選
人工智能
本文探討了如何利用大語言模型和AI視頻生成模型來創(chuàng)建高度個性化和創(chuàng)意豐富的視頻內(nèi)容。文章詳細(xì)介紹了從構(gòu)思到實現(xiàn)的全過程,包括問題分析、目標(biāo)設(shè)定、工具和模型選擇,以及實際操作步驟。

作者 | 崔皓

審校 | 重樓

摘要

本文探討了如何利用大語言模型和AI視頻生成模型來創(chuàng)建高度個性化和創(chuàng)意豐富的視頻內(nèi)容。文章詳細(xì)介紹了從構(gòu)思到實現(xiàn)的全過程,包括問題分析、目標(biāo)設(shè)定、工具和模型選擇,以及實際操作步驟。使用的技術(shù)和工具包括OpenAI的GPT-3.5-turbo、Hugging Face的zerscope_v2_576w模型,以及Langchain、PyTorch等輔助工具。

開篇

在科技日新月異的今天,人工智能不僅僅局限于數(shù)據(jù)分析或自動駕駛等領(lǐng)域,其在創(chuàng)意產(chǎn)業(yè)中的應(yīng)用也越來越廣泛。那么,能不能讓大語言模型與AI視頻生成模型聯(lián)手,為我們帶來高度個性化且極富創(chuàng)意的視頻內(nèi)容呢?本文將介紹如果通過輸入幾個關(guān)鍵詞讓大模型幫助我們生成創(chuàng)意視頻。其中用到了OpenAI,Hugging face開源庫,LangChain等技術(shù)或框架,通過手把手編寫代碼,查找資料的方式呈現(xiàn)完整的開發(fā)過程。

突發(fā)奇想

在瀏覽社交媒體時,我經(jīng)??吹礁鞣N精彩絕倫的創(chuàng)意視頻。每次看到這些,我都忍不住想:如果我也能制作出這樣的作品,該有多好!但問題是,我作為一個碼農(nóng)對創(chuàng)意這件事一直不太自信。那么如何能夠創(chuàng)建屬于自己的創(chuàng)意視頻呢?

突然,我想到了大語言模型和AI視頻生成技術(shù)。大語言模型擅長生成文本,而AI視頻生成模型則能從文本生成視頻。那么,它們能否聯(lián)手,幫助我填補這一創(chuàng)意缺口呢?

思路整理:明確目標(biāo),分解任務(wù)

在有了初步的想法后,下一步就是具體地整理思路,明確我們需要解決哪些問題。這樣不僅能讓我們有目標(biāo)可行,還能為后續(xù)的行動計劃提供明確的方向。以終為始,我們的目標(biāo)就是讓計算機(jī)幫我們自動生成創(chuàng)意視頻,那么就可以分割為產(chǎn)生創(chuàng)意和生成視頻兩個環(huán)節(jié)。

問題一:創(chuàng)意缺乏,如何解決?

對于大多數(shù)碼農(nóng)來說,創(chuàng)意并不是我們的強項。但是好消息是,現(xiàn)在有大語言模型能夠在這方面幫助我們。通過合理地設(shè)置提示(prompt)或者利用現(xiàn)有的模板,我們甚至能生成具體的創(chuàng)意腳本。

我的初步想法如下:

1. 查找合適的大語言模型,例如GPT-3.5-turbo。

2. 設(shè)計或找到有效的文本提示模板。

3. 進(jìn)行多輪的文本生成實驗,直到滿意為止。

問題二:如何生成視頻?

生成創(chuàng)意文本后,下一步就是將這些文本轉(zhuǎn)化為視頻。由于我們并不是專業(yè)的視頻制作人員,因此找到一個現(xiàn)成的、用戶友好的AI視頻生成模型將會非常有幫助。

這也難不倒我,通過下面幾步或許能夠如愿以償:

1. 搜尋開源的AI視頻生成模型,到最大的模型庫Hugging face上去找找一定會有收獲。

2. 了解模型的輸入要求和使用方式。

3. 實施初步的視頻生成測試,如果需要,進(jìn)行必要的調(diào)整。

首先,利用大語言模型解決創(chuàng)意問題;其次,利用AI視頻生成模型將創(chuàng)意實現(xiàn)為具體的視頻內(nèi)容。這樣一來,即便我們不是“創(chuàng)意大師”,也完全有能力制作出令人印象深刻的創(chuàng)意視頻。

查找資料:武裝自己的工具箱

通過對目標(biāo)的分析,我們總結(jié)出兩大問題,并且針對每個問題都有了基本的解決思路。接下來需要了解對應(yīng)的工具,同時對工具,框架和庫進(jìn)行測試,從而驗證我們的想法。

接著我們對技術(shù)做了如下的選擇

大語言模型:OpenAI的GPT-3.5-turbo

OpenAI是在AI界非常有影響力的組織,其推出的GPT模型家族幾乎成為了大語言模型的代名詞。同時,與其他版本相比,GPT-3.5-turbo的token費用更加實惠,對于個人或小型項目來說非常適用。

這里,我計劃使用GPT-3.5-turbo來生成創(chuàng)意文本。通過設(shè)置特定的提示和參數(shù),我能夠讓模型產(chǎn)生具有高創(chuàng)意價值的文本內(nèi)容。

AI視頻模型:cerspense/zeroscope_v2_576w

在Hugging Face的平臺上,這個模型因其高Star評級而受到了大量關(guān)注,這通常是社群對其有效性的一種認(rèn)可。那么在這個平臺上面如何找到我們需要的模型呢?

首先,登錄平臺,在首頁選擇“Tasks”。

在Tasks中列出所有Hugging face上模型能夠執(zhí)行的任務(wù),并且Hugging face 已經(jīng)對所有的模型進(jìn)行了分類。我們找到“Text-to-Video”的分類,點擊進(jìn)入。

在進(jìn)去的頁面會對這類模型進(jìn)行簡單地介紹。它會告訴你將文本輸入到模型,輸出的結(jié)果就是視頻。我們點擊右邊的“Browse Models”按鈕瀏覽所有的模型。

在展開的模型列表中,最上面的zeroscope_v2_576w 下載量有28.5K,看來用的人很多,而且星星數(shù)量也不少。

點擊進(jìn)入模型詳情頁,里面對模型進(jìn)行了簡單描述,并且提供了模型的使用方式。由于所有Hugging face上面托管的模型都可以免費使用,所以我們直接按照使用方法調(diào)用就好了。 具體的調(diào)用方法會在后面的代碼描述中說明。

我看了看模型基本沒有問題,于是敲定就是它了。將文本轉(zhuǎn)化為視頻內(nèi)容的重任就交給它了。

輔助工具:Langchain, PyTorch, Diffusers

解決兩個大模型工具的問題之后,我們還需要一些幫手。

  • Langchain:作為一個大模型的腳手架,Langchain的Prompt Template可以幫助我更有效地設(shè)置和優(yōu)化模型的輸入提示。
  • PyTorch:作為一個強大的機(jī)器學(xué)習(xí)庫,PyTorch可以用于定制一些特定功能,讓我更靈活地使用前兩者。
  • Diffusers庫:提供了諸如`DiffusionPipeline`和`DPMSolverMultistepScheduler`等工具,這些可以用于進(jìn)一步優(yōu)化視頻生成過程。

Langchain主要用于優(yōu)化大語言模型的輸入和輸出,PyTorch用于更高級的自定義和優(yōu)化,而Diffusers庫則可以用于進(jìn)一步提升視頻生成的質(zhì)量。

通過選擇工具和模型,我為自己構(gòu)建了工具箱。每一項選擇都是出于特定的考慮和需求,旨在解決我在創(chuàng)意視頻生成過程中可能遇到的問題。這樣,即使我不是一個“創(chuàng)意大師”,也有信心能制作出令人印象深刻的創(chuàng)意視頻。

小心嘗試:遇到的問題與調(diào)整

剛開始,我嘗試用一些簡單的關(guān)鍵字給到zeroscope_v2_576w模型,比如“小貓”,“科技感”,“奔跑”,來生成文本。然而,我很快發(fā)現(xiàn)這樣做產(chǎn)生的創(chuàng)意還是不夠豐富。語言的敏感性:英文輸入的效果更好。這和我之前預(yù)想的差不多,通過簡單的關(guān)鍵詞生成視頻可能還是不夠。

通過如下代碼,我搞定了創(chuàng)意文字的輸出。

from langchain.llms import OpenAI
from langchain import PromptTemplate

llm = OpenAI(model_name="gpt-3.5-turbo")

template = """
我想讓大模型根據(jù)文字生成創(chuàng)意視頻,我本身沒有什么思路, 會輸入幾個關(guān)鍵詞,你根據(jù)這幾個詞生成具有創(chuàng)意的一句話(英文),在15token以內(nèi)。
我把中文輸入放到這里:{input},將你生成的這句話直接輸出,由于我要用這句話直接生成視頻,所以在輸出的時候不要附加除了這句話之外的內(nèi)容。
"""

prompt = PromptTemplate(
    #接受用戶輸入
    input_variables=["input"],
    #定義Prompt tempalte
    template=template,
)
#這里是真正的用戶輸入
final_prompt = prompt.format(input='小貓 科技感 奔跑 ')
response = llm(final_prompt)

print (f"大語言模型的回應(yīng): {response}")

照例我們對代碼進(jìn)行簡單介紹:

這段代碼是用于生成創(chuàng)意視頻概念的文本,具體通過與OpenAI的GPT-3.5-turbo大模型交互來實現(xiàn)。下面是代碼各部分的解釋:

1. 導(dǎo)入必要的模塊:

- `from langchain.llms import OpenAI`: 導(dǎo)入Langchain庫中的OpenAI模塊,用于與GPT-3.5-turbo交互。

- `from langchain import PromptTemplate`: 導(dǎo)入Langchain的PromptTemplate類,用于構(gòu)建和格式化模型的輸入。

2. 初始化大模型:

- `llm = OpenAI(model_name="gpt-3.5-turbo")`: 初始化OpenAI的GPT-3.5-turbo模型。

3. 定義模板:

- `template = """..."""`: 定義一個字符串模板,用于生成與大模型交互的最終提示(prompt)。

4. 創(chuàng)建PromptTemplate對象:

- `prompt = PromptTemplate(...)`: 使用之前定義的字符串模板和輸入變量來創(chuàng)建PromptTemplate對象。

5. 生成最終的提示:

- `final_prompt = prompt.format(input='小貓 科技感 奔跑 ')`: 格式化PromptTemplate對象,插入真正的用戶輸入。

6. 與大模型交互:

- `response = llm(final_prompt)`: 使用格式化后的提示與GPT-3.5-turbo模型進(jìn)行交互,獲取模型的輸出。

7. 輸出模型的響應(yīng):

- `print (f"大語言模型的回應(yīng): {response}")`: 打印模型生成的創(chuàng)意文本。

大語言模型的回應(yīng): "Technology-driven feline streaks across in a futuristic blur."

大模型的回應(yīng)是上面這句英文,我反正沒有看出有什么創(chuàng)意,不過還是需要進(jìn)行測試的。

在輸入prompt的部分我糾結(jié)了很久,GPT的模型有時候會輸出一些不必要的“廢話”,最后我強制它只輸出創(chuàng)意句子才滿足了我的要求。因為這里的response需要傳給視頻生成的模型,所以無關(guān)的信息是越少越好。

接下來的代碼就是將response給我們的zeroscope_v2_576w 視頻模型了。

# 導(dǎo)入PyTorch庫,這是一個用于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的開源庫
import torch

# 從diffusers庫中導(dǎo)入DiffusionPipeline和DPMSolverMultistepScheduler類
# DiffusionPipeline用于處理擴(kuò)散流程,DPMSolverMultistepScheduler用于調(diào)度多步解算器
from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler

# 從diffusers.utils模塊中導(dǎo)入export_to_video函數(shù),用于導(dǎo)出生成的視頻幀
from diffusers.utils import export_to_video

# 使用from_pretrained方法從預(yù)訓(xùn)練模型"cerspense/zeroscope_v2_576w"中加載DiffusionPipeline
# 并設(shè)置數(shù)據(jù)類型為float16以減少內(nèi)存使用和提高計算速度
pipe = DiffusionPipeline.from_pretrained("cerspense/zeroscope_v2_576w", torch_dtype=torch.float16)

# 從當(dāng)前管道的調(diào)度器配置中創(chuàng)建一個新的多步解算器調(diào)度器(DPMSolverMultistepScheduler)
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)

# 啟用CPU離線模型加載,在有限的GPU內(nèi)存下運行更大的模型
pipe.enable_model_cpu_offload()

# 設(shè)置輸入提示
prompt = response

# 使用管道進(jìn)行推理,得到生成的視頻幀
# num_inference_steps設(shè)置為40,表示使用40步進(jìn)行推理。
# 擴(kuò)散模型需要通過擴(kuò)散:添加噪聲,收縮:去除噪聲,最終生成數(shù)據(jù)。
# height和width設(shè)置生成視頻的分辨率
# num_frames設(shè)置生成視頻的幀數(shù)
video_frames = pipe(prompt, num_inference_steps=40, height=320, width=576, num_frames=24).frames

# 使用export_to_video函數(shù)導(dǎo)出生成的視頻幀,保存為視頻文件
video_path = export_to_video(video_frames)

這段代碼主要用于將大模型生成的創(chuàng)意文本轉(zhuǎn)化為一段視頻。代碼涉及多個步驟和組件,下面是代碼部分的解釋:

導(dǎo)入必要庫和模塊

1.導(dǎo)入PyTorch庫:PyTorch是一個用于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的開源庫。

2.導(dǎo)入DiffusionPipeline和DPMSolverMultistepScheduler:這兩個類分別用于處理擴(kuò)散流程和調(diào)度多步解算器。

3.導(dǎo)入export_to_video函數(shù):這個函數(shù)用于將生成的視頻幀導(dǎo)出為一個視頻文件。

4.加載預(yù)訓(xùn)練的DiffusionPipeline:使用`from_pretrained`方法加載預(yù)訓(xùn)練模型"cerspense/zeroscope_v2_576w"。

5.設(shè)置調(diào)度器:從當(dāng)前管道的調(diào)度器配置中創(chuàng)建一個新的多步解算器調(diào)度器。

6.啟用CPU離線模型加載:這一步可在有限的GPU內(nèi)存下運行更大的模型。

7.設(shè)置輸入提示:用大模型生成的文本(存儲在變量`response`中)作為輸入。

8.進(jìn)行推理:使用DiffusionPipeline進(jìn)行推理,生成視頻幀。

- `num_inference_steps=40`:推理過程會經(jīng)歷40個步驟。

- `height=320, width=576`:設(shè)置生成視頻的分辨率。

- `num_frames=24`:設(shè)置生成視頻的幀數(shù)。

9.導(dǎo)出生成的視頻幀:使用`export_to_video`函數(shù)將生成的視頻幀保存為一個視頻文件。

整體邏輯是:先初始化所需的各個組件和庫,然后設(shè)置適當(dāng)?shù)膮?shù)和輸入提示,最后執(zhí)行推理和導(dǎo)出結(jié)果。

得到結(jié)果:終點也是新的起點

經(jīng)過上面的一番折騰,我將文件生成到了video_path 這個目錄中了。由于使用了co-lab的虛擬機(jī)實現(xiàn)了上面的代碼。

Google Colaboratory(簡稱Colab)是一個基于云端的Jupyter Notebook環(huán)境,用于編寫和執(zhí)行Python代碼。它為數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等領(lǐng)域的研究和教育提供了便利的平臺。以下是一些關(guān)鍵特點和優(yōu)勢:

主要特點:

1.免費使用:Colab是一個免費的服務(wù),你只需要有一個Google帳號即可使用。

2. 便捷的共享和協(xié)作:與Google Drive集成,方便文件的上傳、下載和共享。也可以多人實時編輯同一個Notebook。

3. GPU支持:Colab提供免費的GPU資源,這對于執(zhí)行復(fù)雜的機(jī)器學(xué)習(xí)或數(shù)據(jù)處理任務(wù)非常有用。

4. *簡單易用:無需配置,只需打開一個Web瀏覽器就可以編寫和執(zhí)行代碼,適合初學(xué)者和專家。

5. *豐富的庫支持*:預(yù)安裝了大量的Python庫,無需手動安裝就可以直接使用,如NumPy, Pandas, TensorFlow, PyTorch等。

我這里打印一下 video_path 所在的目錄。

print(video_path)

發(fā)現(xiàn)在tmp 目錄下,我下載視頻并且打開播放??纯催@貓叫一個抽象,是因為奔跑的原因嗎?前腿去哪里了?

是提示詞不精準(zhǔn)嗎?于是,我調(diào)整提示詞如下,讓gpt-3.5-turbo知道我是給視頻大模型提供生成句子的。

我想讓大模型根據(jù)文字生成創(chuàng)意視頻,生成視頻的模型我使用的是Hugging face上的zeroscope_v2_576w,我希望你給出的提示詞它能夠理解。

我本身沒有什么思路, 會輸入幾個關(guān)鍵詞,你根據(jù)這幾個詞生成具有創(chuàng)意的一句話(英文),在15token以內(nèi)。

我把中文輸入放到這里:{input},將你生成的這句話直接輸出,由于我要用這句話直接生成視頻,所以在輸出的時候不要附加除了這句話之外的內(nèi)容。

于是,我得到下面這段創(chuàng)意文字。

A futuristic, tech-savvy cat swiftly dashes through time.

希望,能夠得到好效果,于是我懷著忐忑的心情又生成了一次視頻。

這次看上去更像一只貓了,還有藍(lán)色的“圍脖”,這就是科技感嗎?

最終,我雖然生成了一個包含“小貓”、“科技感”和“奔跑”等元素的創(chuàng)意視頻,但還需要不斷的進(jìn)行調(diào)整才能達(dá)到我的預(yù)期。所以,這只是一個開始。未來,我還計劃進(jìn)一步優(yōu)化方法,并嘗試更多不同類型的創(chuàng)意內(nèi)容。

總結(jié)

通過整合不同的AI技術(shù)和工具,即便不是“創(chuàng)意大師”,我們也能生成富有創(chuàng)意和個性的視頻內(nèi)容。在實驗過程中,我們遇到了一些問題,例如語言敏感性和輸入效果,但通過不斷調(diào)整和優(yōu)化,最終實現(xiàn)了目標(biāo)。這不僅為那些在創(chuàng)意產(chǎn)業(yè)中想要做出一番貢獻(xiàn)但又缺乏信心的人提供了一條可能的路徑,也展示了AI在創(chuàng)意領(lǐng)域的巨大潛力。通過合理地組合和應(yīng)用這些先進(jìn)的技術(shù),我們完全有能力突破傳統(tǒng)的限制,創(chuàng)造出更加驚艷和個性化的作品。

作者介紹

崔皓,51CTO社區(qū)編輯,資深架構(gòu)師,擁有18年的軟件開發(fā)和架構(gòu)經(jīng)驗,10年分布式架構(gòu)經(jīng)驗。


責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2015-09-15 11:15:48

甲骨文云計算一體機(jī)

2015-12-14 15:34:47

微信

2024-03-04 10:21:59

KubernetesDeployment云原生

2011-07-05 09:11:48

飛魚星飛視美視頻會議

2016-08-19 16:11:15

Informatica云市場

2013-09-24 09:59:27

開源Oracle數(shù)據(jù)庫系統(tǒng)

2021-01-13 14:36:14

5G人工智能運營商

2015-02-05 11:20:24

超融合架構(gòu)混合云企業(yè)存儲

2010-06-04 11:40:02

統(tǒng)一通信SBCS西門子

2011-06-20 13:49:43

快書包合力金橋

2010-01-19 14:39:42

2021-08-26 11:09:51

systemdLinux

2020-12-14 15:21:06

5G運營商邊緣計算

2021-04-12 11:09:13

React開發(fā)

2024-12-10 07:15:00

2009-03-31 16:41:38

網(wǎng)絡(luò)性能網(wǎng)絡(luò)監(jiān)控開源

2010-10-28 10:26:56

求職

2010-05-10 10:55:28

職場IT培訓(xùn)

2017-01-19 15:20:32

遠(yuǎn)程智能蒲公英
點贊
收藏

51CTO技術(shù)棧公眾號