一句话剧情告诉你“发生什么”,分镜表要继续回答“每几秒看见什么、从哪儿看、镜头怎么动”。先把事实顺序固定,再给画面分配景别、机位和运镜;镜头语言能让计划更清楚,但不替你验证实际拍摄或视频生成结果。

本文用一条原创虚构剧情练习:雨停后,阿橙在院子里捡到一粒刚发芽的豆子,把它种进窗边花盆;第二天,新叶从泥土里冒出来。练习目标是做一张 5 格、20 秒的分镜表,不写完整剧本,也不生成视频。

先把一句话拆成事实卡

先把原句分成能逐项检查的事实,不急着让模型添加天气、衣服、情绪或旁白:

编号 事实
F1 雨停后,阿橙在院子里。
F2 阿橙在地上捡到一粒刚发芽的豆子。
F3 阿橙把这粒豆子种进窗边的花盆。
F4 第二天,一片新叶从花盆的泥土里冒出来。

拆分时保留事件顺序:先发现,再捡起,再种下,最后到第二天看到新叶。事实编号方便复核,但模型把某行标成 F2 并不能证明它真的受 F2 支持。

给每格设时间和镜头字段

本练习先定 20 秒总长、5 格各 4 秒。字段先固定好,再请模型填内容:

  • 时间:检查每格相接,最后一格正好到 20 秒。
  • 景别:全景交代空间,近景或特写突出豆子和新叶。
  • 机位:平视、俯拍或仰拍,说明观众从哪一方向看。
  • 运镜:固定、推近、横移等;运镜服务于当前动作,不额外创造剧情。
  • 画面与台词:每格只保留一个主要动作;原句没有对白时留空。
  • 事实引用:标出支持该格内容的 F 编号,随后仍须人工对照。

用本机 Qwen 起草,再人工改

练习包包含事实卡、固定提示词、原始回答、JSON Schema 请求脚本和人工修订表。在 Ollama 已经运行、且本机已有相应模型标签时,在练习包目录执行:

python3 scripts/run_local.py

脚本只调用本机 http://127.0.0.1:11434/api/chat,将 format 设为 JSON Schema、stream 设为 false,并用 Python 标准库断言格数、时间段、字段值和事实编号。Ollama 官方文档支持在 format 提供 JSON Schema;本练习同时在提示词里说明输出字段。结构化输出只管结构,不判断剧情事实。若模型标签不存在,脚本会报错;它不会替你下载模型。

这次本机使用 qwen3.8-27b:latest,ollama show 报告 27.3B、Q4_K_M 和 qwen35 architecture。单次请求输入 330 tokens、输出 505 tokens、总耗时 48.19 秒。原始结果的时间段、字段和编号通过断言,但它把“第二天新叶冒出”拆成两格重复描述,还把所有运镜都设为固定。手工修订后,将“发现”和“捡起”分开,给发现安排缓慢推近、种植安排横移;由于原句没有台词,所有对白保持空白。

时间 景别 机位 运镜 画面动作 台词 事实
00–04 秒 全景 平视 固定 雨停后的院子里,阿橙站在院中。 — F1
04–08 秒 近景 俯拍 缓慢推近 地上有一粒刚发芽的豆子,阿橙的视线停在豆子上。 — F2
08–12 秒 特写 俯拍 固定 阿橙把那粒刚发芽的豆子从地上捡起。 — F2
12–16 秒 中景 平视 横移 阿橙把豆子种进窗边花盆的泥土里。 — F3
16–20 秒 特写 平视 固定 第二天,花盆的泥土里冒出一片新叶。 — F4

导出前检查

  • 顺序与事实卡一致,时间没有重叠或漏段,合计 20 秒。
  • 每格只写一个主要可见动作;没有模型自行添加的对白、人物背景或关键道具。
  • 运镜只是拍摄建议;没有拍摄设备或视频结果时,不要声称运镜已实际验证。
  • 自动检查通过后仍逐格核对事实。模型生成的 fact_refs 可能挂错编号,new_facts 为空也不能代替人工审稿。
  • 本例是本机一次 Qwen 生成和人工修订;不代表分镜质量评分、成片效果或模型准确率。

练习包:下载《一句话剧情拆成分镜表》练习包

示例剧情与分镜由本地模型起草、人工修订;封面背景由本机 ComfyUI 生成,标题由脚本排版,封面带有“AI生成封面”标识。