视频生成(按秒计费模型)
用 POST /v1/videos 创建图生视频、首尾帧、参考图、数字人和视频工具任务,查询状态、下载结果,按输出秒数计费。
模型目录 → 视频 中的视频模型通过 POST /v1/videos 以异步任务运行,按输出视频的秒数计费。流程是:创建任务、查询状态、下载文件。失败和取消的任务不收费。
| 步骤 | 请求 |
|---|---|
| 预估价格(可选) | POST /v1/videos,带 "dry_run": true |
| 创建任务 | POST /v1/videos |
| 查询状态 | GET /v1/videos/{id} |
| 下载 | GET /v1/videos/{id}/content |
| 取消 | POST /v1/videos/{id}/cancel |
#输入
图片、视频、音频输入可以是公开的 https:// 链接,或 base64 data URI(data:image/png;base64,...),单个文件不超过 50 MB,整个请求体不超过 80 MB。
视频模型需要首帧。 用 image 传入。如果只有文字创意,先用图片模型生成首帧,再传入它的链接。只有文字的请求会返回 400,提示 “image is required”。
#创建任务
curl https://bigmodel.io/v1/videos \
-H "Authorization: Bearer $BIGMODEL_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: lantern-take-1" \
-d '{
"model": "seedance-2.0-fast",
"prompt": "灯笼缓缓向右漂去,湖面薄雾流动",
"image": "https://example.com/lantern.png",
"seconds": 5,
"resolution": "720p"
}'import os, time, requests
BASE = "https://bigmodel.io/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['BIGMODEL_API_KEY']}"}
task = requests.post(f"{BASE}/videos", headers={**HEADERS, "Idempotency-Key": "lantern-take-1"}, json={
"model": "seedance-2.0-fast",
"prompt": "灯笼缓缓向右漂去,湖面薄雾流动",
"image": "https://example.com/lantern.png",
"seconds": 5,
}).json()
while task["status"] in ("queued", "running"):
time.sleep(10)
task = requests.get(f"{BASE}/videos/{task['id']}", headers=HEADERS).json()
print(task["status"], task.get("output", {}).get("url"), task.get("cost_usd"))任务受理后返回 202、Location 响应头和:
{"id": "6f1c...", "object": "video", "model": "seedance-2.0-fast", "status": "queued", "created_at": 1760000000, "estimated_cost_usd": 0.4272}#视频模型字段
| 字段 | 说明 |
|---|---|
model |
必填。 |
prompt |
画面里发生什么。 |
image |
必填,首帧。也可写作 first_frame。 |
last_frame |
可选,尾帧,仅支持首尾帧的模型可用,需同时传 image。 |
reference_images、reference_videos、reference_audios |
参考素材数组,仅支持参考输入的模型可用。带参考素材时,image 也算作一张参考图。 |
seconds |
输出时长(也可写作 duration)。默认 5 秒,并限制在模型支持的范围内。 |
resolution |
模型支持的分辨率之一,如 720p。模型支持 720p 时默认 720p。 |
aspect_ratio |
如 16:9、9:16。传 size(如 1280x720)也能设定比例。 |
audio |
支持原生音频的模型可传 true 或 false。 |
seed |
整数,模型支持时可复现结果。 |
每个模型的时长范围、分辨率和参考素材上限见模型目录。超出范围会返回 400,并列出允许的取值。
#数字人与视频工具
同一个接口也运行数字人和工具模型:
| 模型 | 输入 |
|---|---|
infinitetalk |
image(人像)或 video(单人视频),再加 input_audio(配音) |
latentsync、latentsync-music |
video(单人、露脸)和 input_audio |
wan-animate-2 |
image(人物)、video(要模仿的动作),或两者都传 |
video-upscale、seedvr2-upscale |
video;video-upscale 可传 target_resolution:1080p(默认)或 2k |
video-to-clay |
video;mode 为 clay_masked(默认)、clay 或 sculpt;keep_audio |
数字人模型按配音(或视频)时长计费,工具模型按输入视频时长计费。
#先预估价格
在同样的请求体里加 "dry_run": true。不会生成,也不会扣费;输入素材仍会被读取,以便按时长估价。
curl https://bigmodel.io/v1/videos \
-H "Authorization: Bearer $BIGMODEL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "seedance-2.0-fast", "image": "https://example.com/lantern.png", "seconds": 5, "dry_run": true}'{"object": "quote", "model": "seedance-2.0-fast", "unit": "per_second", "estimated_units": 5, "estimated_cost_usd": 0.4272}#用 Idempotency-Key 安全重试
创建任务时带上 Idempotency-Key 请求头(最多 200 个字符)。如果响应丢失,用同一个 Key 和同一个 API Key 重新发送,会拿回原来的任务,不会再生成一次。每个新视频使用新的 Key。
#查询状态与下载
curl https://bigmodel.io/v1/videos/TASK_ID \
-H "Authorization: Bearer $BIGMODEL_API_KEY"
curl -L -o video.mp4 https://bigmodel.io/v1/videos/TASK_ID/content \
-H "Authorization: Bearer $BIGMODEL_API_KEY"status 依次为 queued、running,最终为 succeeded、failed 或 canceled。建议每 5–15 秒查询一次。运行中 progress 可能显示 0–100。成功的任务带有 output: {"type": "video", "url": "...", "expires_in": 86400} 和实际扣费 cost_usd;失败的任务带有 error.message。
/content 会 302 跳转到文件,curl 需加 -L。output.url 无需 API Key 即可访问,有效期 24 小时,每次查询状态都会返回新链接。需要长期保存请下载文件。同一账户下的任意 API Key 都能查询该任务。
POST /v1/videos/TASK_ID/cancel 请求停止生成,接口返回当前任务;若任务尚未完成,稍后会变为 canceled。3 小时内未完成的任务会以 failed 结束,不收费。
#计费方式
创建任务时,余额需在扣除仍在运行的任务后足以覆盖本次预估。任务成功后按实际生成的视频扣费,因此 cost_usd 可能与 estimated_cost_usd 略有差异。扣费记录在用量中。各模型价格见定价。
部分视频模型按输出分辨率定价(例如 Seedance 2.0 Fast 的 480p 和 720p 价格不同)。不传 resolution 时,模型支持 720p 就用 720p。每个模型页列有各分辨率的价格,dry_run 会按你传的分辨率报价。
#验证配置
把预估示例中的首帧换成你自己的图片链接并发送。返回 200 报价即说明 Key 可以使用该模型。然后创建任务并查询到 succeeded。
#常见问题排查
400 “image is required”。 视频模型需要首帧。传入 image;没有图片时先用图片模型生成。
400 “seconds must be between …” 或 “resolution must be one of …”。 取值超出模型限制,按提示或模型目录中的范围调整。
400 “… could not be read”。 输入链接不是公开的 https://,或 data URI 格式有误、超过 50 MB。
402 insufficient_balance。 余额扣除运行中任务后不足以覆盖预估,请到充值页面充值。
403 permission_error。 Key 未分配分组,请在 API Key 中设置分组。
404 model_not_available。 该模型不对这个 Key 开放,或应调用其他接口(语音和音乐使用 /v1/audio/*)。
404 not_found_error。 任务 ID 有误,或任务属于其他账户。
/content 返回 409 not_ready。 任务尚未成功,请继续查询。
503 api_error。 生成服务暂时不可用。用同一个 Idempotency-Key 重试。
#相关文档
- 图片生成:制作首帧。
- 语音合成:为数字人模型准备配音。
- 音乐、音效与音频工具。
更新于 · 以 Markdown 查看