外观
图片与视频模型统一接口文档
文档版本:2026-10-12
API Base URL:https://ai.lwaigc.cn
图片生成接口:POST /v1/images/generations
视频创建接口:POST /v1/videos
本文档面向中转站用户,说明当前生产环境可调用的图片与视频模型、每个模型实际使用的请求字段,以及统一的任务、素材和下载接口。模型名区分大小写,请按文档原样发送。
1. 当前公开模型
已核对生产 /api/pricing(pricing_version=5a90f2b86c08bd983a9a2e6d66c255f4eaef9c4bc934386d2b6ae84ef0ff1f1f),当前生产公开目录包含 21 个视频模型和 5 个图片模型。不同 API Key 所属分组不同,实际可调用模型以该 Key 请求 GET /v1/models 的结果为准。
请求中的 model | 分辨率 | 时长 | 素材数量 |
|---|---|---|---|
hn-sd官渠903-pro | 固定 720p | 固定 15 秒 | 9 图 / 不支持视频 / 3 音频 |
hn-sd2.0-v1 | 固定 720p | 4–15 秒 | 933 参数 / 按次付费 / 原生过脸 |
wf-sd2.0-fast-v3 | 480p / 720p | 4–15 秒 | 933 参数 / 内置插件过脸 |
wf-sd2.0-mini-v3 | 480p / 720p | 4–15 秒 | 933 参数 / 内置插件过脸 |
wf-sd2.0-v1 | 固定 720p | 固定 15 秒 | 903 参数 / 原生过脸 |
wf-sd2.0-v1-fast | 固定 720p | 4–15 秒 | 933 参数 / 原生不卡脸 |
wf-sd2.0-v3 | 480p / 720p / 1080p | 4–15 秒 | 933 参数 / 内置插件过脸 |
lg-sd2.0-v1 | 固定 720p | 4–15 秒 | 9 图 / 3 视频 / 3 音频 / 按次付费 / 内置插件过脸 |
wan3.0-720p | 固定 720p | 4–30 秒 | 10/5/5 参数 / 按秒付费 / 不卡脸 |
dbb-sd2.5-v1 | 固定 720p | 4–30 秒 | 30 图 / 10 视频 / 10 音频 / 按秒付费 / 原生不卡脸 |
dbb-sd2.5-v2 | 固定 720p | 4–30 秒 | 30 图 / 10 视频 / 10 音频 / 原生不卡脸 |
hn-sd2.5-v2 | 固定 720p | 固定 30 秒 | 30 图 / 不支持视频和音频 / Dola 提示词优化 / 内置过脸 |
ld-sd2.5-v1 | 480p / 720p / 1080p | 4–30 秒 | 30 图 / 10 视频 / 10 音频 / 按秒付费 / 原生不卡脸 |
ld-sd2.5-v2 | 固定 720p | 固定 30 秒 | 9 图 / 不支持视频和音频 / 内置插件过脸 |
lg-sd2.5-v1 | 480p / 720p / 1080p | 4–30 秒 | 30 图 / 10 视频 / 10 音频 / 按秒付费 / 原生不卡脸 |
mf-sd2.5-v2 | 固定 720p | 4–29 秒 | 30 图 / 不支持视频 / 10 音频 / 原生过脸 |
qi-sd2.5-v1 | 固定 720p | 4–30 秒 | 30 图 / 10 视频 / 10 音频 / 原生不卡脸 |
wf-sd2.5-v2 | 固定 720p | 4–30 秒 | 30 图 / 10 视频 / 10 音频 / 原生过脸 |
wf-sd2.5-v5 | 固定 720p | 固定 30 秒 | 30 图 / 不支持视频 / 10 音频 / Dola |
wf-sd2.5-v5-face | 固定 720p | 固定 30 秒 | 30 图 / 不支持视频 / 10 音频 / Dola / 内置插件过脸 |
MiniMax-H3 | 默认 2K,不传 resolution | 5–15 秒 | 9 图 / 不支持视频 / 3 音频 |
本表于 2026-10-12 根据生产 /api/pricing(pricing_version=5a90f2b86c08bd983a9a2e6d66c255f4eaef9c4bc934386d2b6ae84ef0ff1f1f)同步,仅展示当前生产公开模型;已下架模型不再列入本页面。实际可用性始终以当前 API Key 请求 GET /v1/models 的结果为准。 |
1.1 当前公开图片模型
请求中的 model | 文生图 | 参考图 | 推荐接口 |
|---|---|---|---|
gpt-image-2 | 支持 | 支持 | /v1/images/generations、/v1/images/edits |
gpt-image-2.5-flare | 支持 | 支持 | /v1/images/generations、/v1/images/edits |
gpt-image-2.5-sunburst | 支持 | 支持 | /v1/images/generations、/v1/images/edits |
gemini-3-pro-image-preview | 支持 | 支持 | /v1/images/generations、/v1beta/models/{model}:generateContent |
gemini-3.1-flash-image-preview | 支持 | 支持 | /v1/images/generations、/v1beta/models/{model}:generateContent |
1.2 获取当前 Key 可用模型
http
GET /v1/models
Authorization: Bearer <API_KEY>bash
curl 'https://ai.lwaigc.cn/v1/models' \
-H 'Authorization: Bearer <API_KEY>'目标模型没有出现在响应中时,表示该 Key 当前没有该模型的调用权限。
1.3 一个 Key 调用多个模型
同一个 API Key 可以调用 GET /v1/models 返回的所有模型,不需要为每个模型分别创建 Key。每次请求都以请求体中的 model 为准:调用哪个模型,就按该模型当前公布的价格和计费规则结算;不同模型的倍率、按次价格、时长价格和分辨率价格相互独立,不会因为共用同一个 Key 而串用。
例如,同一个 Key 可以先调用 wf-sd2.0-fast-v3,再调用 MiniMax-H3,两次请求分别按照各自模型的规则计费。Key 只负责鉴权、额度和可用模型范围,不会固定所有请求使用同一个模型倍率。
实际可用模型始终以该 Key 调用 GET /v1/models 的结果为准;账户页面展示的模型价格为当前调用依据。
2. 接口总览
| 用途 | 方法 | 路径 | 鉴权 |
|---|---|---|---|
| 获取可用模型 | GET | /v1/models | Bearer |
| 创建图片 | POST | /v1/images/generations | Bearer |
| 编辑图片 | POST | /v1/images/edits | Bearer |
| 查询异步图片任务 | GET | /v1/images/generations/{task_id} | Bearer |
| Gemini 图片生成 | POST | /v1beta/models/{model}:generateContent | 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 |
| 浏览器预览视频 | GET/HEAD | /v1/videos/{task_id}/preview | Bearer |
| 带文件名的浏览器预览 | GET/HEAD | /v1/videos/{task_id}/preview/{filename} | Bearer |
| 上传临时素材 | POST | /v1/assets | Bearer |
| 转存公网素材 URL | POST | /v1/assets/url | Bearer |
| 读取签名素材 | GET/HEAD | /v1/assets/{asset_id}/content/{filename} | 签名参数 |
| 读取签名素材(旧兼容) | GET/HEAD | /v1/assets/{asset_id}/content | 签名参数 |
| 兼容音频引用上传 | POST | /v1/media-references | Bearer |
| 查询音频引用 | GET | /v1/media-references/{reference_id} | Bearer |
| 读取签名音频引用 | GET/HEAD | /v1/media-references/{reference_id}/content/{filename} | 签名参数 |
| 读取签名音频引用(旧兼容) | GET/HEAD | /v1/media-references/{reference_id}/content | 签名参数 |
除服务端生成的签名素材 URL 外,接口统一使用:
http
Authorization: Bearer <API_KEY>2.1 媒体内容读取说明
临时素材、音频引用和已缓存的视频结果现在可能通过 HTTP 307 Temporary Redirect 跳转到对象存储读取文件字节。业务入口仍然是中转站 URL:
text
客户端 -> ai.lwaigc.cn 业务 URL -> 307 -> 对象存储签名 URL -> 200/206调用方只保存中转站返回的 Relay URL,不要长期保存 307 Location 中的对象存储临时 URL。跨域跳转到对象存储后,不要继续携带 Authorization、Cookie 或 API Key。
浏览器播放使用 /v1/videos/{task_id}/preview;该接口在中转站内流式返回已转存的视频结果,不返回对象存储跳转地址。
图片模型接口
图片接口选择
| 场景 | 方法和路径 | 请求格式 |
|---|---|---|
| GPT Image 2 系列文生图 | POST /v1/images/generations | JSON |
| GPT Image 2 系列参考图编辑 | POST /v1/images/edits | multipart/form-data |
| Gemini 图片预览模型文生图 | POST /v1/images/generations | JSON |
| Gemini 图片预览模型参考图生成 | POST /v1beta/models/{model}:generateContent | JSON,参考图使用 inlineData |
| 查询异步图片任务 | GET /v1/images/generations/{task_id} | 无请求体 |
所有请求都使用当前中转站 API Key:
http
Authorization: Bearer <API_KEY>图片创建请求建议同时发送稳定的 Idempotency-Key。同一 Key 只能对应同一请求内容;网络断开时使用原 Key 和原请求体重试,不要更换 Key 创建重复任务。
GPT Image 2 系列文生图
本节适用于 gpt-image-2、gpt-image-2.5-flare 和 gpt-image-2.5-sunburst。三个模型使用相同的请求格式;按当前 API Key 的 GET /v1/models 结果选择可用模型名。
http
POST /v1/images/generations
Content-Type: application/json
Authorization: Bearer <API_KEY>| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | gpt-image-2、gpt-image-2.5-flare 或 gpt-image-2.5-sunburst |
prompt | string | 是 | 图片提示词 |
n | number | 否 | 生成数量,省略时为 1 |
size | string | 是 | 输出尺寸,例如 1088x608 |
quality | string | 否 | 推荐 auto |
output_format | string | 否 | jpeg 或 png |
moderation | string | 否 | 推荐 auto |
json
{
"model": "gpt-image-2",
"prompt": "电影感的未来城市街景,雨夜,霓虹灯反射在地面",
"n": 1,
"size": "1088x608",
"quality": "auto",
"output_format": "jpeg",
"moderation": "auto"
}GPT Image 2 系列参考图编辑
http
POST /v1/images/edits
Authorization: Bearer <API_KEY>
Content-Type: multipart/form-data| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | gpt-image-2、gpt-image-2.5-flare 或 gpt-image-2.5-sunburst |
prompt | string | 是 | 编辑或生成提示词 |
image[] | file[] | 是 | 一张或多张参考图 |
n | number | 否 | 推荐 1 |
size | string | 是 | 输出尺寸,例如 1088x608 |
quality | string | 否 | 推荐 auto |
output_format | string | 否 | jpeg 或 png |
moderation | string | 否 | 推荐 auto |
bash
curl 'https://ai.lwaigc.cn/v1/images/edits' \
-H 'Authorization: Bearer <API_KEY>' \
-F 'model=gpt-image-2' \
-F 'prompt=保持参考图人物一致,生成一张 16:9 的电影海报' \
-F 'image[]=@reference.jpg' \
-F 'n=1' \
-F 'size=1088x608' \
-F 'quality=auto' \
-F 'output_format=jpeg' \
-F 'moderation=auto'Gemini 图片预览模型
文生图可以使用统一图片接口。image_size 支持 1K、2K、4K,aspect_ratio 支持 1:1、16:9、9:16、4:3、3:4、3:2、2:3。
json
{
"model": "gemini-3.1-flash-image-preview",
"prompt": "一张高质感产品海报,背景干净,柔和棚拍灯光",
"n": 1,
"image_size": "2K",
"aspect_ratio": "16:9"
}请求地址:
http
POST /v1/images/generations
Content-Type: application/json
Authorization: Bearer <API_KEY>需要发送参考图时使用 Gemini 兼容接口,参考图内容放入 contents[].parts[].inlineData:
http
POST /v1beta/models/gemini-3-pro-image-preview:generateContent
Content-Type: application/json
Authorization: Bearer <API_KEY>json
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "保持参考图人物一致,生成竖版杂志封面" },
{
"inlineData": {
"mimeType": "image/jpeg",
"data": "<BASE64_DATA>"
}
}
]
}
],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {
"imageSize": "2K",
"aspectRatio": "9:16"
}
}
}图片成功响应与异步轮询
统一图片接口的同步成功响应可能包含 URL,也可能包含 Base64。客户端必须同时兼容:
json
{
"created": 1780000000,
"data": [
{
"url": "https://ai.lwaigc.cn/v1/assets/asset_xxx/content/asset_xxx.png?expires=<EXPIRES>&signature=<SIGNATURE>"
}
]
}json
{
"created": 1780000000,
"data": [
{
"b64_json": "<BASE64_DATA>"
}
]
}生成尚未完成时可能返回:
json
{
"task_id": "task_xxx",
"status": "pending",
"poll_url": "/v1/images/generations/task_xxx?model=gpt-image-2",
"data": []
}此时按 poll_url 使用同一个 API Key 发起 GET,直到 data 中出现结果或状态进入失败终态。不要重新提交相同图片生成请求。
Gemini 兼容接口的图片结果位于 candidates[].content.parts[].inlineData;其中 mimeType 是图片格式,data 是 Base64 图片内容。
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–9 节对应模型发送,不要混用不同模型的专属参数。
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。
4. WF Seedance 2.0
4.1 模型能力
model | 分辨率 | 时长 | 参数与人脸 |
|---|---|---|---|
wf-sd2.0-fast-v3 | 480p / 720p | 4–15 秒 | 933 参数 / 内置插件过脸 |
wf-sd2.0-mini-v3 | 480p / 720p | 4–15 秒 | 933 参数 / 内置插件过脸 |
wf-sd2.0-v1 | 固定 720p | 固定 15 秒 | 903 参数 / 原生过脸 |
wf-sd2.0-v1-fast | 固定 720p | 4–15 秒 | 933 参数 / 原生不卡脸 |
wf-sd2.0-v3 | 480p / 720p / 1080p | 4–15 秒 | 933 参数 / 内置插件过脸 |
wf-sd2.0-fast-v3、wf-sd2.0-mini-v3 和 wf-sd2.0-v3 使用 933 参数(按当前接口校验为图片、视频、音频素材组合),支持 4–15 秒并使用内置插件过脸;其中标准版另外支持 1080p。wf-sd2.0-v1-fast 也使用 933 参数,支持 4–15 秒、固定 720p,使用原生不卡脸能力。wf-sd2.0-v1 使用 903 参数,仅支持 15 秒、固定 720p,并使用原生过脸。客户端发送 480p、720p 或 1080p(按模型能力选择)即可;固定 720p 的 wf-sd2.0-v1 和 wf-sd2.0-v1-fast 不要发送 resolution,生产定价中的 720p+ 仅是后台兼容价格键,不要把 720p+ 作为请求值。
4.2 实际请求字段
| 字段 | 类型 | 必填 | 规则 |
|---|---|---|---|
model | string | 是 | 固定为上表五个模型名之一 |
prompt | string | 是 | 视频提示词 |
seconds | string 或 number | 是 | wf-sd2.0-v1 只能为 15;其余模型为 4–15 的整数 |
resolution | string | 条件必填 | wf-sd2.0-fast-v3 / wf-sd2.0-mini-v3 只能为 480p 或 720p,wf-sd2.0-v3 可为 480p、720p 或 1080p;wf-sd2.0-v1 和 wf-sd2.0-v1-fast 固定 720p,不要发送 |
aspect_ratio | string | 否 | 例如 16:9、9:16、1:1 |
image_urls / images_base64 | string[] | 否 | wf-sd2.0-v1 最多 9 张;其余模型按 933 参数限制提交 |
video_urls | string[] | 否 | wf-sd2.0-v1 不支持视频素材;其余模型按 933 参数限制提交 |
audio_urls / audios_base64 | string[] | 否 | wf-sd2.0-v1 按 903 参数提交音频素材;其余模型按 933 参数限制提交 |
client_task_id | string | 强烈建议 | 与 Idempotency-Key 使用同一稳定值 |
兼容单素材字段 image_url、video_url、audio_url,也兼容旧客户端使用 duration 表示秒数;新客户端统一发送 seconds。素材 URL 应使用中转站签名地址或其他公网 HTTPS 地址,不要向客户端暴露上游真实地址。
4.3 请求示例
json
{
"model": "wf-sd2.0-v3",
"client_task_id": "client_wf_sd20_v3_xxx",
"prompt": "保持主体外观一致,镜头平稳向前推进,动作自然",
"seconds": 10,
"resolution": "720p",
"aspect_ratio": "16:9",
"image_urls": [
"https://ai.lwaigc.cn/v1/assets/asset_xxx/content/asset_xxx.png?expires=<EXPIRES>&signature=<SIGNATURE>"
]
}5. Wan 3.0 与 LG Seedance 2.0
5.1 Wan 3.0
model | 分辨率 | 时长 | 参数与计费 |
|---|---|---|---|
wan3.0-720p | 固定 720p | 4–30 秒 | 10/5/5 参数 / 按秒付费 / 不卡脸 |
Wan 3.0 模型不需要发送 resolution,seconds 必须是 4–30 的整数并按秒计费。素材字段和参数数量按生产模型校验规则填写。
| 字段 | 类型 | 必填 | 规则 |
|---|---|---|---|
model | string | 是 | 固定为 wan3.0-720p |
prompt | string | 是 | 视频提示词 |
seconds | string 或 number | 是 | 4–30 的整数,按秒计费 |
aspect_ratio | string | 否 | 按模型支持的画幅填写 |
image_urls / images_base64 | string[] | 否 | 使用中转站签名素材 URL 或图片 Data URL |
video_urls | string[] | 否 | 使用中转站签名素材 URL |
audio_urls / audios_base64 | string[] | 否 | 使用中转站签名素材 URL 或音频 Data URL |
client_task_id | string | 强烈建议 | 与 Idempotency-Key 使用同一稳定值 |
json
{
"model": "wan3.0-720p",
"client_task_id": "client_wf_wan30_xxx",
"prompt": "保持主体一致,动作连贯自然,镜头平稳移动",
"seconds": 12,
"aspect_ratio": "16:9",
"image_urls": [
"https://ai.lwaigc.cn/v1/assets/asset_xxx/content/asset_xxx.png?expires=<EXPIRES>&signature=<SIGNATURE>"
]
}5.2 LG Seedance 2.0
model | 分辨率 | 时长 | 素材数量 | 计费与人脸 |
|---|---|---|---|---|
lg-sd2.0-v1 | 固定 720p | 4–15 秒 | 9 图 / 3 视频 / 3 音频 | 按次付费 / 内置插件过脸 |
lg-sd2.0-v1 使用 933 素材参数并固定输出 720p、按次计费,使用内置插件过脸。不要发送 resolution 字段。
| 字段 | 类型 | 必填 | 规则 |
|---|---|---|---|
model | string | 是 | 固定为 lg-sd2.0-v1 |
prompt | string | 是 | 视频提示词 |
seconds | string 或 number | 是 | 4–15 的整数 |
resolution | string | 否 | 固定 720p,不要发送 |
aspect_ratio | string | 否 | 例如 16:9、9:16、1:1;省略时默认 16:9 |
image_urls / images_base64 | string[] | 否 | 最多 9 张 |
video_urls | string[] | 否 | 最多 3 条 |
audio_urls / audios_base64 | string[] | 否 | 最多 3 条 |
client_task_id | string | 强烈建议 | 与 Idempotency-Key 使用同一稳定值 |
json
{
"model": "lg-sd2.0-v1",
"client_task_id": "client_lg_sd20_xxx",
"prompt": "保持人物外观一致,镜头平稳向前推进",
"seconds": 10,
"aspect_ratio": "16:9",
"image_urls": [
"https://ai.lwaigc.cn/v1/assets/asset_xxx/content/asset_xxx.png?expires=<EXPIRES>&signature=<SIGNATURE>"
]
}6. Seedance 2.5
6.1 模型能力
model | 分辨率 | 时长 | 素材数量 | 真人脸素材 |
|---|---|---|---|---|
dbb-sd2.5-v1 | 固定 720p | 4–30 秒 | 30 图 / 10 视频 / 10 音频 | 原生不卡脸 |
dbb-sd2.5-v2 | 固定 720p | 4–30 秒 | 30 图 / 10 视频 / 10 音频 | 原生不卡脸 |
hn-sd2.5-v2 | 固定 720p | 固定 30 秒 | 30 图 / 不支持视频和音频 | Dola 提示词优化 / 内置过脸 |
ld-sd2.5-v1 | 480p / 720p / 1080p | 4–30 秒 | 30 图 / 10 视频 / 10 音频 | 原生不卡脸 |
ld-sd2.5-v2 | 固定 720p | 固定 30 秒 | 9 图 / 不支持视频和音频 | 内置插件过脸 |
lg-sd2.5-v1 | 480p / 720p / 1080p | 4–30 秒 | 30 图 / 10 视频 / 10 音频 | 原生不卡脸 |
mf-sd2.5-v2 | 固定 720p | 4–29 秒 | 30 图 / 不支持视频 / 10 音频 | 原生过脸 |
qi-sd2.5-v1 | 固定 720p | 4–30 秒 | 30 图 / 10 视频 / 10 音频 | 原生不卡脸 |
wf-sd2.5-v2 | 固定 720p | 4–30 秒 | 30 图 / 10 视频 / 10 音频 | 原生过脸 |
wf-sd2.5-v5 | 固定 720p | 固定 30 秒 | 30 图 / 不支持视频 / 10 音频 | Dola,真人脸效果以接口实际结果为准 |
wf-sd2.5-v5-face | 固定 720p | 固定 30 秒 | 30 图 / 不支持视频 / 10 音频 | Dola / 内置插件过脸 |
当前公开的 11 个 Seedance 2.5 模型中,ld-sd2.5-v1 和 lg-sd2.5-v1 支持 480p/720p/1080p,其余固定为 720p。mf-sd2.5-v2 支持 4–29 秒,其余可变时长模型为 4–30 秒;ld-sd2.5-v2、hn-sd2.5-v2、wf-sd2.5-v5 和 wf-sd2.5-v5-face 固定 30 秒。素材上限和人脸处理见上表,按秒计费模型以账户价格和 /api/pricing 为准。
6.2 实际请求字段
| 字段 | 类型 | 必填 | 规则 |
|---|---|---|---|
model | string | 是 | 固定为上表列出的 11 个当前公开模型名之一 |
prompt | string | 是 | 视频提示词 |
seconds | string 或 number | 是 | ld-sd2.5-v2、hn-sd2.5-v2、wf-sd2.5-v5、wf-sd2.5-v5-face 只能为 30;mf-sd2.5-v2 为 4–29 的整数;其余模型为 4–30 的整数 |
resolution | string | 否 | ld-sd2.5-v1、lg-sd2.5-v1 只能为 480p、720p 或 1080p;其余模型固定 720p,不要发送 |
aspect_ratio | string | 否 | 按模型当前支持的画幅填写 |
image_urls | string[] | 否 | ld-sd2.5-v2 最多 9 张,其余模型最多 30 张 |
video_urls | string[] | 否 | dbb-sd2.5-v1、dbb-sd2.5-v2、ld-sd2.5-v1、lg-sd2.5-v1、qi-sd2.5-v1、wf-sd2.5-v2 最多 10 条;mf-sd2.5-v2、ld-sd2.5-v2、hn-sd2.5-v2、wf-sd2.5-v5、wf-sd2.5-v5-face 不支持 |
audio_urls | string[] | 否 | dbb-sd2.5-v1、dbb-sd2.5-v2、ld-sd2.5-v1、lg-sd2.5-v1、mf-sd2.5-v2、qi-sd2.5-v1、wf-sd2.5-v2、wf-sd2.5-v5、wf-sd2.5-v5-face 最多 10 条;ld-sd2.5-v2、hn-sd2.5-v2 不支持 |
client_task_id | string | 强烈建议 | 与 Idempotency-Key 使用同一稳定值 |
素材使用公网可访问的 HTTPS URL。兼容单素材字段 image_url、video_url、audio_url,也兼容旧客户端使用 duration 表示秒数;新客户端统一发送 seconds。
6.3 请求示例
json
{
"model": "wf-sd2.5-v2",
"client_task_id": "client_wf_seedance25_v2_xxx",
"prompt": "保持主体一致,镜头平稳向前推进,动作自然连贯",
"seconds": 10,
"resolution": "720p",
"aspect_ratio": "16:9",
"image_urls": [
"https://ai.lwaigc.cn/v1/assets/asset_xxx/content/asset_xxx.png?expires=<EXPIRES>&signature=<SIGNATURE>"
]
}7. HN Seedance 2.0
7.1 模型能力
model | 版本 | 分辨率 | 时长 | 素材数量 |
|---|---|---|---|---|
hn-sd2.0-v1 | Seedance 2.0 933 | 固定 720p | 4–15 秒 | 按当前接口校验 |
hn-sd官渠903-pro | 官渠 903 Pro | 固定 720p | 固定 15 秒 | 9 图 / 不支持视频 / 3 音频 |
两个模型均固定为 720p,不发送 resolution。hn-sd2.0-v1 使用 933 参数并支持原生过脸;hn-sd官渠903-pro 使用官渠 903 参数且不支持视频参考。
7.2 实际请求字段
| 字段 | 类型 | 必填 | 规则 |
|---|---|---|---|
model | string | 是 | 固定为 hn-sd2.0-v1 或 hn-sd官渠903-pro |
prompt | string | 是 | 视频提示词 |
seconds | string 或 number | 是 | hn-sd2.0-v1 为 4–15 的整数;hn-sd官渠903-pro 只能为 15 |
aspect_ratio | string | 否 | 按模型当前支持的画幅填写 |
image_urls / images_base64 | string[] | 否 | hn-sd官渠903-pro 最多 9 张;其余两个按当前接口校验 |
video_urls | string[] | 否 | hn-sd官渠903-pro 不支持;其余两个按当前接口校验 |
audio_urls / audios_base64 | string[] | 否 | hn-sd官渠903-pro 最多 3 条;其余两个按当前接口校验 |
client_task_id | string | 强烈建议 | 与 Idempotency-Key 使用同一稳定值 |
兼容单素材字段 image_url、video_url、audio_url,但不得向不支持对应素材类型的模型发送该字段。兼容旧客户端使用 duration 表示秒数;新客户端统一发送 seconds。
7.3 请求示例
json
{
"model": "hn-sd2.0-v1",
"client_task_id": "client_hn_903_xxx",
"prompt": "保持人物外观一致,镜头缓慢向前推进",
"seconds": 10,
"aspect_ratio": "16:9",
"image_urls": [
"https://ai.lwaigc.cn/v1/assets/asset_xxx/content/asset_xxx.png?expires=<EXPIRES>&signature=<SIGNATURE>"
]
}HN 系列任务完成后,查询响应会额外返回顶层 HTTPS video_url。客户端应保存并直接读取该地址;重复查询同一任务仍会返回结果地址。具体素材数量以当前接口校验结果为准,不要据此向 hn-sd2.0-v1 发送未验证的素材组合。
8. MiniMax H3
8.1 模型能力
model | 分辨率 | 时长 | 画幅 | 素材数量 |
|---|---|---|---|---|
MiniMax-H3 | 默认 2K | 5–15 秒 | 16:9、9:16、1:1 | 9 图 / 不支持视频 / 3 音频 |
模型名区分大小写,必须发送 MiniMax-H3。该模型默认输出 2K,不能发送 resolution 字段。
8.2 实际请求字段
| 字段 | 类型 | 必填 | 规则 |
|---|---|---|---|
model | string | 是 | 固定为 MiniMax-H3 |
prompt | string | 是 | 视频提示词 |
seconds | string 或 number | 是 | 5–15 的整数 |
aspect_ratio | string | 否 | 只能为 16:9、9:16、1:1 |
image_urls | string[] | 否 | 最多 9 张 |
audio_urls | string[] | 否 | 最多 3 条 |
client_task_id | string | 强烈建议 | 与 Idempotency-Key 使用同一稳定值 |
该模型不支持参考视频,不要发送 video_url 或 video_urls。兼容单素材字段 image_url、audio_url;兼容旧客户端使用 duration 表示秒数,但新客户端统一发送 seconds。
8.3 请求示例
json
{
"model": "MiniMax-H3",
"client_task_id": "client_minimax_h3_xxx",
"prompt": "镜头平缓向前推进,保持主体外观和背景结构稳定",
"seconds": 10,
"aspect_ratio": "16:9",
"image_urls": [
"https://ai.lwaigc.cn/v1/assets/asset_xxx/content/asset_xxx.png?expires=<EXPIRES>&signature=<SIGNATURE>"
]
}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。
图片请求断线与 HTTP 499
图片生成可能需要数分钟。若客户端在中转站已经把完整请求发送给上游、但上游尚未返回结果时主动断开连接,中转站会返回 499,错误码为 client_request_cancelled,并提示 upstream settlement is pending。499 表示客户端连接已关闭,不是上游返回的 HTTP 状态,也不等同于上游明确失败。
客户端应将请求超时设置为能够覆盖上游最长生成时间,建议不少于 10 分钟;同时为每次业务请求发送稳定的 Idempotency-Key。遇到 499 或连接中断时,使用相同的 Key、相同的请求体重试,不要更换 Key 重新创建,否则可能产生重复任务。
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,表示当前没有可信进度。
10.5 结果转存中
上游生成完成后,视频结果还会转存至中转站对象存储。在转存完成前,任务查询保持处理中状态;这不是任务失败,也不需要重新创建任务:
json
{
"id": "relay_video_xxx",
"task_id": "relay_video_xxx",
"status": "in_progress",
"relay_state": "polling",
"progress": 99,
"retry_after_ms": 6000
}客户端应按 retry_after_ms 继续查询任务,直到返回 completed。任务响应不会暴露上游结果地址、渠道信息或对象存储临时地址。
11. 视频播放和下载
仅在任务为 completed 后调用:
http
GET /v1/videos/{task_id}/content
Authorization: Bearer <API_KEY>兼容带文件名路由:
http
GET /v1/videos/{task_id}/content/video.mp4接口支持 GET、HEAD 和 Range。首次请求必须访问中转站 /content 地址并携带 Bearer;若返回 307,后续跳转到对象存储地址时不要继续携带 Bearer、Cookie 或 API Key。
安全下载流程:
text
1. GET/HEAD /v1/videos/{task_id}/content,携带 Bearer。
2. 如果返回 200/206,直接读取响应体。
3. 如果返回 307,读取 Location。
4. 对 Location 发起同方法请求;Range 请求必须保留 Range 头。
5. 对对象存储 Location 的请求不携带 Bearer、Cookie 或 API Key。
6. 不要把 Location 完整写入日志或长期保存。Range 示例:
http
GET /v1/videos/{task_id}/content
Authorization: Bearer <API_KEY>
Range: bytes=0-1023预期响应:
text
完整 GET:200 或 307 后 200
合法 Range:206
越界 Range:416,并返回 Content-Range: bytes */总大小
HEAD:200 或 307 后 200下载器应以最终响应的 Content-Type、Content-Length、Content-Range、ETag 为准。请求了非零 Range 但最终返回 200 时,表示服务器忽略 Range 或对象已变化,客户端应丢弃本地断点后从头覆盖下载,不能追加写入。
浏览器 <video> 标签不能直接携带 Bearer 时,业务后端应代理内容,或由前端使用带鉴权的 fetch 获取 Blob。不要把长期 API Key 放入公开网页。
11.1 浏览器预览
http
GET /v1/videos/{task_id}/preview
Authorization: Bearer <API_KEY>兼容带文件名路由:
http
GET /v1/videos/{task_id}/preview/video.mp4
Authorization: Bearer <API_KEY>/preview 只返回中转站已转存的视频结果,并支持 GET、HEAD 和 Range。结果尚未转存完成时返回 503、Retry-After: 5 和 result_storage_pending;按 Retry-After 重试预览或继续查询任务,不要重新创建视频任务。
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.1.1 素材上传 502:责任边界
素材上传不是插件单方面负责,插件和中转站都需要正确处理。责任边界如下:
| 问题 | 需要修复的位置 |
|---|---|
| 代理 60 秒左右中断上传 | 中转站入口代理 |
| multipart 请求体接收不完整 | Relay 应用 / 网关 |
| 应用 400 被转换成 502 | 中转站代理错误映射 |
| 上传超时后自动重试 | 插件 |
| 重试使用相同幂等键 | 插件 |
| 上传失败不重复创建视频任务 | 插件 |
| 本地文件占用、读取过程中被替换 | 插件 |
| 错误显示过于笼统 | 插件 |
| R2 写入真正失败 | 中转站 / R2 链路 |
中转站上传入口必须检查以下配置和处理逻辑:
text
client_max_body_size
client_body_timeout
proxy_send_timeout
proxy_read_timeout
proxy_request_buffering off
multipart 解析
400/502 错误映射应用与网关要区分返回原因,不能把所有错误都显示成 502:
text
400:请求体不完整或字段错误
413:文件过大
502:公网素材下载失败(download_failed),或网关将上游错误映射为 Bad Gateway
503:素材存储暂不可用(storage_unavailable)
504:R2 或上游处理超时12.1.2 素材上传 502:诊断结论
当客户端已经完成本地文件读取并调用 POST /v1/assets,而中转站返回 HTTP 502 时,问题位于素材上传链路,不是另一台设备读取本地图片失败。排查顺序如下:
- 客户端读取本地文件并计算摘要。
- 客户端调用
POST /v1/assets,multipart 字段使用file。 - 只有收到非
2xx响应时,客户端才显示“上传素材失败”;应同时记录中转站返回的error.code、error.message和request_id(不要记录真实签名 URL)。
在已经收到 HTTP 502 的前提下,可以先排除客户端本地路径无法读取、图片文件名包含中文、视频模型字段错误、R2 下载阶段和 /v1/videos 创建任务阶段。更可能的原因是:
- Relay 的素材服务或对象存储上游异常;
- R2 存储节点故障、权限错误或路由池中存在不可用节点;
- 反向代理上传超时、请求体限制或 multipart 解析失败;
- 网关返回 HTML/空响应,未按接口契约返回 JSON 错误。
如果多张不同素材同时返回 502,优先检查 Relay 上传服务、反向代理和 R2 路由,而不是单独判断某一张图片损坏。若只在大文件上失败,重点检查 client_max_body_size、client_body_timeout 和代理超时;若小文件也失败,重点检查上传服务、R2 节点健康状态、权限和错误日志。
插件侧对 502、503、504、429 及网络中断应使用同一个 Idempotency-Key 重试有限次数;重试仍失败时显示 Relay 的结构化错误。上传失败时不要创建视频任务,也不要换幂等键并行提交同一素材。
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 地址会被拒绝。
成功响应与 POST /v1/assets 相同,返回顶层 url。导入成功后,请使用返回的中转站签名 URL,不要继续把原始公网 URL传给视频模型。
12.3 素材 URL 规则
- 将返回的完整 HTTPS
url原样写入目标模型的 URL 素材字段。 - 有效签名 URL 可以直接读取,不需要携带 Bearer。
- 签名 URL 读取时可能返回
307跳转到对象存储;跳转后的请求不要携带 Bearer、Cookie 或 API Key。 HEAD、完整GET和 RangeGET都应被客户端支持。- 不要修改文件名、后缀、
expires或signature。 - 不要把真实签名 URL 写入公开日志或文档。
- 上传素材不会预扣视频生成费用;视频额度检查发生在创建视频任务时。
新上传素材默认返回带真实后缀的 V2 URL,后缀来自服务端文件内容检测。例如用户上传名为 reference.jpg、实际内容为 PNG 的文件,返回 URL 会以 .png 结尾。旧的无后缀签名 URL继续兼容。
支持的临时素材格式:
| 类型 | 支持格式 | URL 后缀 |
|---|---|---|
| 图片 | JPEG、PNG、WEBP、GIF | .jpg、.png、.webp、.gif |
| 音频 | MP3、WAV、M4A、AAC、OGG | .mp3、.wav、.m4a、.aac、.ogg |
| 视频 | MP4、WEBM、MOV、MKV | .mp4、.webm、.mov、.mkv |
12.4 兼容音频引用
音频引用接口保留,用于需要 reference_id 的旧客户端或模型链路:
http
POST /v1/media-references
Authorization: Bearer <API_KEY>
Idempotency-Key: audio_ref_xxx
Content-Type: multipart/form-datamultipart 字段:
| 字段 | 必填 | 说明 |
|---|---|---|
file | 是 | 单个音频文件 |
purpose | 否 | provider_audio_reference 或 sora_audio_reference |
project_id | 否 | 最长 128 字符 |
成功响应:
json
{
"reference_id": "mref_xxx",
"url": "https://ai.lwaigc.cn/v1/media-references/mref_xxx/content/mref_xxx.mp3?expires=<EXPIRES>&signature=<SIGNATURE>",
"expires_at": "2026-07-18T12:00:00Z",
"mime_type": "audio/mpeg",
"size": 123456,
"duration_ms": 8000,
"purpose": "provider_audio_reference",
"project_id": ""
}未过期的音频引用可以查询当前元数据和签名 URL:
http
GET /v1/media-references/{reference_id}
Authorization: Bearer <API_KEY>音频引用内容 URL 读取规则与 /v1/assets 相同:无需 Bearer,可能返回 307 到对象存储。
12.5 图片接口返回 URL 兼容
非流式图片接口仍使用原接口地址和请求字段,例如:
text
POST /v1/images/generations
POST /v1/images/edits当图片生成结果为 b64_json 且中转站成功持久化图片时,响应可能被改写为 data[].url:
json
{
"created": 1780000000,
"data": [
{
"url": "https://ai.lwaigc.cn/v1/assets/asset_xxx/content/asset_xxx.png?expires=<EXPIRES>&signature=<SIGNATURE>"
}
]
}因此图片客户端必须同时兼容 data[].url 和 data[].b64_json,不能只读取 b64_json。服务直接返回 URL 时,中转站保持 URL 形态,不保证所有图片结果都经过对象存储。完整请求字段见“图片模型接口”章节。
13. 常见错误
| HTTP | 典型错误 | 含义与处理 |
|---|---|---|
400 | invalid_request、unsupported_model、invalid_duration、invalid_resolution | 修正模型名或参数,不要原样无限重试 |
400 | reference_not_found、reference_download_timeout | 中转站会先自动切换素材读取路径并重试;最终仍返回且没有 task_id 时,重新上传素材并使用新的素材 URL 和新幂等键提交 |
401 | invalid_token | API Key 缺失、无效或过期 |
403 | 分组或模型访问权限不足 | 检查该 Key 的可见模型和分组权限 |
404 | not_found | 任务不存在或不属于当前账号 |
499 | client_request_cancelled | 客户端在请求已发送给上游后断开连接,结果仍待确认;提高客户端超时,使用相同 Idempotency-Key 和相同请求体重试,不要换 Key 重复创建 |
409 | idempotency_key_reused | 相同 key 被用于不同请求体 |
409 | idempotency_request_in_progress、submission_unknown | 原幂等请求仍在处理或提交状态待确认,继续查询或稍后重试同一请求 |
413 | file_too_large | 素材超过上传限制 |
429 | storage_quota_exceeded | 临时素材存储已满,复用已有素材或等待过期清理后重试 |
429 | upload_rate_limited | 素材上传请求过于频繁,按 Retry-After 稍后重试 |
429 | 额度或模型频率限制 | 按错误提示处理;不要仅凭 429 判断为上传频率限制 |
307 | Temporary Redirect | 媒体内容跳转到对象存储,按原方法继续请求且不要转发 Bearer |
416 | Range Not Satisfiable | Range 越界,按 Content-Range: bytes */总大小 修正断点 |
503 | result_storage_pending | 视频结果正在转存,按 Retry-After 继续查询任务或重试预览;不要重新创建视频任务 |
503 | result_storage_unavailable、storage_unavailable | 中转站或素材对象存储暂不可用,按 Retry-After 重试;不要重新创建视频任务 |
503 | model_not_found | 当前模型对该分组暂不可用;未返回 task_id 时任务未创建 |
504 | 上游或 R2 处理超时 | 保留原幂等键,稍后查询或重试原请求;先确认是否已经返回 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;如果返回307,跳转请求不携带 Bearer。- 创建响应丢失时,使用原幂等键重发完全相同的 POST。
failed后停止轮询,不要用同一任务 ID 继续下载。
媒体下载失败只重试下载请求,不要重新创建视频任务;否则可能导致重复生成和重复计费。
15. 计费说明
接口文档不写死价格。实际价格取决于平台当前模型定价、账号分组、时长和分辨率配置。调用方应以中转站价格页或服务方提供的价格表为准。
