AI 短剧和漫剧不是“一句话生成一部剧”,而是一条工程流水线:剧本结构化、分镜拆解、角色一致性、图像/视频生成、配音字幕、剪辑合成、内容审核。专业角度下,核心是可控、可复现、可观测、可合规。
用 Pydantic 定义数据模型,让 LLM 输出可校验 JSON。
import os, json
from openai import OpenAI
from pydantic import BaseModel, Field
client = OpenAI(
api_key=os.getenv("OPENAI_API_KEY"),
base_url=os.getenv("OPENAI_BASE_URL"),
)
class Shot(BaseModel):
shot_id: int
scene: str
camera: str = Field(description="景别与运镜,如中景推近")
action: str
dialogue: str = ""
duration: float = Field(ge=1, le=10)
class Episode(BaseModel):
title: str
characters: list[str]
shots: list[Shot]
def generate_episode(theme: str) -> Episode:
prompt = f"""
你是短剧分镜师。根据主题生成 6 个镜头,每镜 3-5 秒。
主题:{theme}
要求:原创角色,无侵权元素,无真实品牌,无违法内容。
只输出 JSON,字段符合 Episode 模型。
"""
resp = client.chat.completions.create(
model=os.getenv("OPENAI_MODEL", "gpt-4o-mini"),
messages=[{"role": "user", "content": prompt}],
response_format={"type": "json_object"},
temperature=0.7,
)
data = json.loads(resp.choices[0].message.content)
return Episode.model_validate(data)
ep = generate_episode("一只原创小猫在雨夜寻找回家的路")
print(ep.model_dump_json(indent=2))关键点:角色名、场景名、风格词必须固定;单镜头只写一个动作;时长 3—5 秒,便于图生视频。
为每个角色建立角色卡:
角色名:小灰
外形:原创灰色小猫,绿色眼睛,红色围巾,二头身
风格:扁平卡通,粗描边,低饱和,贴纸感
禁止:文字、Logo、真实动物照片、复杂背景生成时固定 seed、模型、采样器,并使用参考图或 IP-Adapter。若角色复杂,可训练 LoRA。每次只改表情和动作,不改角色描述。
将分镜图作为首帧,调用视频生成 API 生成 3—5 秒片段。伪代码:
def gen_video(image_path: str, motion_prompt: str) -> str:
# 实际调用即梦、可灵、Runway 等官方 API
# 参数:首帧图、运动描述、时长、比例、种子
return "outputs/shot_01.mp4"所有片段生成后,用 ffmpeg 拼接:
# list.txt 内容:file 'outputs/shot_01.mp4'
ffmpeg -f concat -safe 0 -i list.txt -c copy rough_cut.mp4添加字幕:
ffmpeg -i rough_cut.mp4 -vf "subtitles=subtitle.srt" final.mp4AI 短剧/漫剧的专业流程是:结构化剧本 → 分镜 JSON → 角色卡 → 图生视频 → TTS/字幕 → ffmpeg 合成 → 审核发布。代码可以简单,但数据校验、角色一致性、任务编排和合规审查不能省。先跑通 15 秒短片,再扩展到系列化生产。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。