メインコンテンツへスキップ
本文では、Kling Videos Generation API 接続説明を紹介します。これは、カスタムパラメータを入力することでKling公式の動画を生成することができます。

申請プロセス

APIを使用するには、まず Kling Videos Generation API の該当ページでサービスを申請する必要があります。ページに入ったら、「Acquire」ボタンをクリックします。以下の図のように: まだログインまたは登録していない場合は、自動的にログインページにリダイレクトされ、登録とログインを促されます。ログインまたは登録後、現在のページに自動的に戻ります。 初回申請時には無料のクレジットが付与され、このAPIを無料で使用できます。

基本使用

まず、基本的な使用方法を理解します。これは、プロンプト prompt、生成行動 action、初フレーム参照画像 start_image_url、およびモデル model を入力することで処理された結果を得ることができます。まず、action フィールドを簡単に渡す必要があります。その値は text2video で、主に3つの行動が含まれます:文生動画(text2video)、画像生動画(image2video)、拡張動画(extend)。次に、モデル model を入力する必要があります。現在、主に kling-v1, kling-v1-6, kling-v2-master, kling-v2-1-master, kling-v2-5-turbo, kling-video-o1 モデルがあります。具体的な内容は以下の通りです:

ここでは、リクエストヘッダーを設定しています。これには以下が含まれます:
  • accept:受け取りたいレスポンス結果の形式。ここでは application/json、つまりJSON形式を記入します。
  • authorization:APIを呼び出すためのキー。申請後、直接ドロップダウンから選択できます。
また、リクエストボディを設定しています。これには以下が含まれます:
  • model:生成する動画のモデル。主に kling-v1, kling-v1-6, kling-v2-master, kling-v2-1-master, kling-v2-5-turbo, kling-video-o1 モデルがあります。
  • mode:生成する動画のモード。主に標準モード std と高速モード pro の2種類があります。
  • action:今回の動画生成タスクの行動。主に3つの行動が含まれます:文生動画(text2video)、画像生動画(image2video)、拡張動画(extend)。
  • start_image_url:画像生動画行動 image2video を選択した場合に必ずアップロードする必要がある初フレーム参照画像のリンク。
  • end_image_url:画像生動画時にオプションで、尾フレームを指定します。
  • aspect_ratio:動画のアスペクト比。オプションで、16:99:161:1 をサポートし、デフォルトは 16:9 です。
  • cfg_scale:関連性の強度。範囲は [0,1] で、大きいほどプロンプトに合致します。
  • camera_control:オプションで、カメラの動きを制御するオブジェクトパラメータ。type/simple プリセットや horizontal、vertical、pan、tilt、roll、zoom などの設定をサポートします。
  • negative_prompt:オプションで、出現してほしくない逆プロンプト。最大200文字。
  • element_list:主体参照リスト。モデル kling-video-o1 のみ適用されます。このパラメータの具体的な使用方法は公式文書を参照してください。
  • video_list:参照動画。URL方式で取得します。モデル kling-video-o1 のみ適用されます。このパラメータの具体的な使用方法は公式文書を参照してください。
  • prompt:プロンプト。
  • callback_url:結果をコールバックする必要があるURL。
選択後、右側にも対応するコードが生成されていることがわかります。以下の図のように:

「Try」ボタンをクリックするとテストができます。上の図のように、以下の結果が得られました:
{
  "success": true,
  "video_id": "af9a1af0-9aa0-4638-81c1-d41d6143c508",
  "video_url": "https://cdn.klingai.com/bs2/upload-kling-api/7485378259/text2video/Cjil4mfBfs0AAAAAAKbMQQ-0_raw_video_1.mp4",
  "duration": "5.1",
  "state": "succeed",
  "task_id": "e3a575aa-a4bd-49c8-9b12-cde38d5462e0"
}
返された結果には複数のフィールドがあり、以下のように説明されます:
  • success:この時点での動画生成タスクの状態。
  • task_id:この時点での動画生成タスクID。
  • video_id:この時点での動画生成タスクの動画ID。
  • video_url:この時点での動画生成タスクの動画リンク。
  • duration:この時点での動画生成タスクの動画の長さ。
  • state:この時点での動画生成タスクの状態。
満足のいく動画情報が得られたことがわかります。結果の data の動画リンクアドレスに基づいて生成されたKling動画を取得するだけです。 また、対応する接続コードを生成したい場合は、生成されたものを直接コピーできます。例えば、CURLのコードは以下の通りです:
curl -X POST 'https://api.acedata.cloud/kling/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "text2video",
  "model": "kling-v1",
  "prompt": "White ceramic coffee mug on glossy marble countertop with morning window light. Camera slowly rotates 360 degrees around the mug, pausing briefly at the handle."
}'

拡張動画機能

既に生成されたKling動画を続けて生成したい場合は、パラメータ actionextend に設定し、続けて生成する動画のIDを入力します。動画IDの取得は基本使用に基づいて行います。以下の図のように:

