Kling Image-to-Video
curl --request POST \
--url https://api.aiid.edu.kg/kling/v1/videos/image2video \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "kling-v1",
"prompt": "人物转身走开",
"image": "https://example.com/image.jpg",
"duration": 5,
"width": 1280,
"height": 720
}
'import requests
url = "https://api.aiid.edu.kg/kling/v1/videos/image2video"
payload = {
"model": "kling-v1",
"prompt": "人物转身走开",
"image": "https://example.com/image.jpg",
"duration": 5,
"width": 1280,
"height": 720
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'kling-v1',
prompt: '人物转身走开',
image: 'https://example.com/image.jpg',
duration: 5,
width: 1280,
height: 720
})
};
fetch('https://api.aiid.edu.kg/kling/v1/videos/image2video', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aiid.edu.kg/kling/v1/videos/image2video",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'kling-v1',
'prompt' => '人物转身走开',
'image' => 'https://example.com/image.jpg',
'duration' => 5,
'width' => 1280,
'height' => 720
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aiid.edu.kg/kling/v1/videos/image2video"
payload := strings.NewReader("{\n \"model\": \"kling-v1\",\n \"prompt\": \"人物转身走开\",\n \"image\": \"https://example.com/image.jpg\",\n \"duration\": 5,\n \"width\": 1280,\n \"height\": 720\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aiid.edu.kg/kling/v1/videos/image2video")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"kling-v1\",\n \"prompt\": \"人物转身走开\",\n \"image\": \"https://example.com/image.jpg\",\n \"duration\": 5,\n \"width\": 1280,\n \"height\": 720\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aiid.edu.kg/kling/v1/videos/image2video")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"kling-v1\",\n \"prompt\": \"人物转身走开\",\n \"image\": \"https://example.com/image.jpg\",\n \"duration\": 5,\n \"width\": 1280,\n \"height\": 720\n}"
response = http.request(request)
puts response.read_body{
"task_id": "abcd1234efgh",
"status": "queued"
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}Video generation Kling format
Kling Image-to-Video
This series supports OpenAI video generation formats (see the link Video generation Sora compatible formats).
Use the Kling model to generate videos from images.
Supports passing image URLs or Base64-encoded image data via the image parameter.
POST
/
kling
/
v1
/
videos
/
image2video
Kling Image-to-Video
curl --request POST \
--url https://api.aiid.edu.kg/kling/v1/videos/image2video \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "kling-v1",
"prompt": "人物转身走开",
"image": "https://example.com/image.jpg",
"duration": 5,
"width": 1280,
"height": 720
}
'import requests
url = "https://api.aiid.edu.kg/kling/v1/videos/image2video"
payload = {
"model": "kling-v1",
"prompt": "人物转身走开",
"image": "https://example.com/image.jpg",
"duration": 5,
"width": 1280,
"height": 720
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'kling-v1',
prompt: '人物转身走开',
image: 'https://example.com/image.jpg',
duration: 5,
width: 1280,
height: 720
})
};
fetch('https://api.aiid.edu.kg/kling/v1/videos/image2video', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aiid.edu.kg/kling/v1/videos/image2video",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'kling-v1',
'prompt' => '人物转身走开',
'image' => 'https://example.com/image.jpg',
'duration' => 5,
'width' => 1280,
'height' => 720
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aiid.edu.kg/kling/v1/videos/image2video"
payload := strings.NewReader("{\n \"model\": \"kling-v1\",\n \"prompt\": \"人物转身走开\",\n \"image\": \"https://example.com/image.jpg\",\n \"duration\": 5,\n \"width\": 1280,\n \"height\": 720\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aiid.edu.kg/kling/v1/videos/image2video")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"kling-v1\",\n \"prompt\": \"人物转身走开\",\n \"image\": \"https://example.com/image.jpg\",\n \"duration\": 5,\n \"width\": 1280,\n \"height\": 720\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aiid.edu.kg/kling/v1/videos/image2video")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"kling-v1\",\n \"prompt\": \"人物转身走开\",\n \"image\": \"https://example.com/image.jpg\",\n \"duration\": 5,\n \"width\": 1280,\n \"height\": 720\n}"
response = http.request(request)
puts response.read_body{
"task_id": "abcd1234efgh",
"status": "queued"
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}Authorizations
Use Bearer Token authentication.
Format: Authorization: Bearer sk-xxxxxx
Body
application/json
Video generation request
Model/Style ID
Example:
"kling-v1"
Text description prompt
Example:
"宇航员站起身走了"
Image Input (URL or Base64)
Example:
"https://example.com/image.jpg"
Video duration (seconds)
Example:
5
Video width
Example:
1280
Video height
Example:
720
Video Frame Rate
Example:
30
Random Seed
Example:
20231234
Number of videos generated
Example:
1
Response Format
Example:
"url"
User ID
Example:
"user-1234"
Extended parameters (such as negative_prompt, style, quality_level, etc.)
