视频(Video)
Seedance 2.5 满血版视频 API
使用 seedance2.5满血版生成 4–30 秒、720P 视频,支持图片、视频和音频多模态参考。
seedance2.5满血版 是 88API 提供的 Seedance 2.5 视频生成模型。接口采用异步任务模式:先提交生成任务,再使用任务 ID 轮询状态,完成后从 video_url 下载 MP4。
模型能力
- ✅ 最多支持 30 张图片参考
- ✅ 最多支持 10 个视频参考
- ✅ 最多支持 10 个音频参考
- ⏱ 支持 4–30 秒视频生成
- 🎯 固定输出 720P
- 🔊 支持同步生成音频
基本信息
| 项目 | 值 |
|---|---|
| Base URL | https://88api.ai |
| 模型名称 | seedance2.5满血版 |
| 提交任务 | POST /v1/videos |
| 查询任务 | GET /v1/videos/{id} |
| 鉴权方式 | Authorization: Bearer sk-xxxx |
| Content-Type | application/json |
文生视频
curl --request POST 'https://88api.ai/v1/videos' \
--header 'Authorization: Bearer sk-xxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"model": "seedance2.5满血版",
"prompt": "一辆银色概念跑车穿过雨夜东京街头,霓虹灯倒映在湿润路面,电影级跟拍镜头",
"seconds": "10",
"ratio": "16:9",
"resolution": "720p",
"generate_audio": true
}'也可以使用 duration 整数代替 seconds 字符串:
{
"model": "seedance2.5满血版",
"prompt": "高端机械键盘产品广告,黑色影棚,蓝色轮廓光,微距运镜",
"duration": 10,
"size": "1280x720"
}多模态参考
推荐使用 content 数组组合文本、图片、视频和音频。每个参考素材必须是服务器可以直接下载的公网 HTTP(S) 地址。
curl --request POST 'https://88api.ai/v1/videos' \
--header 'Authorization: Bearer sk-xxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"model": "seedance2.5满血版",
"seconds": "12",
"ratio": "16:9",
"resolution": "720p",
"generate_audio": true,
"content": [
{
"type": "text",
"text": "保持产品外观一致,参考镜头语言和音乐节奏,制作高端科技产品宣传片"
},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/product-front.jpg"
}
},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/product-side.jpg"
}
},
{
"type": "video_url",
"video_url": {
"url": "https://example.com/camera-reference.mp4"
}
},
{
"type": "audio_url",
"audio_url": {
"url": "https://example.com/music-reference.mp3"
}
}
]
}'图片参考的简写
只有图片参考时,也可以使用 input_reference 或 images:
{
"model": "seedance2.5满血版",
"prompt": "镜头缓慢推进,主体外观与参考图保持一致,柔和电影光线",
"duration": 8,
"size": "1280x720",
"images": [
"https://example.com/reference-01.jpg",
"https://example.com/reference-02.jpg"
]
}图片也可以使用 data:image/...;base64,... 格式传入。视频和音频参考建议使用 content 数组中的 video_url 与 audio_url。
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 固定填写 seedance2.5满血版 |
prompt | string | 条件必填 | 文本提示词;使用 content 时可放在 content[].text 中 |
seconds | string | 否 | 时长字符串,范围 "4"–"30";与 duration 二选一 |
duration | integer | 否 | 时长秒数,范围 4–30;与 seconds 二选一 |
size | string | 否 | 画面尺寸,例如 1280x720、720x1280、720x720 |
ratio | string | 否 | 显式宽高比,优先级高于 size |
resolution | string | 否 | 固定为 720p;更高值不会提升实际输出分辨率 |
generate_audio | boolean | 否 | 是否同步生成音频,默认 true |
seed | integer | 否 | 随机种子;-1 表示随机 |
input_reference | string / string[] | 否 | 参考素材 URL 或图片 Data URL |
images | string / string[] | 否 | 图片参考,最多 30 张 |
content | array | 否 | 多模态内容数组,支持文本、图片、视频和音频 |
支持的比例
ratio 可使用:
auto, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16常用尺寸:
| 场景 | size | ratio |
|---|---|---|
| 横屏 | 1280x720 | 16:9 |
| 竖屏 | 720x1280 | 9:16 |
| 方形 | 720x720 | 1:1 |
content 内容类型
type | 数据字段 | 数量限制 |
|---|---|---|
text | text | 用于提示词 |
image_url | image_url.url | 最多 30 张 |
video_url | video_url.url | 最多 10 个 |
audio_url | audio_url.url | 最多 10 个 |
参考素材 URL 必须公网可达,不能依赖 Cookie、登录态或浏览器专用请求头。若素材站点阻止服务器下载,请更换可直连的对象存储地址;图片也可改用 Data URL。
提交响应
任务提交成功后会立即返回 queued 状态:
{
"id": "task_xxxxxxxxxxxxxxxxxxxxxxxx",
"task_id": "task_xxxxxxxxxxxxxxxxxxxxxxxx",
"object": "video",
"model": "seedance2.5",
"status": "queued",
"progress": 0,
"created_at": 1786424781,
"size": "16:9"
}请保存 id。响应中的 model 可能显示映射后的上游名称,不影响任务查询和计费。
查询任务
curl 'https://88api.ai/v1/videos/task_xxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Authorization: Bearer sk-xxxx'任务状态
status | 说明 |
|---|---|
queued | 已进入队列 |
in_progress | 正在生成 |
completed | 生成完成,可读取 video_url |
failed | 生成失败,检查 error.message |
完成响应示例:
{
"id": "task_xxxxxxxxxxxxxxxxxxxxxxxx",
"object": "video",
"model": "seedance2.5",
"status": "completed",
"progress": 100,
"duration": 10,
"video_url": "https://example-cdn.com/result.mp4",
"completed_at": 1786424996,
"usage": {
"seconds": 10,
"video_count": 1
}
}video_url 通常具有有效期,任务完成后应及时下载并保存。
JavaScript 完整示例
const baseUrl = "https://88api.ai";
const apiKey = process.env.API_KEY;
const submitResponse = await fetch(`${baseUrl}/v1/videos`, {
method: "POST",
headers: {
Authorization: `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "seedance2.5满血版",
prompt: "清晨海面上的未来城市,电影级航拍,云层缓慢移动",
duration: 10,
ratio: "16:9",
resolution: "720p",
generate_audio: true,
}),
});
if (!submitResponse.ok) {
throw new Error(await submitResponse.text());
}
const task = await submitResponse.json();
while (true) {
await new Promise((resolve) => setTimeout(resolve, 12000));
const response = await fetch(`${baseUrl}/v1/videos/${task.id}`, {
headers: { Authorization: `Bearer ${apiKey}` },
});
const state = await response.json();
if (state.status === "completed") {
console.log(state.video_url);
break;
}
if (state.status === "failed") {
throw new Error(state.error?.message || "视频生成失败");
}
}轮询与超时建议
- 每隔 10–15 秒查询一次,不要高频轮询。
- 客户端总超时建议设置为 20 分钟以上。
- 较长视频或高峰期排队可能需要更长时间。
- 任务仍为
queued或in_progress时不要重复提交,否则会创建并计费多个任务。 - 只有确认提交请求未到达服务器时,才重试
POST /v1/videos。
常见错误
| 错误或现象 | 原因与处理方式 |
|---|---|
401 Unauthorized | API Key 缺失、错误或已失效 |
model_not_found | 模型名不正确或令牌没有视频模型分组权限;确认使用 seedance2.5满血版 |
content moderated (nsfw) | 内容审核未通过;调整提示词或参考素材后重新提交 |
参考素材下载返回 403 | 素材 URL 无法由服务器直连;更换图床、对象存储或使用图片 Data URL |
failed | 查看响应中的 error.message 获取具体原因 |
| 长时间停留在同一进度 | 进度值由上游分阶段更新;保持 10–15 秒轮询并等待最终状态 |
提示词建议
按“主体 → 动作 → 场景 → 镜头 → 光线 → 风格 → 音效”的顺序描述,复杂广告片可直接写入带时间段的分镜:
0–2 秒:暗场中产品轮廓被蓝色边缘光揭示,低机位缓慢推进。
2–6 秒:微距镜头掠过材质细节,浅景深,灯光依次点亮。
6–9 秒:镜头平滑环绕,展示完整产品和使用场景。
9–10 秒:居中英雄镜头,干净背景,品牌尾帧。使用多张参考图时,应在提示词中说明每张图负责产品外观、场景、构图还是风格,以减少素材之间的冲突。