SalpX · 视频生成接口

Seedance 2.5 补贴版 API

单模型接入文档。固定 30 秒、按次计费、支持参考图。提交、轮询、取片、计费、报错,照抄即可跑通。

✓ 2026-09-19 线上核对 价格、分组、端点与成片规格均取自线上实况

01快速开始

异步任务:提交拿 task_id,轮询到 completed 后取成片。

端点别用错。本模型走 POST /v1/videos不能用 /v1/chat/completions —— 用对话接口调会直接 404,换任何模型名都无解。

模型名
seedance-2-5-补贴版(含中文后缀,注意 UTF-8)
Base URL
https://www.salpx.com/v1
鉴权
Authorization: Bearer <SalpX Token>
提交任务
POST /v1/videos
查询状态
GET /v1/videos/{task_id}
代理取片
GET /v1/videos/{task_id}/content
令牌分组
default大额优惠内部使用,其它分组报 No available channel
出片耗时
通常 5 – 15 分钟;超过 45 分钟自动置失败并全额退款。客户端超时请设 ≥ 600 秒

02模型与价格

模型名计费时长价格单条花费
seedance-2-5-补贴版 按次 固定 30 秒 ¥6.00 / 次 ¥6.00

按次计费,不是按秒。价格就是整条片的价格,和你传什么时长无关。

时长固定 30 秒,不需要传 seconds / duration传了也不会改变成片长度和价格。返回体里的 seconds 恒为 "30"

成片规格:实测样片为 720×1280(720P 竖版)、video/mp4。本模型没有分辨率 / 画幅参数,不接受 resolutionsizeaspect_ratio

03提交任务

3.1 文生视频

最小请求只要 modelprompt 两个字段。

curl
curl -X POST https://www.salpx.com/v1/videos \
  -H "Authorization: Bearer $SALPX_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-5-补贴版",
    "prompt": "金色麦田上空掠过一群飞鸟,逆光,慢镜头,电影感"
  }'

返回:

200 response
{
  "task_id": "selfd:2993f67f-4eaa-461d-a146-2e1aa98b08e5",
  "object": "video",
  "model": "seedance-2-5-补贴版",
  "status": "queued",
  "progress": 0,
  "seconds": "30"
}

中文模型名必须以 UTF-8 发送。用 shell 变量拼 JSON 时很容易被转义破坏。稳妥写法是把请求体写进文件,再用 --data-binary @req.json 提交(见第 08 节)。

3.2 请求字段

字段类型必填说明
modelstring固定 seedance-2-5-补贴版
promptstring提示词,不可为空白
input_referencestring / string[]参考图,≤ 6 张、合计 ≤ 10 MB。支持 multipart 文件、base64、data:image/png;base64, 前缀,或图片 URL。不传即纯文生视频
images / imagestring / string[]input_reference 的等价别名,写法与限制完全相同
seconds / duration不需要本模型固定 30 秒,传了不生效也不影响计费

04参考图

最多 6 张,重复图自动去重,超出报 400。

优先直接传图片内容(multipart 文件或 base64)。传 URL 也支持,但我方需要先把图下载下来再转给渲染端 —— 你的图床只要对第三方不可读,这一单就会在提交阶段被拒。

4.1 multipart 直传文件(推荐)

curl
curl -X POST https://www.salpx.com/v1/videos \
  -H "Authorization: Bearer $SALPX_KEY" \
  -F "model=seedance-2-5-补贴版" \
  -F "prompt=镜头缓缓推近,光影流动" \
  -F "input_reference=@ref.png"

4.2 JSON 传 base64(推荐)

curl
IMG=$(base64 -w0 ref.png)   # macOS 用 base64 -i ref.png
cat > req.json <<EOF
{
  "model": "seedance-2-5-补贴版",
  "prompt": "镜头缓缓推近,光影流动",
  "input_reference": "data:image/png;base64,$IMG"
}
EOF
curl -X POST https://www.salpx.com/v1/videos \
  -H "Authorization: Bearer $SALPX_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @req.json

4.3 JSON 传图片 URL

curl
curl -X POST https://www.salpx.com/v1/videos \
  -H "Authorization: Bearer $SALPX_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-5-补贴版",
    "prompt": "镜头缓缓推近,光影流动",
    "input_reference": ["https://your-cdn.com/a.jpg", "https://your-cdn.com/b.jpg"]
  }'

传 URL 的硬要求:地址必须能被任意第三方直接 GET 下载。对象存储的预签名地址(带 X-Amz-Signature 那种)、需要登录 / Referer / IP 白名单才能访问的地址,我方一律拉不到,提交会直接返回 400 reference_image_unreachable,并把你的图床原样返回的报错一并带出来(例如 SignatureDoesNotMatch)方便定位。

