Documentation Index
Fetch the complete documentation index at: https://docs.laozhang.ai/llms.txt
Use this file to discover all available pages before exploring further.
权限说明
Seedance 2.0 当前上游并发容量较小,为避免排队时间过长和任务失败,暂时不开放新的调用权限。
本文供已接入用户和接入准备参考。开放时间、并发恢复和接入安排会通过 TG 公告频道 @laozhang_ai 同步。
Base URL: https://api.laozhang.ai/seedance/api/v3接口:
POST /contents/generations/tasks:创建视频生成任务
GET /contents/generations/tasks/{id}:查询任务状态与结果
视频生成是异步任务。创建接口通常只返回任务 id,需要轮询查询接口,成功后从 content.video_url 读取视频下载地址。
路由配置
LaoZhang API 当前完整创建地址是:
https://api.laozhang.ai/seedance/api/v3/contents/generations/tasks
如果在后台配置上游渠道,按以下方式配置:
| 配置项 | 建议值 |
|---|
| 上游 API 请求地址 | https://ark.cn-beijing.volces.com |
| 密钥 | 火山方舟 Ark API Key |
| 自定义前缀 | /seedance |
| 去掉路径前缀 | 留空 |
| 可用模型 | 只填纯模型 ID,见下方模型表 |
创建令牌
在 令牌管理 创建用于 Seedance 2.0 的令牌时,按下面配置:
| 配置项 | 选择 |
|---|
| 计费模式 | 按量优先 |
| 选择分组 | SeeDance2 |
| 建议 | 为 Seedance 2.0 单独创建令牌,便于后续查看调用日志和扣费记录 |
Seedance 2.0 请求必须使用选择了 SeeDance2 分组的令牌。默认分组或其他视频分组的令牌可能出现无可用渠道、模型不匹配或计费分组不正确的问题。
不要把官方路径 /api/v3/contents/generations/tasks 直接拼到 https://api.laozhang.ai 后面。请使用带 /seedance/api/v3 前缀的 Base URL。
当前中转路径下,GET /contents/generations/tasks 不带任务 ID 的列表查询会返回站点 HTML,不应作为业务接口使用。业务侧请使用创建任务和按任务 ID 查询两个接口完成闭环。
接口流程
创建任务
调用 POST /contents/generations/tasks,在 model 中传入纯模型 ID,并通过 content 数组传入提示词和可选素材。
轮询状态
调用 GET /contents/generations/tasks/{id},检查 status 是否进入终态。
下载结果
当 status=succeeded 时,从 content.video_url 下载视频;如果创建时设置了 return_last_frame=true,还可以读取 content.last_frame_url。
状态值:
| 状态 | 说明 |
|---|
queued | 任务排队中 |
running | 任务生成中 |
succeeded | 任务成功,结果在 content 中 |
failed | 任务失败,查看 error |
expired | 任务过期 |
不要等待 completed 状态,也不要读取顶层 video_url。LaoZhang 中转保持方舟官方响应结构:成功状态是 succeeded,视频地址位于 content.video_url。
model 只填纯模型 ID。不要填写控制台接入点 ID,也不要在模型名后附加中文备注。
| 模型 ID | 说明 | 推荐用途 |
|---|
doubao-seedance-2-0-fast-260128 | Seedance 2.0 fast | 快速生成、文生视频、图片参考、视频参考、音频参考、多模态参考、视频延长、轨道补齐 |
doubao-seedance-2-0-260128 | Seedance 2.0 标准版 | 标准质量、首尾帧、视频编辑、对稳定性要求更高的任务 |
不要在客户端请求中传入 ep-... 接入点 ID。LaoZhang 中转按纯模型 ID 匹配通道。
创建任务
/contents/generations/tasks
创建 Seedance 2.0 视频生成任务。
请求头
| Header | 必填 | 说明 |
|---|
Authorization | 是 | Bearer $API_KEY,使用选择了 SeeDance2 分组的 LaoZhang API 令牌 |
Content-Type | 是 | application/json |
Accept | 建议 | application/json |
Accept-Encoding | 调试建议 | identity,可避免部分客户端调试时的压缩解码干扰 |
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|
model | string | 是 | 纯模型 ID,如 doubao-seedance-2-0-fast-260128 |
content | array | 是 | 多模态内容数组,文本提示词也放在这里 |
ratio | string | 否 | 16:9、4:3、1:1、3:4、9:16、21:9、adaptive |
duration | integer | 否 | Seedance 2.0 支持 4 到 15 秒,也支持 -1 自适应 |
frames | integer | 否 | 按帧数控制输出,优先级高于 duration |
resolution | string | 否 | 常用 720p。Seedance 2.0 fast 不支持 1080p |
watermark | boolean | 否 | 是否添加水印 |
generate_audio | boolean | 否 | 是否生成或使用音频 |
return_last_frame | boolean | 否 | 成功后是否返回最后一帧图片 URL |
content 内容项
| 字段 | 类型 | 必填 | 说明 |
|---|
type | string | 是 | text、image_url、video_url、audio_url |
text | string | type=text 时必填 | 生成提示词 |
image_url.url | string | type=image_url 时必填 | 图片 URL |
video_url.url | string | type=video_url 时必填 | 视频 URL |
audio_url.url | string | type=audio_url 时必填 | 音频 URL |
role | string | 素材项建议填写 | 素材用途 |
常用 role:
| role | 用途 |
|---|
first_frame | 首帧图片 |
last_frame | 尾帧图片 |
reference_image | 多模态参考图片 |
reference_video | 多模态参考视频 |
reference_audio | 多模态参考音频 |
音频不能作为唯一参考素材单独传入。使用 audio_url 时,需要同时提供至少一个图片或视频素材。
文生视频
curl -X POST "https://api.laozhang.ai/seedance/api/v3/contents/generations/tasks" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer $API_KEY" \
--data-raw '{
"model": "doubao-seedance-2-0-fast-260128",
"content": [
{
"type": "text",
"text": "第一人称视角果茶广告,4秒,快节奏剪辑,展示苹果果茶制作与成品,清爽明亮风格"
}
],
"ratio": "16:9",
"duration": 4,
"resolution": "720p",
"watermark": false,
"generate_audio": false,
"return_last_frame": true
}'
创建成功时通常只返回任务 ID:
{
"id": "cgt-example-task-id"
}
首尾帧
curl -X POST "https://api.laozhang.ai/seedance/api/v3/contents/generations/tasks" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
--data-raw '{
"model": "doubao-seedance-2-0-260128",
"content": [
{
"type": "text",
"text": "首帧为图片1,尾帧为图片2。生成从红苹果产品特写到苹果果茶成品杯的顺滑商业转场,保持产品外观一致,不出现人物。"
},
{
"type": "image_url",
"image_url": {
"url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_tea_pic1.jpg"
},
"role": "first_frame"
},
{
"type": "image_url",
"image_url": {
"url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_tea_pic2.jpg"
},
"role": "last_frame"
}
],
"ratio": "adaptive",
"duration": 4,
"resolution": "720p",
"watermark": false,
"generate_audio": false,
"return_last_frame": true
}'
图片、视频、音频参考
curl -X POST "https://api.laozhang.ai/seedance/api/v3/contents/generations/tasks" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
--data-raw '{
"model": "doubao-seedance-2-0-fast-260128",
"content": [
{
"type": "text",
"text": "使用图片1作为苹果产品细节参考,使用视频1作为第一视角运镜参考,使用音频1作为背景音乐。生成简洁的苹果果茶广告,包含食材快切和成品杯特写。"
},
{
"type": "image_url",
"image_url": {
"url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_tea_pic1.jpg"
},
"role": "reference_image"
},
{
"type": "video_url",
"video_url": {
"url": "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_tea_video1.mp4"
},
"role": "reference_video"
},
{
"type": "audio_url",
"audio_url": {
"url": "https://ark-project.tos-cn-beijing.volces.com/doc_audio/r2v_tea_audio1.mp3"
},
"role": "reference_audio"
}
],
"ratio": "16:9",
"duration": 4,
"resolution": "720p",
"watermark": false,
"generate_audio": true
}'
查询任务
/contents/generations/tasks/{id}
查询视频生成任务状态。
curl "https://api.laozhang.ai/seedance/api/v3/contents/generations/tasks/cgt-example-task-id" \
-H "Authorization: Bearer $API_KEY"
成功响应示例:
{
"id": "cgt-example-task-id",
"model": "doubao-seedance-2-0-fast-260128",
"status": "succeeded",
"ratio": "16:9",
"duration": 4,
"resolution": "720p",
"content": {
"video_url": "https://example.com/generated-video.mp4",
"last_frame_url": "https://example.com/last-frame.jpeg"
},
"usage": {
"completion_tokens": 87300,
"total_tokens": 87300
}
}
结果 URL 是临时签名地址,通常有效期为 24 小时。生产环境建议任务成功后立即下载,并转存到自己的对象存储。
Python 完整示例
import os
import time
import requests
API_KEY = os.environ["API_KEY"]
BASE_URL = "https://api.laozhang.ai/seedance/api/v3"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
}
payload = {
"model": "doubao-seedance-2-0-fast-260128",
"content": [
{
"type": "text",
"text": "第一人称视角果茶广告,4秒,快节奏剪辑,清爽明亮风格",
}
],
"ratio": "16:9",
"duration": 4,
"resolution": "720p",
"watermark": False,
"generate_audio": False,
"return_last_frame": True,
}
create_resp = requests.post(
f"{BASE_URL}/contents/generations/tasks",
headers=headers,
json=payload,
timeout=60,
)
create_resp.raise_for_status()
task_id = create_resp.json()["id"]
while True:
query_resp = requests.get(
f"{BASE_URL}/contents/generations/tasks/{task_id}",
headers={"Authorization": f"Bearer {API_KEY}", "Accept": "application/json"},
timeout=60,
)
query_resp.raise_for_status()
task = query_resp.json()
status = task.get("status")
if status == "succeeded":
video_url = task["content"]["video_url"]
video_resp = requests.get(video_url, timeout=180)
video_resp.raise_for_status()
with open(f"{task_id}.mp4", "wb") as output:
output.write(video_resp.content)
break
if status in {"failed", "expired"}:
raise RuntimeError(task)
time.sleep(15)
常见接入问题
为什么 /seedance/v3/contents/generations/tasks 返回 HTML?
当前路径是 /seedance/api/v3/contents/generations/tasks。不要去掉官方路径里的 /api。
不可以。请求里的 model 必须是纯模型 ID,例如 doubao-seedance-2-0-260128。不要写成 doubao-seedance-2-0-260128 (2.0-音画同生)。
不建议。LaoZhang 中转按纯模型 ID 匹配通道,请不要传入 ep-...。
视频地址在 content.video_url。如果创建任务时设置 return_last_frame=true,最后一帧图片地址在 content.last_frame_url。
不能。音频参考需要和至少一个图片或视频素材一起传入,否则请求会被官方接口拒绝。