Commit Graph

15 Commits

Author SHA1 Message Date
74680c5ea6 feat(video-pipeline): 重构转场与字幕系统,提取公用辅助函数
- 优化转场策略:仅首尾段跳过转场,rhythm模式下支持directorRef和keyword驱动的动态转场
- 提取 `applyAnimationProps` 和 `distributeSegments` 公用辅助函数,减少重复代码
- 支持按导演风格 (`tarantino`/`kitano`/`fincher`) 自动选择入场动画
- 重构字幕与配音段的时长分配逻辑,提高精确性
- 修复多处 `writeFileSync` 为 `saveManifest` 以统一清单写入入口
2026-05-01 16:12:03 +08:00
350f05fc3f feat(video-pipeline): 增强账号配置和分镜关键词支持
- 在 account.json 中新增 styles、ttsVoice、ttsInstruction、keywordStyle、transitions 等配置字段
- 分镜表 items 添加 keyword 字段,用于渲染关键词花字动画
- 重构 capcut_assemble.js 转场策略:前两段不加转场,rhythm 模式优化为只在关键位置添加
- 动画系统区分循环动画和入场动画,支持更丰富的动画组合(缩放、回弹伸缩等)
- 更新 SKILL.md 和 manifest-schema.md 文档以反映新增字段和流程变更
2026-05-01 16:00:01 +08:00
f2bc0df447 feat(video-pipeline): 支持滤镜和转场从账号配置继承
- 新增 Q18 滤镜和 Q19 转场字段到账号创建参考文档
- 重构账号配置加载函数为通用 `loadAccountConfig`,支持读取滤镜和转场
- `capcut_assemble.js` 支持 CLI 参数优先、账号配置兜底的滤镜/特效继承逻辑
- 模板 `account.json` 将闭幕转场从 "黑场" 修正为 "闪黑
2026-05-01 15:44:25 +08:00
e4723d9ce3 feat(video-pipeline): 添加关键字氛围词花字叠加和Oss URL回写功能
- 新增 Q17 关键字氛围词问答项,支持关闭/默认/自定义花字效果
- 在 manifest 和 account.json 中添加 keyword 和 keywordStyle 字段
- 实现关键字氛围词在画面中央的叠加逻辑,支持动画、阴影、文字效果等配置
- 在 assemble 流程中增加 `keywords` 步骤,自动读取账号配置生成花字
- 修复音频上传后未回写 OSS URL 到 manifest 的问题,避免重复上传
2026-05-01 15:21:59 +08:00
3a641244a5 feat(capcut-pipeline): 将 TTS 配音切换为 CosyVoice 并重构动画系统
- 将 TTS 引擎从 Qwen-TTS 切换为阿里云 CosyVoice(DashScope WebSocket)
- 输出格式从 WAV(24kHz)改为 MP3
- 重构图片动画分拆逻辑,支持组合动画(如"渐显+放大")
- 移除字幕关键词高亮相关字段
- 移除已删除的 `uploadAudioToOSS` 函数,统一使用 `uploadToOSS`
- 更新文档和配置默认值以匹配新引擎
2026-05-01 14:50:50 +08:00
9d19437a29 feat(video-pipeline): 实现 TTS 逐句分句生成与字幕精确对齐
TTS 阶段将长文本按标点切分为短句,逐句生成音频并记录每句时长到 `item.segments[]`。assemble 阶段优先使用 segments 的精确时长分配字幕时间线,无 segments 时回退到字数权重估算。同时优化音频上传流程,支持分段音频独立上传 OSS 并在配音时按段映射时间线。
2026-05-01 14:41:28 +08:00
f5d47ec5db feat(video-pipeline): 添加可配置的转场策略引擎和TTS语速支持
- 引入转场策略系统(`getTransition`),支持 `fixed`、`director`、`rhythm` 三种模式
- 根据账号配置文件动态读取转场配置(`loadTransitions`)
- 图片和视频轨道分别调用转场策略,替代原有的固定“闪白”转场
- 支持 `byPosition`(hook/body/keypoint/closing)和 `byDirector` 两种高级选择策略
- 图片动画支持 `loop_animation` 与 `in_animation` 解析(“缩放”、“弹入”等组合)
- TTS 合成新增 `rate` 字段(源自账号配置 `ttsRate`),默认语速调整为 1.1
- 默认动画类型从 `kenburns-zoom` 改为 `缩放`,适配中文 CapCut
2026-05-01 14:16:08 +08:00
21ff5311c1 feat(video-pipeline): 将素材过渡动画切换为闪白并缩短时长
将图片和视频素材的默认过渡效果从溶解改为闪白,并将过渡时长从300ms缩短至150ms,以提升视频拼接的视觉流畅度。
2026-05-01 02:52:37 +08:00
96f00ce7fd feat(video-pipeline): 将 narration 字段统一重命名为 script
字段重命名涉及所有文档、示例代码、提示词模板以及 slug 生成逻辑,确保管线各阶段(分镜、图生提示词、TTS、成片)一致使用 script 字段承载口播文案。

