SD 2.0 按次 API 接入文档
模型 ID seedance-2.0-anci · 字节跳动 · 走 本站媒体协议(异步任务),可用率 96.1%,1 条线路自动切换。
字节跳动 SD 2.0 按次(参考生模式):上传 0~9 张参考图,模型融合人物、场景与构图生成新视频;一口价按条扣费,与时长无关;快速 / 标准两档速度版本,720p 高清,4~15 秒时长,五种画幅,自动生成有声视频。生成失败自动退款。
协议与端点endpoint
https://api.lk888.ai/v1/media/generatehttps://api.lk888.ai/v1/media/status?task_id={task_id}媒体生成是异步任务:提交后立即返回 task_id,再用它轮询状态,is_final = true 才能拿到结果。
推荐客户端:任意 HTTP 客户端(提交任务 → 轮询),不需要任何官方 SDK。
鉴权auth
Authorization: Bearer sk-xxxxxxxx本站同时兼容 Authorization: Bearer、x-api-key、x-goog-api-key、?key= 四种方式,按你的 SDK 习惯填即可;同时带多个头时以 Bearer 为准。
密钥可在控制台设置 IP 白名单(单个 IP 或 CIDR 网段)。名单外的来源调用会返回 403、error.code = ip_not_allowed,报错里带平台看到的来源 IP,不扣费;把该 IP 加进白名单或清空白名单即可。
请求示例example
请求体固定为三个字段:model · prompt · params;notify_url 是同级的顶层可选字段。
curl -X POST 'https://api.lk888.ai/v1/media/generate' \
-H 'Authorization: Bearer $LK_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "seedance-2.0-anci",
"prompt": "参考图中的角色在海边漫步,阳光明媚,镜头跟随",
"params": {}
}'import os, time, requests
H = {"Authorization": "Bearer " + os.environ["LK_API_KEY"]}
# 1) 提交任务
task = requests.post("https://api.lk888.ai/v1/media/generate", headers=H, json={
"model": "seedance-2.0-anci", "prompt": "参考图中的角色在海边漫步", "params": {},
}, timeout=60).json()
task_id = task["task_id"]
# 2) 轮询到终态
while True:
s = requests.get("https://api.lk888.ai/v1/media/status?task_id=%s" % task_id, headers=H).json()
if s.get("is_final"):
print(s.get("state"), s.get("result_url"), s.get("cost"))
break
time.sleep(6)const H = { Authorization: `Bearer ${process.env.LK_API_KEY}`, "Content-Type": "application/json" };
// 1) 提交任务
const task = await (await fetch("https://api.lk888.ai/v1/media/generate", {
method: "POST", headers: H,
body: JSON.stringify({ model: "seedance-2.0-anci", prompt: "参考图中的角色在海边漫步", params: {} }),
})).json();
// 2) 轮询到终态
while (true) {
const s = await (await fetch(`https://api.lk888.ai/v1/media/status?task_id=${task.task_id}`, { headers: H })).json();
if (s.is_final) { console.log(s.state, s.result_url, s.cost); break; }
await new Promise(r => setTimeout(r, 6000));
}curl 'https://api.lk888.ai/v1/media/status?task_id=123456' \ -H 'Authorization: Bearer $LK_API_KEY'
params 里放该模型支持的生成参数(时长、画幅、清晰度、参考图等),不同模型的可选项不同;不传则用默认值。
参数结构与回调params
params 里的可选项因模型而异。下面是三个固定字段与一个通用回调字段。
| 字段 | 类型 | 说明 |
|---|---|---|
model | 字符串 | 模型 ID,本页即 seedance-2.0-anci |
prompt | 字符串 | 描述词,必填 |
params | 对象 | 该模型支持的生成参数;参考图、时长、画幅、清晰度都在这里 |
notify_url | 字符串 | 可选,顶层字段(不要放进 params)。任务到终态时平台 POST 结果到该地址;失败按 立即 / 10 秒 / 30 秒 / 1 分钟 重试 4 次,仍未 2xx 则放弃,不影响任务本身 |
回调为尽力而为,建议同时保留 task_id 轮询作为兜底。
查本次花费billing
想知道这一次调用实际花了多少:响应头 X-Task-Id 是本平台任务号,流式与非流式都带。拿它调下面的接口,is_final = true 时的 cost 就是本次实际结算金额。
https://api.lk888.ai/v1/skills/task-status?task_id={task_id}返回里同时带 input_tokens / output_tokens。响应体里的 id 由上游生成,不能用来查询。平台是先把响应交付给你、随后立即结算,收到响应马上查若 is_final 仍是 false,隔 1~2 秒重查即可。
官方 SDK 读响应头:Python 用 .with_raw_response,JS 用 .withResponse()。
第三方工具接入clients
Cursor、Cline / Roo Code、Cherry Studio、LobeChat、NextChat、OpenWebUI、Continue 等支持自定义端点的客户端,都按下面四项填。
| 填什么 | 值 |
|---|---|
| Base URL | https://api.lk888.ai |
| API Key | sk- 开头,在控制台创建(可设 IP 白名单) |
| 模型 ID | seedance-2.0-anci |
| 协议 | 本站媒体协议(异步任务) |
媒体类是异步任务,工具里通常只支持对话,不建议直接接;在自己的服务端按上一节提交并轮询即可。
常见错误errors
| 状态码 | error.code | 怎么处理 |
|---|---|---|
401 | invalid_api_key | Key 不存在或已删除,回控制台重新创建 |
402 | insufficient_balance | 余额不足,主站充值后即时生效(余额与主站共用) |
403 | ip_not_allowed | 来源 IP 不在白名单,报错里带平台看到的 IP,不扣费 |
404 | model_not_found | 模型 ID 写错,或该模型已下线;用本页顶部的 ID 精确复制 |
429 | rate_limited | 并发或频率超限,退避重试;也可换用同系列其它线路 |
5xx | upstream_error | 上游渠道异常,平台会自动切换同模型的其它线路,重试即可 |
一个 Key 可同时用于多台服务器。建议按环境各建一把并配 IP 白名单,便于审计与随时停用;余额与主站共用,每一笔调用都能在控制台按条查到。
批量采购、对公结算、商务合作请走主站联系入口。
联系商务合作 →