视频生成概览
可灵 4.0 · 万相 3.0 · Seedance · MiniMax H3 · Grok Imagine。异步提交轮询取片,各系列的计费口径并不一致
视频生成是异步的:提交拿到 task_id,轮询到 completed,再取片。
一次生成通常 3 到 8 分钟,长时长更久。
POST /v1/videos 提交任务
GET /v1/videos/{task_id} 查询状态
GET /v1/videos/{task_id}/content 下载成片三个接口共用同一把 key,都带 Authorization: Bearer <API_KEY>。
因为是异步的,这里不受 120 秒超时的约束——提交请求本身很快返回,长耗时发生在 轮询之间。这是视频与文本、图像端点最大的不同。
基本调用
提交、轮询、取片三步。官方 SDK 未覆盖这组接口,直接发 HTTP 即可。
# 1. 提交
curl -X POST "https://www.vibeapi.cn/v1/videos" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-4.0-720p",
"prompt": "一只猫在窗台上打盹,阳光缓缓移动",
"duration": 5,
"aspect_ratio": "16:9"
}'
# 2. 轮询(每 10~15 秒一次)
curl "https://www.vibeapi.cn/v1/videos/$TASK_ID" -H "Authorization: Bearer $API_KEY"
# 3. 取片
curl -L "https://www.vibeapi.cn/v1/videos/$TASK_ID/content" \
-H "Authorization: Bearer $API_KEY" -o output.mp4import time, requests
BASE = "https://www.vibeapi.cn/v1"
H = {"Authorization": "Bearer YOUR_API_KEY"}
task = requests.post(f"{BASE}/videos", headers=H, json={
"model": "kling-4.0-720p",
"prompt": "一只猫在窗台上打盹,阳光缓缓移动",
"duration": 5, # 可灵传整数;wan3.0 用字符串 seconds
"aspect_ratio": "16:9",
}).json()
task_id = task["id"]
while True:
s = requests.get(f"{BASE}/videos/{task_id}", headers=H).json()
if s["status"] in ("completed", "failed"):
break
time.sleep(12) # 每 10~15 秒一次,超时按 15 分钟设
if s["status"] == "completed":
# metadata.url 多数模型指向 /content,H3 则是对象存储直链
url = s.get("metadata", {}).get("url") or f"{BASE}/videos/{task_id}/content"
mp4 = requests.get(url, headers=H).content
open("output.mp4", "wb").write(mp4)import fs from "fs";
const BASE = "https://www.vibeapi.cn/v1";
const H = { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" };
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
const task = await (await fetch(`${BASE}/videos`, {
method: "POST",
headers: H,
body: JSON.stringify({
model: "kling-4.0-720p",
prompt: "一只猫在窗台上打盹,阳光缓缓移动",
duration: 5, // 可灵传整数;wan3.0 用字符串 seconds
aspect_ratio: "16:9",
}),
})).json();
let s;
while (true) {
s = await (await fetch(`${BASE}/videos/${task.id}`, { headers: H })).json();
if (s.status === "completed" || s.status === "failed") break;
await sleep(12_000); // 每 10~15 秒一次,超时按 15 分钟设
}
if (s.status === "completed") {
// metadata.url 多数模型指向 /content,H3 则是对象存储直链
const url = s.metadata?.url ?? `${BASE}/videos/${task.id}/content`;
const mp4 = Buffer.from(await (await fetch(url, { headers: H })).arrayBuffer());
fs.writeFileSync("output.mp4", mp4);
}所有参数行为、分辨率与计费口径均来自真实调用,最后验证:2026-09-05。怎么调得好看,见视频生成工作流。
本页结论来自对本网关的真实调用,最后验证:2026-09-21。
| 页面 | 内容 |
|---|---|
| 可灵 4.0 | 文生 / 图生视频,720p / 1080p 写在模型名里,3–30 秒,参考图与参考音频 |
| 万相 3.0 | 文生 / 图生视频,分辨率在模型名里,首尾帧;暂停供应 |
| Seedance | 字节官方四个型号,最长 30 秒、到 1080p,参考图 / 视频 / 音频与首尾帧都收;按 token 计费 |
| MiniMax H3 | 首尾帧或图 / 视频 / 音频三类参考素材,图片可传 base64,768P |
| Grok 视频 | 按秒计费,走 Grok 自己的端点 |
| 视频生成工作流 | 先出 4K 参考图再喂视频模型、无缝循环 |
三个接口
视频生成是异步的:提交拿到 task_id,轮询到 completed,再取片。
一次生成通常 3 到 8 分钟,长时长更久。三个接口共用同一把 key。
POST https://www.vibeapi.cn/v1/videos 提交任务
GET https://www.vibeapi.cn/v1/videos/{task_id} 查询状态
GET https://www.vibeapi.cn/v1/videos/{task_id}/content 下载成片/content 对所有模型都可用,需带同一个 Authorization 头。
查询响应里的 metadata.url 就是上面那个 /content 地址,写代码时取 metadata.url 即可。
模型与计费
同一个 /v1/videos 接口下,各系列的收费方式并不一致。
| 可灵 4.0 | wan3.0 系列 | MiniMax H3 | Seedance 系列 | |
|---|---|---|---|---|
| 计费口径 | 按秒 — 单价 × 时长 | 按秒 — 单价 × 时长 | 按秒 — 单价 × 时长 | 按 token — 时长 × 分辨率,与字节官方刊例同价 |
| 时长参数 | duration,整数 | seconds,字符串 | seconds 或 duration | duration,数字,不传按 5 秒 |
| 分辨率 | 写在模型名里,两档 | 写在模型名里,三档 | 固定 768P | resolution:720p(默认)/ 1080p |
| 时长范围 | 3–30 秒 | 推荐 5–15 秒 | 1–15 秒整数 | 2.5 为 4–30 秒,2.0 系列 4–15 秒 |
| 画面比例 | aspect_ratio,各种比例 | aspect_ratio,四档含 adaptive | 六档固定,另有条件可用的 adaptive | aspect_ratio,六档固定 + adaptive |
各系列都是每多一秒都在计费;Seedance 还按分辨率分档,1080p 约是 720p 的 2.5 倍。
全部模型
| 模型 | 能力 | 输出 | 计费 |
|---|---|---|---|
kling-4.0-{720p,1080p} | 文生 / 图生,3–30 秒,参考图 10 · 参考音频 3,暂不收参考视频 | 720p / 1080p | 按秒 |
wan3.0-video-{480p,720p,1080p} | 文生 / 图生,暂不收参考视频;暂停供应 | 832×480 / 1280×720 / 1920×1080 | 按秒 |
wan3.0-video-prime-* | 同上,高速版 | 同上 | 按秒,单价高约 20% |
wan3.0-image-* | 图生视频专用,不收参考视频 | 同上三档 | 仅按输出时长 |
wan3.0-image-prime-* | 同上,高速版 | 同上三档 | 仅按输出时长 |
doubao-seedance-2-5-260628 | 文生 / 图生 / 首尾帧,4–30 秒,参考图 30 · 参考视频 10 · 参考音频 10,实测 5 秒约 9 分钟 | 720p / 1080p | 按 token |
doubao-seedance-2-0-260128 | 文生 / 图生 / 首尾帧,4–15 秒,参考图 9 · 参考视频 3 · 参考音频 3 | 720p / 1080p | 按 token |
doubao-seedance-2-0-fast-260128 | 同 2.0,更快更便宜 | 720p | 按 token |
doubao-seedance-2-0-mini-260615 | 同 2.0,最便宜 | 720p | 按 token |
MiniMax-H3 | 文生 / 首尾帧 / 参考图生,1–15 秒,9 图 / 3 视频 / 3 音频参考 | 固定 768P,六种比例 | 按秒 |
旧的一口价模型名 seedance-2.5 / -plus / -pro / seedance-2.0 已下线,换成上面的官方模型 ID 即可,字段不变。
单价见 https://www.vibeapi.cn/pricing
轮询与取片
状态走 queued → in_progress → completed。建议每 10 到 15 秒查一次,超时按 15 分钟设。
curl "https://www.vibeapi.cn/v1/videos/$TASK_ID" -H "Authorization: Bearer $API_KEY"完成时:
{
"id": "task_397b84onbn1ML8uBNhsiaQP3gafAe3AI",
"status": "completed",
"progress": 100,
"metadata": { "url": "https://www.vibeapi.cn/v1/videos/task_397b.../content" }
}下载:
curl -L "https://www.vibeapi.cn/v1/videos/$TASK_ID/content" \
-H "Authorization: Bearer $API_KEY" -o output.mp4完整 Python 示例
import os, time, requests
BASE = "https://www.vibeapi.cn/v1"
H = {"Authorization": f"Bearer {os.environ['VIBEAPI_KEY']}"}
def generate(payload, timeout=900, interval=12):
task = requests.post(f"{BASE}/videos", headers=H, json=payload, timeout=120).json()
if "id" not in task:
raise RuntimeError(f"提交失败: {task}")
tid = task["id"]
print("已提交", tid)
deadline = time.time() + timeout
while time.time() < deadline:
r = requests.get(f"{BASE}/videos/{tid}", headers=H, timeout=60).json()
status = r.get("status")
if status == "completed":
break
if status == "failed":
raise RuntimeError(f"生成失败: {r.get('error')}")
time.sleep(interval)
else:
raise TimeoutError(f"{timeout} 秒内未完成: {tid}")
mp4 = requests.get(f"{BASE}/videos/{tid}/content", headers=H, timeout=600)
mp4.raise_for_status()
return tid, mp4.content
tid, data = generate({
"model": "kling-4.0-1080p",
"prompt": "伊卡洛斯坠落。少年蜡制的双翼在刺目烈日下崩解成漫天金色羽毛,"
"自极高处向湛蓝的爱琴海坠落,云层翻涌,镜头自远处缓慢仰摇",
"duration": 5,
"aspect_ratio": "16:9",
})
open(f"{tid}.mp4", "wb").write(data)样片(当时用 wan3.0-video-1080p 生成):https://studio.vibevibe.cn/docs/20260904/video-models/video/icarus-1080p.mp4
一条 15 秒的 1080P 成片通常 40 到 230 MB,码率很高,做网页背景前建议自行转码压缩。
商业方向怎么选模型
按今天用同一批 gpt-image-2.5 底图实测(每个模型页底部都有对应样片):
| 方向 | 推荐模型 | 画幅 | 为什么 |
|---|---|---|---|
| 美妆 / 香水 / 护肤 | doubao-seedance-2-5-260628 | 9:16 · 16:9 | 花瓣、水花这类慢动作最稳;按秒计费,10 秒够用就别拍 30 秒 |
| 3C 数码 | doubao-seedance-2-0-260128 / doubao-seedance-2-5-260628 | 16:9 | 爆炸图合体、旋转展示,2.0 出片快、便宜三成 |
| 珠宝 | doubao-seedance-2-5-260628 / doubao-seedance-2-0-260128 | 9:16 | 微距火彩,竖版直接进信息流;要 1080p 两个都行 |
| 汽车 | wan3.0-video-1080p | 16:9 | 需要 1080p,跟拍运镜稳定 |
| 地产 / 空间 | wan3.0-image-prime-1080p | 16:9 | 首帧锁构图,推轨 + 天光变化 |
| 饮品 / 食品 | wan3.0-video-720p · wan3.0-image-720p | 9:16 | 5 秒短片 1–3 分钟出,成本最低 |
| 餐饮场景(有人手 / 人物) | MiniMax-H3 | 16:9 | 唯一不卡人脸的系列,动作自然 |
| 服装 | MiniMax-H3 · grok-imagine-video-1.5 | 9:16 | 布料动态好;Grok 1–2 分钟出片适合快速出多版 |
wan3.0 目前暂停供应,表里用到 wan3.0 的方向可以先换 kling-4.0-1080p(汽车、地产)或 kling-4.0-720p(饮品、食品)。
通用做法:先用图像模型把产品、光线、构图定死,再让视频模型只管"怎么动",见视频生成工作流。
参考素材
各系列传素材的字段和在提示词里点名的写法各不相同,这是最容易混的地方:
| 系列 | 参考图 | 参考视频 / 音频 | 提示词里怎么点名 | 详情 |
|---|---|---|---|---|
| 可灵 4.0 | images: [url, …] | 暂不收参考视频;音频用 audios: [url, …] | 描述主体、动作即可,按数组顺序参考 | 可灵 4.0 |
| Seedance | image_urls: [url, …];首尾帧用 reference_images: [{url, role}] | video_urls / audio_urls | @Image1 @Video1 @Audio1,按数组顺序 | Seedance |
| wan3.0 | reference_images: [{url, role}],role = first_frame / last_frame / reference_image | 暂不收参考视频;音频用 reference_audios: [{url}] | 「图1」「音频1」,按数组顺序 | 万相 3.0 |
| MiniMax H3 | image_urls: [url, …](不能与首尾帧混用;首尾帧用 first_frame_image / last_frame_image) | video_urls / audio_urls | <Picture 1> <Video 1> <Audio 1> | MiniMax H3 |
| Grok | image: {url} 锁首帧;reference_images: [{url}] 引导 | 不收 | <IMAGE_1> <IMAGE_2> | Grok 视频 |
编号一律从 1 开始、按数组顺序数;不点名时模型会自行参考全部素材,点名之后才能区分"主体用哪张、场景用哪张"。 链接必须是公网可直接下载的 HTTPS 直链,贴进无痕窗口能直接下载才算数。每个详情页都有完整的多素材示例。
错误与退款
提交阶段报错,额度不扣;任务失败,额度全额退回(用量日志里失败任务额度记为 0)。
| 现象 | 原因 | 怎么办 |
|---|---|---|
model_not_found | key 所在分组没有这个模型 | 确认 key 分组,或换模型名 |
| HTTP 400,提示缺时长 | 没传 seconds / duration | 补上;wan3.0 传字符串,Seedance 传数字(不传按 5 秒) |
| 提示该模型维护中 | 模型临时不可用 | 换模型,或稍后重试 |
HTTP 400 reference_videos_unsupported | 可灵 4.0、wan3.0 暂不收参考视频 | 去掉参考视频;要参考动作可以先截一帧作参考图 |
提交成功但很快 failed | 生成失败 | 额度已全额退回,直接重试 |
参考素材导致失败的两个常见原因:
- 链接不是公网可直接下载。 要登录、要 Cookie、是分享页而非直链都不行。 贴进无痕窗口能直接下载才算数。
- 在提示词里写了比例或时长。 「竖屏」「16:9」「8 秒」会和参数冲突,
比例和时长只用
aspect_ratio和seconds控制。
能力边界
| 做不到 | 说明 |
|---|---|
| 续写 / 剪辑 / 延长 | 只做单条生成 |
| 固定随机种子 | 同一提示词两次结果不同,没有 seed 参数 |
| 任意模型收参考视频 | 可灵 4.0 与 wan3.0 暂不收,带了返回 400 reference_videos_unsupported;Seedance、MiniMax H3 收 |
| H3 上用首尾帧 | 上游不允许首尾帧与参考图混用,本接口只开放参考图。要首尾帧请用 wan3.0-image-* |
| 成片长期保留 | 取到就存自己那边 |
| 完成回调 | 只能轮询,没有 Webhook |
要点
- 先分清计费口径:可灵 4.0、wan3.0 与 MiniMax H3 按秒,Seedance 按 token(时长 × 分辨率),每多一秒都花钱。
- 分辨率写在模型名里,请求体里的
size覆盖不了它。 - Seedance 用字节官方模型 ID:
doubao-seedance-2-5-260628最长 30 秒、到 1080p、素材最多;doubao-seedance-2-0-mini-260615最便宜。公众人物等敏感素材会被拒。 - 参考素材必须是公网可直接下载的 HTTPS 直链,不能要登录。
- 比例和时长只用参数控制,别写进提示词,会冲突。
- 可灵 4.0 与 wan3.0 暂不收参考视频,带了返回 400;参考图和参考音频照常可用。
- 任务失败全额退款,重试即可;Seedance 系列请预留一次重试,公众人物等敏感素材会被审核拒掉。
- H3 的分辨率不用传,固定 768P;
adaptive比例只在带了图或视频时可用。 - 接口以本页为准,不要照上游厂商的原文调用我们的域名——协议由网关翻译,端点和请求体都不一样。
想让画面更好看,接着读视频生成工作流。
在线调试
填入你自己的 API Key 即可直接发起请求,参数表与响应结构由接口定义生成。
提交任务
Authorization
BearerAuth
使用 Bearer Token 认证。
格式: Authorization: Bearer sk-xxxxxx
In: header
Request Body
multipart/form-data
模型/风格 ID
文本描述提示词
图片输入 (URL 或 Base64)
视频时长(秒)
视频宽度
视频高度
视频帧率
随机种子
生成视频数量
响应格式
用户标识
扩展参数 (如 negative_prompt, style, quality_level 等)
Response Body
application/json
application/json
curl -X POST "https://www.vibeapi.cn/v1/videos"{
"id": "string",
"object": "string",
"model": "string",
"status": "string",
"progress": 0,
"created_at": 0,
"seconds": "string",
"completed_at": 0,
"expires_at": 0,
"size": "string",
"error": {
"message": "string",
"code": "string"
},
"metadata": {}
}{
"error": {
"message": "string",
"type": "string",
"param": "string",
"code": "string"
}
}查询状态
Authorization
BearerAuth
使用 Bearer Token 认证。
格式: Authorization: Bearer sk-xxxxxx
In: header
Path Parameters
视频任务 ID
Response Body
application/json
application/json
curl -X GET "https://www.vibeapi.cn/v1/videos/string"{
"id": "string",
"object": "string",
"model": "string",
"status": "string",
"progress": 0,
"created_at": 0,
"seconds": "string"
}{
"error": {
"message": "string",
"type": "string",
"param": "string",
"code": "string"
}
}下载成片
Authorization
BearerAuth
使用 Bearer Token 认证。
格式: Authorization: Bearer sk-xxxxxx
In: header
Path Parameters
视频任务 ID
Response Body
video/mp4
application/json
curl -X GET "https://www.vibeapi.cn/v1/videos/string/content""string"{
"error": {
"message": "string",
"type": "string",
"param": "string",
"code": "string"
}
}最后更新于