莫潇羽@无忆研习社(www.wuyi.wiki)原创内容,转载请注明出处。
快速摘要
腾讯联合西安电子科技大学开源了一套名为ScriptAgent的AI视频生成框架,它的核心思路是用三个各司其职的AI智能体(编剧Agent、导演Agent、评审Agent)模拟真实影视制作流程,将简单的角色对话自动转化为结构完整、镜头连贯的长视频。 这套框架的关键创新在于:引入了一个叫ScriptBench的大规模专业剧本数据集来训练编剧模型,采用"监督微调+强化学习"的两阶段训练方法,并通过帧锚定(Frame Anchoring)策略解决了长视频生成中角色漂移和场景不连贯的老大难问题。如果你对AI视频生成、多智能体协作、或者影视自动化感兴趣,往下看有更详细的原理拆解和操作说明。
当前AI视频生成面临的真正瓶颈在哪里
2024年以来,AI视频生成领域迎来了爆发式进展。从OpenAI的Sora到Google的Veo,从国内的可灵AI到混元视频,各家模型在"文字描述生成短视频"这个维度上已经做得相当出色。给模型一段精心编写的提示词(prompt),它可以生成画质精美、物理运动自然的几秒到十几秒视频片段。
但你如果想用这些模型来讲一个完整的故事,问题马上就暴露了。莫潇羽在实际测试中发现,目前主流模型存在三个关键限制:
其一,时长天花板。多数模型的单次生成能力集中在5到16秒之间,超出这个范围,画面质量和连贯性就会断崖式下降。你没法用一次调用就生成一分钟甚至几分钟的连续叙事视频。
其二,角色身份漂移。当你试图通过多次生成再拼接的方式来制作长视频时,模型无法保持角色的一致性。上一个片段里的角色可能是短发,下一个片段就变成了长发;服装颜色、面部特征都可能发生不可控的变化。
其三,缺乏叙事结构。现有模型本质上是在做"文本到画面"的映射,它们不理解镜头语言、不懂景别切换、不会安排故事节奏。你给它一句"他疲惫地爬上山顶,终于找到了那支笔",它只能生成一个粗糙的画面,而不会像一个经验丰富的导演那样去设计——先用远景展现山势,再用中景捕捉角色的表情变化,最后用特写镜头定格那支笔。
影视制作行业有一句经典的话:拍好一部电影最重要的三件事——剧本、剧本、还是剧本。AI视频生成目前恰恰缺少的就是这根"剧本主线"。
换个角度思考这个问题:人类导演拿到一段对话,大脑中会自动完成一系列复杂的推理——这段对话发生在什么场景下?角色之间的情感关系是什么?用什么景别最能表达当前的情绪?镜头应该怎么运动才能引导观众的注意力?光线和色调如何搭配才能营造出合适的氛围?这些决策在专业导演看来是"直觉",但实际上是多年经验积累出来的领域知识。
现有的视频生成模型完全不具备这种"创作性推理"能力。它们只能机械地响应输入的文本提示词,无法从简短的对话中推断出丰富的视觉叙事细节。这正是腾讯ScriptAgent框架要解决的核心问题——让AI学会像真正的影视创作者那样思考和决策。
ScriptAgent框架全景:模拟真实影视制片团队
ScriptAgent框架的论文标题是 "The Script is All You Need"(论文编号:arXiv:2601.17737),由腾讯混元多模态团队和西安电子科技大学于2026年1月联合发布,并在GitHub上开源了完整代码。
项目开源地址:https://github.com/Tencent/digitalhuman/tree/main/ScriptAgent
这个框架的设计哲学非常直观——它不是去改进某一个视频生成模型的底层架构,而是在现有视频生成模型的上层搭建了一套完整的"虚拟影视制片管线"。整套系统由三个专业化的AI智能体组成,分别扮演编剧、导演和评审的角色,它们协同工作的流程与真实的影视制作惊人地相似。
整体工作流程可以这样理解:用户输入一段角色对话文本,编剧Agent(ScripterAgent) 将这段对话扩展为包含镜头类型、角色动作、场景描述、光影氛围等细节的专业电影剧本;然后 导演Agent(DirectorAgent) 拿到剧本后,合理拆分场景、调用视频生成模型、通过帧锚定策略保证片段之间的连贯性,最终拼接成一部完整的长视频;在整个过程中,评审Agent(CriticAgent) 从技术规范和艺术表现两个维度持续打分和反馈,筛掉不合格的内容。
接下来,莫潇羽@无忆研习社 为大家逐一拆解这三个智能体的工作原理。
编剧Agent(ScripterAgent):从对话到专业剧本的跨越
它到底在做什么
编剧Agent的核心任务,是弥合"粗粒度对话"和"细粒度电影剧本"之间的"语义鸿沟"(Semantic Gap)。
举个具体的例子。假设输入的对话是:
角色A:"啊,我好累,但总算爬上来了。"
角色B:"你看,笔就在这里。"
角色A:"谢谢你,我会好好保管的。"
一个有经验的人类编剧看到这段对话,脑海中会自动浮现出完整的画面:角色A气喘吁吁地站在山顶,风吹动他的衣角,远处是层叠的山峦;角色B微笑着将笔递过来,特写镜头捕捉笔尖的细节;角色A接过笔,表情从疲惫变为感动,背景音乐渐渐升起……
编剧Agent要做的就是这种"从三句话到一个完整电影场景"的推理和补全工作。它输出的不是简单的画面描述,而是结构化的电影剧本,包含具体的镜头类型(远景/中景/特写/跟拍等)、摄影机运动方式(推/拉/摇/移等)、角色的身体动作和面部表情、场景的光影和色调氛围、以及每个镜头的预估时长。
训练数据:ScriptBench数据集
要让AI学会写电影剧本,首先得有足够多的高质量"教材"。团队为此构建了一个名为 ScriptBench 的大规模基准数据集,包含 1750个完整的剧本实例,每个实例都配备了三种模态的信息——对话文本、音频数据和角色空间位置信息。数据集中每段视频平均时长15.4秒,这个长度经过精心选择,既足够展现完整的叙事片段,又在模型的处理能力范围内。
ScriptBench的标注过程分为三个阶段,每个阶段都有明确的目标:
第一阶段:语境重建(Context Reconstruction)。将对话和音频结合起来,提取出完整的背景信息——角色之间是什么关系、对话发生在什么场景下、情感基调是怎样的。这一步相当于给编剧提供"创作背景"。
第二阶段:镜头级语义规划(Shot-level Semantic Planning)。根据剧情节奏将内容拆分为独立的镜头单元。团队设定了几条关键规则:每个镜头时长不超过10秒;尽量在角色语句结束或情绪转折处进行切分;避免在复杂的摄影机运动过程中断开。这些规则保证了拆分出来的镜头既符合电影制作的常规做法,又适合视频生成模型的实际能力。
第三阶段:多轮自适应纠错(Multi-turn Adaptive Error Correction)。对标注结果进行反复检查和修正,确保对话内容没有遗漏、角色形象前后一致、场景过渡自然合理,甚至要检查物理逻辑——比如不能出现角色在上一个镜头还在A地点,下一个镜头突然出现在几公里外的B地点。据论文披露,专业顾问对60%的标注内容进行了抽查复核,最终有94%的剧本达到了专业级水准。
两阶段训练方法
有了高质量数据集,接下来是训练编剧Agent的关键步骤。团队采用了"两阶段训练范式",这个设计思路非常值得学习。
第一阶段:监督微调(Supervised Fine-Tuning, SFT)。在这个阶段,模型的学习目标是掌握电影剧本的基本格式和叙事结构。简单来说,就是让AI先学会"写作文的格式"——知道一个标准的电影剧本应该包含哪些要素(镜头编号、景别类型、角色动作描述、对白标注等),以及这些要素之间的逻辑关系是什么。这是一个序列到序列(Sequence-to-Sequence)的学习任务,输入是对话文本加上场景上下文,输出是结构化的电影剧本。
# 训练范式简化示意
# 输入:对话文本 + 上下文信息
input = {
"dialogue": "角色A:啊,我好累,但总算爬上来了。",
"context": {
"audio_features": [...],
"character_positions": [...],
"scene_metadata": {...}
}
}
# 输出:结构化电影剧本
output = {
"shot_1": {
"shot_type": "远景(Wide Shot)",
"camera_movement": "缓慢推进",
"duration": "4秒",
"description": "山顶全景,角色A站在巨石旁,大口喘气...",
"dialogue": "啊,我好累,但总算爬上来了。",
"lighting": "黄昏暖光,逆光剪影效果"
},
"shot_2": {
"shot_type": "中景(Medium Shot)",
...
}
}
第二阶段:强化学习对齐(Reinforcement Learning with GRPO)。第一阶段解决了"写得对不对"的问题,第二阶段要解决的是"写得好不好"的问题。团队使用了 GRPO(Group Relative Policy Optimization) 算法——这是一种比传统PPO算法更节省内存的强化学习方法,在DeepSeek R1的训练中也使用了同样的算法。
强化学习阶段的奖励函数(Reward Function)是一个混合设计:一方面包含客观的自动化评估指标,比如剧本格式是否规范、内容是否完整、叙事是否连贯;另一方面引入了主观的艺术评估分数,由资深影视艺术总监对生成的剧本进行打分,评估镜头划分是否具有电影感、节奏把控是否张弛有度、画面想象力是否丰富。
这种"客观+主观"的混合奖励机制非常巧妙——它既保证了剧本的技术规范性,又引导模型学会了某种程度上的"艺术直觉"。从最终的评测结果来看,完整版(SFT+RL)的ScripterAgent在视觉想象力(Visual Imagery)上得到了4.3分(基线模型MovieAgent为3.8分),在戏剧张力(Dramatic Tension)上得到了4.1分(基线为3.7分),提升幅度相当显著。
值得一提的是,消融实验(Ablation Study)的结果进一步验证了两阶段训练方法的必要性:只使用SFT训练的版本虽然在格式规范性上表现良好,但在艺术表现力方面明显不如加入了RL阶段的完整版。这说明单纯的监督学习可以教会模型"写对",但要教会模型"写好",强化学习阶段不可或缺。这个发现对于所有涉及"创意生成"任务的AI系统设计都有参考价值。
导演Agent(DirectorAgent):把剧本变成连贯长视频
长视频生成的核心挑战
编剧写完剧本,导演要负责"执行"。而在AI视频生成的语境下,"执行"面临的最大挑战就是——现有的视频生成模型大多只能一次生成几秒到十几秒的短片段,怎么把这些片段拼成一部连贯的、没有穿帮的长视频?
如果你简单地把多个独立生成的片段首尾相接,结果几乎必然是灾难性的:角色可能在不同片段之间"变脸"、服装突然更换、场景布局无缘无故地改变。这就像让十个不同的摄影师各自独立拍一个镜头,然后直接拼在一起——风格和内容都对不上。
DirectorAgent的设计目标就是解决这个问题。它采用了一套被称为 "跨场景连续生成策略"(Cross-Scene Continuous Generation Strategy) 的方法,核心思路包含智能场景分割和帧锚定两大机制。
智能场景分割
DirectorAgent拿到编剧输出的完整剧本后,首先要做的是将剧本合理拆分为若干个独立的视频生成任务。但这个拆分不是随便切的,它遵循四条核心原则:
- 镜头完整性(Shot Integrity):确保每个被拆分出来的片段都是一个完整的镜头,而不是在一个运动过程中生硬地截断。
- 时长适配(Duration Adaptation):每个片段的时长必须在底层视频生成模型的能力范围之内,同时预留一定的缓冲余量。比如模型最长能生成12秒视频,那么片段时长应控制在10秒左右。
- 语义连贯(Semantic Coherence):切分点应该选在叙事的自然断点处——角色说完一句台词、情绪发生转折、或者场景需要转换的时候。
- 技术可行性(Technical Feasibility):优先在静态镜头位置进行切分,避免在摄影机运动过程中断开,因为运动镜头的衔接对连续性的要求更高。
帧锚定机制(Frame Anchoring)
这是DirectorAgent最精妙的设计之一。帧锚定的原理非常直观——上一个视频片段的最后一帧,会作为下一个视频片段生成时的视觉起点。
你可以把它想象成接力赛跑:前一个选手跑到交接区时,后一个选手必须从同一个位置和姿态接棒起跑,这样整个赛程看起来才是流畅的。在视频生成中,这个"接力棒"就是那一帧画面,它携带了所有关键的视觉信息——角色当前的外貌和姿态、服装的颜色和样式、场景的布局和光照条件。
具体来说,当DirectorAgent要生成第N+1个片段时,它会做这么几件事:
- 提取第N个片段的最后一帧画面作为参考图像
- 在生成第N+1个片段的文本提示词中,显式加入连续性指令,比如"保持与上一镜头相同的角色外貌和服装"
- 将参考图像和文本提示词一起输入到视频生成模型中(利用现有模型的图像到视频能力)
这种机制有效地将"生成一段完整长视频"这个模型目前还做不到的大任务,分解为"生成多段保持连续性的短视频"这一系列小任务,每个小任务都在模型的能力范围之内。
# DirectorAgent 工作流程伪代码
def generate_long_video(script, video_model):
# 步骤1:智能分割场景
segments = smart_segmentation(script, max_duration=10)
final_video = []
anchor_frame = None # 初始无锚定帧
for i, segment in enumerate(segments):
# 步骤2:构建生成提示词
prompt = build_prompt(
script_segment=segment,
continuity_instructions=True if i > 0 else False
)
# 步骤3:帧锚定生成
if anchor_frame is not None:
# 使用上一片段最后一帧作为视觉起点
clip = video_model.generate(
prompt=prompt,
reference_image=anchor_frame
)
else:
clip = video_model.generate(prompt=prompt)
# 步骤4:更新锚定帧
anchor_frame = extract_last_frame(clip)
final_video.append(clip)
# 步骤5:拼接所有片段
return concatenate(final_video)
从实测效果来看,帧锚定机制显著减少了角色身份漂移和场景布局跳变的问题。论文中的量化数据显示,使用ScripterAgent生成的剧本来驱动视频生成后,主体一致性(Subject Consistency)和背景一致性(Background Consistency)指标都有了明显提升。
需要注意的是,团队也坦诚地指出了当前的局限性:在口型同步(Lip Syncing)和精细动作对齐方面,帧锚定还不能完全解决问题,这些细节层面的问题是后续优化的重点方向。
评审Agent(CriticAgent):多维度的质量把控
在真实的影视制作中,成片之后还要经过严格的审片和修改环节。CriticAgent扮演的就是这个"质检专家"的角色,它从多个维度对生成的剧本和视频进行评估。
剧本评估维度
在剧本生成阶段,CriticAgent主要检查以下几个方面:
- 格式规范性(Format Compliance):剧本的结构是否完整,每个镜头的描述是否包含了必要的技术参数。
- 内容完整度(Content Completeness):原始对话中的信息是否被完整地体现在剧本中,有没有遗漏关键情节。
- 叙事连贯性(Narrative Coherence):镜头之间的逻辑关系是否通顺,剧情发展是否自然流畅。
- 视觉想象力(Visual Imagery):剧本描述的画面是否具有电影感和表现力。
- 戏剧张力(Dramatic Tension):剧本的节奏把控是否得当,是否能有效地营造情绪起伏。
视频评估维度
在视频生成阶段,CriticAgent的评估更加细致入微:
它会检查摄影机运动是否具有目的性和表现力,分析角色的身体语言和空间位置是否与剧本描述吻合,验证角色外貌、服装等视觉细节是否前后一致,甚至会评估角色的微表情是否与预期的情感状态匹配。
VSA指标:一个值得关注的创新
团队还提出了一个名为 VSA(Visual-Script Alignment,视觉-剧本对齐度) 的新评估指标。传统的视频评估指标通常只检查"视频中是否出现了剧本描述的内容",而VSA更进一步,它衡量的是"视觉事件是否在剧本指定的时间区间内发生"。
举个例子:剧本写的是"在第3到第5秒,角色转身面向镜头",传统指标只看视频里有没有这个转身动作,而VSA还要看这个动作是不是发生在第3到第5秒之间。这对于叙事视频来说是一个非常重要的评估维度,因为时机和节奏本身就是电影语言的核心要素。
人机协作的评估体系
CriticAgent并非完全依赖AI自动评估。整个质量评估体系是"人机协作"的——既有AI的自动化打分,也有专业的人类导演和编剧参与评判。论文中提到,由超过60位专业评估人员参与了对视频质量的评估,评估维度涵盖文本对齐度、运动质量和视觉质量三大方面。
实测数据:ScriptAgent到底有多大提升
论文中对7个主流视频生成模型进行了系统测试,包括Sora2-Pro、Veo3.1、Wan2.5/2.6、HYVideo1.5等,结果揭示了一些值得关注的发现。
整体提升:在所有测试模型上使用ScripterAgent生成的结构化剧本作为输入后,AI评分均值从4.2提升至4.5,人类评分均值从3.7提升至4.2。这说明"先写剧本再拍视频"这个策略是普遍有效的,不依赖于特定的底层模型。
剧本忠实度大幅提升:以Wan2.6模型为例,剧本忠实度得分从3.2跃升至4.0。这意味着使用了ScripterAgent之后,生成的视频能更准确地还原原始对话的意图和情感。
一个有趣的发现——模型之间存在"视觉效果 vs 剧本忠实度"的权衡。论文发现,有些模型擅长生成视觉上令人惊艳的画面(比如Sora2-Pro在视觉审美和物理真实性方面得分较高),但在严格执行剧本指令方面表现一般;而另一些模型(比如HYVideo1.5)在叙事完整性和剧本忠实度方面表现突出,但视觉冲击力不如前者。
这个发现的实际指导意义是:如果你要拍动作大场面,选视觉效果强的模型;如果要拍对话密集的情感戏,选剧本忠实度高的模型。ScriptAgent框架的灵活性在于,它的输出(结构化剧本)可以适配不同的底层视频生成模型