curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling_v3_omni",
"params": {
"prompt": "一只金毛犬在阳光沙滩上奔跑,电影感,自然光",
"type": "all_reference",
"resolution": "720p",
"aspect_ratio": "16:9",
"video_length": 5,
"generate_audio": false
},
"out_task_id": "kling_v3_omni_t2v_123456"
}'
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling_v3_omni",
"params": {
"prompt": "人物缓缓转头微笑,镜头轻微推进",
"type": "first_last_frame",
"image_url": [
"https://example.com/first-frame.jpg",
"https://example.com/last-frame.jpg"
],
"resolution": "1080p",
"video_length": 5
},
"out_task_id": "kling_v3_omni_frames_123456"
}'
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling_v3_omni",
"params": {
"prompt": "保持参考视频的主体和运镜,光线更干净",
"type": "all_reference",
"video_url": ["https://example.com/reference.mp4"],
"refer_type": "feature",
"resolution": "720p",
"video_length": 3
},
"out_task_id": "kling_v3_omni_feature_123456"
}'
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling_v3_omni",
"params": {
"prompt": "保持同一场景,光线稍亮",
"type": "all_reference",
"video_url": ["https://example.com/source.mp4"],
"refer_type": "base",
"resolution": "720p",
"keep_original_sound": false
},
"out_task_id": "kling_v3_omni_base_123456"
}'
import requests
url = "https://aireiter.com/api/openapi/submit"
payload = {
"model": "kling_v3_omni",
"params": {
"prompt": "一只金毛犬在阳光沙滩上奔跑,电影感,自然光",
"type": "all_reference",
"resolution": "720p",
"aspect_ratio": "16:9",
"video_length": 5,
"generate_audio": False
},
"out_task_id": "kling_v3_omni_t2v_123456"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://aireiter.com/api/openapi/submit";
const payload = {
model: "kling_v3_omni",
params: {
prompt: "一只金毛犬在阳光沙滩上奔跑,电影感,自然光",
type: "all_reference",
resolution: "720p",
aspect_ratio: "16:9",
video_length: 5,
generate_audio: false
},
out_task_id: "kling_v3_omni_t2v_123456"
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://aireiter.com/api/openapi/submit"
payload := map[string]interface{}{
"model": "kling_v3_omni",
"params": map[string]interface{}{
"prompt": "一只金毛犬在阳光沙滩上奔跑,电影感,自然光",
"type": "all_reference",
"resolution": "720p",
"aspect_ratio": "16:9",
"video_length": 5,
"generate_audio": false,
},
"out_task_id": "kling_v3_omni_t2v_123456",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://aireiter.com/api/openapi/submit";
String payload = """
{
"model": "kling_v3_omni",
"params": {
"prompt": "一只金毛犬在阳光沙滩上奔跑,电影感,自然光",
"type": "all_reference",
"resolution": "720p",
"aspect_ratio": "16:9",
"video_length": 5,
"generate_audio": false
},
"out_task_id": "kling_v3_omni_t2v_123456"
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = "https://aireiter.com/api/openapi/submit";
$payload = [
"model" => "kling_v3_omni",
"params" => [
"prompt" => "一只金毛犬在阳光沙滩上奔跑,电影感,自然光",
"type" => "all_reference",
"resolution" => "720p",
"aspect_ratio" => "16:9",
"video_length" => 5,
"generate_audio" => false
],
"out_task_id" => "kling_v3_omni_t2v_123456"
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
{
"statusCode": 200,
"message": "",
"data": {
"out_task_id": "kling_v3_omni_t2v_123456",
"status": "pending",
"created_at": "2026-08-28T06:03:28.242Z"
}
}
{
"statusCode": 400,
"message": "请求参数无效",
"ok": false
}
{
"error": {
"code": 401,
"message": "身份验证失败,请检查您的API密钥"
}
}
{
"error": {
"code": 433,
"message": "账户余额不足,请充值后再试"
}
}
{
"error": {
"code": 500,
"message": "服务器内部错误,请稍后重试"
}
}
Kling v3 Omni
Kling v3 Omni 视频生成
- 快手 Kling v3 Omni,也常被称为 Kling O3
- 异步处理模式,返回任务 ID 用于后续查询
- 支持文本/参考、首尾帧两种生成模式
- 支持 720p / 1080p / 4K,视频时长 3-15 秒,可选原生音轨和参考视频
POST
/
api
/
openapi
/
submit
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling_v3_omni",
"params": {
"prompt": "一只金毛犬在阳光沙滩上奔跑,电影感,自然光",
"type": "all_reference",
"resolution": "720p",
"aspect_ratio": "16:9",
"video_length": 5,
"generate_audio": false
},
"out_task_id": "kling_v3_omni_t2v_123456"
}'
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling_v3_omni",
"params": {
"prompt": "人物缓缓转头微笑,镜头轻微推进",
"type": "first_last_frame",
"image_url": [
"https://example.com/first-frame.jpg",
"https://example.com/last-frame.jpg"
],
"resolution": "1080p",
"video_length": 5
},
"out_task_id": "kling_v3_omni_frames_123456"
}'
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling_v3_omni",
"params": {
"prompt": "保持参考视频的主体和运镜,光线更干净",
"type": "all_reference",
"video_url": ["https://example.com/reference.mp4"],
"refer_type": "feature",
"resolution": "720p",
"video_length": 3
},
"out_task_id": "kling_v3_omni_feature_123456"
}'
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling_v3_omni",
"params": {
"prompt": "保持同一场景,光线稍亮",
"type": "all_reference",
"video_url": ["https://example.com/source.mp4"],
"refer_type": "base",
"resolution": "720p",
"keep_original_sound": false
},
"out_task_id": "kling_v3_omni_base_123456"
}'
import requests
url = "https://aireiter.com/api/openapi/submit"
payload = {
"model": "kling_v3_omni",
"params": {
"prompt": "一只金毛犬在阳光沙滩上奔跑,电影感,自然光",
"type": "all_reference",
"resolution": "720p",
"aspect_ratio": "16:9",
"video_length": 5,
"generate_audio": False
},
"out_task_id": "kling_v3_omni_t2v_123456"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://aireiter.com/api/openapi/submit";
const payload = {
model: "kling_v3_omni",
params: {
prompt: "一只金毛犬在阳光沙滩上奔跑,电影感,自然光",
type: "all_reference",
resolution: "720p",
aspect_ratio: "16:9",
video_length: 5,
generate_audio: false
},
out_task_id: "kling_v3_omni_t2v_123456"
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://aireiter.com/api/openapi/submit"
payload := map[string]interface{}{
"model": "kling_v3_omni",
"params": map[string]interface{}{
"prompt": "一只金毛犬在阳光沙滩上奔跑,电影感,自然光",
"type": "all_reference",
"resolution": "720p",
"aspect_ratio": "16:9",
"video_length": 5,
"generate_audio": false,
},
"out_task_id": "kling_v3_omni_t2v_123456",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://aireiter.com/api/openapi/submit";
String payload = """
{
"model": "kling_v3_omni",
"params": {
"prompt": "一只金毛犬在阳光沙滩上奔跑,电影感,自然光",
"type": "all_reference",
"resolution": "720p",
"aspect_ratio": "16:9",
"video_length": 5,
"generate_audio": false
},
"out_task_id": "kling_v3_omni_t2v_123456"
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = "https://aireiter.com/api/openapi/submit";
$payload = [
"model" => "kling_v3_omni",
"params" => [
"prompt" => "一只金毛犬在阳光沙滩上奔跑,电影感,自然光",
"type" => "all_reference",
"resolution" => "720p",
"aspect_ratio" => "16:9",
"video_length" => 5,
"generate_audio" => false
],
"out_task_id" => "kling_v3_omni_t2v_123456"
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
{
"statusCode": 200,
"message": "",
"data": {
"out_task_id": "kling_v3_omni_t2v_123456",
"status": "pending",
"created_at": "2026-08-28T06:03:28.242Z"
}
}
{
"statusCode": 400,
"message": "请求参数无效",
"ok": false
}
{
"error": {
"code": 401,
"message": "身份验证失败,请检查您的API密钥"
}
}
{
"error": {
"code": 433,
"message": "账户余额不足,请充值后再试"
}
}
{
"error": {
"code": 500,
"message": "服务器内部错误,请稍后重试"
}
}
Kling v3 Omni 在 AIReiter 中的模型名称为
kling_v3_omni。该模型也常被搜索为 Kling O3。Authorizations
string
必填
所有接口均需要使用 Bearer Token 进行认证。获取 API Key:访问 API Key 管理页面 获取您的 API Key。使用时在请求头中添加:
Authorization: Bearer YOUR_API_KEY
Body
string
必填
模型名称,固定使用:
kling_v3_omni
object
必填
模型参数对象。
显示 params 对象属性
显示 params 对象属性
string
必填
视频生成的文本描述。必填。参考图可在提示词中用
<<<image_1>>>、<<<image_2>>> 按顺序指代 image_url 中的图片。已传图片但未写引用时,系统会自动在提示词前补上 <<<image_1>>>。string
负面提示词,用于排除不想出现的内容。最多 2500 个字符。
string
默认值:"all_reference"
生成模式。同一请求不能混用:
all_reference- 文本/参考。可用提示词,可选最多 7 张参考图和 1 段参考视频first_last_frame- 首尾帧。首帧必填,尾帧可选
首尾帧不能与参考图片或参考视频出现在同一次请求中。
integer
默认值:"5"
生成视频时长,单位为秒。支持整数
3 到 15。all_reference且未传参考视频、或refer_type=feature:输出时长跟随该字段refer_type=base:输出时长跟随上传视频,请勿依赖该字段
string
默认值:"720p"
输出分辨率:
720p- 默认值1080p4K
string
默认值:"16:9"
视频宽高比。有首帧或参考视频时由素材决定,该字段会被忽略。
16:9- 横屏,默认值9:16- 竖屏1:1- 方形
boolean
默认值:"false"
是否生成原生音轨。
false- 不生成,默认值true- 生成音轨
传入
video_url 时该参数会被忽略,不能与参考视频同时使用。string | string[]
图片 URL,必须可由公网直接访问。
all_reference- 可选参考图,最多 7 张first_last_frame- 第一张为首帧(必填),第二张为尾帧(可选)
string
尾帧图片 URL。仅
first_last_frame 模式有效。也可以将尾帧作为 image_url 数组的第二张图片传入。仅有尾帧、没有首帧会报错。string | string[]
参考视频 URL。仅
all_reference 模式有效,最多 1 段。视频要求:- 格式 MP4、MOV
- 时长 3-10 秒
- 不超过 200MB
- 短边不小于 720px
first_last_frame 请勿传入此参数。请确保 URL 可公开访问,并且视频时长元数据可读取。string
默认值:"feature"
参考视频用法,仅在传入
video_url 时生效:feature- 把上传视频当作风格或动作参考,输出时长跟随video_lengthbase- 按上传视频做编辑,输出时长跟随片源,忽略video_length
boolean
默认值:"false"
是否保留参考视频原声。仅在传入
video_url 时生效。false- 不保留,默认值true- 保留原片音轨
boolean
默认值:"false"
是否在成片中添加水印。默认
false。boolean
默认值:"false"
是否启用多镜头。为
true 时由模型按提示词自动分镜。string
必填
发起方任务 ID。用户自定义的任务标识,必填。仅支持字母、数字、下划线和横线,长度为 1-64 个字符。后续可使用该 ID 查询任务状态和结果。
Response
string
发起方任务 ID,可用于查询结果。
string
初始状态,通常为
"pending"。string
创建时间,ISO 格式。
Query Task
Kling v3 Omni 是异步视频生成模型。提交任务后,请使用out_task_id 查询任务状态。
string
必填
提交任务时传入的发起方任务 ID。
curl --request POST \
--url https://aireiter.com/api/openapi/query \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"out_task_id": "kling_v3_omni_t2v_123456"
}'
output 数组会包含生成的视频,元素含 video 字段。
模式参数对照
type / 参考视频 | 必需素材 | 时长 |
|---|---|---|
all_reference,无 video_url | prompt | video_length 3-15 秒 |
all_reference,refer_type=feature | prompt、video_url | 输出跟随 video_length |
all_reference,refer_type=base | prompt、video_url | 输出跟随上传视频 3-10 秒 |
first_last_frame | prompt、首帧 image_url | video_length 3-15 秒 |
Request Examples
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling_v3_omni",
"params": {
"prompt": "一只金毛犬在阳光沙滩上奔跑,电影感,自然光",
"type": "all_reference",
"resolution": "720p",
"aspect_ratio": "16:9",
"video_length": 5,
"generate_audio": false
},
"out_task_id": "kling_v3_omni_t2v_123456"
}'
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling_v3_omni",
"params": {
"prompt": "人物缓缓转头微笑,镜头轻微推进",
"type": "first_last_frame",
"image_url": [
"https://example.com/first-frame.jpg",
"https://example.com/last-frame.jpg"
],
"resolution": "1080p",
"video_length": 5
},
"out_task_id": "kling_v3_omni_frames_123456"
}'
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling_v3_omni",
"params": {
"prompt": "保持参考视频的主体和运镜,光线更干净",
"type": "all_reference",
"video_url": ["https://example.com/reference.mp4"],
"refer_type": "feature",
"resolution": "720p",
"video_length": 3
},
"out_task_id": "kling_v3_omni_feature_123456"
}'
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling_v3_omni",
"params": {
"prompt": "保持同一场景,光线稍亮",
"type": "all_reference",
"video_url": ["https://example.com/source.mp4"],
"refer_type": "base",
"resolution": "720p",
"keep_original_sound": false
},
"out_task_id": "kling_v3_omni_base_123456"
}'
import requests
url = "https://aireiter.com/api/openapi/submit"
payload = {
"model": "kling_v3_omni",
"params": {
"prompt": "一只金毛犬在阳光沙滩上奔跑,电影感,自然光",
"type": "all_reference",
"resolution": "720p",
"aspect_ratio": "16:9",
"video_length": 5,
"generate_audio": False
},
"out_task_id": "kling_v3_omni_t2v_123456"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://aireiter.com/api/openapi/submit";
const payload = {
model: "kling_v3_omni",
params: {
prompt: "一只金毛犬在阳光沙滩上奔跑,电影感,自然光",
type: "all_reference",
resolution: "720p",
aspect_ratio: "16:9",
video_length: 5,
generate_audio: false
},
out_task_id: "kling_v3_omni_t2v_123456"
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://aireiter.com/api/openapi/submit"
payload := map[string]interface{}{
"model": "kling_v3_omni",
"params": map[string]interface{}{
"prompt": "一只金毛犬在阳光沙滩上奔跑,电影感,自然光",
"type": "all_reference",
"resolution": "720p",
"aspect_ratio": "16:9",
"video_length": 5,
"generate_audio": false,
},
"out_task_id": "kling_v3_omni_t2v_123456",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://aireiter.com/api/openapi/submit";
String payload = """
{
"model": "kling_v3_omni",
"params": {
"prompt": "一只金毛犬在阳光沙滩上奔跑,电影感,自然光",
"type": "all_reference",
"resolution": "720p",
"aspect_ratio": "16:9",
"video_length": 5,
"generate_audio": false
},
"out_task_id": "kling_v3_omni_t2v_123456"
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = "https://aireiter.com/api/openapi/submit";
$payload = [
"model" => "kling_v3_omni",
"params" => [
"prompt" => "一只金毛犬在阳光沙滩上奔跑,电影感,自然光",
"type" => "all_reference",
"resolution" => "720p",
"aspect_ratio" => "16:9",
"video_length" => 5,
"generate_audio" => false
],
"out_task_id" => "kling_v3_omni_t2v_123456"
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
{
"statusCode": 200,
"message": "",
"data": {
"out_task_id": "kling_v3_omni_t2v_123456",
"status": "pending",
"created_at": "2026-08-28T06:03:28.242Z"
}
}
{
"statusCode": 400,
"message": "请求参数无效",
"ok": false
}
{
"error": {
"code": 401,
"message": "身份验证失败,请检查您的API密钥"
}
}
{
"error": {
"code": 433,
"message": "账户余额不足,请充值后再试"
}
}
{
"error": {
"code": 500,
"message": "服务器内部错误,请稍后重试"
}
}