主题
万相 3.0 视频生成(按秒计费)
星算云万相(Wan 3.0)视频网关挂载于 DashScope 官方路径 /api/v1,对外提供 wan3.0-video 系列模型(全能参考视频生成,按秒计费)。请求体与响应体沿用阿里云百炼(DashScope)原生格式原样透传,平台仅做鉴权、模型校验与按秒计费;鉴权用 Authorization: Bearer xsk_...。
与 Seedance(火山兼容) 等
/api/v3视频端点区别:本网关只接 provider 为阿里千问系的 VIDEO 模型(wan3.0-video/wan3.0-video-prime);火山系模型请走/api/v3系列端点。DashScope SDK 的base_http_api_url直接指向平台域名即可。
基础信息
| 项目 | 内容 |
|---|---|
| Base URL | https://xingsuan.cloud(平台地址) |
| 创建任务 | POST /api/v1/services/aigc/video-generation/video-synthesis |
| 查询任务 | GET /api/v1/tasks/{task_id}(全局任务路径) |
| Content-Type | application/json |
| 鉴权 Header | Authorization: Bearer xsk_...(平台 API Key) |
API Key 安全
只在服务端保存 API Key,不要放入浏览器、公开仓库或客户端安装包。
异步头由平台注入
创建任务所需的 X-DashScope-Async: enable 请求头由平台自动附加,调用方无需(也可以)自行传递;请求体中的其他 Header 不会透传到上游。
模型
| 模型代码 | 说明 |
|---|---|
wan3.0-video | 万相 3.0 标准档,文生视频 / 图片参考 / 视频 / 音频参考全能输入 |
wan3.0-video-prime | 万相 3.0 高质量档,同参数更高画质 |
模型代码即 DashScope 官方模型名;价格与可用档位以平台「模型市场」展示为准。
计费
按「实际生成视频时长(秒)× 分辨率·输入类型单价」计费,以平台模型配置价格与 API Key 折扣为准,从账户钱包实时扣减。任务失败不收取费用。
- 计费秒数:以任务成功后响应
usage.duration为准(向上取整到整秒);duration: -1智能时长同样按回报秒数计费。 - 分辨率档位:以响应
usage.SR(480/720/1080)映射档位计费;未回报时按请求resolution(缺省1080P)。 - 输入类型:仅当
input.media含reference_video(视频编辑/视频延长/参考视频)时用「含参考视频」价;首尾帧与图片/音频/文件参考均按「无参考视频」价。 - 生成同步音频(
audio: true)不额外计费,与静默视频同价。
具体单价见平台「模型市场」对应模型的价格表。
创建任务
POST /api/v1/services/aigc/video-generation/video-synthesis
bash
API_BASE=https://xingsuan.cloud
curl "$API_BASE/api/v1/services/aigc/video-generation/video-synthesis" \
-H "Authorization: Bearer $XSK_KEY" \
-H "content-type: application/json" \
-d '{
"model": "wan3.0-video",
"input": {
"prompt": "一只橘猫在清晨的草地上奔跑,阳光透过树叶形成光斑,电影感真实摄影"
},
"parameters": {
"resolution": "1080P",
"ratio": "16:9",
"duration": 5,
"audio": true,
"watermark": false
}
}'python
import requests
API_BASE = "https://xingsuan.cloud"
resp = requests.post(
f"{API_BASE}/api/v1/services/aigc/video-generation/video-synthesis",
headers={"Authorization": f"Bearer {XSK_KEY}"},
json={
"model": "wan3.0-video",
"input": {"prompt": "一只橘猫在清晨的草地上奔跑,阳光透过树叶形成光斑,电影感真实摄影"},
"parameters": {
"resolution": "1080P",
"ratio": "16:9",
"duration": 5,
"audio": True,
"watermark": False,
},
},
)
data = resp.json()
print(data["output"]["task_id"]) # 任务 ID,用于查询请求参数
| 参数 | 位置 | 必填 | 说明 |
|---|---|---|---|
Authorization | Header | 是 | Bearer xsk_... |
model | Body | 是 | wan3.0-video / wan3.0-video-prime |
input.prompt | Body | 条件 | 文本提示词;input.media 为空时必填 |
input.media | Body | 条件 | 素材数组,见下方类型矩阵;与 prompt 至少提供一项 |
parameters.resolution | Body | 否 | 1080P / 720P / 480P,默认 1080P |
parameters.ratio | Body | 否 | adaptive / 16:9 / 4:3 / 1:1 / 3:4 / 9:16,默认 adaptive |
parameters.duration | Body | 否 | 生成时长秒;无参考视频时 [2,30],默认 5;-1 为智能时长(由输入素材决定) |
parameters.audio | Body | 否 | 是否生成同步音频,默认以模型配置为准;同价 |
parameters.seed | Body | 否 | 随机种子 |
parameters.prompt_extend | Body | 否 | 是否启用提示词改写 |
parameters.watermark | Body | 否 | 是否加水印 |
media 类型矩阵
input.media 每项为 {type, url},URL 须为公网可直接访问的 HTTP(S) 地址:
| type | 数量上限 | 说明 |
|---|---|---|
first_frame | 1 | 首帧(图) |
last_frame | 1 | 尾帧(图) |
reference_image | 10 | 图片参考 |
reference_video | 5 | 视频参考(触发「含参考视频」价) |
reference_audio | 5 | 音频参考 |
file | 1 | 文件参考(如 ppt/pdf) |
link | 1 | 网页链接参考 |
互斥约束:first_frame/last_frame(首尾帧)与 reference_*/file/link(参考组)不能混用;file 与 link 互斥。
创建响应
创建成功(HTTP 200)返回 DashScope 原生信封 {output, usage, request_id}:
json
{
"output": {
"task_status": "PENDING",
"task_id": "5b47f8ed-3e8c-4d47-8b61-47c95b1e35cb"
},
"usage": null,
"request_id": "69c77c85-e96e-4e01-9afd-26b63564a76e"
}保存 output.task_id,后续用它查询任务。
查询任务
GET /api/v1/tasks/{task_id}
bash
curl "$API_BASE/api/v1/tasks/$TASK_ID" \
-H "Authorization: Bearer $XSK_KEY"响应为 DashScope 原生信封,output.task_status 表示任务状态。建议每 5~10 秒轮询一次。
task_status 取值
| task_status | 含义 | 是否终态 |
|---|---|---|
PENDING | 排队中 | 否 |
RUNNING | 处理中 | 否 |
SUCCEEDED | 成功,output.video_url 为视频地址 | 是 |
FAILED | 失败,output.code/output.message 含原因 | 是 |
CANCELED | 已取消 | 是 |
UNKNOWN | 任务不存在或查询已过期(见下方 24h 时效) | 是 |
成功
json
{
"request_id": "xxx",
"output": {
"task_id": "5b47f8ed-3e8c-4d47-8b61-47c95b1e35cb",
"task_status": "SUCCEEDED",
"submit_time": "2026-08-29 10:00:00.123",
"end_time": "2026-08-29 10:04:30.456",
"video_url": "https://xxx/xxx.mp4",
"orig_prompt": "一只橘猫在清晨的草地上奔跑"
},
"usage": {
"video_count": 1,
"duration": 5.0,
"input_video_duration": 0.0,
"output_video_duration": 5.0,
"fps": 30,
"SR": 1080,
"ratio": "16:9"
}
}24 小时时效
task_id创建后 24 小时内可查询,过期后查询返回UNKNOWN;video_url有效期约 24 小时,请在任务成功后及时转存。
参考素材示例
首尾帧
json
{
"model": "wan3.0-video",
"input": {
"prompt": "镜头从首帧自然过渡到尾帧,动作连贯,真实摄影质感",
"media": [
{"type": "first_frame", "url": "https://example.com/first.jpg"},
{"type": "last_frame", "url": "https://example.com/last.jpg"}
]
},
"parameters": {"resolution": "720P", "duration": 5}
}视频 + 音频参考(含 reference_video,按「含参考视频」价计费)
json
{
"model": "wan3.0-video",
"input": {
"prompt": "参考视频中的动作节奏,为画面重新配乐并延长镜头",
"media": [
{"type": "reference_video", "url": "https://example.com/motion.mp4"},
{"type": "reference_audio", "url": "https://example.com/music.wav"}
]
},
"parameters": {"resolution": "1080P", "duration": -1}
}参考素材须为公网可直接访问的 HTTP(S) 地址;不支持本地路径或需登录访问的地址。
错误
- 上游成功/失败响应:原样透传 DashScope 信封
{output, usage, request_id}。 - 平台侧错误(鉴权失败 / 模型不存在 / 无权限 / 额度超限 / 钱包余额不足等):统一为 DashScope 风格错误体
{"code":"<string>","message":...,"request_id":...},如InvalidApiKey、ModelNotFound、TaskNotFound、Throttling.Quota、Arrearage。上游 4xx/5xx 错误体原样透传(保留上游request_id);上游超时 → 504InternalError.TimeOut;连接错误 → 502InternalError。详见 错误码。
路由约束
本网关只接受 provider 为阿里千问系的 VIDEO 模型;传入火山系模型会返回 400,请改用对应 /api/v3 端点。任务查询按任务归属路由:火山端点创建的任务在本端点查询返回 404 TaskNotFound(反之亦然)。