Cindy Xu
|
14828256de
|
feat(sfx): 新增 Sonilo AI 音效模式(可选,默认关闭)
在 #270 配乐模式基础上新增可选的 "AI 音效(Sonilo)":将合并后的成片
上传到 Sonilo API(POST /v1/video-to-sfx,异步任务管线),根据画面内容
生成音效,再用 ffmpeg 混在成片现有音轨之下(视频流直接复制,不重编码
画面)。解说配音在后续合成步骤中单独混入,音量策略不受影响。生成的
音效为免版税素材。
- 复用 #270 的 sonilo_api_key 配置与 app/services/sonilo.py 模块,
新增音效任务管线(提交 / 轮询 / 预签名 URL 下载)
- 上传前 ffprobe 本地校验时长(音效接口上限 3 分钟),避免白传计费
- 轮询是免费幂等 GET:网络抖动与 5xx 在截止时间内重试,不报废已计费任务
- 任何失败(超时、HTTP 错误、任务失败、混音失败)只记录日志并沿用
原视频,绝不中断成片任务
- WebUI 音频设置新增独立开关面板(默认关闭),选项处提示视频将上传至
Sonilo API
- 现有 BGM / 合成逻辑不做任何改动,未勾选时行为与 main 完全一致
|
2026-07-22 13:17:14 -07:00 |
|
Cindy Xu
|
d29874a163
|
feat(bgm): 新增 Sonilo AI 配乐模式(可选,默认关闭)
背景音乐来源新增 "AI 生成配乐(Sonilo)":将合成完成的视频(未加 BGM)
上传到 Sonilo API,根据画面内容与剪辑节奏生成配乐,音频文件交还给现有
合成流程混音,解说配音音量策略保持不变。
- 独立模块 app/services/sonilo.py,仅在配置 sonilo_api_key 后可用
- 上传前 ffprobe 本地校验时长(接口上限 6 分钟),避免白传计费
- 任何失败只记录日志并回退到随机背景音乐,绝不中断成片任务
- WebUI 选项处提示:视频将上传至 Sonilo API,生成的音乐已获授权、
可商用(以条款为准)
- 现有 resource/upload/none 的 BGM 逻辑不做任何改动
Closes #269
|
2026-07-13 21:00:03 -07:00 |
|
viccy
|
990fb36e98
|
fix(webui, tests): 修复硬编码路径与组件默认值问题并新增测试
替换音频设置模块的硬编码本地路径为资源目录工具函数,提升跨平台兼容性
修正字幕预览方向选择组件的默认值处理逻辑,移除冗余的默认参数
新增Streamlit组件会话状态合规性测试,确保带key的组件不会同时声明default参数
更新.gitignore以允许提交新增的测试文件
|
2026-07-13 03:48:05 +08:00 |
|
linyq
|
e53156f4f2
|
fix(documentary): normalize streamlit progress values
|
2026-04-03 12:57:24 +08:00 |
|
linyq
|
abc9db22e5
|
Fix documentary narration parsing and explicit vision overrides
|
2026-04-03 12:04:09 +08:00 |
|
linyq
|
4e2560651f
|
fix(documentary): restore narration repair and explicit vision overrides
|
2026-04-03 11:29:27 +08:00 |
|
linyq
|
a8b6a5bb6b
|
fix(documentary): fail on malformed narration payload
|
2026-04-03 02:45:33 +08:00 |
|
linyq
|
d678bf62b1
|
fix(documentary): centralize final script generation in shared service
|
2026-04-03 02:38:54 +08:00 |
|
linyq
|
ac63fea953
|
refactor(documentary): route adapters through shared analysis service
|
2026-04-03 02:24:30 +08:00 |
|
linyq
|
df034d104b
|
fix(documentary): keep frames when batch summary is missing
|
2026-04-03 02:09:02 +08:00 |
|
linyq
|
ad02059e5d
|
fix(documentary): validate batch response contract before success
|
2026-04-03 02:04:21 +08:00 |
|
linyq
|
4d21c43b89
|
feat(documentary): preserve failed batches and add vision concurrency
|
2026-04-03 01:54:47 +08:00 |
|
linyq
|
8201911b82
|
fix(documentary): harden fast-path fallback and cache key prefix
|
2026-04-03 01:42:43 +08:00 |
|
linyq
|
3d76bff442
|
perf(documentary): add fast frame extraction and cache keys
|
2026-04-03 01:30:51 +08:00 |
|
linyq
|
40a48cc9ff
|
fix(documentary): align batch result fields with prompt contract
|
2026-04-03 01:23:05 +08:00 |
|
linyq
|
f9539eac8c
|
fix(documentary): tighten prompt contract and config guards
|
2026-04-03 01:14:41 +08:00 |
|
linyq
|
1d148370c5
|
feat(documentary): add shared frame analysis contract
|
2026-04-03 00:55:19 +08:00 |
|