今天,完成了一次从古诗到视频的AI自动化创作全流程实验,探索了语言模型与视频模型的协同潜力,并初步验证了批量生产的可行性。以下是今日成果的总结与行业技术梳理:
一、双模型协作:古诗视频的自动化生成
我们采用**“双专家”协作模式**:
- 1.语言模型专家GLM-4:负责解析古诗意境,生成分镜头脚本与视频提示词(Prompt)。例如,输入《望庐山瀑布》后,模型自动输出每句诗的景别、运镜、画面细节等参数。
def generate_video_prompt(poem_line, poem_name, author, client, logger):
"""使用智谱AI生成视频prompt"""
try:
# 构建提示词
prompt = f"""请为唐诗《{poem_name}》中的诗句"{poem_line}"生成一个简短的视频提示词(不超过400字)。
要求:
1. 视频风格:国风动画
2. 场景描述:人物角色为小书童,简洁描述主要场景和意境
3. 镜头运动:描述关键镜头运动
4. 音效:唐诗朗诵
5. 时长:30秒
请直接输出提示词,不要包含其他解释。"""
# 调用智谱AI生成prompt
response = client.chat.completions.create(
model="glm-4", # 使用最新的GLM-4模型
messages=[
{"role": "system", "content": "你是一个专业的视频制作专家,擅长将唐诗意境转化为简洁的视频画面描述。请确保输出不超过400字。"},
{"role": "user", "content": prompt}
],
temperature=0.7,
top_p=0.7,
max_tokens=1000
)
# 获取生成的prompt
generated_prompt = response.choices[0].message.content.strip()
# 检查prompt长度
if len(generated_prompt) > 512:
logger.warning(f"生成的prompt过长({len(generated_prompt)}字符),进行截断")
generated_prompt = generated_prompt[:512]
# 构建完整的视频prompt
final_prompt = f"""视频提示词:{generated_prompt}
诗句:{poem_line}
作者:{author}
诗名:{poem_name}
视频时长:5秒
视频尺寸:1920x1080"""
# 再次检查最终prompt长度
if len(final_prompt) > 512:
logger.warning(f"最终prompt过长({len(final_prompt)}字符),进行截断")
final_prompt = final_prompt[:512]
return final_prompt
- 2.视频模型专家cogvideox-2:根据提示词生成高质量视频片段,支持风格化渲染(如水墨风)和动态效果(如镜头推移)。
def generate_video(prompt_data, client, logger):
"""生成单个视频"""
try:
# 1. 输出prompt信息
logger.info("="*50)
logger.info("Prompt信息:")
logger.info(json.dumps(prompt_data, ensure_ascii=False, indent=2))
# 2. 准备API请求参数
request_params = {
"model": "cogvideox-2",
"prompt": prompt_data['prompt'],
"quality": "quality",
"with_audio": True,
"size": prompt_data['size'],
"fps": 30
}
# 输出API请求参数
logger.info("API请求参数:")
logger.info(json.dumps(request_params, ensure_ascii=False, indent=2))
# 3. 发送API请求
logger.info("正在发送视频生成请求...")
response = client.videos.generations(**request_params)
# 4. 输出API返回信息
logger.info("API返回信息:")
logger.info(json.dumps(response.__dict__, ensure_ascii=False, indent=2))
# 获取任务ID
task_id = response.id # 使用id作为任务ID
if not task_id:
logger.error("API返回数据中没有任务ID")
return None
logger.info(f"获取到任务ID: {task_id}")
# 等待视频生成完成
video_url = wait_for_video_completion(task_id, client, logger)
return video_url
except Exception as e:
logger.error("="*50)
logger.error("生成视频时发生异常:")
logger.error(f"异常类型: {type(e).__name__}")
logger.error(f"异常信息: {str(e)}")
logger.error("="*50)
return None
这种分工类似“编剧+导演”,语言模型设计蓝图,视频模型执行创作,最终合成连贯的古诗情境视频。
二、视频模型实战:批量生产的可能性
通过测试,我们发现当前视频模型(如GLM-4)已具备批量生成能力可能性:
- 效率提升:单次输入多句古诗提示词,可并行生成多个视频片段,后期仅需简单剪辑。
- 风格一致性:通过固定参数(如人物着装、艺术风格),确保系列视频的统一性。
- 行业应用:适用于教育短视频、文化传播等领域,未来可扩展至广告、影视预演等场景。
- 整体效果:需要进一步优化,相对文生图,还有优化空间
三、智谱模型初探:技术融合的新尝试
我们首次整合智谱模型进行Prompt优化实验,其优势包括:
- 多模态理解:能同时处理文本、图像语义,生成更精准的跨模态指令。
- 迭代优化:通过反馈机制自动调整提示词,减少人工调试成本。
有兴趣童鞋可以搞一下,作为入门了解,应该还是很不错的。
我正在BigModel.cn上用智谱API打造新一代应用服务,通过我的专属邀请链接注册即可获得额外GLM-4-Air 2000万Tokens好友专属福利,期待和你一起在BigModel上探索AGI时代的应用;链接:https://www.bigmodel.cn/invite?icode=gXhzS9fwyxt1zsTPnRZRLQZ3c5owLmCCcMQXWcJRS8E%3D
4 总结
以上内容可以参考github源码:
https://github.com/10164367/cog-view4
基于这个框架还是有很广阔的应用空间!!!