外观
Kling
可灵视频模型,适合表现力强的运动、主体控制与创意短片。
API 接口
| 操作 | 端点 | 模式 |
|---|---|---|
| 视频生成任务 | POST /v1/async/videos/generations | 仅异步 |
模型
| 模型 id | 说明 |
|---|---|
kling-3.0-turbo | 文生视频 / 图生视频(仅首帧)。seconds:3–15。 |
kling-v3 | 文生视频 / 图生视频。seconds:3–15。 |
kling-v3-omni | 文生视频 / 图生视频,支持更丰富的 providerOptions(video_list、image_with_roles 等)。 |
价格
按 n × seconds × 单价(resolution) 计费。默认 720p。
| 模型 | 720p | 1080p |
|---|---|---|
kling-3.0-turbo | 12/秒 | 15/秒 |
kling-v3 | 11/秒 | 14/秒 |
kling-v3(audio: false) | 9/秒 | 12/秒 |
kling-v3-omni | 9/秒 | 12/秒 |
kling-v3-omni(带参考视频 video_list) | 11/秒 | 14/秒 |
顶层 resolution 直接选择质量档位。
请求字段
通用字段放在请求体一级,下面列出的模型专用参数放进 providerOptions。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | kling-3.0-turbo, kling-v3, kling-v3-omni |
prompt | string | 是 | 描述主体、动作、镜头运动与风格;Pixapi 支持 1–2,000 字符。 |
seconds | integer | 是 | 3–15 秒的整数,必须明确填写。 |
resolution | string | 否 | 720p / 1080p. Pixapi 默认:720p。 |
n | integer | 否 | 默认 1,只支持整数 1。 |
image | string / string[] | 否 | Turbo:一张首帧;V3:一张首帧或两张首尾帧;Omni:提示词用 <<<image_1>>>、<<<image_2>>> 引用参考图。Turbo 输入:JPEG/PNG ≤50 MB,宽高 ≥300px,比例 1:2.5–2.5:1。 |
providerOptions | object | 否 | 模型专用选项,详见下表。 |
providerOptions
本表所有字段都写在 providerOptions 内,不要与 model 并列。
| 字段 | 类型 | 说明 |
|---|---|---|
aspect_ratio | string | 16:9, 9:16, 1:1. 默认 16:9;图生视频按输入图比例。 |
audio | boolean | 仅 V3/Omni,默认 false,生成原生声音;Omni 不与 video_list 同传。 |
negative_prompt | string | V3/Omni:不希望出现的内容;Omni 最多 2,500 字符。 |
image_with_roles | object[] | Omni:{url,role},role 为 first_frame、last_frame、reference;不与一级 image 同传。 |
video_list | object[] | 仅 Omni,最多一个 {video_url,refer_type,keep_original_sound}。refer_type 为 base(编辑,默认)或 feature(参考);声音为 no(默认)或 yes。base 视频 3–10 秒,不能指定首尾帧,输出跟随源时长。feature:MP4/MOV、≥3秒、720–2160px、24–60fps、≤200MB。 |
multi_shot | boolean | V3/Omni:启用多镜头,默认 false。 |
shot_type | string | V3/Omni:customize/intelligence;multi_shot=true 时必填。 |
multi_prompt | object[] | V3/Omni 自定义分镜:1–6 个 {index,prompt,duration},序号从 1 开始,每段 ≥1 秒,时长之和等于一级 seconds,每段提示词 ≤512 字符。 |
element_list | object[] | V3/Omni:最多 3 个主体,每个包含 name、description、element_input_urls(2–4 张图),提示词用 @name 引用。 |
watermark | boolean | 是否添加 AI 可见水印,默认 false。 |
nsfw_check | boolean | 是否审核提示词和图片,默认 false。 |
输入规则
Pixapi 仅支持 720p/1080p,使用一级 resolution 与 seconds。
示例
bash
curl https://api.pixapi.ai/v1/async/videos/generations \
-H "Authorization: Bearer $PIXAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-3.0-turbo",
"prompt": "干净影棚转盘上的产品旋转镜头",
"n": 1,
"seconds": 5,
"resolution": "720p",
"providerOptions": {
"aspect_ratio": "16:9"
}
}'py
import os
import requests
response = requests.post(
"https://api.pixapi.ai/v1/async/videos/generations",
headers={
"Authorization": f"Bearer {os.environ['PIXAPI_KEY']}",
"Content-Type": "application/json",
},
json={
"model": "kling-3.0-turbo",
"prompt": "干净影棚转盘上的产品旋转镜头",
"n": 1,
"seconds": 5,
"resolution": "720p",
"providerOptions": {
"aspect_ratio": "16:9"
}
},
)
response.raise_for_status()
task = response.json()
print(task["id"])js
const response = await fetch('https://api.pixapi.ai/v1/async/videos/generations', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.PIXAPI_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"model": "kling-3.0-turbo",
"prompt": "干净影棚转盘上的产品旋转镜头",
"n": 1,
"seconds": 5,
"resolution": "720p",
"providerOptions": {
"aspect_ratio": "16:9"
}
}),
});
if (!response.ok) {
throw new Error(await response.text());
}
const task = await response.json();
console.log(task.id);go
package main
import (
"bytes"
"fmt"
"io"
"net/http"
"os"
)
func main() {
body := []byte(`{
"model": "kling-3.0-turbo",
"prompt": "干净影棚转盘上的产品旋转镜头",
"n": 1,
"seconds": 5,
"resolution": "720p",
"providerOptions": {
"aspect_ratio": "16:9"
}
}`)
req, err := http.NewRequest(
"POST",
"https://api.pixapi.ai/v1/async/videos/generations",
bytes.NewBuffer(body),
)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("PIXAPI_KEY"))
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
result, _ := io.ReadAll(resp.Body)
fmt.Println(string(result))
}响应
返回已提交任务。轮询 GET /v1/tasks/{id} 获取结果。
