소개
Kling 4.0 이미지→영상은 첫 프레임을 720p 또는 1080p의 3~30초 클립으로 움직이게 합니다. 마지막 프레임을 추가하면 끝나는 지점을 고정할 수 있고, 중간 프레임을 최대 8장까지 순서대로 넣으면 그 사이의 경로를 지정할 수 있습니다. 프롬프트는 선택 사항이며, 모든 클립에 스테레오 사운드트랙이 함께 나옵니다.
시작 소재에 따라 Kling 4.0 모드 고르기
| 시작할 때 가진 것 | 모드 |
|---|---|
| 글로 쓴 장면이나 대본 | Kling 4.0 텍스트→영상 |
| 첫 프레임, 그리고 선택적으로 마지막 프레임과 중간 프레임 | Kling 4.0 이미지→영상 (현재 보고 계신 곳) |
| 소재로 쓸 사진, 클립 또는 음성 샘플 | Kling 4.0 레퍼런스→영상 |
핵심 기능 및 하이라이트
첫 프레임, 중간 프레임, 마지막 프레임
image_url은 시작 프레임을, last_image_url은 마지막 프레임을, keyframe_image_urls는 그 사이의 비트를 나타내며 등장할 순서대로 넣습니다. 저희 테스트에서 망원경 앞의 천문학자(첫 프레임), 접안렌즈로 몸을 숙이는 모습(중간 프레임), 팔짱을 끼고 난간에 기댄 모습(마지막 프레임)이 세 포즈를 모두 거치는 3초짜리 연속 움직임으로 나왔습니다.
화면 모양은 프레임을 따릅니다
aspect_ratio를 자동으로 두면 클립이 첫 프레임의 모양을 유지합니다. 16:9, 9:16, 1:1 또는 21:9를 고르면 그 값으로 바뀝니다.
사운드도 함께
모든 클립에 2채널 사운드트랙이 들어갑니다. 프롬프트에 사운드를 적어 방향을 잡을 수 있습니다.
요청 파라미터
| 파라미터 | 필수 | 설명 |
|---|---|---|
prompt | 아니요 | 선택 사항. 첫 프레임 이후에 일어날 일, 즉 동작, 카메라, 사운드를 묘사하십시오. 1자 이상 |
image_url | 예 | 첫 프레임(JPEG 또는 PNG). 클립은 이 이미지에서 시작합니다. |
last_image_url | 아니요 | 선택 사항인 마지막 프레임. 클립은 이 이미지에서 끝납니다. |
keyframe_image_urls | 아니요 | 선택 사항인 중간 프레임, 최대 8장. 첫 프레임과 마지막 프레임 사이에 나타날 순서대로 넣으십시오. 1개 이상 · 8개 이하 |
aspect_ratio | 아니요 | auto(기본값)는 첫 프레임의 모양을 유지합니다. 16:9, 9:16, 1:1 또는 21:9로 지정하면 그 값으로 바뀝니다. |
resolution | 아니요 | 720p 또는 1080p(기본값 720p). 1080p는 초당 요금이 더 높습니다. |
duration_seconds | 아니요 | 정수 3~30초(기본값 5). 가격을 결정합니다. |
요금
출력 초 단위로 요금이 부과됩니다. 1080p는 720p보다 초당 요금이 높습니다. 모든 클립에는 추가 요금 없이 스테레오 사운드트랙이 포함됩니다. 거부되거나 실패한 요청에는 요금이 부과되지 않습니다.
| 사양 | 요금 |
|---|---|
| $0.216 / 초 |
| $0.324 / 초 |
활용 사례
정지 이미지에 움직임 주기
인물 사진, 제품 사진, 또는 이전 클립의 한 프레임. 다음에 일어날 일만 묘사하면 룩, 의상, 배경은 이미지에서 가져옵니다.
스토리보드를 움직임으로
샷의 핵심 포즈를 그리거나 생성해 첫 프레임, 중간 프레임, 마지막 프레임으로 올리면 모델이 그 사이의 움직임을 채웁니다.
장면 이어 가기
이전 클립의 마지막 프레임을 다음 클립의 첫 프레임으로 쓰면 샷이 바뀌어도 캐릭터와 세트가 일관되게 유지됩니다.
프롬프트 가이드 및 실전 팁
프레임을 일관되게 유지하기
첫 프레임, 중간 프레임, 마지막 프레임은 같은 캐릭터, 의상, 세트, 카메라 위치를 공유해야 합니다. 프레임끼리 맞지 않으면 컷이 들어가거나 모핑이 일어납니다.
그림이 아니라 움직임을 묘사하기
이미지가 이미 모든 것의 모습을 보여줍니다. 프롬프트는 동작, 카메라 움직임, 사운드에 쓰십시오.
키프레임은 적고 분명하게
각 중간 프레임은 클립이 통과해야 하는 지점입니다. 짧은 클립이라면 한두 장이면 충분합니다. 몇 초 안에 너무 많이 넣으면 움직임이 급해집니다.
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/4.0/image-to-video",
"input": {
"aspect_ratio": "auto",
"duration_seconds": 5,
"image_url": "https://example.com/reference.png",
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "720p"
}
}'
# 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 레퍼런스에서 확인하세요.










