메인 콘텐츠로 건너뛰기
본문에서는 Kling Videos Generation API 연동 방법을 소개합니다. 이 API는 사용자 정의 매개변수를 입력하여 Kling 공식 동영상을 생성할 수 있습니다.

신청 절차

Kling Videos Generation API를 사용하려면 먼저 Ace Data Cloud 콘솔에서 API Token을 발급받아 예비용으로 보관하세요. 아직 로그인하거나 등록하지 않았다면 로그인 페이지로 자동 이동하여 등록과 로그인을 안내하며, 완료 후 현재 페이지로 자동 반환됩니다. 하나의 API Token으로 플랫폼의 모든 서비스를 호출할 수 있으며, 각 서비스마다 별도로 신청할 필요가 없습니다. 최초 신청 시 무료 크레딧이 제공되어 무료로 체험할 수 있으며, 크레딧이 부족한 경우 콘솔에서 공용 잔액을 충전할 수 있습니다.
📘 전체 문서: Kling Videos Generation API →

기본 사용

먼저 기본 사용 방식을 알아보겠습니다. 즉, 프롬프트 prompt, 생성 동작 action, 첫 프레임 참조 이미지 start_image_url 및 모델 model을 입력하면 처리된 결과를 얻을 수 있습니다. 먼저 action 필드를 간단히 전달해야 하며, 그 값은 text2video입니다. 이는 주로 세 가지 동작을 포함합니다: 텍스트-동영상(text2video), 이미지-동영상(image2video), 동영상 확장(extend). 그리고 모델 model도 입력해야 합니다. 현재 주로 kling-v1, kling-v1-6, kling-v2-master, kling-v2-1-master, kling-v2-5-turbo, kling-v2-6, kling-v3, kling-v3-omni, kling-o1 모델이 있으며, 구체적인 내용은 다음과 같습니다:

여기에서 Request Headers를 설정한 것을 확인할 수 있으며, 포함 사항은 다음과 같습니다:
  • accept: 어떤 형식의 응답 결과를 받을지 지정합니다. 여기서는 JSON 형식인 application/json으로 작성합니다.
  • authorization: API 호출 키이며, 신청 후 직접 드롭다운에서 선택할 수 있습니다.
또한 Request Body를 설정하며, 포함 사항은 다음과 같습니다:
  • model: 동영상을 생성하는 모델로, 주로 kling-v1, kling-v1-6, kling-v2-master, kling-v2-1-master, kling-v2-5-turbo, kling-v2-6, kling-v3, kling-v3-omni, kling-o1 모델이 있습니다.
  • mode: 동영상 생성 모드로, 표준 모드 std, 고속 모드 pro, 네이티브 4K 모드 4k를 선택할 수 있습니다. 그중 4k는 kling-v3 및 kling-v3-omni만 지원하며, camera_control(카메라 움직임 제어)과 호환되지 않습니다.
  • action: 이번 동영상 생성 작업의 동작으로, 주로 세 가지 동작을 포함합니다: 텍스트-동영상(text2video), 이미지-동영상(image2video), 동영상 확장(extend).
  • start_image_url: 이미지-동영상 동작 image2video를 선택한 경우 반드시 업로드해야 하는 첫 프레임 참조 이미지 링크입니다.
  • end_image_url: 이미지-동영상 생성 시 선택 사항이며, 마지막 프레임을 지정합니다.
  • duration: 동영상 길이이며, 단위는 초입니다. kling-v3 및 kling-v3-omni는 3~15초의 정수 길이를 지원하며, kling-o1은 5초만 지원하고, 기타 모델은 5초 또는 10초를 지원합니다.
  • generate_audio: 오디오를 동시에 생성할지 여부이며, 선택 사항이고 불리언 값입니다. kling-v3, kling-v3-omni, 그리고 kling-v2-6(pro 모드만)을 지원합니다. 기본값은 false입니다.
  • aspect_ratio: 동영상 가로세로 비율이며, 선택 사항입니다. 16:9, 9:16, 1:1을 지원하며, 기본값은 16:9입니다.
  • cfg_scale: 연관성 강도로, 범위는 [0,1]이며 값이 클수록 프롬프트에 더 잘 부합합니다.
  • camera_control: 선택 사항으로, 카메라 움직임을 제어하는 객체 매개변수입니다. type/simple 프리셋과 horizontal, vertical, pan, tilt, roll, zoom 등의 구성을 지원합니다.
  • negative_prompt: 선택 사항으로, 나타나지 않기를 원하는 네거티브 프롬프트이며 최대 200자입니다.
  • image_list: Omni 참조 이미지 목록으로, kling-o1 및 kling-v3-omni 모델에 적용되며 사용법은 아래 「Omni 전능 참조」를 참고하세요.
  • video_list: Omni 참조 동영상 목록(동영상 편집 지원)으로, kling-o1 및 kling-v3-omni 모델에 적용되며 사용법은 아래 「Omni 전능 참조」를 참고하세요.
  • prompt: 프롬프트입니다.
  • callback_url: 결과 콜백이 필요한 URL입니다.
  • async: 선택 사항으로, true로 설정하면 인터페이스가 즉시 task_id를 반환하며 callback_url을 제공할 필요가 없습니다. 이후 해당 작업 조회 인터페이스를 통해 폴링하여 결과를 가져옵니다.
