主题
r/seedance 视频生成(按秒计费)
星算云 r/seedance 视频网关挂载于 /api/v3,对外提供 r/seedance 系列模型(按秒计费)。请求体与响应体沿用上游原生格式(扁平对象)原样透传,平台仅做鉴权、模型校验与按秒计费;鉴权用 Authorization: Bearer xsk_...。
与 Seedance(火山兼容)、k/seedance(按秒计费)、c/seedance(按秒计费)、s/seedance(按秒计费)、z/seedance(按秒计费) 区别:本网关只接 以
r/seedance开头且按秒计费 的模型;火山系(token 计费)模型请走POST /api/v3/contents/generations/tasks,k/seedance模型请走POST /api/v3/videos/generations/tasks,c/seedance模型请走POST /api/v3/c/videos/generations/tasks,s/seedance模型请走POST /api/v3/s/videos/generations/tasks,z/seedance模型请走POST /api/v3/z/videos/generations/tasks。
基础信息
| 项目 | 内容 |
|---|---|
| Base URL | https://xingsuan.cloud(平台地址) |
| 创建任务 | POST /api/v3/r/videos/generations/tasks(成功回 202) |
| 查询任务 | GET /api/v3/r/videos/generations/tasks/{task_id} |
| Content-Type | application/json |
| 鉴权 Header | Authorization: Bearer xsk_...(平台 API Key) |
API Key 安全
只在服务端保存 API Key,不要放入浏览器、公开仓库或客户端安装包。
官方格式入口(可选)
r/seedance 按秒模型也可经 POST /api/v3/contents/generations/tasks(Seedance 官方格式)调用:创建回 202、usage 恒 null、duration 必填(整数 [4,30],不支持 -1)、content 必填。计费秒数 = 查询响应回报的 billedSeconds(与本端点同口径,含视频参考时为「参考视频总时长 + 输出时长」);duration 仅在响应未回报秒数时兜底,该兜底场景下含视频参考会低于上游结算口径。详见 Seedance(火山兼容) 的「按秒模型官方格式入口」。
模型
全部 R Seedance 模型支持文生视频、首帧驱动、首尾帧生成、图/视频/音频全能参考、同步音频开关 generate_audio、返回尾帧 return_last_frame,画幅 16:9 / 9:16 / 1:1 / 3:4 / 4:3 / 21:9。
| 模型代码 | 分辨率 | 输出时长 | 图片上限 | 视频上限 | 音频上限 |
|---|---|---|---|---|---|
r/seedance-2.5 | 480p、720p、1080p | 4–30 秒 | 30 | 10 | 10 |
r/seedance-2.0 | 480p、720p、1080p、4k | 4–15 秒 | 9 | 3 | 3 |
r/seedance-2.0-fast | 480p、720p | 4–15 秒 | 9 | 3 | 3 |
r/seedance-2.0-mini | 480p、720p | 4–15 秒 | 9 | 3 | 3 |
r/ 前缀用于固定选择 R 渠道。平台以请求体 model 为准。
duration 必须为整数,不支持 -1 智能时长。参考素材须为公网可直接访问的 HTTP(S) URL;R 渠道 无素材库,asset:// 引用不被识别;参考素材在任务创建后由上游异步拉取,不可访问或内容不合规 以 status=failed 返回(不会在创建时 400)。
多参考编号
提示词按素材在 references 中出现的顺序引用:第一张参考图为 @Image1,第一段参考视频为 @Video1(图片与视频分别从 1 计数,音频同理 @Audio1);首帧、尾帧不参与编号。顺序写错不会 报错,但会生成与描述不符的视频并正常计费。
计费
按「计费秒数 × 分辨率 × 是否含视频参考单价」计费,单位元/输出秒,以平台模型配置价格与 API Key 折扣为准,从账户钱包实时扣减。
- 无参考视频(纯文本、仅图片或音频参考):计费秒数 = 请求的
duration,用「无参考视频」 单价;图片、音频的数量与时长不额外计费。 - 含参考视频:计费秒数 = 所有参考视频时长之和(每段向上取整到整秒)+ 请求的
duration(最低按 4 秒),用「含参考视频」单价。 - 平台信上游回报的
billedSeconds结算,与上述口径一致;任务失败不收取费用。
标准价目(元/输出秒;账户有折扣时以控制台显示的实际价格为准):
| 模型 | 分辨率 | 无视频参考 | 含视频参考 |
|---|---|---|---|
r/seedance-2.0-mini | 480p | 0.230000 | 0.265000 |
r/seedance-2.0-mini | 720p | 0.500000 | 0.565000 |
r/seedance-2.0-fast | 480p | 0.370000 | 0.410000 |
r/seedance-2.0-fast | 720p | 0.800000 | 0.890000 |
r/seedance-2.0 | 480p | 0.460000 | 0.525000 |
r/seedance-2.0 | 720p | 0.990000 | 1.125000 |
r/seedance-2.0 | 1080p | 2.470000 | 2.820000 |
r/seedance-2.0 | 4k | 5.050000 | 5.830000 |
r/seedance-2.5 | 480p | 0.673000 | 0.605000 |
r/seedance-2.5 | 720p | 1.512000 | 1.361000 |
r/seedance-2.5 | 1080p | 3.742000 | 3.353000 |
示例(无折扣):r/seedance-2.0-mini、720p、参考视频 6.2 秒、生成 5 秒 → 计费秒数 = 7(6.2 向上取整)+ 5 = 12,费用 = 12 × 0.565 = 6.78 元。
含参考视频价档方向
R 渠道 2.0 系列与 K 渠道同价(含视频参考更贵);r/seedance-2.5 方向相反(含视频参考 更便宜)。上表已按官方价目列出,录入价目时以本表为准。
创建任务
POST /api/v3/r/videos/generations/tasks
bash
API_BASE=https://xingsuan.cloud
curl "$API_BASE/api/v3/r/videos/generations/tasks" \
-H "Authorization: Bearer $XSK_KEY" \
-H "content-type: application/json" \
-d '{
"model": "r/seedance-2.0-fast",
"prompt": "一只橘猫在清晨的草地上奔跑,阳光透过树叶形成光斑,电影感真实摄影",
"resolution": "720p",
"ratio": "16:9",
"duration": 5
}'python
import requests
API_BASE = "https://xingsuan.cloud"
resp = requests.post(
f"{API_BASE}/api/v3/r/videos/generations/tasks",
headers={"Authorization": f"Bearer {XSK_KEY}"},
json={
"model": "r/seedance-2.0-fast",
"prompt": "一只橘猫在清晨的草地上奔跑,阳光透过树叶形成光斑,电影感真实摄影",
"resolution": "720p",
"ratio": "16:9",
"duration": 5,
},
)
data = resp.json()
print(data["task_id"]) # 任务 ID,用于查询请求参数
| 参数 | 位置 | 必填 | 说明 |
|---|---|---|---|
Authorization | Header | 是 | Bearer xsk_... |
model | Body | 是 | R Seedance 完整模型代码 |
prompt | Body | 条件必填 | 文本提示词;prompt 与 references 至少提供一个 |
references | Body | 否 | 参考素材数组,上限见模型表,见参考素材 |
input_type | Body | 否 | reference(默认,普通生成/全能参考);首帧/首尾帧用 first_last_frame |
duration | Body | 否 | 输出时长秒;2.5 为 [4,30],2.0 系列为 [4,15];整数,不支持 -1 |
resolution | Body | 否 | 输出分辨率,须为所选模型支持的值 |
ratio | Body | 否 | 输出画幅,默认 16:9 |
generate_audio | Body | 否 | 是否生成同步音频,默认 true |
watermark | Body | 否 | 是否添加水印,默认 false |
return_last_frame | Body | 否 | 是否返回视频尾帧图,默认 false |
创建响应
创建成功返回 HTTP 202(任务已受理,异步处理),响应为扁平对象:
json
{
"task_id": "task_c4060d94f1bef4eed796bc99",
"status": "running",
"model": "r/seedance-2.0-mini",
"createdAt": "2026-09-07T07:37:57.482Z"
}保存 task_id,后续用它查询任务。202 只表示任务已受理,不代表生成成功,请持续轮询到终态,不要重复创建。
查询任务
GET /api/v3/r/videos/generations/tasks/{task_id}
bash
curl "$API_BASE/api/v3/r/videos/generations/tasks/$TASK_ID" \
-H "Authorization: Bearer $XSK_KEY"建议每隔 5–10 秒查询一次。succeeded 与 failed 为终态。
status 取值
| status | 含义 | 是否终态 |
|---|---|---|
running | 处理中 | 否 |
succeeded | 成功,videoUrl 为视频地址(请求 return_last_frame: true 时可能附 lastFrameUrl) | 是 |
failed | 失败,error.message 含原因 | 是 |
成功
json
{
"task_id": "task_c4060d94f1bef4eed796bc99",
"status": "succeeded",
"model": "r/seedance-2.0-mini",
"videoUrl": "https://example.com/generated-video.mp4",
"lastFrameUrl": null,
"billedSeconds": 4,
"usage": null,
"error": null,
"createdAt": "2026-09-07T07:37:57.482Z",
"completedAt": "2026-09-07T07:39:35.512Z"
}billedSeconds 为该任务实际计费秒数(含参考视频时已含参考视频时长),仅在成功并完成结算后返回。
失败
json
{
"task_id": "task_c4060d94f1bef4eed796bc99",
"status": "failed",
"model": "r/seedance-2.0-mini",
"videoUrl": null,
"lastFrameUrl": null,
"usage": null,
"error": {
"code": null,
"message": "Reference material @Image2 could not be prepared: url is not reachable"
},
"createdAt": "2026-09-07T07:37:57.482Z",
"completedAt": "2026-09-07T07:38:10.000Z"
}失败原因常见为参考素材 URL 无法访问、格式不支持或内容审核未通过(error.message 会用请求中的 编号指出是哪个素材,如 @Image2);以及提示词或生成结果审核未通过、上游暂无可用容量。失败 不扣费,稍后重新创建任务即可。
视频 URL 有效期
videoUrl 为临时地址,有效期 24 小时,请及时下载或转存。
参考素材
references 是对象数组,每一项字段如下:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
type | string | 是 | image、video 或 audio |
url | string | 是 | 服务端可直接访问的公网 HTTP(S) URL(平台异步拉取;时长不可读的 URL 创建时被拒) |
role | string | 普通参考否;首帧/尾帧是 | 普通参考:reference_image / reference_video / reference_audio(省略时按 type 自动识别);首帧/尾帧:first_frame / last_frame(必须显式填写) |
参考素材须为公网可直接访问的 HTTP(S) 地址;预签名 URL 有效期应覆盖任务处理全程;不支持本地 路径、内网地址、Base64 或需登录态的地址;R 渠道无素材库。
文生视频(无需 references)
json
{
"model": "r/seedance-2.0-fast",
"prompt": "一只橘猫在清晨的草地上奔跑,阳光透过树叶形成光斑,电影感真实摄影",
"resolution": "720p",
"ratio": "16:9",
"duration": 5
}首帧驱动(input_type: "first_last_frame",必须且只能含一张 first_frame,不得混入其他参考)
json
{
"model": "r/seedance-2.5",
"prompt": "人物缓慢转身看向镜头,衣摆随风摆动,镜头轻微推进",
"input_type": "first_last_frame",
"duration": 10,
"resolution": "720p",
"ratio": "16:9",
"references": [
{ "type": "image", "url": "https://example.com/first.jpg", "role": "first_frame" }
]
}首尾帧生成(必须含一张 first_frame,可选一张 last_frame;不能混入其他参考素材)
json
{
"model": "r/seedance-2.5",
"prompt": "镜头从首帧自然过渡到尾帧,动作连贯,真实摄影质感",
"input_type": "first_last_frame",
"duration": 10,
"resolution": "720p",
"ratio": "16:9",
"references": [
{ "type": "image", "url": "https://example.com/first.jpg", "role": "first_frame" },
{ "type": "image", "url": "https://example.com/last.jpg", "role": "last_frame" }
]
}全能参考(input_type: "reference",图/视频/音频混合;是否含「视频参考」决定计费单价档与 计费秒数口径)
json
{
"model": "r/seedance-2.0",
"prompt": "明亮鲜艳的广告片风格,主体是水果夹心饼干。草莓味参考 @Image1,开场构图参考 @Video1,运镜参考 @Video2,背景音乐参考 @Audio1。",
"input_type": "reference",
"duration": 15,
"resolution": "720p",
"ratio": "16:9",
"generate_audio": true,
"return_last_frame": true,
"references": [
{ "type": "image", "url": "https://example.com/strawberry.png", "role": "reference_image" },
{ "type": "video", "url": "https://example.com/open.mp4", "role": "reference_video" },
{ "type": "video", "url": "https://example.com/camera.mp4", "role": "reference_video" },
{ "type": "audio", "url": "https://example.com/bgm.mp3", "role": "reference_audio" }
]
}该请求含视频参考,按「含视频参考」价格计费,计费秒数为两段参考视频时长(各段向上取整)之和 加 duration。
错误
- 上游响应:原样透传上游扁平对象与 OpenAI 风格错误体(
400参数/余额、401鉴权、404模型/任务、429限流,按error.param/error.code/error.message排查)。常见code:missing_required_parameter、invalid_duration、unsupported_resolution、unsupported_ratio、invalid_reference_url、reference_limit_exceeded、invalid_reference_combination、invalid_reference_role、insufficient_balance。 - 平台侧错误(鉴权失败 / 模型不存在 / 非
r/seedance按秒模型 / 钱包余额不足等):统一为火山风格信封{"error":{"code":"<字符串>","message":...}}。上游超时 → 504;连接错误 → 502。详见 错误码。
路由约束
本网关只接受 以 r/seedance 开头且按秒计费 的模型;若传入其他模型会返回 400 invalid_request——k/seedance 模型请改用 POST /api/v3/videos/generations/tasks,c/seedance 模型请改用 POST /api/v3/c/videos/generations/tasks,s/seedance 模型请改用 POST /api/v3/s/videos/generations/tasks,z/seedance 模型请改用 POST /api/v3/z/videos/generations/tasks,火山系(token 计费)模型请改用 POST /api/v3/contents/generations/tasks。