Skip to content

Videos

POST /v1/videos/generations + GET /v1/videos/{task_id}(异步任务 · 已开放)

文生视频 / 图生视频。视频生成是异步任务:先提交任务得到任务 id,再轮询查询直到完成。

协议决定档位

协议配在模型上;时长和精度是客户请求参数,不用在后台配。渠道只提供账号(Base URL、API Key;MoMa 另需 App ID)。

客户可传 duration / resolution;未传则用协议缺省档(通常 5 秒 · 720p)。时长是协议闭区间内的任意整数秒;精度从协议白名单里选。超出范围返回 video_sku_invalidmoma 上游不接 resolution,体验页也不展示精度;请求里若带了仍按 720p 预扣。

MoMa 的 duration 不是「只要不超过 15 秒」。底层 Seedance 2.0 文生最短 4 秒:1–3 会被上游拒;duration=-1 表示智能选时长(预扣按 15 秒估,实结用上游 usage)。

协议上游时长精度
seedance火山方舟 Seedance 1.x5–15 秒480p / 720p / 1080p / 4K
momaMoMa(Seedance 2.0)与官方 2.0 相同:4–15 秒,或 -1 智能时长上游 createTask 不接 resolution,按默认清晰度出片;预扣按 720p 估
vapeurVapeur 视频中转并集 1–16 秒,或 -1(仅 Seedance 档有效)480p / 540p / 720p / 1080p / 4K。目录仍登官方协议,挂载覆盖;upstream_model 用 Vapeur 的 id。渠道 Base https://api.vapeur.ai(适配器会剥掉尾部 /v1
kling可灵 3.x 统一任务(Bearer)3–15 秒720p / 1080p / 4K。不是 2.x JWT /v1/videos/text2video
viduVidu Q31–16 秒540p / 720p / 1080p
wan阿里云百炼万相 2.6/2.72–15 秒720p / 1080p。文生 2.6 走 size=宽*高,图生走 resolution

新厂商:加协议目录 + 一个适配器,客户 API 不变。不要再加 video_shape

1. 创建任务

bash
curl https://www.wutooai.cn/v1/videos/generations \
  -H "Authorization: Bearer sk-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "volces/seedance",
    "prompt": "一只猫在草地上追毛线球",
    "duration": 5,
    "resolution": "720p"
  }'

响应(受理即返回,不含视频):

json
{ "id": "vt-3fa1…", "task_status": "processing" }

所有视频模型共用这一套入参,不因上游是文生、图生、视频生还是带参考音频而换字段:

字段作用
prompt文本。也可写在 content 的 text 块里
images / image / image_url图生。或 content{type:"image_url", role:"reference_image"}
audio / audio_url / audios参考音频。或 content{type:"audio_url", role:"reference_audio"}
video / video_url / videos参考视频。或 content{type:"video_url", role:"reference_video"}
duration / resolution输出时长和精度;也可写在 prompt 的 --duration / --resolution 旗标里
ratio画幅,原样交给上游

判定:有参考视频 → 整单走「含视频输入」价;图和参考音频都不翻这档。目录上的文生 / 图生 / 视频生 / 音频只做展示,网关不按这个拦。上游不支持会把错误原样返回(创建失败则预扣退回)。没写 content 时,顶栏图片 / 音频 / 参考视频会抬成 Seedance content 块再交给上游。这和 generate_audio(输出配乐)不是一回事。

2. 查询任务

bash
curl https://www.wutooai.cn/v1/videos/vt-3fa1… \
  -H "Authorization: Bearer sk-..."
  • 处理中:{ "id": "vt-…", "task_status": "processing" }
  • 完成:统一载荷 { content: { video_url }, usage },附加 idtask_status: "succeeded"(不透传厂商信封)
  • 失败:task_status: "failed"(不计费,预扣自动退回)

计费

  • seedance / moma(token_video):跟火山方舟 Seedance 同一套。单价配 元 / 百万 tokens。成功按 usage.completion_tokens × 该分辨率档的一个单价。文生/图生/带参考音频走该档文生价;请求里带了参考视频才整单走「含视频输入」价。提示词 token 不另计。失败不计费。
  • 分辨率档(与 token 条数分开):480p 与 720p 同一单价;1080p、4K 各是另一档。目录按档填价;某一档未配则退回 480p/720p 价。方舟刊例(元/百万 tokens):
输出分辨率不含视频输入含视频输入
480p / 720p4628
1080p5131
4K2616
  • 预扣按官方公式估:token = (输入视频秒 + 输出秒) × 宽 × 高 × 24 / 1024(16:9:480p=864×480,720p=1280×720,1080p=1920×1088,4K=3840×2160)。图生没有输入视频秒。含视频输入但时长未知或短于 4 秒,按 4 秒保底(2.0 短输入同一最低档)。
  • 完成时优先用上游 usage.completion_tokens 实结;没有 usage 再回退公式。提示词 token 不另计。
  • kling / vidu / wan(second_video):按 输出秒 × 该精度档的元/秒。目录按精度填价;请求的精度未配价会 billing_unavailable。失败不计费。上游没有 token usage,也不用方舟公式。
  • vapeur:按挂载对应的目录模型计费。Seedance 档走 token_video(有上游 usage 则实结);可灵 / Vidu / 万相走 second_video。不要把整条渠道的协议设成 vapeur 来推断单价。
  • 时长/精度越长越高清,费用越高。失败不计费。

错误

  • modality_mismatch:model 不是 video 模态。
  • video_unsupported_protocol:该模型协议不是已支持的视频协议。
  • video_sku_invalid:时长不在协议区间内,或精度不在协议白名单内。
  • 402 / 429 语义与 chat 一致。上游不支持某种输入时,按上游错误返回(常见 upstream_error),预扣退回。