Klingモーション制御
curl --request POST \
--url https://api.mixroute.ai/kling/motion-control/{model}import requests
url = "https://api.mixroute.ai/kling/motion-control/{model}"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.mixroute.ai/kling/motion-control/{model}', 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.mixroute.ai/kling/motion-control/{model}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.mixroute.ai/kling/motion-control/{model}"
req, _ := http.NewRequest("POST", url, nil)
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.mixroute.ai/kling/motion-control/{model}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixroute.ai/kling/motion-control/{model}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyKling
Klingモーション制御
キャラクター画像と動きの参照動画からKling動画を生成します。
Klingモーション制御
curl --request POST \
--url https://api.mixroute.ai/kling/motion-control/{model}import requests
url = "https://api.mixroute.ai/kling/motion-control/{model}"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.mixroute.ai/kling/motion-control/{model}', 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.mixroute.ai/kling/motion-control/{model}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.mixroute.ai/kling/motion-control/{model}"
req, _ := http.NewRequest("POST", url, nil)
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.mixroute.ai/kling/motion-control/{model}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixroute.ai/kling/motion-control/{model}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyAuthorization: Bearer $MIXROUTE_API_KEYを使用してMixRouteのAPIキーで認証し、JSONを送信してください。モデルIDはボディのmodelフィールドではなく、URLに含めます。/v1を追加したり、リクエストをmetadataで囲んだりしないでください。
kling-3.0とkling-2.6に対応し、どちらも720p / 1080pのみ利用可能で、4kには対応していません。これは参照動画に基づいてキャラクターの動きを制御する機能であり、独立したモーションモデルでも、カメラの動きだけを設定するものでもありません。
リクエストパラメーター
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
contents | object[] | はい | 外観を指定する画像と動きを指定する動画、および任意のプロンプトを含む入力の集合。 |
contents[].type | string | はい | 項目ごとに必須:prompt、image、video。3.0はelementもサポートします。 |
contents[].text | string | 種類別 | prompt項目には必須で、最大2500文字です。含めたい内容と除外したい内容の両方を記述できます。 |
contents[].url | string | 種類別 | 画像・動画項目では必須。画像にはURLまたはBase64を指定でき、動画には公開URLを使用します。 |
contents[].element_id | string | 種類別 | 3.0のelement項目のみで必須です。Elementは最大1つ。 |
contents[].id | string | 種類別 | element項目には必須です。タスク内で一意である必要があり、@idとして参照します。 |
settings.character_orientation | string | はい | video: 動画内のキャラクターの向きに従い、参照動画の長さは3~30秒。image: 画像内のキャラクターの向きに従い、参照動画の長さは3~10秒。Elementを使用する場合、キャラクターの向きは動画に従うため、videoを設定してください。 |
settings.resolution | string | いいえ | 720p(デフォルト)または1080p。4kには対応していません。 |
settings.audio | string | いいえ | original(デフォルト)は参照音声を保持し、offは音声を削除します。nativeには対応していません。 |
settings.durationを送信しないでください。利用可能な連続した動きによって出力の長さが決まるため、参照動画より短くなる場合があります。少なくとも3秒間の利用可能な動きが必要です。課金は実際に生成された長さに基づきます。メディアの制限
- 画像: JPG/JPEG/PNG、最大50 MB。縦横ともに300 px以上、アスペクト比は1:2.5~2.5:1。
- 動画: MP4/MOV、最大100 MB、各辺340~3850 px。長さはcharacter_orientationによって異なります。
- 画像と動画で人物の体の比率を合わせてください。頭部と四肢が隠れずにはっきり見えるようにします。1人の人物が映る連続した単一ショットが適しています。カットの切り替えや速い動きは避けてください。
リクエスト例
環境変数MIXROUTE_API_KEYを設定してください。example.comのメディアURLは、実際の公開アクセス可能なファイルに置き換えてください。
curl --request POST "https://api.mixroute.ai/kling/motion-control/kling-3.0" \
--header "Authorization: Bearer $MIXROUTE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"contents": [
{
"type": "prompt",
"text": "The person follows the reference motion."
},
{
"type": "image",
"url": "https://example.com/person.png"
},
{
"type": "video",
"url": "https://example.com/motion.mp4"
}
],
"settings": {
"resolution": "720p",
"character_orientation": "video",
"audio": "original"
}
}'
送信時のレスポンス
{
"code": 0,
"message": "",
"request_id": "REQUEST_ID",
"data": {
"id": "task_example",
"status": "submitted"
}
}
data.idを保持し、succeededまたはfailedになるまでKlingタスクの照会を使用してください。送信の成功は、生成の完了を意味しません。