分镜组节点视频生成功能
功能概述
分镜组节点新增了视频生成功能,可以将整个分镜组的所有分镜合并生成为一个完整的视频。该功能与分镜节点的视频生成功能类似,但具有以下特点:
- 拼接所有分镜的视频提示词:汇总整个分镜组中所有子分镜节点的视频提示词,每个镜头标明时间范围
- 使用分镜首帧作为图生视频输入图:首帧模式下,多个分镜时将所有分镜的首帧图片合并为宫格图作为输入图;仅单个分镜时,取第一个分镜节点的首帧图片
- 一次性生成视频:根据抽卡次数生成对应数量的视频(不是为每个分镜单独生成)
功能位置
在分镜组节点节点体的"视频生成"区域(位于"分镜预览与生成"区域,即"宫格生图"所在区域,的右侧),包含以下UI元素:
- 视频模型选择器:支持 视频生成模型 A、B、C、D、E、F 六种模型
- 视频时长选择器:根据选择的模型动态显示可用时长选项
- "合并生成视频"按钮:带有抽卡次数下拉菜单(X1-X4);另有"逐个生成视频"按钮(为每个分镜独立生成视频)
- 算力消耗显示:实时显示单个视频算力和总算力消耗
视频提示词拼接格式
分镜组视频生成时,会将所有子分镜的视频提示词按照以下格式拼接:
镜头1:0~4S,[镜头1的视频提示词内容];镜头2:4~7S,[镜头2的视频提示词内容];镜头3:7~12S,[镜头3的视频提示词内容]
时间计算规则
- 镜头一时长:0 ~ 镜头一.duration
- 镜头二时长:镜头一.duration ~ (镜头一.duration + 镜头二.duration)
- 以此类推,累计每个镜头的时长
示例
假设有3个分镜节点,时长分别为5秒、5秒、5秒,视频提示词拼接结果为:
镜头1:0~5S,夜晚,城市街道,主角走在雨中;镜头2:5~10S,主角进入咖啡厅,坐下点咖啡;镜头3:10~15S,主角看向窗外,表情沉思
使用流程
1. 准备工作
在使用分镜组视频生成功能之前,需要确保:
- 已创建分镜组节点
- 已生成分镜节点(通过"生成分镜"按钮)
- 至少一个分镜节点已生成首帧图片(通过"生成分镜图"按钮)
2. 配置视频参数
- 选择视频模型:从下拉菜单中选择合适的视频模型
- 视频生成模型 A:支持5秒、10秒
- 视频生成模型 B:支持10秒、15秒
- 视频生成模型 C:支持5秒、8秒、10秒
- 视频生成模型 D:支持5秒、10秒
- 视频生成模型 E:支持5秒、8秒
- 视频生成模型 F:仅支持8秒
- 选择视频时长:根据模型选择可用的时长选项
- 选择抽卡次数:点击"合并生成视频"按钮右侧的下拉箭头,选择X1-X4
- 查看算力消耗:系统会实时显示算力消耗(单个视频算力 × 抽卡次数)
3. 生成视频
点击"合并生成视频"按钮,系统会:
- 检查是否有分镜节点
- 检查分镜节点是否有首帧图片(首帧模式下;多个分镜时先调用宫格合并接口,将所有首帧合并为宫格图)
- 拼接所有分镜的视频提示词
- 调用图生视频API
- 创建对应数量的视频节点
- 轮询视频生成状态
- 更新视频节点的URL
算力计算
分镜组视频生成的算力消耗计算公式:
总算力 = 单个视频算力 × 抽卡次数
不同模型和时长的算力消耗由后端任务配置决定,前端通过任务算力配置接口(内部实现)获取。
错误处理
无分镜节点
如果分镜组节点下没有分镜节点,点击"合并生成视频"按钮时会提示:
请先生成分镜节点
无首帧图片
如果分镜节点没有首帧图片(首帧模式下),点击"合并生成视频"按钮时会提示:
分镜节点没有首帧图片,请先生成分镜图
视频生成失败
如果视频生成失败,系统会显示具体的错误信息,并将按钮状态恢复为"生成视频"。
数据保存与恢复
分镜组节点的视频相关数据会自动保存到工作流中,包括:
videoModel:视频模型videoDuration:视频时长videoDrawCount:抽卡次数
重新加载工作流时,这些数据会自动恢复。
技术实现
关键函数(内部实现)
- 分镜组视频生成主函数
- 视频生成算力计算函数
- 算力显示更新函数
- 根据所选模型更新时长选项的函数
数据结构
分镜组节点的 data 对象新增字段:
{
videoModel: 'video_model_a', // 视频模型
videoDuration: 5, // 视频时长(秒)
videoDrawCount: 1, // 抽卡次数
// ... 其他字段
}
API调用
视频生成使用与分镜节点相同的API接口:
POST /api/ai-app-run-image
参数:
image_urls:图生视频输入图片URL(首帧模式下,多个分镜为宫格合并图URL,单个分镜为第一个分镜节点的首帧图片URL;参考模式下为逗号拼接的参考图URL)prompt:拼接后的视频提示词duration_seconds:视频时长count:抽卡次数ratio:视频比例(默认9:16)task_id:视频模型对应的任务ID(前端通过任务配置将所选视频模型转换为任务ID)user_id:用户IDauth_token:鉴权令牌
与分镜节点视频生成的区别
| 特性 | 分镜节点 | 分镜组节点 |
|---|---|---|
| 视频提示词 | 单个分镜的视频提示词 | 所有分镜的视频提示词拼接(标明时间范围) |
| 首帧图片 | 当前分镜节点的首帧 | 首帧模式下,多分镜为宫格合并图(所有分镜首帧),单分镜为第一个分镜节点的首帧 |
| 生成数量 | 根据抽卡次数生成多个视频 | 根据抽卡次数生成多个视频 |
| 视频时长 | 用户选择的时长 | 用户选择的时长(不是所有分镜时长之和) |
| 适用场景 | 单个镜头的视频生成 | 整个分镜组的视频生成 |
注意事项
- 分镜组生成的是单一视频:不是为每个分镜单独生成视频,而是将所有分镜合并为一个视频
- 图生视频输入依赖分镜首帧:首帧模式下需要确保分镜节点有首帧图片(多个分镜时所有分镜首帧会合并为宫格图)
- 视频时长由用户选择:不是所有分镜时长的总和,而是用户在下拉菜单中选择的时长
- 算力计算:单个视频算力 × 抽卡次数
- 视频提示词格式:每个镜头标明时间范围,用分号分隔
测试用例
相关测试用例位于自动化测试用例目录下的 shot_group_video.json,包括:
- 基础流程测试
- 视频提示词拼接验证
- 首帧选择验证
- 不同视频模型测试
- 时长选项动态更新
- 算力计算验证
- 错误处理测试
- 工作流保存与恢复测试