선택한 후 오른쪽에 해당 코드도 생성된 것을 확인할 수 있으며, 그림과 같습니다:

「Try」 버튼을 클릭하여 테스트할 수 있습니다. 위 그림과 같이 여기에서 다음과 같은 결과를 얻었습니다:
반환 결과에는 여러 필드가 있으며, 소개는 다음과 같습니다:
  • success: 현재 동영상 생성 작업의 상태입니다.
  • task_id: 현재 동영상 생성 작업 ID입니다.
  • video_id: 현재 동영상 생성 작업의 동영상 ID입니다.
  • video_url: 현재 동영상 생성 작업의 동영상 링크입니다.
  • duration: 현재 동영상 생성 작업의 동영상 길이입니다.
  • state: 현재 동영상 생성 작업의 상태입니다.
만족스러운 동영상 정보를 얻은 것을 확인할 수 있으며, 결과의 data에 있는 동영상 링크 주소를 기반으로 생성된 Kling 동영상을 가져오기만 하면 됩니다. 또한 해당 연동 코드를 생성하려면 직접 복사하여 사용할 수 있습니다. 예를 들어 CURL 코드는 다음과 같습니다:

모델 기능 매트릭스

서로 다른 모델은 매개변수 지원 상황에 큰 차이가 있습니다. 다음 매트릭스는 Kling 공식 video models 문서를 기반으로 정리되었습니다. 호출 전에 현재 model / mode / duration 조합이 필요한 기능을 지원하는지 반드시 확인하세요. 그렇지 않으면 model/mode/duration(...) is not supported with image_tail 등의 오류가 반환됩니다. 주의 사항:
  • mode=4k는 kling-v3 및 kling-v3-omni만 지원하며, camera_control(카메라 워크)과 상호 배타적입니다.
  • end_image_url은 action=image2video일 때만 start_image_url과 함께 사용할 수 있습니다. end_image_url만 전달하면(start_image_url 없음)거부됩니다.
  • kling-v3 / kling-v3-omni는 임의의 3–15초 정수 duration을 허용합니다;kling-o1은 5만 허용합니다;나머지 모델은 5 또는 10만 허용합니다.
  • generate_audio의 기본값은 false입니다. kling-v3、kling-v3-omni 및 kling-v2-6(pro 모드)만 지원합니다.

비디오 확장 기능

이미 생성된 Kling 비디오를 계속 생성하려면, 파라미터 action을 extend로 설정하고 계속 생성해야 하는 비디오의 ID를 입력할 수 있습니다. 비디오 ID는 기본 사용법에 따라 가져오며, 아래 그림과 같습니다:

이때 비디오의 ID가 다음과 같은 것을 확인할 수 있습니다:
주의, 여기의 비디오 video_id는 생성된 비디오의 ID입니다. 비디오를 생성하는 방법을 모른다면, 위의 기본 사용법을 참고하여 비디오를 생성할 수 있습니다.
다음으로, 비디오 생성을 사용자 정의하기 위해 다음 단계에서 확장할 프롬프트를 반드시 입력해야 하며, 다음 내용을 지정할 수 있습니다:
  • model:비디오를 생성하는 모델로, 주로 kling-v1、kling-v1-5 및 kling-v1-6 모델이 있습니다.
  • mode:비디오 생성 모드이며, 선택 가능한 값은 표준 모드 std、고속 모드 pro 및 네이티브 4K 모드 4k입니다(kling-v3 및 kling-v3-omni만 지원하며, 카메라 워크 제어와 호환되지 않음)。
  • duration:이번 비디오 생성 작업의 비디오 길이로, 주로 5s와 10s를 포함합니다.
  • start_image_url:이미지-비디오 생성 동작 image2video를 선택하면 반드시 업로드해야 하는 첫 프레임 참조 이미지 링크입니다.
  • prompt:프롬프트.
