Appearance
视频生成 Seedance
POST /api/v1/seedance/videos
Authorization: Bearer sk-xxx
Content-Type: application/json异步视频生成接口:输入一段文字描述即可生成视频(文生视频);Seedance 2.5 / 2.0 标准档另支持传入参考图 / 参考视频 / 参考音频做图生视频。任务完成后通过网关代理下载 mp4。
⚠️ 参考素材限制:仅
doubao-seedance-2-5与doubao-seedance-2-0支持参考素材;素材 URL 必须是公网可访问的https://地址(不支持 base64、内网 / 本地文件)。传入不合规的 URL、或在 Fast / Mini 上带参考素材,会被网关拒绝(400)。参考素材是否加价以供应商报价为准,当前按下方时长档位计收。
支持模型
模型 ID 用火山官方家族名,分辨率由请求里的 resolution 决定(不再烧进模型 ID)。
| 模型 ID | 可选分辨率 | 时长(秒) | 单价(元 / 百万 tokens) | 约合(元 / 秒) |
|---|---|---|---|---|
doubao-seedance-2-0-fast | 720p | 4~15 | 37.00 | 0.7992 |
doubao-seedance-2-0-mini | 720p | 4~15 | 23.00 | 0.4968 |
doubao-seedance-2-0 | 720p / 1080p / 4k | 4~15 | 46.00 / 51.00 / 26.00 | 0.9936 / 2.748 / 2.8568 |
doubao-seedance-2-5 | 720p / 1080p | 4~30 | 70.00 / 77.00 | 1.512 / 4.1164 |
时长上限按模型代际区分:Seedance 2.0 系列最长 15 秒,Seedance 2.5 系列最长 30 秒(火山官方规格)。超出上限的请求会被网关直接拒绝(上游不校验时长、纯按秒计费,放行超限会造成按请求秒数多扣而实际交付更短)。
分辨率只认已开档:传白名单外的值(如给
doubao-seedance-2-0-fast传1080p)会被拒(400);不传按720p出片并按720p计费。
创建视频任务
Request
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | * | 模型 ID,见上方支持模型列表 |
content | array | 二选一 | 输入内容数组,可含 text 提示词项与参考图 / 视频 / 音频项(后者仅 2.5 / 2.0 标准档支持) |
prompt | string | 二选一 | 提示词简写,与 content 里的 text 项等价(二者都在时以 prompt 为准) |
resolution | string | 可选 | 输出分辨率:720p / 1080p / 4k(按模型可选档,默认 720p)。只读顶层字段,塞在 metadata 里不生效 |
duration | integer | 可选 | 视频时长(秒)。Seedance 2.0 系列 4~15,Seedance 2.5 系列 4~30,默认 5;超限会被拒 |
ratio | string | 可选 | 画面比例:16:9(横屏) / 9:16(竖屏) / 1:1(方形) / 4:3 / 3:4,不传则由上游按默认处理 |
不要用
size或像素值传分辨率。 输出分辨率用resolution,画面比例用ratio;例如要 1280×720 就是resolution:"720p"+ratio:"16:9"。传size会被网关忽略。
content 数组元素:
type | 字段 | 说明 |
|---|---|---|
text | text | 文字描述(提示词) |
image | image_url.url | 参考图,公网 https;role 可选 reference_image(默认)/ first_frame / last_frame |
video | video_url.url | 参考视频,公网 https;role=reference_video |
audio | audio_url.url | 参考音频,公网 https;role=reference_audio |
提示词里用「图片1 / 图片2 / 视频1 / 音频1」按
content中素材出现的顺序引用。
请求示例
文字生成视频:
json
{
"model": "doubao-seedance-2-5",
"resolution": "1080p",
"content": [
{"type": "text", "text": "一只猫在花园里追蝴蝶,阳光明媚,电影级画质"}
],
"duration": 4,
"ratio": "16:9"
}参考图生视频(2.5 / 2.0 标准档):
json
{
"model": "doubao-seedance-2-0",
"resolution": "720p",
"content": [
{"type": "text", "text": "让图片1中的人物转身走向镜头,夕阳逆光,电影感"},
{"type": "image", "image_url": {"url": "https://example.com/person.jpg"}, "role": "reference_image"}
],
"duration": 5,
"ratio": "16:9"
}用 prompt 简写:
json
{
"model": "doubao-seedance-2-0-mini",
"prompt": "海浪拍打沙滩,夕阳西下",
"duration": 4
}响应
json
{
"id": "task_xxxxxxxxxxxxxxxx",
"task_id": "task_xxxxxxxxxxxxxxxx",
"object": "video",
"model": "doubao-seedance-2-5",
"status": "queued",
"progress": 0,
"created_at": 1789977781
}记下返回的 id,用于后续查询与下载。
查询任务详情
GET /api/v1/seedance/videos/{taskId}
Authorization: Bearer sk-xxx响应示例(生成成功):
json
{
"id": "task_xxxxxxxxxxxxxxxx",
"model": "doubao-seedance-2-5",
"status": "succeeded",
"created_at": 1789977781,
"content": {
"video_url": "https://limapi.com/api/v1/seedance/videos/task_xxxxxxxxxxxxxxxx/content"
},
"usage": {
"total_tokens": 213840,
"completion_tokens": 213840
}
}响应字段说明:
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务 ID |
status | string | 任务状态:queued / running / succeeded / failed |
content.video_url | string | 生成成功后的下载地址(网关代理,需带同一个 API Key 访问) |
usage.total_tokens | integer | 总 token 用量(用于计费,按 时长 × 每秒 token 数 折算) |
状态说明:
| status | 含义 | 说明 |
|---|---|---|
queued | 排队中 | 任务已创建,等待上游处理 |
running | 生成中 | 视频正在生成 |
succeeded | 已完成 | 生成成功,返回 content.video_url,此时按 token 用量扣费 |
failed | 失败 | 生成失败,不扣费 |
💡 建议轮询间隔 5~15 秒。视频生成通常需要 1~6 分钟(排队 + 出流),超时预算请留足 6 分钟再判定失败。
下载视频
GET /api/v1/seedance/videos/{taskId}/content
Authorization: Bearer sk-xxx任务 succeeded 后,用上一步返回的 content.video_url(或直接拼此路径)下载,响应为 video/mp4 字节流。
bash
curl "https://limapi.com/api/v1/seedance/videos/$TASK_ID/content" \
-H "Authorization: Bearer sk-xxx" \
--output video.mp4上游直链为明文 http 且需鉴权,因此统一由网关代理回源,客户端只需带本站 API Key 即可下载。
Seedance 模型定价
计费单位为元 / 百万 tokens,成本 = 时长(秒)× 每秒 token 数 × 单价 ÷ 1,000,000。下表同时给出折算后的每秒参考价:
| 模型 ID | 分辨率 | 元 / 百万 tokens | 约合 元 / 秒 |
|---|---|---|---|
doubao-seedance-2-0-mini | 720p | 23.00 | 0.4968 |
doubao-seedance-2-0-fast | 720p | 37.00 | 0.7992 |
doubao-seedance-2-0 | 720p | 46.00 | 0.9936 |
doubao-seedance-2-0 | 1080p | 51.00 | 2.748 |
doubao-seedance-2-0 | 4k | 26.00 | 2.8568 |
doubao-seedance-2-5 | 720p | 70.00 | 1.512 |
doubao-seedance-2-5 | 1080p | 77.00 | 4.1164 |
每秒 token 数按分辨率档不同:720p 为 21,600,1080p 约 5.3 万,4k 约 11 万 —— 所以「4k 单价更低但每秒更贵」。任务成功后按
usage.total_tokens扣费,失败不扣。
Python 完整示例
python
import requests, time
API_KEY = "sk-xxx"
BASE_URL = "https://limapi.com/api/v1/seedance"
HEADERS = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
# 1. 创建视频任务
resp = requests.post(f"{BASE_URL}/videos", headers=HEADERS, json={
"model": "doubao-seedance-2-5",
"resolution": "1080p",
"content": [{"type": "text", "text": "一只猫在花园里追蝴蝶,阳光明媚"}],
"duration": 4,
"ratio": "16:9"
})
task_id = resp.json()["id"]
print(f"任务已创建: {task_id}")
# 2. 轮询任务状态
while True:
result = requests.get(f"{BASE_URL}/videos/{task_id}", headers=HEADERS).json()
status = result.get("status")
if status == "succeeded":
video_url = result["content"]["video_url"]
print(f"视频已生成: {video_url}")
# 3. 下载(带同一个 API Key)
with requests.get(video_url, headers={"Authorization": f"Bearer {API_KEY}"}, stream=True) as r:
with open("video.mp4", "wb") as f:
for chunk in r.iter_content(chunk_size=8192):
f.write(chunk)
break
elif status == "failed":
print("任务失败,未扣费")
break
print(f"状态: {status},等待中...")
time.sleep(10)