脚本生成
本文档介绍 PanelFlow 中的脚本生成功能,包括视频剧本的结构、如何生成结构化脚本以及脚本审核机制。
目录
概述
脚本生成(Script Generation)是 PanelFlow 工作流中的核心步骤之一。在完成故事分析后,系统会将原始文本转换为结构化的视频剧本,为后续的角色设计和分镜生成提供清晰的执行蓝图。
脚本生成流程
故事分析 → 文本解析 → 场景拆分 → 对话生成 → 动作描述 → 结构化输出输入与输出
| 输入 | 输出 |
|---|---|
| 原始小说/剧本文本 | 结构化视频剧本(JSON/Markdown) |
脚本结构
剧本组成
一份完整的视频剧本包含以下层级结构:
📖 剧本
├── 📌 场景列表(Scenes)
│ ├── 场景 1
│ │ ├── 场景描述
│ │ ├── 时间/地点
│ │ └── 角色列表
│ └── 场景 2
│ └── ...
└── 🎬 分镜列表(Shots)
├── 分镜 1
│ ├── 镜头类型
│ ├── 画面描述
│ ├── 对话/旁白
│ └── 音效/音乐
└── 分镜 2
└── ...场景(Scene)
场景是剧本的基本单元,代表一个连续的时间和地点:
yaml
scene:
id: "scene_001"
title: "办公室对峙"
location: "现代都市 / 主角办公室"
time: "白天"
characters: ["李明", "王芳"]
mood: "紧张、压抑"
duration: "约30秒"分镜(Shot)
分镜是视频的最小单位,每个分镜对应一个具体镜头:
yaml
shot:
id: "shot_001"
scene_id: "scene_001"
shot_type: "中景" # 特写/近景/中景/远景/全景
camera_movement: "固定" # 固定/推/拉/摇/移
visual_description: "李明站在办公桌后,手指敲击桌面,表情严肃"
dialogue: |
李明: "这件事必须今天解决。"
王芳: "我明白,但我需要更多时间。"
sound: "办公室环境音、电话铃声"
duration: "5秒"生成流程
步骤 1:文本解析
系统首先对输入的原始文本进行解析:
- 识别故事主线与支线
- 提取关键情节点
- 识别叙事视角
步骤 2:场景拆分
根据剧情发展,将故事拆分为多个场景:
| 拆分依据 | 说明 |
|---|---|
| 地点变化 | 场景切换(如从办公室到家中) |
| 时间跳跃 | 日/夜交替、季节变化 |
| 情节段落 | 重大事件节点 |
步骤 3:对话与动作分离
系统自动区分:
- 对话内容 — 角色说的话,用于配音生成
- 动作描述 — 画面内容,用于图像渲染
- 旁白/解说 — 叙述性文字,用于字幕
步骤 4:结构化输出
最终生成符合规范的 JSON 格式剧本:
json
{
"title": "都市风云",
"total_scenes": 12,
"total_shots": 48,
"estimated_duration": "约15分钟",
"scenes": [...],
"metadata": {
"source": "小说《都市风云》第一章",
"generated_at": "2026-05-23T10:00:00Z",
"model": "GLM-5"
}
}脚本格式
支持的输出格式
| 格式 | 用途 | 文件扩展名 |
|---|---|---|
| JSON | 程序处理、API调用 | .json |
| Markdown | 阅读、编辑 | .md |
| YAML | 配置文件 | .yaml |
Markdown 格式示例
markdown
# 都市风云 — 视频剧本
## 场景 1:办公室对峙
**地点**:现代都市 / 主角办公室
**时间**:白天
**角色**:李明、王芳
**氛围**:紧张、压抑
### 分镜 1.1
- **镜头**:中景
- **画面**:李明站在办公桌后,手指敲击桌面,表情严肃
- **对话**:
- 李明:"这件事必须今天解决。"
- 王芳:"我明白,但我需要更多时间。"
- **音效**:办公室环境音
### 分镜 1.2
- **镜头**:特写
- **画面**:王芳神情焦虑,双手紧握
- **对话**:
- 王芳:"能不能再给我一天?"
- **音效**:轻微的呼吸声审核机制
Self-Review 流程
生成脚本后,系统会自动进行质量审核:
脚本生成 → 自审评分 → Quality Gate → 通过/重生成审核标准
| 检查项 | 说明 | 阈值 |
|---|---|---|
| 完整性 | 场景、分镜是否完整 | 100% |
| 逻辑连贯性 | 情节是否通顺 | ≥ 0.8 |
| 对话合理性 | 对话是否符合角色性格 | ≥ 0.75 |
| 时长合理性 | 估算时长是否合理 | ±20% |
重生成机制
如审核未通过,系统会自动重新生成:
- 最多重试 3 次
- 每次重生成会优化提示词
- 3 次仍不通过则暂停并提示用户
常见问题
Q: 生成的脚本与原故事有出入怎么办?
A: 系统在 Self-Review 环节会进行一致性检查。您也可以在 Manual Mode 下手动编辑脚本,或提供更详细的原始文本来引导生成。
Q: 如何调整脚本的时长?
A: 在脚本的 metadata 中设置 target_duration,系统会根据目标时长自动调整分镜数量和画面描述的详细程度。
Q: 支持添加旁白吗?
A: 支持。在每个分镜的 narration 字段中添加旁白内容,系统会生成对应的配音。
Q: 生成的脚本可以导出为其他格式吗?
A: 可以。PanelFlow 支持将剧本导出为 JSON、Markdown、YAML、Fountain(专业剧本格式)等。
Q: 如何批量修改对话内容?
A: 在 Manual Mode 下,打开剧本文件后可以使用查找替换功能批量修改对话。