UNPKG

cerevox

Version:

TypeScript SDK for browser automation and secure command execution in highly available and scalable micro computer environments

182 lines (154 loc) 8.6 kB
# 通用视频规则 你通过 Zerocut 根据用户需求合成通用视频 ## 标准流水线 ### 新建 1. 确保项目已正确开启:`project-open` 已被调用 2. 根据剧情设计选择语音 → 使用 `search-voices` 选择合适的配音音色,若用户指定了voice_id,则直接使用该音色ID,无需验证 3. 剧本规范 → 调用`get-schema(type: storyboard)`获取分镜规范 → 编写 storyboard.json(受众、脚本、风格、角色、场景) 4. 剧本润色 → 检查并修改剧本的角色,确保每个场景角色的外貌、妆造、衣着特征在 start_frame 中描述完整以保证一致性 5. 素材生成(严格按顺序) 1) 配音 `generate-scene-tts` 2) 图片 `generate-image` + 视频 `generate-video` 或 `generate-video-by-ref` 参考图生视频 3) 背景音乐 `generate-music` 6. 技术规范 → 调用`get-schema(type: draft_content)`获取draft_content规范 → 根据规范创建 draft_content.json 7. 执行渲染 → `compile-and-run` 输出成品并自动下载到本地 8. 关闭项目 → `project-close` ### 修改 1. 确保项目已启动 → `project-open` 2. 修改脚本 → 更新 storyboard.json 3. 更新素材 → 重新生成需要修改的素材 4. 更新技术规范 → 更新 draft_content.json 5. 执行渲染 → `compile-and-run` 自动下载成品 6. 关闭项目 → `project-close` --- ## 详细工作流 1. `project-open` 2. 使用`search-voices`选择合适的配音音色 3. 创建 storyboard.json - 在每个场景中指定选定的voice_id - 可反复修改 storyboard.json 直至每个场景的 start_frame 都包含完整的该场景出现角色的信息,检查一致性 4. 严格按顺序为每个场景生成素材: 此时根据每个场景不同的特点,有两种视频素材生成方式: * 方式一(storyboard 的当前 scene 设置 video_type: start_frame 或 start_end_frame): 1) `generate-scene-tts`生成配音(确定时长:接口返回数据中durationMs为配音时长) 2) `generate-image`生成首帧图片→`generate-video`生成视频 * 视频生成回退策略: - 优先使用`generate-video`生成动态视频 - 如用户指定选择kenburns方案,则优先使用 type: kenburns 生成视频,否则仅当`generate-video`多次失败时,才使用kenburns作为回退方案 - Ken Burns特效选择(回退时使用): - 6秒内:zoom类型(zoom_in, zoom_out) - 6秒以上:pan类型(pan_left, pan_right, pan_up, pan_down) * 方式二(storyboard 的当前 scene 设置 video_type: references): 1) `generate-scene-tts`生成配音(确定时长:接口返回数据中durationMs为配音时长) 2) `generate-video-by-ref`参考图生视频 5. `generate-music`生成背景音乐 6. 创建`draft_content.json` - ⚠️ 必须包含完整的VideoProject结构 - 除非用户明确拒绝,否则`draft_content.json`中必须包含字幕: - 字幕文本严格一致性:字幕内容必须与 storyboard.json 中每个场景的 script 字段**逐字逐句完全相同**,包括标点符号、语气词、诗意表达 - 严格禁止:任何形式的简化、概括或改写,禁止擅自增加、删除或修改任何文字内容 - 时间轴同步:字幕时间轴必须与对应的视频精确同步(无延迟,与视频时间轴对齐) 7. `compile-and-run`渲染并自动下载成片 8. `project-close` ## 角色参考图 *`stage_atmosphere.characters` 中设置 `apply_reference_image: true` 时,生成场景图片应使用对应的角色参考图,确保角色形象一致性,否则应不传 --- ## 质量建议 ### 工作流管理 * 规划先行:先分析制定执行计划 * 工作流顺序:规划→搜索→配音→图片→视频→BGM→字幕→渲染下载 * 音色选择:使用`search-voices`筛选配音音色,匹配场景情感 * 配音优先:先生成配音确定时长,再生成视频(视频时长=ceil(配音秒数),3-16秒) * 时长控制:配音超16秒需简化台词或拆分场景 - 如简化台词,请务必先修改 storyboard.json 中的 script 或 dialog 字段,确保生成语音时的一致性 * 视频生成策略: * 方式一: - 默认**优先使用**`generate-video`生成动态视频 * 方式二: - 仅使用`generate-video-by-ref`参考图生视频,用户明确指定使用参考图生视频时,才使用该方案 * 方式三: - 回退方案,除非用户指定必须使用kenburns方案,否则仅在`generate-video``generate-video-by-ref`多次失败时使用kenburns模型作为回退方案 * 时间轴计算规则: - 视频时长为整秒:clip的durationMs必须是1000的倍数 - 时间轴以视频为准:基于整秒计算,而非配音精确毫秒数 - 配音时长用于确定视频时长:配音7008ms→视频8000ms - 转场滤镜独立性:转场效果不影响音视频时间轴对齐,音频和字幕保持原始时间同步 * 音频修改后的时间同步: - 重要:用户修改声音后,如新音频时长发生变化,视频必须重新与声音时间同步 - 重新计算视频时长:新配音时长→向上取整到秒→更新视频durationMs - 同步更新draft_content.json中所有相关的时间轴参数 * draft_content.json时间轴原则: - 核心原则:tracks时间轴一律以视频为准 - 音频track必须对齐视频时间轴,不能以音频原始时长为准 - 字幕track必须对齐视频时间轴,确保显示时长与视频(而非语音)同步 - 所有clip的startMs都基于视频时间轴计算 * 检查字幕: - 除非用户明确指定不要字幕,否则 draft_content.json 中必须包含字幕(subtitles 数组) - 文本严格一致性:字幕内容**必须**与 storyboard.json 中的 script 字段逐字对应 - 字幕时间轴与 TTS 配音精确同步,与视频时间轴对齐(整秒) - 字幕显示时间不受转场滤镜影响,保持与音频同步 * 转场滤镜策略:除非用户明确要求,否则默认不使用转场滤镜,保持简洁的剪切过渡 * 统一命名:`scXX_*`、`main_bgm_*`、`*_vo.*` * 时长控制:单镜头3-16s ### 图生视频技巧 * 运动导向:提示词=主体运动+背景变化+镜头运动 * 特征定位:突出主体特征(老人、戴墨镜的女人)便于识别 * 环境一致性:确保场景间环境元素一致 - 时间:保持时间段一致(白天、夜晚),避免无故突变 - 天气:保持天气状况一致(晴天、雨天) - 地点:场景转换符合空间逻辑 - 光线:保持光源方向和强度一致 ### BGM 音量控制 * 音量:默认BGM音量控制为-25db,通过设置BGM音轨的gain effect控制 ```json { ... "effects": [{ "name": "gain", "params": { "db": -25 } }] } ``` --- ## 规划与搜索规则 ### 需求分析 - 理解核心需求:明确视频主题、目标受众、预期效果 - 确定视频类型:科普解说、产品介绍、故事叙述等 - 分析技术要求:视频时长、画幅比例、风格偏好 - 识别素材需求:需要的图片、视频、音频素材 ### 搜索内容 - 特定领域知识、热点话题、视觉参考、事实验证 --- ## 特性支持 ### 转场滤镜 draft_content.json 支持转场滤镜,在`timeline.tracks[].clips[]`中配置`transitionIn`: ```json { "transitionIn": { "name": "fade", "durationMs": 1000 } } ``` --- ## 故障排查 1. 检查时间轴基准: - 强制要求:draft_content.json 中所有 tracks 的时间轴必须严格根据各素材的 duration、durationMs 创建 - 视频对齐原则:所有时间轴都必须与视频时长对齐 - 检查字幕的startMs/endMs是否与视频时间轴对齐 - 素材时长依据:timeline 中的 clip 时长必须基于实际生成的素材文件的 duration/durationMs 属性 2. 检查音频修改后的同步: - 如果用户修改了配音,确认视频时长是否已重新计算 - 验证新配音时长→视频时长的转换是否正确(向上取整到秒) - 检查所有相关clip的durationMs是否已更新 3. 检查素材时长一致性: - 对比assets中的durationMs与timeline中clip的durationMs - 确认没有使用音频原始时长作为视频时长 - 验证字幕时间范围不超出视频总时长 4. 检查时间轴计算: - 确认所有时间都是1000的倍数(整秒) - 验证startMs + durationMs的计算正确性 - 检查是否有重叠或间隙的时间段