
随着大语言模型(LLM)、文生图/视频扩散模型以及多模态 AI 的爆发,影视内容生产的门槛正在被迅速拉低。本文将从系统架构的角度,设计一个“利用大模型生成网剧”的平台,覆盖剧本创作 → 分镜设计 → 素材生成 → 视频剪辑四大环节,让你即使没有专业摄制团队,也能将脑洞变成一部完整的微型网剧。
平台核心由四个微服务组成,通过消息队列解耦,前端为用户提供一个可视化 Storyboard 编辑器。
flowchart LR
A["用户输入创意 Prompt"] --> B["剧本生成引擎"]
B --> C["分镜与视觉规划"]
C --> D["素材生成工厂"]
D --> E["视频剪辑合成"]
E --> F["成片预览与导出"]
G["素材库/风格库"] --> D
H["音效与 BGM 素材"] --> E剧本引擎不是简单的“帮我想个故事”,而是一套多步推理流程,包含世界观设定、角色小传、节拍表(Beat Sheet)和最终剧本输出。
技术选型:使用 GPT-4o 或 Qwen-Max,通过 ReAct 模式串联以下步骤:
<scene id="1" location="咖啡厅-内景">
<action>林小米推开玻璃门,风铃响起。她扫视大厅,目光停在角落戴耳机的男生身上。</action>
<dialogue character="林小米">是你给我发的匿名邮件?</dialogue>
<dialogue character="陆时砚">比我想象中来得早。</dialogue>
</scene>为了后续视频生成,剧本输出必须包含时间锚点和情绪标签,如 duration=5s, emotion=suspense。
下面是基于 OpenAI API 的 Python 实现示例,演示如何串联多个 LLM 调用完成上述四步流程:
import openai
import json
import os
from typing import List, Dict
openai.api_key = os.getenv("OPENAI_API_KEY")
def generate_outlines(genre: str, keywords: str, model: str = "gpt-4o") -> List[Dict]:
"""创意发散:根据类型和关键词生成3个候选大纲"""
prompt = (
f"你是一名网剧编剧。根据类型「{genre}」和关键词「{keywords}」,"
f"生成3个不同的短剧大纲,每个大纲包括剧名和200字剧情梗概。"
f"以JSON数组字符串返回,格式:[{{'title':..., 'synopsis':...}}]"
)
response = openai.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}],
temperature=0.9
)
outlines = json.loads(response.choices[0].message.content)
return outlines
def evaluate_outlines(outlines: List[Dict], model: str = "gpt-4o") -> Dict:
"""大纲评审:扮演制片人,对每个大纲评分并选出最佳"""
prompt = (
f"你是一名资深制片人。请对以下3个大纲进行可行性、冲突密度、爽点数量评分(1-10分),"
f"选出最佳并说明理由。大纲:{json.dumps(outlines, ensure_ascii=False)} "
f"返回JSON:{{'best_index': 0, 'scores': [{{'feasibility':..., 'conflict':..., 'twist':...}}], 'reason':'...'}}"
)
response = openai.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}],
temperature=0.5
)
evaluation = json.loads(response.choices[0].message.content)
return evaluation
def develop_characters(selected_outline: Dict, model: str = "gpt-4o") -> List[Dict]:
"""角色开发:为选中的大纲创建角色小传"""
prompt = (
f"你是一名角色设计师。根据以下大纲,生成3-5个主要角色,"
f"每个角色包含姓名、性格、口头禅、背景故事。"
f"大纲:{json.dumps(selected_outline, ensure_ascii=False)} "
f"返回JSON列表:[{{'name':..., 'personality':..., 'catchphrase':..., 'backstory':...}}]"
)
response = openai.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}],
temperature=0.8
)
characters = json.loads(response.choices[0].message.content)
return characters
def expand_script(outline: Dict, characters: List[Dict], model: str = "gpt-4o") -> str:
"""剧本扩写:生成三幕剧剧本,包含场景描述、动作与对白"""
prompt = f"""你是一名专业编剧。根据大纲和角色信息,写出完整的三幕剧剧本。要求:
- 用XML格式输出,<scene>标签注明id和地点
- 每个场景包含<action>和<dialogue>(标注character)
- 添加duration_s和emotion属性
大纲:{json.dumps(outline, ensure_ascii=False)}
角色:{json.dumps(characters, ensure_ascii=False)}
输出示例:
<scene id="1" location="咖啡厅-内景" duration_s=5 emotion="suspense">
<action>林小米推门,风铃响起</action>
<dialogue character="林小米">是你?</dialogue>
</scene>"""
response = openai.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}],
temperature=0.7,
max_tokens=4000
)
script = response.choices[0].message.content
return script
# 示例调用
if __name__ == "__main__":
genre = "甜宠"
keywords = "校园,图书馆偶遇"
print("🎬 创意发散中...")
outlines = generate_outlines(genre, keywords)
print(f"生成了 {len(outlines)} 个大纲")
print("📋 大纲评审中...")
evaluation = evaluate_outlines(outlines)
best_idx = evaluation["best_index"]
best_outline = outlines[best_idx]
print(f"选中大纲:{best_outline['title']},评分理由:{evaluation['reason']}")
print("🧑🎤 角色开发中...")
characters = develop_characters(best_outline)
print(f"创建了 {len(characters)} 个角色")
print("📜 剧本扩写中...")
script = expand_script(best_outline, characters)
print("剧本草稿已完成,前500字预览:\n", script[:500])分镜模块将文本剧本转化为机器可理解的视觉指令。我们采用“文生图 Prompt + ControlNet 条件”组合的方案。
工作流程:
embedding 或 trigger word,保证人脸/服装一致。dolly-in、pan-right)。{
"storyboard": [
{
"index": 1,
"duration_s": 5,
"prompt": "a young woman in white dress, walking down a street at sunset, cinematic lighting, shallow depth of field",
"negative_prompt": "blurry, low quality",
"character_embeds": ["lin_mimi"],
"camera": "dolly-in"
}
]
}这是系统计算开销最大的环节,需要处理好并发、排队与后处理。
剪辑模块不再只是拼接视频,它将承担起“导演助理”的角色。
技术栈:后端使用 FFmpeg + MoviePy,前端基于 Remotion 或剪辑引擎实现可拖拽时间轴。
关键功能:
所有合成参数生成为一个 project.json,支持人工微调后最终渲染导出 1080P MP4。
假设用户输入:“生成一部 3 分钟校园甜宠短剧,男女主角在图书馆偶遇,误会后和好。”
整个流程从创意到成片控制在 15 分钟左右,真正实现了“人人都是导演”。
随着 OpenAI Sora、可灵 AI 等长视频生成模型的成熟,“一键生成网剧”将不再是概念。平台的下一步演进方向包括:多分支剧情互动剧、AI 虚拟演员实时直播、以及结合 UGC 社区让粉丝参与剧情投票。
如果你对某一个模块(如剧本生成 Agent 的 Prompt 设计、扩散模型一致性方案)感兴趣,欢迎留言交流。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。