Submit Kling 2.6 Motion Control Task
curl --request POST \
--url https://api.poyo.ai/api/generate/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "kling-2.6-motion-control",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "The cartoon character is dancing gracefully in a studio",
"image_urls": [
"https://example.com/character-image.jpg"
],
"video_urls": [
"https://example.com/dance-reference.mp4"
],
"character_orientation": "video",
"resolution": "1080p"
}
}
'import requests
url = "https://api.poyo.ai/api/generate/submit"
payload = {
"model": "kling-2.6-motion-control",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "The cartoon character is dancing gracefully in a studio",
"image_urls": ["https://example.com/character-image.jpg"],
"video_urls": ["https://example.com/dance-reference.mp4"],
"character_orientation": "video",
"resolution": "1080p"
}
}
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-2.6-motion-control',
callback_url: 'https://your-domain.com/callback',
input: {
prompt: 'The cartoon character is dancing gracefully in a studio',
image_urls: ['https://example.com/character-image.jpg'],
video_urls: ['https://example.com/dance-reference.mp4'],
character_orientation: 'video',
resolution: '1080p'
}
})
};
fetch('https://api.poyo.ai/api/generate/submit', 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.poyo.ai/api/generate/submit",
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-2.6-motion-control',
'callback_url' => 'https://your-domain.com/callback',
'input' => [
'prompt' => 'The cartoon character is dancing gracefully in a studio',
'image_urls' => [
'https://example.com/character-image.jpg'
],
'video_urls' => [
'https://example.com/dance-reference.mp4'
],
'character_orientation' => 'video',
'resolution' => '1080p'
]
]),
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.poyo.ai/api/generate/submit"
payload := strings.NewReader("{\n \"model\": \"kling-2.6-motion-control\",\n \"callback_url\": \"https://your-domain.com/callback\",\n \"input\": {\n \"prompt\": \"The cartoon character is dancing gracefully in a studio\",\n \"image_urls\": [\n \"https://example.com/character-image.jpg\"\n ],\n \"video_urls\": [\n \"https://example.com/dance-reference.mp4\"\n ],\n \"character_orientation\": \"video\",\n \"resolution\": \"1080p\"\n }\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.poyo.ai/api/generate/submit")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"kling-2.6-motion-control\",\n \"callback_url\": \"https://your-domain.com/callback\",\n \"input\": {\n \"prompt\": \"The cartoon character is dancing gracefully in a studio\",\n \"image_urls\": [\n \"https://example.com/character-image.jpg\"\n ],\n \"video_urls\": [\n \"https://example.com/dance-reference.mp4\"\n ],\n \"character_orientation\": \"video\",\n \"resolution\": \"1080p\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.poyo.ai/api/generate/submit")
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-2.6-motion-control\",\n \"callback_url\": \"https://your-domain.com/callback\",\n \"input\": {\n \"prompt\": \"The cartoon character is dancing gracefully in a studio\",\n \"image_urls\": [\n \"https://example.com/character-image.jpg\"\n ],\n \"video_urls\": [\n \"https://example.com/dance-reference.mp4\"\n ],\n \"character_orientation\": \"video\",\n \"resolution\": \"1080p\"\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"data": {
"task_id": "task-unified-1757165031-uyujaw3d",
"status": "not_started",
"created_time": "2025-11-12T10:30:00"
}
}Kling
Kling 2.6 Motion Control
Advanced motion transfer with character animation
POST
/
api
/
generate
/
submit
Submit Kling 2.6 Motion Control Task
curl --request POST \
--url https://api.poyo.ai/api/generate/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "kling-2.6-motion-control",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "The cartoon character is dancing gracefully in a studio",
"image_urls": [
"https://example.com/character-image.jpg"
],
"video_urls": [
"https://example.com/dance-reference.mp4"
],
"character_orientation": "video",
"resolution": "1080p"
}
}
'import requests
url = "https://api.poyo.ai/api/generate/submit"
payload = {
"model": "kling-2.6-motion-control",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "The cartoon character is dancing gracefully in a studio",
"image_urls": ["https://example.com/character-image.jpg"],
"video_urls": ["https://example.com/dance-reference.mp4"],
"character_orientation": "video",
"resolution": "1080p"
}
}
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-2.6-motion-control',
callback_url: 'https://your-domain.com/callback',
input: {
prompt: 'The cartoon character is dancing gracefully in a studio',
image_urls: ['https://example.com/character-image.jpg'],
video_urls: ['https://example.com/dance-reference.mp4'],
character_orientation: 'video',
resolution: '1080p'
}
})
};
fetch('https://api.poyo.ai/api/generate/submit', 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.poyo.ai/api/generate/submit",
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-2.6-motion-control',
'callback_url' => 'https://your-domain.com/callback',
'input' => [
'prompt' => 'The cartoon character is dancing gracefully in a studio',
'image_urls' => [
'https://example.com/character-image.jpg'
],
'video_urls' => [
'https://example.com/dance-reference.mp4'
],
'character_orientation' => 'video',
'resolution' => '1080p'
]
]),
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.poyo.ai/api/generate/submit"
payload := strings.NewReader("{\n \"model\": \"kling-2.6-motion-control\",\n \"callback_url\": \"https://your-domain.com/callback\",\n \"input\": {\n \"prompt\": \"The cartoon character is dancing gracefully in a studio\",\n \"image_urls\": [\n \"https://example.com/character-image.jpg\"\n ],\n \"video_urls\": [\n \"https://example.com/dance-reference.mp4\"\n ],\n \"character_orientation\": \"video\",\n \"resolution\": \"1080p\"\n }\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.poyo.ai/api/generate/submit")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"kling-2.6-motion-control\",\n \"callback_url\": \"https://your-domain.com/callback\",\n \"input\": {\n \"prompt\": \"The cartoon character is dancing gracefully in a studio\",\n \"image_urls\": [\n \"https://example.com/character-image.jpg\"\n ],\n \"video_urls\": [\n \"https://example.com/dance-reference.mp4\"\n ],\n \"character_orientation\": \"video\",\n \"resolution\": \"1080p\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.poyo.ai/api/generate/submit")
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-2.6-motion-control\",\n \"callback_url\": \"https://your-domain.com/callback\",\n \"input\": {\n \"prompt\": \"The cartoon character is dancing gracefully in a studio\",\n \"image_urls\": [\n \"https://example.com/character-image.jpg\"\n ],\n \"video_urls\": [\n \"https://example.com/dance-reference.mp4\"\n ],\n \"character_orientation\": \"video\",\n \"resolution\": \"1080p\"\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"data": {
"task_id": "task-unified-1757165031-uyujaw3d",
"status": "not_started",
"created_time": "2025-11-12T10:30:00"
}
}- After submission, a
task_idwill be returned. If you provided acallback_url, when the task status becomesfinishedorfailed, a POST request will be sent to thecallback_url. - Regardless of whether
callback_urlis provided, you can retrieve the response result through the unified Query Task Status endpoint.
Kling 2.6 Motion Control
Transfer motion from reference videos to character images with precise motion control. Create dynamic character animations by combining static images with motion reference videos while controlling scene details through text prompts.Available Model
- kling-2.6-motion-control - Motion transfer from video to character image
Key Features
- Motion Transfer: Transfer real human motion, gestures, and expressions from reference videos to character images
- Character Animation: Animate static characters with dynamic motion patterns
- Character Orientation Control: Choose between matching image orientation (max 10s output) or video orientation (max 30s output)
- Scene Control: Control scene details and environment through optional text prompts
- Flexible Resolution: Choose between 720p (standard) or 1080p (high quality) output
Required Parameters
- image_urls: Single character image showing the subject’s head, shoulders, and torso
- video_urls: Single reference video (3-30 seconds) for motion transfer
- character_orientation:
"image"- Matches the person’s orientation in the photograph (maximum 10-second output)"video"- Maintains consistency with character orientation from the reference video (maximum 30-second output)
- resolution: Output resolution (
"720p"or"1080p")
Optional Parameters
- prompt: Text description of the desired output scene (max 2,500 characters)
Authorizations
All API endpoints require Bearer Token authentication
Get your API Key:
Visit the API Key Management Page to get your API Key
Add it to the request header:
Authorization: Bearer YOUR_API_KEY
Body
application/json
Kling 2.6 Motion Control model identifier
Available options:
kling-2.6-motion-control Webhook callback URL for result notifications
Example:
"https://your-domain.com/callback"
Input parameters for motion control generation
Show child attributes
Show child attributes
