# Kling 视频接口

接口地址：`https://openpix.cc`，也可使用本站兼容域名。API Key 需要选择「视频分组」。

当前按每次成功生成计费：**普通用户其余型号 0.07 元/次，SVIP 其余型号 0.06 元/次；Kling 2.6 动作控制均为 0.08 元/次**。每次请求生成一个视频，5 秒和 10 秒不重复按秒收费。当前通道为 720p，不支持请求 1080p、4K 或自定义分辨率。

| API 型号 | 功能 | 时长 | 音频 | 普通用户 | SVIP |
| --- | --- | --- | --- | --- | --- |
| `kling-v2.1` | 图生视频，必须上传一张首帧 | 5 / 10 秒 | 支持 | 0.07 元/次 | 0.06 元/次 |
| `kling-v2.6` | 文生视频、单首帧图生视频 | 5 / 10 秒 | 当前不支持 | 0.07 元/次 | 0.06 元/次 |
| `kling-v3.0` | 文生视频、单首帧、首尾帧 | 10 秒 | 当前不支持 | 0.07 元/次 | 0.06 元/次 |
| `kling-v4.0` | 文生视频、单首帧、首尾帧 | 5 秒 | 支持 | 0.07 元/次 | 0.06 元/次 |
| `kling-v4.0-flash` | 文生视频、单首帧 | 5 / 10 秒 | 支持 | 0.07 元/次 | 0.06 元/次 |
| `kling-v2.6-motion-control` | 一张角色图片＋一个动作参考视频 | 跟随参考视频，2.5–13 秒 | 默认保留参考视频原声 | 0.08 元/次 | 0.08 元/次 |

报价与能力可能更新，请同时查看本站模型广场。

当前本站可灵接口尚未开放 Omni 多参考图融合；单首帧、首尾帧与动作控制是不同用法，请按各型号支持的参数调用。

## 提交任务

`POST /v1/videos`，支持 JSON 和 `multipart/form-data`。鉴权头为 `Authorization: Bearer <本站 API Key>`。

```bash
curl https://openpix.cc/v1/videos \
  -H "Authorization: Bearer $SITE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling-v4.0-flash",
    "prompt": "一只红色纸船在平静水面缓慢漂动，自然光，固定镜头",
    "seconds": "5",
    "size": "1280x720",
    "audio": true
  }'
```

返回本站任务编号 `id`。保存该编号，后续查询和下载都使用它，不要因为生成需要等待而重复提交。

| 字段 | 说明 |
| --- | --- |
| `model` | 上表中的完整型号 |
| `prompt` | 必填，视频描述 |
| `seconds` / `duration` | 普通视频按型号传 5 或 10；3.0 默认为 10，其余默认为 5。动作控制的实际时长由参考视频决定 |
| `size` | `1280x720`、`720x1280` 或 `720x720` |
| `ratio` / `aspect_ratio` | 可代替 size，取 `16:9`、`9:16` 或 `1:1`。同时传入时必须一致 |
| `resolution` | 可选，只接受 `720p` |
| `audio` | 布尔值。2.6 和 3.0 不接受 true；支持音频的型号不另收音频费用 |
| `input_reference` / `image` / `first_frame_image` | 单张首帧，HTTPS URL 或图片 Data URL；multipart 可直接上传文件 |
| `last_frame_image` / `end_frame` | 只用于 3.0 / 4.0，必须同时有首帧 |
| `reference_video` / `video_url` / `motion_video` | 动作控制的参考视频，HTTPS URL、Data URL 或 multipart 文件 |
| `orientation` | 动作控制构图，`FULL`（默认，全身）或 `HALF`（上半身） |
| `keep_sound` | 动作控制是否保留原声，布尔值，默认 true |

图片支持 PNG/JPEG/WebP，接口也接受 GIF，单张最多 20MB。动作视频支持 MP4/WebM，网页选取文件最多 50MB。参考视频须为 2.5–13 秒，建议使用清楚可辨的人物动作。一个任务只对应一个视频，不能把多张首帧作为批量生成传入；首尾帧两张图仍对应一个视频。

参考 URL 必须是可公开访问的 HTTPS 地址，不接受内网地址、需要登录才能下载的地址或带账号密码的 URL。

## 图生视频：Kling 2.6，10 秒

```bash
curl https://openpix.cc/v1/videos \
  -H "Authorization: Bearer $SITE_API_KEY" \
  -F "model=kling-v2.6" \
  -F "prompt=镜头缓慢推进，保持主体与原图一致" \
  -F "seconds=10" \
  -F "size=1280x720" \
  -F "input_reference=@first.png;type=image/png"
```

## 首尾帧

使用 `kling-v3.0`（10 秒）或 `kling-v4.0`（5 秒），同时传 `input_reference` 和 `last_frame_image`。首尾帧与同型号单首帧同价：普通用户 0.07 元/次，SVIP 0.06 元/次。

```json
{
  "model": "kling-v4.0",
  "prompt": "从首帧自然过渡到尾帧，镜头稳定",
  "seconds": "5",
  "ratio": "16:9",
  "input_reference": "https://your-storage.example/first.png",
  "last_frame_image": "https://your-storage.example/last.png"
}
```

## 动作控制

```json
{
  "model": "kling-v2.6-motion-control",
  "prompt": "让图片中的角色自然复现参考视频的动作",
  "input_reference": "https://your-storage.example/character.png",
  "reference_video": "https://your-storage.example/motion.mp4",
  "orientation": "FULL",
  "keep_sound": true,
  "resolution": "720p"
}
```

动作控制不能同时传尾帧。不要用普通 `kling-v2.6` 型号传动作视频。网页会单列「Kling 2.6 · 动作控制」，时长显示为随参考视频。

## 查询任务

`GET /v1/videos/{id}`，使用提交任务时的同一个本站 API Key。

```bash
curl "https://openpix.cc/v1/videos/$TASK_ID" \
  -H "Authorization: Bearer $SITE_API_KEY"
```

状态通常为 `queued`、`in_progress`、`completed` 或 `failed`。建议间隔 5–10 秒查询；排队、重试或人工核实阶段可能持续更久。客户端超时并不代表任务失败，应继续查询原编号。

若提交返回 HTTP 409 且含 `submission_unconfirmed` 和 `data.task_id`，保存该编号并核对原任务，不要重新生成。任务编号不存在或不属于当前账号时，本站可能返回 HTTP 400、`task_not_exist`。

## 下载结果

完成后通过 `GET /v1/videos/{id}/content` 下载，支持 `HEAD` 和单段字节 `Range`。该地址需要本站 Key 鉴权。

```bash
curl "https://openpix.cc/v1/videos/$TASK_ID/content" \
  -H "Authorization: Bearer $SITE_API_KEY" \
  -o output.mp4
```

客户拿到的是本站任务编号和本站内容地址。不要把服务端 Key 写入网页代码或 URL 参数；浏览器播放请使用本站创作台，或由自己的后端携带 Key 下载后交付给前端。

## 常见错误

- 参数、分辨率、时长或参考文件不符合该型号要求：HTTP 400 / 422，修改参数后再提交。
- Key 无效、撤销或没有该分组权限：核对本站 Key 与视频分组。
- 正在排队或生成：查询原任务，不重复提交。
- 内容检查未通过或生成失败：根据公开错误调整内容，最终扣费以本站消费记录为准。
- 生成完成但暂时下载失败：重试读取原任务的内容地址，不能再次提交生成请求。