同时增强 `capcut_assemble.js` 的配音与字幕模块:
- 配音支持本地路径模式(不上传 OSS),新增 `--split-captions` 参数启用分句字幕
- 分句字幕按标点切分长文本为短句,基于字数权重动态分配显示时长
- 新增 `update-captions-standalone.js` 独立工具,可在草稿已生成后单独更新字幕
2026-05-01 02:48:37 +08:00
c878abc39b feat(video-pipeline): 用 ffprobe 实际测量音视频时长并统一字段名为 script
将项目中的 `narration` 字段统一重命名为 `script`,并新增 `getAudioDurationSec` 函数通过 `ffprobe` 实际测量音频和视频文件的时长,替代 Manifest 中的估计值,提高时间线组装的准确性。同时优化字幕逻辑,仅在有 TTS 音频时调整视频速度。
2026-05-01 01:52:02 +08:00
7d526d2b60 feat(video-pipeline): 重构多阶段生成管线并集成 CosyVoice TTS
- 重写 `phase-images`:改为并发 3 张并行生成,每个 item 完成立即写入 manifest,支持 MJ task ID 恢复
- 重写 `phase-videos`:先恢复已有 task ID 再提交新任务(并发 3),支持中断恢复
- 迁移 TTS 引擎:从 Qwen-TTS HTTP 接口切换为 CosyVoice WebSocket 接口,支持音色/语气参数透传
- 精简账号系统:移除 `styles/` 目录、`taskId` 过滤和 `--id` 正则校验,`references` 改为顶层字段
- 调整 `slugify`:限制中文字符 5 个、其他 10 个,避免文件名过长
- 更新文档:`manifest-schema.md` 中 `narration` 改为完整原文案,`account-creation.md` 新增 TTS 配置项
- 配置更新:默认 TTS 模型切换为 `cosyvoice-v3.5-plus`,新增 `localAudio` 参数
2026-05-01 00:44:18 +08:00
86b9b7948d feat(video-from-script): 重构工作流为子Agent分步执行并新增提示词模板系统
将视频制作工作流拆分为独立子步骤:分镜 → 图片提示词 → 生图 → 视频提示词 → 生视频 → 成片,每步由子Agent独立执行。引入prompts/目录统一管理提示词模板(分镜.md、图片提示词.md、视频提示词.md),通过account.json的storyboardPrompt/imageStylePrompt/videoStylePrompt字段引用。

变更内容:
- 新增confirmed机制和pipeline.js confirm命令,生图后必须人工确认才能继续
- manifest schema改用shotDesc/narration/duration/directorRef替代旧字段
- 文件命名规则从keyword改为slug(从shotDesc/narration派生)
- 删除旧的storyboard-rules.md和prompt-rules.md
- pipeline.js脚本拆分为lib/目录下的独立模块(cmd-init/cmd-confirm/cmd-validate/phase-*)
- 新增cmd-create-account支持一键创建带prompts目录的账号
- capcut_assemble支持narration字段替代text作为字幕源
- 新增.gitclaude/settings.json权限配置
2026-04-30 21:18:31 +08:00
7f955647fe chore: 移除旧的 .claude/settings.json 权限配置并将账号目录迁移到项目根目录
- 删除 `.claude/settings.json` 中的大量 `Bash` 和 `Edit` 权限许可
- 将 `accounts/` 目录从技能脚本子目录迁移到项目根目录
- 更新所有技能文档和脚本中引用 `accounts/` 的路径为项目根目录
- 移除 `forbidden-emperor` 账号中多余的中文提示词配置文件
2026-04-30 01:31:13 +08:00
357b8e7bcf 优化 2026-04-29 22:47:59 +08:00
dadddc7aec init: video-create project with skills and accounts 2026-04-29 21:04:43 +08:00