소개
Kling 2.5 Turbo 이미지→영상은 첫 프레임을 실제 오디오 트랙이 같은 과정에서 생성된 5초 또는 10초짜리 1080p 클립으로 애니메이션화합니다. 선택적으로 마지막 프레임(last_image_url)을 추가해 결말을 고정하세요. 출력 화면비는 보내는 프레임을 따르며 JPEG 또는 PNG만 가능합니다.
시작 소재별 Kling 2.5 Turbo 모드 선택
| 시작 시점에 가진 것 | 모드 |
|---|---|
| 글로 쓴 장면 | Kling 2.5 Turbo 텍스트→영상 |
| 승인된 첫 프레임 | Kling 2.5 Turbo 이미지→영상 |
핵심 기능 및 하이라이트
선택적인 마지막 프레임
last_image_url은 필수가 아니지만, 설정하면 모델이 임의로 멈추는 지점이 아니라 정확히 그 프레임에서 끝나도록 클립이 만들어집니다. 클립 중간은 고정되지 않으므로 가장 매끄러운 결과를 위해 두 프레임을 조명, 포즈, 프레이밍에서 비슷하게 유지하세요.
사운드가 영상과 함께 도착합니다
오디오 트랙은 영상과 같은 과정에서 생성되며 음소거하는 필드가 없습니다. 동작을 쓰는 것과 같은 곳, 즉 프롬프트에 장면이 어떻게 들려야 할지 쓰세요.
요청 파라미터
| 파라미터 | 필수 | 설명 |
|---|---|---|
prompt | 예 | 첫 프레임 이후에 일어나는 일—동작과 카메라 움직임—만 설명하세요. 1자 이상 · 2500자 이하 |
image_url | 예 | 첫 프레임입니다. JPEG 또는 PNG만 가능합니다. |
last_image_url | 아니요 | 선택적인 마지막 프레임입니다. 설정하면 클립이 그 지점에서 끝나도록 만들어지며, 그렇지 않으면 중간 과정은 고정되지 않습니다. |
duration_seconds | 아니요 | 정수 초로 5초 또는 10초입니다. 가격을 결정합니다. |
negative_prompt | 아니요 | 클립이 피해야 할 것들의 짧은 목록입니다. 500자 이하 |
guidance_scale | 아니요 | 0~1입니다. 높을수록 문구에 더 가깝게, 낮을수록 모델에게 더 많은 자유를 줍니다. |
요금
$0.056 / 초
1080p 출력 클립의 초당 과금됩니다. Kling이 거부한 업로드는 과금되지 않습니다.
활용 사례
승인된 프레임에 생명 불어넣기
이미 마음에 드는 스틸—인물 사진, 제품 사진, 콘셉트 아트—에서 시작해 그다음에 일어나는 일만 설명하세요. 프레임 자체는 바뀌지 않습니다.
긴 장면을 위해 프레임을 이어 붙이기
승인된 한 클립의 마지막 프레임을 다음 클립의 첫 프레임으로 보내고, 이 새 클립에 last_image_url을 사용해 특정 포즈에서 끝나게 하세요. 여러 개의 5초 또는 10초 클립을 하나의 연속된 장면으로 엮을 때 유용합니다.
프롬프트 가이드 및 실전 팁
바뀌는 부분만 설명하세요
첫 프레임이 이미 피사체, 의상, 배경을 정해두었습니다. 프롬프트는 그다음에 일어나는 일, 즉 동작, 카메라 워크, 어떤 소리가 나는지만 말하면 됩니다.
last_image_url을 쓸 때는 두 프레임을 가깝게 유지하세요
마지막 프레임이 첫 프레임과 포즈, 조명, 프레이밍에서 크게 다르면 모델이 그 사이를 조율하는 데 더 애를 먹고, 10초 클립에서는 중간 부분이 흔들릴 수 있습니다. 두 프레임을 가깝게 유지하고 그 사이의 움직임은 프롬프트가 맡게 하세요.
소리는 움직임을 설명하는 문장 안에 함께 쓰세요
모든 클립에서 오디오는 영상과 함께 생성되므로, 발소리·원단 소리·바람·멀리서 들리는 군중 소리 등 움직임이 어떻게 들리는지는 움직임 자체를 설명하는 바로 그 자리에 쓰세요. 프롬프트 끝에 나중에 떠오른 듯 덧붙이지 마세요.
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 레퍼런스에서 확인하세요.











