04 — 多版本生成与 SVT 导出
1. 功能定义与核心意义
功能定义
多版本生成与 SVT 导出是「爆款结构迁移引擎」的第四步,也是工作流的最终产出环节。系统将爆款结构模板和素材缺口分析结果注入 LLM prompt,为指定目标主题生成符合 SVT-JSON 标准格式的视频时间线。同时提供导出和预览能力。
四版本差异化
| 版本 | 版本标识 | 特征描述 |
|---|---|---|
| 🔥 高点击版 | high_click | 强化 Hook 开头吸引,前 3 秒必须有强刺激点,节奏快、标题大字 |
| 💰 高转化版 | high_conversion | 强化 CTA 转化引导和卖点展示,中段加入价格 / 促销信息,结尾强调限时福利 |
| ⚡ 高节奏版 | high_rhythm | 快节奏多镜头切换,每个片段不超过 2 秒,卡点剪辑 |
| ✨ 高质感版 | high_quality | 电影级质感,慢镜头 + 优雅转场,注重画面美感 |
核心意义
- 一站到底的成片输出:从样例学习 → 结构提取 → 缺口识别 → 时间线生成,完整闭环
- 差异化内容策略:同一个产品,4 种版本对应 4 种投放策略,最大化 ROI
- 标准化输出格式:SVT-JSON 可作为后续 AE / 剪映模板渲染的统一输入格式
- 可视化预览:无需渲染即可预览时间线上的视频 / 字幕 / 包装轨道分布
2. 详细操作步骤
前置条件
- 已完成「第三步:素材缺口识别」
- 页面右侧「多版本生成」区域已可见
- 已输入「目标主题」
操作步骤
Step 1:选择版本
在「多版本生成」区域,有 4 个版本按钮:
- 🔥 高点击版:适合信息流投放,目标是高点击率
- 💰 高转化版:适合电商带货,目标是高转化率
- ⚡ 高节奏版:适合短视频平台,快节奏高完播
- ✨ 高质感版:适合品牌宣传,注重视觉美感
点击任一按钮即可开始生成。
Step 2:等待 LLM 生成 SVT-JSON
系统后端执行:
- 将
structure_template压缩为关键指标(compact_structure_for_svt) - 将
gap_analysis压缩为缺口摘要(compact_gaps_for_svt,最多 5 条,每条策略截取 60 字) - 构建包含版本特征的完整 system prompt 和 user prompt
- 调用 Doubao-Seed-2.0-lite(
temperature=0.7, max_tokens=1024) - 修复和解析 LLM 返回的 JSON
- 返回 SVT-JSON 和元数据
Step 3:查看生成结果
成功后,「最终生成结果」区域自动显示,包含:
- 完整 SVT-JSON 的格式化文本展示
- 「导出 SVT-JSON」按钮
- 「预览成片」按钮
Step 4-a:导出 SVT-JSON
点击「导出SVT-JSON」按钮 → 浏览器自动下载 JSON 文件。
- 文件名格式:
svt_{主题}_{时间戳}.json - 文件内容:格式化缩进 2 空格的 JSON
Step 4-b:预览成片
点击「预览成片」按钮 → 弹出遮罩层弹窗,展示:
- 元数据信息栏:时长 / fps / 版本类型 / 总片段数
- 进度条(渐变色)
- 视频轨道时间线:每个片段按比例在时间轴上定位
- 字幕轨道:每条字幕内容与时间点
- 包装轨道:每个效果类型与时间点
- 点击遮罩层或 × 关闭弹窗
预期结果
| 情况 | 结果 |
|---|---|
| LLM 生成成功 | SVT-JSON 展示在结果区域;导出和预览功能可用 |
| LLM 返回无效 JSON | 使用预设兜底模板(时长 15s,空轨道) |
| 版本按钮点击前未完成前序步骤 | 弹窗提示「请先完成前序步骤」 |
3. 使用场景说明
| 场景 | 推荐版本 | 理由 |
|---|---|---|
| 信息流广告投放 | 高点击版 | 前 3 秒强刺激,提高点击率,适合 CPC 计费 |
| 直播间引流 | 高转化版 | 强调 CTA 和促销,引导进入直播间下单 |
| 抖音 / 快手 Feed | 高节奏版 | 快节奏卡点,符合短视频平台用户习惯 |
| 品牌宣传片 | 高质感版 | 电影级质感,适合品牌官网或线下大屏 |
| 多平台分发 | 全部 4 个版本 | 同一产品生成 4 个版本,覆盖不同渠道和受众 |
4. 参数配置说明
LLM 调用参数
| 参数 | 位置 | 默认值 | 说明 |
|---|---|---|---|
temperature | generate_svt_json() | 0.7 | SVT 生成需一定创意性,设较高值以获得差异化产出 |
max_tokens | generate_svt_json() | 1024 | 完整时间线包含 meta + 三轨,1024 基本够用 |
版本特征描述(注入 prompt)
| 版本 | system prompt 中的版本指令 |
|---|---|
high_click | 强化Hook开头吸引,前3秒必须有强刺激点,节奏快、标题大字 |
high_conversion | 强化CTA转化引导和卖点展示,中段加入价格/促销信息,结尾强调限时福利 |
high_rhythm | 快节奏多镜头切换,每个片段不超过2秒,卡点剪辑 |
high_quality | 电影级质感,慢镜头+优雅转场,注重画面美感 |
standard | 标准信息流视频结构,平衡各模块时长 |
数据压缩策略
| 函数 | 压缩对象 | 压缩方式 |
|---|---|---|
compact_structure_for_svt() | 爆款结构模板 | 提取 hook_dur / body_dur / cta_dur / rhythm / total_score |
compact_gaps_for_svt() | 素材缺口分析 | 取前 5 条缺口,每条策略截取 60 字符 |
5. 注意事项与限制
注意事项
- 版本生成互不影响:每次生成独立调用 LLM,不会覆盖之前的版本结果
- SVT-JSON 使用
at+duration而非start+end:确保时间线元素使用相对偏移定位 - 导出前确认数据正确:SV-JSON 导出为纯文本文件,不会验证内容的业务合理性
- 预览是结构化的:并不渲染真实视频画面,展示的是时间线结构的可视化
- Token 限制:结构模板和缺口分析在注入 prompt 前已经过压缩,大幅减少了 token 消耗
功能限制
- 无自动渲染:SV-JSON 是描述性格式,生成后需配合 AE / 剪映等工具的实际渲染模板
- 版本数量固定:目前仅支持 4 个预设版本,不支持自定义版本特征
- 预览无视频播放:预览弹窗仅展示时间线结构,不会播放实际视频
- 单次生成单版本:一次按钮点击只生成一个版本,如需多个版本需依次点击
6. 常见问题解答
Q1:生成后 SVT-JSON 内容很少,视频/字幕/包装轨道都是空的?
A:可能原因:
- LLM 返回了无效 JSON →
fix_incomplete_json返回{}→ 降级到兜底模板(空轨道) - 检查服务器日志中
[JSON修复器]的输出 - 如果日志显示"所有策略失败,使用预设模板",说明 LLM 输出完全无法解析
Q2:四个版本之间的区别不明显?
A:版本特征是通过 system prompt 注入的差异化指令,实际效果取决于 LLM 的理解能力。建议:
- 在同一主题下切换版本对比 SVT-JSON,观察时长分配和轨道设计的差异
- 如果差异确实不明显,可以调高
temperature至 0.9
Q3:导出的 JSON 文件名乱码?
A:文件名中的主题部分经过正则过滤(保留字母、数字和中文字符),特殊符号(空格、标点)被替换为下划线。这是预期行为。
Q4:预览弹窗里视频轨道的时间线比例不对?
A:预览按照 SVT-JSON 中meta.duration作为 100% 宽度计算每个片段的 left% 和 width%。如果比例异常,检查生成的 SVT-JSON 中:
meta.duration是否为正数- 各视频片段的
at值是否在 0 ~ duration 范围内 - 各视频片段的
duration值是否为正数
Q5:能否同时生成 4 个版本?
A:当前版本的generateVersion()每次仅请求一个版本。如需批量生成,可使用/api/generate-multiple-versions接口(由 GapCompletionEngine 提供),该接口依次调用 4 个版本。