はじめに
Kling 2.5 Turbo の画像から動画は、開始フレームを 1080p、5 秒か 10 秒のクリップにアニメーション化し、実際の音声トラックを映像と同じ工程で生成します。任意の終了フレーム(last_image_url)を追加すると結末を固定できます。出力のアスペクト比は入力したフレームに従い、JPEG か PNG のみです。
開始素材で Kling 2.5 Turbo のモードを選ぶ
| 手元にあるもの | モード |
|---|---|
| 書いたシーン | Kling 2.5 Turbo テキストから動画 |
| 承認済みの開始フレーム | Kling 2.5 Turbo 画像から動画 |
主な機能とハイライト
任意の終了フレーム
last_image_url は必須ではありませんが、設定するとモデルが決めた場所ではなく、その正確なフレームで終わるようクリップが作られます。クリップの中間を固定するものは何もないため、最も滑らかな結果を得るには、2 枚のフレームの光、ポーズ、フレーミングを近づけておいてください。
音声は映像と一緒に届く
音声トラックは映像と同じ工程で生成され、ミュートするフィールドはありません。動作を書くのと同じ場所に、そのシーンがどう聞こえるべきかを書いてください。
リクエストパラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
prompt | はい | 開始フレームの後に起きることだけを描写してください:動作とカメラの動きです。 1 文字以上 · 2500 文字以内 |
image_url | はい | 開始フレーム。JPEG か PNG のみ。 |
last_image_url | いいえ | 任意の終了フレーム。設定するとクリップはそこに着地するよう作られます。 |
duration_seconds | いいえ | 丸秒単位で 5 か 10。価格を左右します。 |
negative_prompt | いいえ | クリップが避けるべき要素の短いリスト。 500 文字以内 |
guidance_scale | いいえ | 0 から 1。高いほどプロンプトの文言に忠実になり、低いほどモデルに自由度を与えます。 |
料金
$0.056 / 秒
1080p の出力クリップの秒数ごとに課金されます。可灵が拒否したアップロードには課金されません。
ユースケース
承認済みのフレームに命を吹き込む
すでに気に入っている静止画――ポートレート、商品写真、コンセプトアートなど――から始め、次に何が起きるかだけを描写してください。フレーム自体は変化しません。
長いシーンをまたいでフレームをつなぐ
承認済みの 1 本のクリップの最後のフレームを次のクリップの開始フレームとして送り、この新しいクリップで last_image_url を使って特定のポーズに着地させてください。複数の 5 秒や 10 秒のクリップを 1 つの連続したシーンにつなぐのに役立ちます。
プロンプトガイドと実践のヒント
変化する部分だけを描写する
開始フレームがすでに被写体、衣装、舞台を決めています。プロンプトは次に何が起きるか(動作、カメラワーク、どんな音がするか)を伝えるだけで十分です。
last_image_url を使うときは 2 枚のフレームを近づけておく
終了フレームが開始フレームとポーズ、光、構図で大きく異なると、モデルはその間を埋めるのに苦労し、10 秒のクリップでは中間部分がぶれることがあります。2 枚のフレームを近づけたまま、動きはプロンプトに語らせましょう。
音は動作と同じ文の中に書く
すべてのクリップで音声は映像と同時に生成されるため、足音、布地の音、風、遠くの群衆のざわめきなど、動きがどう聞こえるかは、動き自体を描写するのと同じ場所に書いてください。プロンプトの最後に思いつきで付け加えるものではありません。
API クイックスタート
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "kling/2.5-turbo/image-to-video",
"input": {
"duration_seconds": 5,
"image_url": "https://example.com/reference.png",
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
認証、完全なスキーマ、ポーリング、エラー処理は API リファレンスを参照してください。











