# Wan 视频

用 POST /v1/videos 调用 wan3.0-video 和 wan3.0-video-prime。请求使用 JSON，字段放在顶层。

Wan 3.0 使用异步任务接口。创建请求返回任务对象，不直接返回视频文件。

```http
POST /v1/videos
```

查询和下载：

```http
GET /v1/videos/{task_id}
GET /v1/videos/{task_id}/content
```

请求体是 JSON。字段都放在顶层，不要包进 `metadata`。`images`、`videos` 和 `audio` 只接受公网可直接访问的 `http` 或 `https` URL，不支持 base64，也不支持 data URI。链接在任务完成前不能过期。

调用前用 `GET /v1/models` 确认当前 API Key 能看到对应模型。

## 模型

| 模型 ID | 说明 |
| --- | --- |
| `wan3.0-video` | Wan3 标准版 |
| `wan3.0-video-prime` | Wan3 Prime 版 |

## 参数

| 参数 | 取值 |
| --- | --- |
| `mode` | `text2video`（文生）或 `reference`（参考素材）。不支持 `image2video`。要用图片做素材，请用 `reference` |
| `duration` | 2–30 的整数秒，默认 5。不支持智能时长。超出范围直接返回错误，不会截断后继续计费 |
| `resolution` | `480p`、`720p`、`1080p`，默认 `720p`。不支持 `4k` |
| `aspect_ratio` | 默认 `16:9`。可用 `16:9`、`9:16`、`1:1`、`3:4` |
| `prompt` | 必填，最多 5000 字符。用「图片1」「视频1」「音频1」指代素材，编号按该类素材在数组里的顺序 |
| `images` / `videos` / `audio` | 仅 `reference` 使用，至少传 1 个。图片最多 10 张，视频最多 5 条，音频最多 5 条。只支持 URL，不支持 base64 |
| `generate_audio` | 成片是否带声音，默认 `true`。这是输出开关，不是参考音频。设为 `false` 时，部分模型或模式会返回 400，改回 `true` 即可 |
| `face_check` | 不用传 |

## 文生视频

```bash
curl https://kaienapi.com/v1/videos \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan3.0-video",
    "prompt": "清晨的海面，海鸥掠过浪花，镜头保持不动",
    "mode": "text2video",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "16:9"
  }'
```

Prime 版把 `model` 改为 `wan3.0-video-prime`。

## 参考素材

```bash
curl https://kaienapi.com/v1/videos \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan3.0-video-prime",
    "prompt": "图片1里的猫轻微转头，动作参考视频1",
    "mode": "reference",
    "duration": 5,
    "resolution": "1080p",
    "aspect_ratio": "9:16",
    "images": [
      "https://example.com/cat.jpg"
    ],
    "videos": [
      "https://example.com/motion.mp4"
    ]
  }'
```

只有图片时去掉 `videos`。只有参考视频时去掉 `images`。参考音频放在 `audio`，并在 `prompt` 里写成「音频1」。

## 查询任务

创建成功后保存 `id`，每 3–5 秒查询一次，直到 `completed` 或 `failed`：

```bash
curl "https://kaienapi.com/v1/videos/$TASK_ID" \
  -H "Authorization: Bearer <YOUR_API_KEY>"
```

完成后读取 `url` 播放或下载。这个地址才是结果文件。响应里的 `cost` 不是本站账单，扣费以控制台用量为准。失败时读取 `error.message`。

也可以下载视频二进制：

```bash
curl "https://kaienapi.com/v1/videos/$TASK_ID/content" \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  --output result.mp4
```

## 价格

按输出秒数计费。单位是元/秒，随 API Key 的 `standard` 或 `stable` 分组变化。

| 模型 | 分辨率 | `standard` | `stable` |
| --- | --- | ---: | ---: |
| `wan3.0-video` | 480p / 720p / 1080p | 0.30 / 0.60 / 1.20 | 0.43 / 0.86 / 1.71 |
| `wan3.0-video-prime` | 480p / 720p / 1080p | 0.32 / 0.63 / 1.26 | 0.45 / 0.90 / 1.80 |

控制台模型页的价格与账单不一致时，以账单为准。
