近期,智谱AI在其Maas开放平台(bigmodel.cn)发布了视频生成大模型CogVideoX,它提供了国内首个通过API来使用的文生视频和图生视频服务!
话不多说,我们直接来看一下通过CogVideoX生成的一部短片。
技术原理
CogVideoX融合了文本、时间、空间三维度,参考Sora算法设计,为DiT架构,相比前代CogVideo推理速度提升6倍,理论上6秒视频生成仅需30秒。
深入CogVideoX的原理,得从智谱多模态技术布局讲起。2021年,智谱在NeurIPS’21上发表了文生图大模型CogView,奠定多模态系列基础。2022年,智谱在CogView基础上提出并开源文生视频模型CogVideo,被多家巨头引用。
CogVideo基于CogView2,采用Diffusion Transformer模型架构(DiT),它通过引入噪声并训练神经网络来逆转噪声增加的过程,结合Transformer模型,实现图像或视频的生成与变换。这个过程涉及数据预处理、噪声引入、模型训练以及最终的图像或视频生成。
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
数据预处理:将输入的图像或视频数据转换为模型可以处理的格式,如将图像切分成固定大小的patches(小块),然后将这些patches转换为特征向量。
噪声引入:在数据预处理后的特征向量上逐步引入噪声,形成一个噪声增加的扩散过程。这个过程可以视为从原始数据到噪声数据的转换。
模型训练:使用引入了噪声的特征向量作为输入,训练Diffusion Transformer模型。模型的目标是学习如何逆转噪声增加的过程,即从噪声数据恢复出原始数据。
图像或视频生成:在模型训练完成后,可以通过输入噪声数据(或随机生成的噪声)到模型中,经过模型的处理后生成新的图像或视频。这个生成过程利用了模型学习到的从噪声到原始数据的映射关系。
而且智谱还在CogVideoX用户指令遵循方面下功夫,自研视频理解模型生成高质量视频文本对,有效提高模型指令遵循度。
CogVideo论文链接:
https://arxiv.org/abs/2205.15868
CogVideoX上手体验
目前,CogVideoX已经在大模型MaaS平台bigmodel.cn上正式发布,还是国内首个可通过API体验AI生成视频,用户完成注册后即可体验其强大的视频创作能力。
下面,我将通过Python SDK来引导大家如何调用CogVideoX。文档链接:https://open.bigmodel.cn/dev/howuse/cogvideox
首先,请确保你已安装或升级了智谱AI的SDK。如果尚未安装,可以通过pip install zhipuai
进行安装;若已安装但非最新版本,则需使用
pip install --upgrade zhipuai
进行升级。
完成SDK安装后,你可以通过简单的几行代码引入智谱AI的客户端:
from zhipuai import ZhipuAI
接下来,我将展示如何使用CogVideo模型进行视频创作,主要的函数有两个:
-
generations:生成视频
-
retrieve_videos_result:查询结果
请参考以下文生视频的示例代码:
from zhipuai import ZhipuAI
# 初始化客户端并传入你的API密钥
client = ZhipuAI(你的API_KEY)
# 使用CogVideo模型生成视频
# prompt参数为描述视频内容的文本
response = client.videos.generations(model="cogvideox",
prompt="有一个女孩在喝咖啡,阳光洒在她的脸上,她看起来心情很好")
print(response)
请注意,视频生成是一个耗时过程,因此该请求是异步的。你将收到的响应中仅包含任务ID,而非视频内容本身。你可以通过查询该任务ID来获取视频的生成状态及结果。
以下是查询视频生成状态的示例响应:
VideoObject(id='1010028834062354330651310', model='cogvideo', video_result=None, task_status='PROCESSING', request_id='8833470954813038693')
为了获取最终的视频内容,你需要编写代码轮询查询该任务状态,直至其变为COMPLETED
。以下是一个轮询查询并打印结果的示例函数:
import time
def video_task():
response = client.videos.generations(model="cogvideo", prompt="风景优美的河里,有一只船划过")
print(response)
task_status = response.task_status
task_id = response.id
get_cnt = 0
while task_status == 'PROCESSING' and get_cnt <= 40:
time.sleep(10) # 每10秒查询一次
result_response = client.videos.retrieve_videos_result(id=task_id)
print(result_response)
task_status = result_response.task_status
get_cnt += 1
# 调用函数
video_task()
然后就可以生成这样一段视频了:
如果是图生视频,你还需提供底图的image_url
,平台支持通过 URL 链接或 Base64 编码格式上传图片,但请确保图片大小不超过 5MB。
from zhipuai import ZhipuAI
client = ZhipuAI(你的API key) # 填写您⾃⼰的APIKey
response = client.videos.generations(
model="cogvideo",
prompt=prompt,
image_url=url,
)
print(response)
下面是一个返回的
response
示例:
id='8868902201637896192' request_id='654321' model='cogvideox' task_status='PROCESSING'
紧接着,我们将利用此返回的id
(注意,此处使用的是id
而非request_id
)来查询生成的视频结果。请参考以下代码示例:
from zhipuai import ZhipuAI
client = ZhipuAI(api_key="") # 请在此处填入您自己的API密钥
response = client.videos.retrieve_videos_result(
id="8868902201637896192"
)
print(response)
当您执行上述代码后,您将接收到类似以下结构的response
示例:
{
"model": "cogvideox",
"request_id": "8868902201637896192",
"task_status": "SUCCESS",
"video_result": [
{
"cover_image_url": "https://sfile.chatglm.cn/testpath/video_cover/4d3c5aad-8c94-5549-93b7-97af6bd353c6_cover_0.png",
"url": "https://sfile.chatglm.cn/testpath/video/4d3c5aad-8c94-5549-93b7-97af6bd353c6_0.mp4"
}
]
}
如此,你便能优雅地获取到生成的视频及其封面图的链接信息。
提示词技巧
其实,无论是AI对话、AI绘画,还是在此所提及的AI视频生成,提示词的撰写皆遵循一个核心要旨:
那便是——结构化!它可以让纷繁的思绪变得井然有序,更在于它能引领你的创意之旅步入清晰之境。
谈及AI视频生成,其提示词结构的构建可繁可简:
简约结构:人物+场景,再辅以[细致描绘],便足以勾勒出生动的画面。
一群小孩子在街道玩耍,很开心。
繁复架构:(镜头语⾔ + 光影) + 主体 (主体描述) + 主体运动 +[场景的生动再现(含场景细致描绘)]以及[情绪的渲染/氛围的营造/风格的彰显],共同编织出一幅幅引人入胜的视觉盛宴。
从高处俯瞰,清晨的第一缕阳光穿透薄雾,照亮了宁静的小镇。一群穿着色彩鲜艳衣裳的孩子在街道上追逐嬉戏,脸上洋溢着纯真的笑容。街道两旁古朴的建筑和盛开的花朵交相辉映,远处是连绵的山峦和袅袅升起的炊烟。整个画面洋溢着温馨与活力,让人不由自主地沉醉在这份宁静与美好之中。
体验链接
开发者API访问链接:
https://open.bigmodel.cn/dev/howuse/cogvideox
赶紧去试试吧,用cogvideox扩展你的想象空间!
👉AI大模型学习路线汇总👈
大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
文章知识点与官方知识档案匹配,可进一步学习相关知识