작성 예시는 다음과 같습니다:

작성을 완료하면 다음과 같이 코드가 자동 생성됩니다:

해당 Python 코드:
실행을 클릭하면, 다음과 같은 결과를 얻는 것을 확인할 수 있습니다:
결과 내용이 위의 내용과 일치하는 것을 알 수 있으며, 이것으로 비디오 확장 기능이 구현됩니다.

Omni 만능 참조(비디오 편집 / 참조 비디오 / 다중 이미지 참조)

kling-o1과 kling-v3-omni는 두 개의 독립적인 모델이며, 둘 다 「만능 참조」 기능을 지원합니다. 텍스트-비디오 생성(action=text2video)을 기반으로 참조 이미지 또는 참조 비디오를 추가로 전달하여 다중 이미지 참조, 참조 비디오 및 기존 비디오 직접 편집을 구현할 수 있습니다. 핵심 규약:참조 소재는 반드시 prompt에서 &lt;&lt;<image_1>>>、&lt;&lt;<video_1>>> 형식으로(번호는 1부터 시작)image_list / video_list의 해당 위치 소재를 참조해야 모델이 이러한 참조를 적용합니다. 소재만 전달하고 프롬프트에서 참조하지 않으면, 소재는 무시됩니다.
보안 설명:현재 API는 element_list를 공개하지 않습니다. Kling Element Library의 ID는 테넌트별로 격리되지 않으므로, 테넌트 격리를 제공하는 Element Management API 이전에는 image_list를 사용하여 주체 참조 이미지를 전달하십시오.
Omni 요청은 negative_prompt、cfg_scale 또는 camera_control을 지원하지 않으며, mode=4k도 사용할 수 없습니다. 참조 비디오를 포함하는 경우, generate_audio는 반드시 false여야 합니다.

참조 비디오 및 비디오 편집(video_list)

video_list는 참조 비디오를 전달하는 데 사용되며, 본 기능에서 가장 일반적으로 사용되는 시나리오입니다. 배열 요소 필드는 다음과 같습니다:
  • video_url: 참조 비디오 링크이며, 비워둘 수 없습니다. 최대 1개의 MP4/MOV 비디오, 파일 크기 ≤200MB, 프레임 레이트 24–60fps입니다. kling-o1은 길이 3–10초, 너비와 높이가 각각 700–2160px여야 하며, kling-v3-omni는 길이 3–15.5초, 너비와 높이가 각각 700–4553px, 총 픽셀 ≤8,294,400, 종횡비 0.4–2여야 합니다.
  • refer_type: 참조 유형으로, base(기본값, 편집할 기본 비디오, 즉 “비디오를 직접 편집”하며 요소 추가/삭제/수정, 구도 변경, 스타일 변경, 색상 변경, 날씨 변경 등을 할 수 있음) 또는 feature(특징 참조, 스타일 / 카메라 워크 / 다음 샷 이어찍기 참조)를 선택할 수 있습니다.
  • keep_original_sound: 원본 비디오 오디오를 유지할지 여부로, yes(유지) 또는 no(제거)를 선택할 수 있습니다.
참고: 참조 비디오가 있는 경우 generate_audio는 false여야 합니다. refer_type=base인 비디오는 첫 프레임 / 마지막 프레임을 다시 지정할 수 없습니다.
기존 비디오를 편집하는(비디오를 애니메이션 스타일로 변경하는) CURL 예시는 다음과 같습니다:

다중 이미지 참조(image_list)

image_list는 참조 이미지(요소 / 장면 / 스타일 등)를 전달하는 데 사용되며, 배열 요소 필드는 다음과 같습니다:
  • image_url: 참조 이미지 링크이며, 비워둘 수 없습니다. 요구 사항: 형식 .jpg/.jpeg/.png, 파일 크기 ≤10MB, 짧은 변 ≥300px, 종횡비 1:2.5 ~ 2.5:1.
  • type: 선택 사항입니다. 전달하지 않으면 순수 참조 이미지로 사용되며, first_frame / end_frame을 전달하면 각각 첫 프레임 / 마지막 프레임으로 사용됩니다(start_image_url / end_image_url과 동일).
