外观
视频模型统一接口文档
文档版本:2026-07-16
API Base URL:https://ai.lwaigc.cn
视频创建接口:POST /v1/videos
本文档面向中转站用户,说明当前公开的视频模型、请求参数和任务接口。模型名区分大小写,调用方必须原样发送。
1. 当前公开模型
当前中转站开放的视频模型如下。不同 API Key 所属分组不同,实际可调用模型必须以该 Key 请求 GET /v1/models 的结果为准。
请求中的 model | 分辨率 | 时长 | 主要用途 |
|---|---|---|---|
Mimo-Video | 按模型配置 | 按模型配置 | Mimo 文生视频、图生视频 |
grok-imagine-video-1.5-preview | 由 size 指定 | 6、10 或 15 秒 | Grok 首帧图生视频 |
seedance2.0fast-720 | 720p | 仅支持 10 或 15 秒 | Seedance 2.0 Fast |
seedance2.0pro-720 | 720p | 4–15 秒 | Seedance 2.0 Pro,按秒计费 |
mm-seedance2.0 | 固定 720p | 4–15 秒 | MM 多图片、视频、音频参考 |
nh-seedance2.0 | 固定 720p | 4–14 秒 | NH 多图片、视频、音频参考 |
1.1 获取当前 Key 可用模型
http
GET /v1/models
Authorization: Bearer <API_KEY>bash
curl 'https://ai.lwaigc.cn/v1/models' \
-H 'Authorization: Bearer <API_KEY>'如果目标模型没有出现在响应中,该 Key 当前不能调用该模型。
2. 接口总览
| 用途 | 方法 | 路径 | 鉴权 |
|---|---|---|---|
| 获取可用模型 | GET | /v1/models | Bearer |
| 创建视频任务 | POST | /v1/videos | Bearer |
| 查询视频任务 | GET | /v1/videos/{task_id} | Bearer |
| 播放或下载视频 | GET | /v1/videos/{task_id}/content | Bearer |
| 获取视频响应头 | HEAD | /v1/videos/{task_id}/content | Bearer |
| 带文件名的视频内容地址 | GET/HEAD | /v1/videos/{task_id}/content/{filename} | Bearer |
| 上传临时素材 | POST | /v1/assets | Bearer |
| 转存公网素材 URL | POST | /v1/assets/url | Bearer |
| 读取签名素材 | GET/HEAD | /v1/assets/{asset_id}/content/{filename} | 签名参数 |
| 兼容音频引用上传 | POST | /v1/media-references | Bearer |
除服务端生成的签名素材 URL 外,接口使用:
http
Authorization: Bearer <API_KEY>3. 创建视频任务
http
POST /v1/videos
Authorization: Bearer <API_KEY>
Idempotency-Key: client_xxx
Content-Type: application/json3.1 通用字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 第 1 节中的准确公开模型名 |
prompt | string | 是 | 视频提示词 |
client_task_id | string | 强烈建议 | 稳定幂等标识,应与请求头 Idempotency-Key 完全一致 |
模型专属参数见第 4–8 节。不要把不同模型的参数混用。
3.2 创建成功响应
首次创建成功返回 HTTP 202 Accepted:
json
{
"id": "relay_video_xxx",
"task_id": "relay_video_xxx",
"client_task_id": "client_xxx",
"status": "queued",
"relay_state": "submitting",
"progress": 0,
"retry_after_ms": 6000
}只有收到包含 task_id 的成功响应,才能认为视频任务已经创建。后续查询和下载必须使用返回的 relay_video_xxx。
模型暂不可用、鉴权失败或参数在任务创建前被拒绝时,接口可能返回非 2xx 且不生成 task_id。
4. MM Seedance 2.0
4.1 模型名
text
mm-seedance2.04.2 参数
| 字段 | 类型 | 必填 | 规则 |
|---|---|---|---|
model | string | 是 | 固定为 mm-seedance2.0 |
prompt | string | 是 | 视频提示词 |
duration | integer | 否 | 4–15,默认 4;非法值直接返回 400 |
resolution | string | 否 | 只能为 720p,默认 720p |
aspect_ratio | string | 否 | 例如 16:9、9:16、1:1 |
image_urls | string[] | 否 | 图片 URL,全部图片字段合计最多 9 张 |
video_urls | string[] | 否 | 视频 URL,全部视频字段合计最多 3 条 |
audio_urls | string[] | 否 | 音频 URL,全部音频字段合计最多 3 条 |
image_references | object[] | 否 | 带 image_url、ref_name、type、assetId 等信息的图片引用 |
mm_has_real_person | boolean | 否 | MM 专属参数,默认 false |
client_task_id | string | 强烈建议 | 视频任务幂等标识 |
兼容的素材别名还包括:
text
image, images, images_base64, image_url, reference_image_urls
video_url, reference_video_urls
audios_base64, audio_url, reference_audio_urls同一素材通过多个别名重复发送时会去重计数。建议新客户端统一使用 image_urls、video_urls、audio_urls。
4.3 请求示例
bash
curl -X POST 'https://ai.lwaigc.cn/v1/videos' \
-H 'Authorization: Bearer <API_KEY>' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: client_mm_xxx' \
-d '{
"model": "mm-seedance2.0",
"client_task_id": "client_mm_xxx",
"prompt": "第一张图片作为场景,第二张图片作为人物参考,生成竖屏写实视频",
"duration": 8,
"aspect_ratio": "9:16",
"resolution": "720p",
"mm_has_real_person": true,
"image_urls": [
"https://ai.lwaigc.cn/v1/assets/asset_xxx/content/asset_xxx.png?expires=<EXPIRES>&signature=<SIGNATURE>"
]
}'5. NH Seedance 2.0
5.1 模型名
text
nh-seedance2.05.2 参数
| 字段 | 类型 | 必填 | 规则 |
|---|---|---|---|
model | string | 是 | 固定为 nh-seedance2.0 |
prompt | string | 是 | 视频提示词 |
duration | integer | 否 | 4–14,默认 4;非法值直接返回 400 |
resolution | string | 否 | 只能为 720p,默认 720p |
aspect_ratio | string | 否 | 例如 16:9、9:16、1:1 |
image_urls | string[] | 否 | 图片 URL,全部图片字段合计最多 9 张 |
video_urls | string[] | 否 | 视频 URL,全部视频字段合计最多 3 条 |
audio_urls | string[] | 否 | 音频 URL,全部音频字段合计最多 3 条 |
image_references | object[] | 否 | 带 image_url、ref_name、type、assetId 等信息的图片引用 |
client_task_id | string | 强烈建议 | 视频任务幂等标识 |
兼容的素材字段还包括:
text
image, images, images_base64, image_url, reference_image_urls
video_url, reference_video_urls
audios_base64, audio_url, reference_audio_urlsnh-seedance2.0 不使用 mm_has_real_person,请求中不要发送该字段。
5.3 请求示例
bash
curl -X POST 'https://ai.lwaigc.cn/v1/videos' \
-H 'Authorization: Bearer <API_KEY>' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: client_nh_xxx' \
-d '{
"model": "nh-seedance2.0",
"client_task_id": "client_nh_xxx",
"prompt": "保持参考人物和服装一致,镜头缓慢向前推进",
"duration": 14,
"aspect_ratio": "16:9",
"resolution": "720p",
"image_urls": [
"https://ai.lwaigc.cn/v1/assets/asset_xxx/content/asset_xxx.png?expires=<EXPIRES>&signature=<SIGNATURE>"
]
}'6. Seedance 2.0 Fast / Pro 720
6.1 模型名
text
seedance2.0fast-720
seedance2.0pro-720这两个是不同的公开模型名,不能互换。
6.2 参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 使用上方两个模型之一 |
prompt | string | 是 | 视频提示词 |
seconds | string 或 number | 建议 | Fast 只能传 10 或 15;Pro 可传 4–15 的整数 |
duration | string 或 number | 兼容 | 未传 seconds 时按 seconds 使用;同时传入时以 seconds 为准 |
resolution | string | 建议 | 固定传 720p |
aspect_ratio | string | 否 | 例如 16:9、9:16、1:1 |
size | string | 否 | 例如 1280x720 或 720x1280 |
image_urls | string[] | 否 | 参考图片签名 URL |
images_base64 | string[] | 否 | 图片 Data URL 或 Base64;大文件建议改用签名 URL |
audio_urls | string[] | 否 | 参考音频签名 URL |
audios_base64 | string[] | 否 | 音频 Data URL 或 Base64 |
client_task_id | string | 强烈建议 | 视频任务幂等标识 |
推荐只发送 seconds,不要同时发送 seconds 和 duration。兼容字段 duration 会被中转站按 seconds 处理。
时长规则不能混用:
seedance2.0fast-720:仅接受 10 秒或 15 秒。seedance2.0pro-720:接受 4–15 秒的整数,并按实际秒数计费。- 超出对应模型范围的秒数会返回参数错误。
6.3 Fast 示例
json
{
"model": "seedance2.0fast-720",
"client_task_id": "client_fast_xxx",
"prompt": "人物自然转身看向镜头,背景树叶轻微摇动",
"seconds": 15,
"resolution": "720p",
"aspect_ratio": "9:16",
"image_urls": [
"https://ai.lwaigc.cn/v1/assets/asset_xxx/content/asset_xxx.png?expires=<EXPIRES>&signature=<SIGNATURE>"
]
}6.4 Pro 示例
json
{
"model": "seedance2.0pro-720",
"client_task_id": "client_pro_xxx",
"prompt": "雨后的城市街道,镜头平缓横移,电影感灯光",
"seconds": 8,
"resolution": "720p",
"aspect_ratio": "16:9"
}7. Mimo Video
7.1 模型名
text
Mimo-Video大小写必须完全一致。
7.2 参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 固定为 Mimo-Video |
prompt | string | 是 | 视频提示词 |
seconds | string 或 number | 否 | 视频时长,以当前账号产品配置为准 |
size | string | 否 | 例如 1280x720 |
image_url | string | 否 | 单张参考图片 URL |
image_urls | string[] | 否 | 多张参考图片 URL |
images | string[] | 否 | 兼容图片数组 |
client_task_id | string | 强烈建议 | 视频任务幂等标识 |
Mimo 的允许时长和素材数量由当前模型服务配置决定。不要根据其他 Seedance 模型的 4–15 秒规则推导 Mimo 参数。
7.3 示例
json
{
"model": "Mimo-Video",
"client_task_id": "client_mimo_xxx",
"prompt": "清晨的海边公路,镜头平稳向前推进",
"seconds": 15,
"size": "1280x720",
"image_urls": [
"https://ai.lwaigc.cn/v1/assets/asset_xxx/content/asset_xxx.png?expires=<EXPIRES>&signature=<SIGNATURE>"
]
}8. Grok Imagine Video 1.5 Preview
8.1 模型名
text
grok-imagine-video-1.5-preview8.2 参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 固定为 grok-imagine-video-1.5-preview |
prompt | string | 是 | 视频提示词 |
images | string[] | 是 | 当前按一张首帧图片使用,可发送 Data URL |
seconds | string 或 number | 是 | 6、10 或 15 |
size | string | 是 | 例如 1280x720 |
client_task_id | string | 强烈建议 | 视频任务幂等标识 |
8.3 示例
json
{
"model": "grok-imagine-video-1.5-preview",
"client_task_id": "client_grok_xxx",
"prompt": "人物从首帧姿势开始自然转头,镜头轻微前推",
"images": [
"data:image/jpeg;base64,<BASE64_DATA>"
],
"seconds": 10,
"size": "1280x720"
}9. 幂等创建和断线重试
每次业务生成应同时发送相同值:
http
Idempotency-Key: client_xxxjson
{
"client_task_id": "client_xxx"
}规则:
- 相同账号、相同 key、相同有效请求:返回原视频任务,不重复创建。
- 相同 key、不同请求体:返回 HTTP
409,错误码idempotency_key_reused。 - 请求头与 body 中的值不一致:返回 HTTP
400,错误码idempotency_key_mismatch。 client_task_id最长 191 字节;建议只使用 ASCII 字母、数字、短横线和下划线。- 幂等重放返回 HTTP
200;首次创建返回 HTTP202。 - 创建响应丢失时,使用原 key 重发完全相同的请求,不要生成新 key。
幂等重放示例:
json
{
"id": "relay_video_xxx",
"task_id": "relay_video_xxx",
"client_task_id": "client_xxx",
"status": "in_progress",
"relay_state": "polling",
"progress": 31,
"retry_after_ms": 6000
}当前没有公开的“按 client_task_id 查询”接口。找回丢失的创建响应时,应使用相同幂等键重放原 POST。
10. 查询任务
http
GET /v1/videos/{task_id}
Authorization: Bearer <API_KEY>bash
curl 'https://ai.lwaigc.cn/v1/videos/relay_video_xxx' \
-H 'Authorization: Bearer <API_KEY>'10.1 处理中
json
{
"id": "relay_video_xxx",
"task_id": "relay_video_xxx",
"client_task_id": "client_xxx",
"status": "in_progress",
"relay_state": "polling",
"progress": 47,
"retry_after_ms": 6000
}10.2 完成
json
{
"id": "relay_video_xxx",
"task_id": "relay_video_xxx",
"status": "completed",
"relay_state": "completed",
"progress": 100
}10.3 失败终态
任务业务失败通过 HTTP 200 返回终态:
json
{
"id": "relay_video_xxx",
"task_id": "relay_video_xxx",
"status": "failed",
"relay_state": "failed",
"progress": 47,
"error": {
"code": "provider_task_failed",
"message": "video task failed"
}
}10.4 临时轮询故障
json
{
"id": "relay_video_xxx",
"task_id": "relay_video_xxx",
"status": "in_progress",
"relay_state": "polling",
"progress": 47,
"poll_warning": {
"code": "provider_poll_temporarily_unavailable"
},
"retry_after_ms": 12000
}收到 poll_warning 时延后查询,不要重新创建任务。progress 可能为 null,表示当前没有可信进度。
11. 视频播放和下载
仅在任务为 completed 后调用:
http
GET /v1/videos/{task_id}/content
Authorization: Bearer <API_KEY>bash
curl -L 'https://ai.lwaigc.cn/v1/videos/relay_video_xxx/content' \
-H 'Authorization: Bearer <API_KEY>' \
--output result.mp4兼容带文件名路由:
http
GET /v1/videos/{task_id}/content/video.mp4接口支持 GET、HEAD 和 Range。浏览器 <video> 标签不能直接携带 Bearer 时,业务后端应代理内容,或由前端使用带鉴权的 fetch 获取 Blob。不要把长期 API Key 放入公开网页。
12. 临时素材
12.1 上传本地文件
http
POST /v1/assets
Authorization: Bearer <API_KEY>
Idempotency-Key: asset_client_xxx
Content-Type: multipart/form-datamultipart 只要求一个字段:
text
file=<文件二进制>bash
curl -X POST 'https://ai.lwaigc.cn/v1/assets' \
-H 'Authorization: Bearer <API_KEY>' \
-H 'Idempotency-Key: asset_client_xxx' \
-F 'file=@reference.png'新上传返回 HTTP 201,幂等重放返回 HTTP 200。响应中的 url 位于顶层:
json
{
"id": "asset_xxx",
"object": "asset",
"mime_type": "image/png",
"size": 123456,
"duration_ms": null,
"expires_at": "2026-07-18T12:00:00Z",
"url": "https://ai.lwaigc.cn/v1/assets/asset_xxx/content/asset_xxx.png?expires=<EXPIRES>&signature=<SIGNATURE>"
}图片的 duration_ms 为 null,音频和视频返回检测到的时长。
12.2 转存公网 HTTPS URL
http
POST /v1/assets/url
Authorization: Bearer <API_KEY>
Idempotency-Key: asset_url_xxx
Content-Type: application/jsonjson
{
"url": "https://example.com/reference.png"
}私网、回环、云元数据地址、file:// 和非 HTTPS 地址会被拒绝。
12.3 素材 URL 规则
- 将返回的完整 HTTPS
url原样写入目标模型的 URL 素材字段。 - 有效签名 URL 可以直接读取,不需要携带 Bearer。
- 不要修改文件名、后缀、
expires或signature。 - 不要把真实签名 URL 写入公开日志或文档。
- 上传素材不会预扣视频生成费用;视频额度检查发生在创建视频任务时。
13. 常见错误
| HTTP | 典型错误 | 含义与处理 |
|---|---|---|
400 | invalid_request、unsupported_model、invalid_duration、invalid_resolution | 修正模型名或参数,不要原样无限重试 |
401 | invalid_token | API Key 缺失、无效或过期 |
403 | 分组或模型访问权限不足 | 检查该 Key 的可见模型和分组权限 |
404 | not_found | 任务不存在或不属于当前账号 |
409 | idempotency_key_reused | 相同 key 被用于不同请求体 |
413 | file_too_large | 素材超过上传限制 |
429 | 频率、额度或素材空间限制 | 按错误提示处理 |
503 | model_not_found | 当前模型对该分组暂不可用;未返回 task_id 时任务未创建 |
5xx | 中转站或生成服务临时异常 | 使用原幂等键和原请求体安全重试 |
明确的非 2xx JSON 错误且没有 task_id,不是已创建任务。只有已经返回 task_id,随后进入 submission_unknown,才表示后台提交结果待确认。
14. 推荐接入流程
- 使用当前 Key 请求
GET /v1/models。 - 从第 1 节选择完全一致的公开模型名。
- 本地素材先通过
/v1/assets上传,保存顶层url。 - 为每次业务生成一个稳定
client_task_id。 - 将相同值写入
Idempotency-Key和请求体。 - 调用
POST /v1/videos,保存返回的task_id。 - 按
retry_after_ms查询/v1/videos/{task_id}。 completed后读取/content;failed后停止轮询。- 创建响应丢失时,使用原幂等键重发完全相同的 POST。
15. 计费说明
接口文档不写死价格。实际价格取决于平台当前模型定价、账号分组、时长和分辨率配置。调用方应以中转站价格页或服务方提供的价格表为准。
