AI 短剧量产:把剧本拆成结构化分镜表

1 阅读4分钟

单条 AI 视频做得再好,也不等于能稳定地产出一部剧。从「能生成」到「能批量生成」,中间隔的不是模型能力,而是一层数据结构。

翻车往往不在生成阶段

团队刚开始做 AI 短剧时,最常见的反馈是「角色又变了」「这个镜头跟前面接不上」。直觉反应是换模型、调提示词,但反复试下来会发现:问题出在剧本阶段压根没做结构化拆解,导致后面的提示词全靠临场发挥。

一句自然语言描述的剧本,不同的人(甚至同一个人的不同时间)会拆出完全不同的镜头序列。没有稳定的中间表示,就不可能有稳定的产出。

分镜表就是那层中间表示

把剧本先转成结构化分镜表,再让分镜表去驱动生成。一条分镜至少要有这些字段:

{
  "project": "ai_short_drama_demo",
  "episode": 1,
  "scene_list": [
    {
      "scene_id": "ep01_scene01",
      "role": {
        "name": "男主",
        "reference_image": "assets/ref/male_lead.png"
      },
      "shot_type": "中景",
      "camera": "缓慢推进",
      "lighting": "夜景冷色调",
      "action": "推开仓库大门",
      "dialogue": "三年了,我终于找到你了。",
      "duration_seconds": 5
    }
  ]
}

这份 JSON 有三重身份:它是给模型的提示词来源,是批量任务的参数模板,也是出问题时定位的最小单元。

角色一致性靠素材库,不靠形容词

角色一致性是 AI 短剧最大的技术难点。真人剧不存在这个问题——演员的脸是固定的。公开资料里提到,普通工具生成动态内容时,跨 10 帧以上的人物面部特征匹配度普遍不足 60%,后期逐帧修正的成本非常高。

靠每次在提示词里写「圆脸、短发、穿灰色外套」是稳不住的。比较可靠的做法是分层解决:

  1. 先用参考图锁定基础形象,生成角色的多角度定妆照(正脸、侧脸、半身、全身、不同表情)。
  2. 把定妆照作为条件输入到图生视频或工作流里,而不是每次重新描述。
  3. 关键角色做一致性训练,把人物特征固化到权重里。
  4. 批量生成时把参考图、参考姿势、场景描述一起作为输入

换句话说,不是靠一句提示词保证一致,而是建一套「角色素材库 + 参考图」的组合方案。这一步做不好,后面每个镜头都要重来。

先有图,再动起来

不是所有镜头都适合文生视频直出。更稳的路径是「先关键帧,再补间」:先用图生图或直接生成关键帧,再把关键帧作为首帧配合描述生成短片段。这样构图、光影、人物位置都可控,批量成功率和一致性都更高。

首尾帧控制是这里最关键的技术手段。很多模型支持输入首帧和尾帧,自动补全中间运动过程,特别适合做转场、镜头推近、人物走向镜头这类常见动作。

时长上有个实用经验:人物对话场景建议控制在 5 秒左右。太长的片段生成容易崩坏,后期拼接反而更麻烦。

分镜表的工程收益

把分镜表当代码管理,会拿到几个纯提示词方案拿不到的东西:

  • 可 diff:改一版剧本,能直接看出动了哪几个镜头,不用整剧重生成。
  • 失败可重跑:某一条分镜生成失败,只重跑这一条,不影响其他已通过的镜头。
  • 可复用:角色参考图、运镜模板、光影预设都能跨集复用,第 20 集的成本远低于第 1 集。

一个简单的重跑逻辑长这样:

def run_batch(scene_list, force_ids=None):
    results = []
    for scene in scene_list:
        sid = scene["scene_id"]
        # 已产出且没被强制重跑的直接跳过,保证批量任务的幂等
        if not force_ids or sid not in force_ids:
            cached = load_output(sid)
            if cached:
                results.append(cached)
                continue
        results.append(generate_one(scene))
    return results

这段的关键不是生成,是跳过。批量任务跑到第 30 条崩了,重跑时不希望前 29 条再烧一遍额度。

什么时候不该上这套东西

如果是单条创意短片、一次性的视觉实验,直接写提示词更快。结构化分镜表的价值随着镜头数量增长而增长——分镜头超过十几条、或者要做多集连续内容时,它才真正回本。

先把剧本结构化,再谈后面的自动化。顺序反了,越自动化返工越快。