主题
Seedance 2.0 视频生成
POST
/v1/video/generations
Seedance 2.0 是一款支持文生视频、图生视频、多模态参考视频生成和有声视频的异步视频模型,输出时长 4–15 秒、分辨率最高 4K。
- 文生视频(T2V):根据提示词从零生成视频,可开启联网搜索补充实时信息。
- 图生视频(I2V):使用首帧和/或尾帧图片控制视频的起止画面。
- 多模态参考视频(R2V):传入参考图片、参考视频和参考音频,引导生成风格和内容;视频编辑与延长也通过参考视频加提示词表达。
- 有声视频:默认为视频生成音频,可通过
generate_audio关闭。
提交生成请求后,接口立即返回任务 ID。视频生成是异步过程,需要通过查询接口检查任务状态,成功后从返回的结果地址获取视频。
- 这是异步接口。创建请求返回任务 ID 后即结束,不等候视频生成完成。
- 客户端应定期调用查询接口检查任务状态,建议间隔 5–10 秒。
- 成功后从查询响应的
data.result_url获取视频内容地址。
模型
请求体中的 model 固定填写下面的模型 ID。
seedance-2.0价格
| 分辨率 | 单秒售价 |
|---|---|
480p | ¥0.56 / $0.0824 |
720p | ¥1.20 / $0.1765 |
1080p | ¥3.00 / $0.4412 |
4k | ¥6.15 / $0.9044 |
按输出视频时长(秒)和分辨率计费;是否生成音频、参考视频的数量与时长不影响价格,参考视频输入不额外计费,生成失败的请求不扣费。
认证
使用 ClawPower API Key 进行 Bearer 认证,并在请求头中传入:
Authorization: Bearer <CLAWPOWER_API_KEY>类型 HTTP (bearer)
请求体
application/json
要调用的模型 ID。固定填写 seedance-2.0,不支持品牌别名或其他模型名称。
有效值
"seedance-2.0"视频生成说明。描述场景、主体、动作、镜头和风格。
去除首尾空白后长度须为 3–4000 个字符。图生视频与多模态参考模式下,可结合媒体内容描述预期的运镜和变化。
最小长度
3最大长度
4000输出视频时长,单位为秒,取值范围为 4–15 的整数。
最小值
4最大值
15输出分辨率,四档价格不同。取值大小写不敏感,4K 与 4k 等价。
1080p 不支持图片输入:请求包含 first_frame_image、last_frame_image 或 image_urls 时不能使用 1080p。
有效值
"480p""720p""1080p""4k"输出视频的宽高比。所有模式规则一致:
- 省略时默认
16:9。 - 传入
adaptive时跟随输入媒体的画幅。 - 也可传具体比例。
有效值
"adaptive""21:9""16:9""4:3""1:1""3:4""9:16"是否为视频生成音频。默认 true。
不影响价格:是否生成音频按同一价格计费。
默认
true是否在生成前联网搜索,用搜索结果补充提示词中的实时信息。默认 false。
只能用于文生视频(T2V):请求包含任何媒体字段时不能开启。
默认
false首帧图片的公网 HTTPS URL。用于图生视频模式,控制视频起始画面。
不能与 image_urls、video_urls 或 audio_urls 同时使用。
尾帧图片的公网 HTTPS URL。用于图生视频模式,控制视频结束画面。不能单独使用,必须与 first_frame_image 同时传入。
不能与 image_urls、video_urls 或 audio_urls 同时使用。
参考图片 URL 数组。用于多模态参考视频模式。
- 数量:1–9 张。
- 类型:公网可访问的 HTTPS URL。
- 不能与
first_frame_image或last_frame_image同时使用。 - 传入参考图时不能使用
1080p分辨率。
最小项数
1最大项数
9参考视频 URL 数组。用于多模态参考视频模式,视频编辑与延长也通过参考视频加提示词表达。
- 数量:1–3 个。
- 类型:公网可访问的 HTTPS URL。
- 供应商约束:总时长不超过 15 秒。
- 参考视频输入不额外计费。
- 不能与
first_frame_image或last_frame_image同时使用。
最小项数
1最大项数
3参考音频 URL 数组。用于多模态参考视频模式。
- 数量:1–3 个。
- 类型:公网可访问的 HTTPS URL。
- 供应商约束:总时长不超过 15 秒。
- 不能单独使用,必须同时传入
image_urls或video_urls。 - 不能与
first_frame_image或last_frame_image同时使用。
最小项数
1最大项数
3响应
任务创建成功。返回公共任务 ID,用于后续查询。
application/json
JSON "id": "task_0123456789abcdef", "task_id": "task_0123456789abcdef", "object": "video", "model": "seedance-2.0", "status": "queued", "progress": 0, "created_at": 1787414400
{
}
TIP
视频生成是异步任务。创建任务后,请前往 任务管理 > 查询视频任务 查看任务状态与结果。
生成模式
Seedance 2.0 根据请求中的媒体字段自动确定生成模式,不需要额外指定 mode 参数。
| 模式 | 触发条件 | 允许的媒体字段 |
|---|---|---|
| 文生视频 T2V | 没有任何媒体字段 | 无;可开启 web_search 联网搜索 |
| 图生视频 I2V | 传入 first_frame_image 或 last_frame_image | 仅首帧、尾帧 |
| 多模态参考 R2V | 传入 image_urls、video_urls 或 audio_urls | 仅参考素材数组 |
组合限制:
- 首尾帧字段与参考素材数组不能同时出现。
last_frame_image不能单独使用,必须与first_frame_image同时传入。audio_urls不能单独使用,必须同时传入image_urls或video_urls。web_search只能用于文生视频,请求包含任何媒体字段时不能开启。
视频编辑和视频延长没有独立的操作类型,通过参考视频(video_urls)加提示词表达,由模型根据素材和描述决定执行方式。
时长与分辨率
| 字段 | 可选值 | 说明 |
|---|---|---|
duration | 4–15 的整数 | 输出视频时长,单位为秒,必填 |
resolution | 480p、720p、1080p、4k | 输出分辨率,必填,四档价格不同 |
1080p 不支持图片输入:请求包含 first_frame_image、last_frame_image 或 image_urls 时不能使用 1080p。
宽高比
ratio 可省略,省略时默认 16:9;传入 adaptive 时跟随输入媒体的画幅;也可传具体比例。三种模式的规则一致。
支持的宽高比:adaptive、21:9、16:9、4:3、1:1、3:4、9:16。
音频与联网搜索
| 字段 | 默认值 | 说明 |
|---|---|---|
generate_audio | true | 是否为视频生成音频;不影响价格 |
web_search | false | 生成前联网搜索,用搜索结果补充提示词中的实时信息;仅限文生视频 |
媒体限制
| 媒体 | 类型 | 数量限制 |
|---|---|---|
| 图片 | 公网 HTTPS URL | 首尾帧各 1 张;参考图最多 9 张 |
| 视频 | 公网 HTTPS URL | 最多 3 个,总时长不超过 15 秒 |
| 音频 | 公网 HTTPS URL | 最多 3 个,总时长不超过 15 秒,不能单独使用 |
所有媒体字段只接受公网 HTTPS URL,不接受本地路径、file://、内网地址或 Base64。参考视频输入不额外计费。
完整调用示例
下面的 Python 示例展示完整的异步任务流程:创建任务、查询状态、下载视频。
python
import time
import requests
API_BASE = "https://api.clawpowerai.com"
API_KEY = "<CLAWPOWER_API_KEY>"
# 1. 创建视频生成任务
create_response = requests.post(
f"{API_BASE}/v1/video/generations",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
},
json={
"model": "seedance-2.0",
"prompt": "黄昏海边,一位少年运球奔跑,电影感镜头",
"duration": 5,
"resolution": "720p",
"ratio": "16:9",
"generate_audio": True,
},
timeout=30,
)
create_response.raise_for_status()
task_id = create_response.json()["task_id"]
print(f"任务已创建: {task_id}")
# 2. 查询任务状态,等待生成完成
while True:
query_response = requests.get(
f"{API_BASE}/v1/video/generations/{task_id}",
headers={"Authorization": f"Bearer {API_KEY}"},
timeout=30,
)
query_response.raise_for_status()
data = query_response.json()["data"]
status = data["status"]
print(f"状态: {status}, 进度: {data['progress']}")
if status == "SUCCESS":
result_url = data["result_url"]
break
elif status == "FAILURE":
raise RuntimeError(f"视频生成失败: {data['fail_reason']}")
time.sleep(8)
# 3. 下载视频(内容地址同样需要 Bearer 鉴权)
video_response = requests.get(
result_url,
headers={"Authorization": f"Bearer {API_KEY}"},
timeout=120,
)
video_response.raise_for_status()
with open("output.mp4", "wb") as f:
f.write(video_response.content)
print("视频已保存为 output.mp4")NOTE
这是异步接口。创建请求返回任务 ID 后立即结束,不等候视频生成完成。客户端应定期调用查询接口检查任务状态,建议间隔 5–10 秒。查询请求返回 HTTP 200 只表示成功读取了任务记录,必须检查 data.status 判断任务是否成功完成。详见 任务管理 > 查询视频任务。
