MuseMVP
MuseMVP 文档
AI

视频与配音

基于 Queues 的异步视频、语音合成、价格与限制、任务接口与提供方密钥。

开始之前

视频与配音通过内置的提供方适配器运行,Live 模式需要把 DASHSCOPE_API_KEY 设为 Worker secret(见 AI 总览)。未设置时,Live 模式会隐藏这些模型,工作室会说明原因。Mock 模式不需要密钥,提供可播放的示例媒体。

视频

配置取值
时长2 到 10 秒
分辨率与价格480P 每秒 6 积分,720P 每秒 12 积分,1080P 每秒 23 积分
画幅16:9、9:16、1:1、4:3、3:4
输入文字,或文字加媒体库中的首帧图片(图生视频输出 1:1)
声音默认随视频生成,audio 设为 false 时关闭

一段 5 秒 720P 的视频会预占 60 积分。

视频任务如何执行

  1. /app/video 发送 POST /api/ai/videos。服务端按分辨率 × 秒数计价,把积分预占、任务与 outbox 消息一起写入。
  2. 队列消费者领取租约,由适配器提交提供方任务,并把任务 ID 记录下来。
  3. 释放租约,再用延迟消息(JOBS.send(..., { delaySeconds }))稍后查询。请求中不会阻塞等待,用户可以关闭页面。
  4. 任务完成后,MP4 复制进 R2,经 /api/ai/assets/{id}/content 以 Range 请求提供,播放器可以拖动。
  5. 首次领取 30 分钟后仍未完成的任务会失败并退还积分;每 5 分钟的 cron 还会回收过期租约。
{
  "requestId": "0b8d5e2a-7f3c-4c1d-9a6e-2f4b8c1d3e5a",
  "model": "your-video-model-key",
  "prompt": "咖啡升起热气,镜头缓缓推进",
  "resolution": "720P",
  "ratio": "16:9",
  "seconds": 5,
  "audio": true,
  "firstFrame": "可选的媒体库资源 ID"
}

提示词最多 2,000 个字符。模型 key 来自 packages/ai/src/video.ts 中的 VIDEO_MODELS。

配音

配置取值
音色七个精选音色:中文旁白、新闻、纪录片与多情感风格,外加一个英文音色
文案每段最多 2,000 字
价格每千字 2 积分,向上取整,因此每段至少 1 积分
输出MP3,存入媒体库,可试听与下载

POST /api/ai/speech 接受 requestId、model、voice 与 text。任务同样先预占,再由 JOBS 领取租约、适配器合成,并像其他结果一样写入 R2。音色 key 与名称位于 packages/ai/src/speech.ts 的 SPEECH_MODELS。

共同行为

  • 两个接口成功时都返回 201 与任务,拒绝时与生图一样返回 402、429 或 503。
  • GET /api/ai/tasks/{id} 查询进度;POST /api/ai/tasks/{id}/cancel 取消排队中的任务并退还积分。
  • 当 ai.refundOnContentRefusal 为 true 时,提供方的内容拒绝会退还积分。
  • 每个任务的预估上游花费都计入 ai.dailyBudgetUsd。

排障

  • Live 模式看不到模型: 当前环境没有设置提供方密钥。
  • 一直显示生成中: 确认队列消费者已部署、JOBS 绑定存在、cron 触发器在运行。30 分钟后任务会失败并退还积分。
  • 视频无法拖动: 通过支持 Range 请求的 /api/ai/assets/{id}/content 加载,而不是复制出的地址。

本页目录