这类失败发生在扣费之前,不产生任何费用,任务也不会建。拿不准就别传 URL,用 4.1 或 4.2 的写法。

不支持首尾帧。本模型只吃参考图,first_frame / last_frame 那套写法不生效 —— 传了不报错,但成片不会按首尾帧生成。

05轮询与取片

提交后每 30 – 60 秒查一次即可,出片通常在 5 – 15 分钟。状态流转:queuedin_progresscompletedfailed

curl · 查询状态
curl https://www.salpx.com/v1/videos/selfd:2993f67f-4eaa-461d-a146-2e1aa98b08e5 \
  -H "Authorization: Bearer $SALPX_KEY"

完成后的返回:

200 response · completed
{
  "id": "selfd:2993f67f-4eaa-461d-a146-2e1aa98b08e5",
  "status": "completed",
  "progress": 100,
  "seconds": "30",
  "url": "https://video.example.com/20260921/selfd_xxxx.mp4",
  "video_url": "https://video.example.com/20260921/selfd_xxxx.mp4",
  "result": { "data": [ { "url": "https://..." } ] }
}

取片的两种方式

方式说明
直链下载url 字段是公网绝对地址,直接 GET 即可,不需要带任何鉴权头
代理取片GET /v1/videos/{task_id}/content,需带 Authorization,走 SalpX 中转,返回同一个文件
curl · 代理取片
curl -L -o out.mp4 \
  https://www.salpx.com/v1/videos/selfd:2993f67f-4eaa-461d-a146-2e1aa98b08e5/content \
  -H "Authorization: Bearer $SALPX_KEY"

两种方式返回的都是 video/mp4,字节数完全一致。下载慢时把客户端超时调到 ≥ 600 秒

06计费与退款

提交成功即冻结 ¥6.00,任务失败或超时自动全额退回(账单里是一条退款流水)。

计费公式账单显示实际扣费
¥6.00 × 1 次按次计费¥6.00

失败自动退款。上游 5xx、45 分钟超时、或任务进入 failed → SalpX 自动退还该次冻结额度,不产生实际扣费。

参考图不另收费。传 0 张和传 6 张同价。

07错误处理

HTTP典型信息原因处理
404bad response status code 404用了 /v1/chat/completions改用 POST /v1/videos
400reference_image_unreachable参考图我方拉不到(预签名 / 私有 / 需鉴权的地址)改用 multipart 或 base64 直传;报错里带图床原文
400reference_image_too_large参考图合计超过 10 MB压缩后再传
400too_many_reference_images参考图超过 6 张减到 6 张以内
400生成内容未通过安全审核提示词或参考图触发内容风控调整提示词后重试,本次不扣费
403token quota is not enough令牌余额不足以冻结账户余额需 ≥ ¥6
429capacity_exhausted渲染队列已满退避几分钟后重试
503No available channel模型名拼错,或令牌分组不对核对模型名;分组须为 default / 大额优惠 / 内部使用

三个 reference_image_* / too_many_reference_images 错误都发生在扣费之前:不冻结额度、不建任务、不产生账单,直接改请求重发即可。

08完整示例

提交 → 轮询 → 下载,一段可直接运行的 Python。

python
# pip install requests
import time, requests

BASE = "https://www.salpx.com/v1"
KEY  = "sk-你的令牌"
H    = {"Authorization": f"Bearer {KEY}"}

# 1. 提交(不需要传时长,固定 30 秒)
r = requests.post(f"{BASE}/videos", headers=H, json={
    "model":  "seedance-2-5-补贴版",
    "prompt": "金色麦田上空掠过一群飞鸟,逆光,慢镜头,电影感",
}, timeout=60)
r.raise_for_status()
task_id = r.json()["task_id"]
print("已提交:", task_id)

# 2. 轮询,最多等 45 分钟
deadline = time.time() + 45 * 60
url = None
while time.time() < deadline:
    time.sleep(30)
    s = requests.get(f"{BASE}/videos/{task_id}", headers=H, timeout=60).json()
    print(s.get("status"), s.get("progress"))
    if s.get("status") == "completed":
        url = s.get("url") or s.get("video_url")
        break
    if s.get("status") == "failed":
        raise SystemExit("生成失败,已自动退款: " + str(s))

# 3. 下载(直链无需鉴权)
if url:
    with requests.get(url, stream=True, timeout=600) as v:
        v.raise_for_status()
        with open("out.mp4", "wb") as f:
            for chunk in v.iter_content(1 << 20):
                f.write(chunk)
    print("已保存 out.mp4")

Python 的 requestsjson= 参数会自动按 UTF-8 编码,中文模型名不会出问题。用 shell 拼字符串时才需要按 3.1 的提示走文件。