사용 시 prompt에서 &lt;&lt;<image_1>>>, &lt;&lt;<image_2>>>로 참조해야 합니다. 수량 제한: 참조 비디오가 없을 때 참조 이미지 ≤ 7, 참조 비디오가 있을 때 참조 이미지 ≤ 4입니다. 첫 / 마지막 프레임만 전달할 때도 start_image_url / end_image_url을 직접 사용할 수 있지만, 마지막 프레임은 반드시 첫 프레임과 함께 사용해야 합니다.
참고: start_image_url / end_image_url과 image_list를 동시에 전달하면 첫 / 마지막 프레임이 image_list보다 앞에 배치되어 &lt;&lt;<image_N>>>의 번호 대응 관계에 영향을 줄 수 있습니다. 둘 중 하나를 선택하는 것이 좋습니다. 첫 / 마지막 프레임이 필요한 경우 image_list에서 직접 type으로 지정하고, start_image_url / end_image_url과 혼용하지 마세요.
다중 이미지 참조로 비디오를 생성하는 CURL 예시:

비동기 콜백

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로 설정하고, 동시에 해당 매개변수를 입력할 수 있습니다. 구체적인 내용은 그림과 같습니다:

실행을 클릭하면 다음과 같이 즉시 결과를 얻을 수 있습니다:
잠시 기다리면 https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3에서 생성된 비디오 결과를 관찰할 수 있으며, 그림과 같습니다: 내용은 다음과 같습니다:
결과에 task_id 필드가 있는 것을 확인할 수 있으며, 다른 필드는 모두 위와 유사합니다. 이 필드를 통해 작업을 연결할 수 있습니다.

오류 처리

API 호출 시 오류가 발생하면 API는 해당 오류 코드와 정보를 반환합니다. 예를 들면:
  • 400 token_mismatched: 잘못된 요청이며, 매개변수가 누락되었거나 유효하지 않기 때문일 수 있습니다.
  • 400 api_not_implemented: 잘못된 요청이며, 매개변수가 누락되었거나 유효하지 않기 때문일 수 있습니다.
  • 401 invalid_token: 인증되지 않음, 인증 토큰이 유효하지 않거나 누락되었습니다.
  • 429 too_many_requests: 요청이 너무 많습니다. 속도 제한을 초과했습니다.
  • 500 api_error: 내부 서버 오류, 서버에서 문제가 발생했습니다.

오류 응답 예시

결론

본 문서를 통해 Kling Videos Generation API를 사용하여 입력 프롬프트와 첫 프레임 참조 이미지를 통해 비디오를 생성하는 방법을 알아보았습니다. 본 문서가 해당 API를 더 잘 연동하고 사용하는 데 도움이 되기를 바랍니다. 궁금한 점이 있으시면 언제든지 기술 지원팀에 문의해 주세요.

Kling 3.0 Turbo

model="kling-v3-turbo"는 텍스트-비디오 및 첫 프레임 이미지-비디오를 지원하며, 길이는 3–15초의 정수입니다. mode="std"는 720p를 출력하고, mode="pro"는 1080p를 출력합니다. 이 모델에는 네이티브 오디오가 기본으로 포함되며, 끄는 스위치는 제공되지 않습니다. generate_audio를 생략하거나 true로 설정하세요. 이 모델은 마지막 프레임, 카메라 이동 객체, 독립적인 네거티브 프롬프트 또는 cfg_scale를 지원하지 않습니다. 필요한 내용 또는 피해야 할 내용을 prompt에 직접 설명하세요.

멀티 샷 비디오

kling-v3 및 kling-v3-omni는 multi_shot=true를 지원합니다. shot_type="intelligence"는 prompt에 따라 자동으로 샷을 분할하고, shot_type="customize"는 multi_prompt를 통해 1–6개의 샷을 제공하며, 각 항목에는 1부터 연속적으로 증가하는 index, 최대 512자의 prompt, 그리고 최소 1초의 정수 duration이 포함됩니다. 모든 샷의 길이 합계는 전체 duration과 같아야 합니다. 사용자 지정 샷은 전역 prompt를 사용하지 않습니다. 멀티 샷은 선택한 모델, 화질, 오디오 구성 및 총 길이에 따라 과금됩니다.