视频生成
primerouter 提供 Seedance 视频生成:文生视频、首尾帧生视频、参考图 / 参考视频 / 参考音频生视频。任务是异步的:先提交拿到任务 ID,再查询进度,完成后拿到视频下载链接。
需要「Seedance」分组的 Key
视频模型只在 Seedance 分组里。请在控制台新建(或编辑)一个 API Key,分组选「Seedance」,再用它调用下面的接口。
| 端点 | 用途 |
|---|---|
POST /v1/video/generations | 提交任务 |
POST /v1/videos | 提交任务(同上,OpenAI 视频格式的路径) |
GET /v1/video/generations/{task_id} | 查询任务(通用格式) |
GET /v1/videos/{task_id} | 查询任务(OpenAI 视频格式) |
两个提交端点完全等价,请求体都是 JSON。
模型
| 模型 | 时长 | 分辨率 |
|---|---|---|
seedance-2.0 | 4–15 秒 | 480P 720P 1080P 2K 4K |
seedance-2.5 | 4–30 秒 | 480P 720P 1080P 2K 4K |
文生视频
curl https://primerouter.ai/v1/video/generations \
-H "Authorization: Bearer $PRIMEROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0",
"prompt": "清晨的湖面上,一只红色纸船缓缓漂过,镜头慢慢推近",
"duration": 5,
"metadata": { "resolution": "1080P", "ratio": "16:9" }
}'返回:
{
"id": "task_xxxxxxxx",
"task_id": "task_xxxxxxxx",
"object": "video",
"model": "seedance-2.0",
"status": "queued",
"progress": 0,
"created_at": 1761484800
}记下 id,用它查询。
首尾帧生视频
images 的第 1 张是首帧,第 2 张是尾帧(只给 1 张就只有首帧;也可以用 image 传单张):
curl https://primerouter.ai/v1/video/generations \
-H "Authorization: Bearer $PRIMEROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5",
"prompt": "镜头从花苞缓慢过渡到盛开的花",
"images": ["https://example.com/first.png", "https://example.com/last.png"],
"duration": 8,
"metadata": { "resolution": "720P" }
}'参考图 / 参考视频 / 参考音频
参考素材放在 metadata.content 数组里,每个元素写清类型和用途(role):
curl https://primerouter.ai/v1/video/generations \
-H "Authorization: Bearer $PRIMEROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0",
"prompt": "参考视频的运镜,让图片里的人物走进画面",
"duration": 6,
"metadata": {
"resolution": "720P",
"content": [
{ "type": "image_url", "image_url": { "url": "https://example.com/character.png" }, "role": "reference_image" },
{ "type": "video_url", "video_url": { "url": "https://example.com/camera-move.mp4" }, "role": "reference_video" }
]
}
}'type只能是image_url、video_url、audio_url(text元素会被忽略,文字请写在prompt)role用reference_image、reference_video、reference_audio- 参考音频不能单独用,需要同时给参考图或参考视频,否则任务会失败
- 参考视频总时长最多 15 秒
查询任务
curl https://primerouter.ai/v1/videos/task_xxxxxxxx \
-H "Authorization: Bearer $PRIMEROUTER_API_KEY"status 依次为 queued → in_progress → completed 或 failed。刚提交、还没同步到进度时,status 可能是 unknown,请当作进行中、继续查询。完成后视频链接在 metadata.url:
{
"id": "task_xxxxxxxx",
"object": "video",
"model": "seedance-2.0",
"status": "completed",
"progress": 100,
"metadata": { "url": "https://...mp4?..." }
}失败时 error.message 是失败原因。
用通用格式 GET /v1/video/generations/{task_id} 查询时,状态在 data.status(QUEUED / IN_PROGRESS / SUCCESS / FAILURE;刚提交时可能是 NOT_START,同样当作进行中),视频链接在 data.result_url,失败原因在 data.fail_reason。
一般 2–5 分钟完成,建议每 15–30 秒查一次。
请在 12 小时内下载
下载链接是临时的,请在 12 小时内下载保存,过期后无法再获取。
请求参数
| 字段 | 说明 |
|---|---|
model | seedance-2.0 或 seedance-2.5,必填 |
prompt | 提示词,必填 |
duration | 时长(秒,整数)。不传默认 5 秒;传 -1 由模型自己决定时长 |
seconds | 时长的另一种写法(字符串,如 "8");duration 优先 |
image / images | 首帧 / 尾帧图片 URL,最多 2 张 |
metadata.resolution | 480P 720P 1080P 2K 4K,必须大写;不传默认 720P |
metadata.ratio | 21:9 16:9 4:3 1:1 3:4 9:16 adaptive |
metadata.duration | 时长的第三种写法(整数);顶层 duration、seconds 都没传时才用 |
metadata.content | 参考图 / 参考视频 / 参考音频,见上文 |
metadata.options | 只接受 return_last_frame(目前结果里不会返回尾帧图片,传了不影响生成) |
几点说明:
- 分辨率和时长只认上面的参数,写在提示词里(如
--rs 1080p --dur 10)无效 - 素材 URL 必须是公网可访问的
http/https链接。链接打不开时任务会失败(不收费) - 含真实人脸的图片可能被拒绝,任务失败(不收费)
metadata里上表以外的字段(如seed、watermark)不会生效- 不支持表单上传(
multipart/form-data)和input_reference,请把素材放到可访问的链接里再传 URL
报错
以下错误在提交时直接返回 HTTP 400,不扣费:
| 错误信息 | 原因 |
|---|---|
only JSON requests with media URLs are supported | 用了表单上传,或传了 input_reference |
images accepts at most 2 entries (first and last frame); put reference images in metadata.content | images 超过 2 张;参考图请放进 metadata.content |
metadata.options only supports return_last_frame | metadata.options 里有其他字段 |
metadata.content items must be image_url, video_url, audio_url or text | metadata.content 里有不支持的类型 |
media URLs must use http or https | 素材链接不是 http / https |
model <模型名> is not available for video generation | 该模型暂不能用于视频生成,请换用上表的模型或联系管理员 |
model <模型名> has no price configured, please contact the administrator | 模型还没有定价,请联系管理员 |
分辨率、比例、时长不在支持范围内(如 1080p 小写、seedance-2.0 传 20 秒)时,同样在提交时返回 400,不扣费。
计费
- 按秒计费:价格由模型、输出分辨率决定,乘以视频秒数
- 带参考视频时,参考视频的秒数也计费(按同一分辨率的「带参考视频」单价,输入、输出分别计)
- 生成失败不收费
- 提交时按这次请求最多可能花费的金额预扣(例如时长传
-1按该模型的最长时长预扣),生成完成后按实际用量多退少补 - 各分辨率每秒单价见 定价页 的「Seedance」标签页,已含分组倍率