この時、動画のIDは次のようになります:
"video_id": "030bb06d-98d4-4044-9042-0aa0822e8c8c"
注意:ここでの動画の video_id は生成後の動画のIDです。動画を生成する方法がわからない場合は、上記の基本使用を参照して動画を生成してください。
次に、拡張するために必要なプロンプトを入力してカスタマイズ生成動画を指定します。
  • model:生成動画のモデル、主に kling-v1kling-v1-5kling-v1-6 モデルがあります。
  • mode:生成動画のモード、主に標準モード std と高速モード pro の2種類があります。
  • duration:今回の動画生成タスクの動画の長さ、主に5秒と10秒が含まれます。
  • start_image_url:画像から動画を生成する行動 image2video を選択した場合、必ずアップロードする必要がある最初のフレームの参考画像リンクです。
  • prompt:プロンプト。
記入例は以下の通りです:

記入が完了すると、自動的に以下のコードが生成されます:

対応するPythonコード:
import requests

url = "https://api.acedata.cloud/kling/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "action": "extend",
    "model": "kling-v1",
    "video_id": "030bb06d-98d4-4044-9042-0aa0822e8c8c",
    "prompt": "白いセラミックのコーヒーマグが光沢のある大理石のカウンタートップにあり、朝の窓の光が当たっています。カメラはマグの周りを360度ゆっくり回転し、ハンドルのところで一時停止します。",
    "duration": 10
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
実行すると、以下のような結果が得られます:
{
  "success": true,
  "video_id": "bbc3b105-ac72-4de2-8390-0cb37dc7d41e",
  "video_url": "https://cdn.klingai.com/bs2/upload-kling-api/7822108635/extendVideo/Cjil4mfBfs0AAAAAAKhr6A-0_raw_video_1.mp4",
  "duration": "9.6",
  "state": "succeed",
  "task_id": "3ece87e6-3ee3-4f5e-bd70-5ae5eca89a23"
}
結果の内容が上記と一致していることがわかり、動画の拡張機能が実現されました。

非同期コールバック

Kling Videos Generation APIの生成時間は比較的長く、約1〜2分かかります。APIが長時間応答しない場合、HTTPリクエストは接続を維持し続け、追加のシステムリソースを消費するため、本APIは非同期コールバックのサポートも提供しています。 全体の流れは、クライアントがリクエストを発行する際に、追加で callback_url フィールドを指定します。クライアントがAPIリクエストを発行した後、APIはすぐに結果を返し、現在のタスクIDを示す task_id フィールド情報を含みます。タスクが完了すると、生成された動画の結果がPOST JSON形式でクライアントが指定した callback_url に送信され、その中にも task_id フィールドが含まれているため、タスクの結果をIDで関連付けることができます。 以下の例を通じて、具体的な操作方法を理解しましょう。 まず、WebhookコールバックはHTTPリクエストを受信できるサービスであり、開発者は自分が構築したHTTPサーバーのURLに置き換える必要があります。ここではデモのために、公開のWebhookサンプルサイト https://webhook.site/ を使用します。このサイトを開くとWebhook URLが得られます。 このURLをコピーすればWebhookとして使用できます。ここでのサンプルは https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3 です。 次に、フィールド callback_url を上記のWebhook URLに設定し、対応するパラメータを入力します。具体的な内容は以下の通りです:

実行すると、すぐに以下のような結果が得られます:
{
  "task_id": "20068983-0cc9-4c6a-aeb6-9c6a3c668be0"
}
少し待つと、 https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3 で生成された動画の結果を確認できます。 内容は以下の通りです:
{
    "success": true,
    "video_id": "030bb06d-98d4-4044-9042-0aa0822e8c8c",
    "video_url": "https://cdn.klingai.com/bs2/upload-kling-api/7822108635/text2video/CjJzzGfBfqcAAAAAAKdVMQ-0_raw_video_1.mp4",
    "duration": "5.1",
    "state": "succeed",
    "task_id": "20068983-0cc9-4c6a-aeb6-9c6a3c668be0"
}
結果に task_id フィールドがあり、他のフィールドは上記と似ていることがわかります。このフィールドを通じてタスクの関連付けが可能です。

エラーハンドリング

APIを呼び出す際にエラーが発生した場合、APIは対応するエラーコードとメッセージを返します。例えば:
  • 400 token_mismatched:不正なリクエスト、パラメータが不足または無効である可能性があります。
  • 400 api_not_implemented:不正なリクエスト、パラメータが不足または無効である可能性があります。
  • 401 invalid_token:未認証、無効または不足している認証トークン。
  • 429 too_many_requests:リクエストが多すぎます、レート制限を超えました。
  • 500 api_error:内部サーバーエラー、サーバーで何かがうまくいきませんでした。

エラー応答の例

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

結論

この文書を通じて、Kling Videos Generation APIを使用してプロンプトと最初のフレームの参考画像を入力することで動画を生成する方法を理解しました。この文書がAPIの接続と使用に役立つことを願っています。ご不明な点がございましたら、いつでも技術サポートチームにお問い合わせください。