Skip to content

Kling ​

Endpoint: POST https://vod.intl.tencentcloudapi.comAction: CreateAigcVideoTask

기본 정보 ​

항목값
ModelNameKling
ModelVersion3.0 / 3.0-turbo / 3.0-Omni / O1 / 2.6 / 2.5 / 2.1 / 2.0 / 1.6
기본값ModelVersion=3.0 / Resolution=1080P
가드레일 해제 지원지원

버전별 지원 규격 ​

버전해상도비율길이
공통480P / 720P / 1080P / 2K / 4K——
3.0-turbo720P / 1080P / 2K / 4K텍스트 생성 16:9 / 9:16 / 1:13–15초

입력 조건 ​

버전조건
3.0-turbo텍스트 또는 첫 프레임 이미지 1장

요청 파라미터 ​

파라미터필수타입설명
ModelName필수String고정값 Kling
ModelVersion선택String3.0 / 3.0-turbo / 3.0-Omni / O1 / 2.6 / 2.5 / 2.1 / 2.0 / 1.6
Prompt필수String생성 프롬프트
FileInfos.N선택Array참조 입력. Usage는 FirstFrame(첫 프레임) 또는 Reference(참조)
OutputConfig.Resolution선택String480P / 720P / 1080P / 2K / 4K
OutputConfig.Duration선택Integer영상 길이(초)
OutputConfig.AspectRatio선택String16:9 / 9:16 / 1:1 등
ExtInfo선택String2중 JSON 인코딩. 아래 고급 기능(동작 제어, 립싱크, 디지털 휴먼)의 세부 파라미터를 전달합니다.
FirstFrameFileId / LastFrameUrl선택String첫/끝 프레임 생성용. 참조 프레임을 FileInfos의 Usage=FirstFrame으로, 끝 프레임을 LastFrameUrl/LastFrameFileId로 지정 (2.1 버전은 1080P 필수)
OutputConfig.
InputComplianceCheck
선택StringDisabled를 명시적으로 전달하면 입력 심사 해제. 사용 전 영업담당자 문의
OutputConfig.
OutputComplianceCheck
선택StringDisabled를 명시적으로 전달하면 출력 심사 해제. 사용 전 영업담당자 문의

요청 예시 ​

json
{
  "SubAppId": 123456789,
  "ModelName": "Kling",
  "ModelVersion": "3.0",
  "Prompt": "a calm sunset over the ocean, cinematic",
  "OutputConfig": {
    "Resolution": "1080P",
    "Duration": 5,
    "AspectRatio": "16:9",
    "StorageMode": "Temporary"
  },
  "SessionContext": "job-001"
}

응답 예시 ​

json
{
  "AigcVideoTask": {
    "Status": "FINISH",
    "ErrCode": 0,
    "Progress": 100,
    "Output": {
      "FileInfos": [
        {
          "FileUrl": "http://<host>.vod2.myqcloud.com/.../aigcVideoGenFile.mp4",
          "ExpireTime": "2026-08-01T10:29:48Z",
          "MetaData": {
            "Width": 1920,
            "Height": 1080,
            "Duration": 5.07,
            "Container": "mov,mp4,m4a",
            "Bitrate": 9494850
          }
        }
      ]
    }
  }
}

참조 개수 제한 (Kling 기준) ​

참조 이미지와 참조 참조 대상, 참조 영상의 수는 서로 영향을 줍니다.

조건제한
참조 영상 있음참조 이미지 수 + 참조 참조 대상 수 합산 4 이하
참조 영상 —참조 이미지 수 + 참조 참조 대상 수 합산 7 이하
끝 프레임 사용참조 이미지 최대 2장

ErrCode까지 확인해야 합니다

완료 응답의 Status="FINISH"와 ErrCode=0을 함께 확인합니다.

특수 설정 ​

가드레일 해제 ​

입력과 출력 심사를 각각 설정할 수 있습니다.

가드레일 해제 파라미터를 사용하려면 먼저 영업담당자에게 연락해 사용 권한을 확인해야 합니다. 지원 엔진에서도 해당 파라미터를 명시적으로 전달하는 경우에만 가드레일 해제가 적용됩니다. 파라미터를 생략하면 해제되지 않습니다.

파라미터해제 값적용 대상
OutputConfig.InputComplianceCheckDisabled입력 심사 해제
OutputConfig.OutputComplianceCheckDisabled출력 심사 해제

다음 설정을 기존 생성 요청에 병합합니다. 입력과 출력 심사를 모두 해제하려면 두 필드를 함께 전달합니다.

json
{
  "OutputConfig": {
    "InputComplianceCheck": "Disabled",
    "OutputComplianceCheck": "Disabled"
  }
}

첫/끝 프레임 생성 (First / Last Frame) ​

시작 프레임과 종료 프레임 이미지를 주면 두 프레임 사이를 자연스럽게 이어 붙인 영상을 만듭니다. 첫 프레임은 FileInfos에 Usage=FirstFrame으로, 끝 프레임은 LastFrameUrl(또는 LastFrameFileId)로 지정합니다.

json
{
  "SubAppId": 123456789,
  "ModelName": "Kling",
  "ModelVersion": "2.1",
  "Prompt": "camera slowly pushes in, cinematic",
  "FileInfos": [
    {
      "Type": "Url",
      "Category": "Image",
      "Usage": "FirstFrame",
      "Url": "https://<cdn>/first.jpg"
    }
  ],
  "LastFrameUrl": "https://<cdn>/last.jpg",
  "OutputConfig": {
    "Resolution": "1080P",
    "Duration": 5,
    "AspectRatio": "16:9",
    "StorageMode": "Temporary"
  },
  "SessionContext": "job-001"
}

2.1 버전은 1080P 필수

Kling 2.1의 첫/끝 프레임 생성은 OutputConfig.Resolution=1080P를 사용합니다.

동작 제어 (motion_control) ​

참조 영상의 동작을 인물 이미지에 입혀 새 영상을 만듭니다. SceneType=motion_control로 지정하고, 참조 영상과 인물 이미지를 FileInfos로 함께 지정합니다. 버전은 3.0(신버전) 또는 2.6(표준 입구)을 사용합니다.

json
{
  "SubAppId": 123456789,
  "ModelName": "Kling",
  "ModelVersion": "2.6",
  "SceneType": "motion_control",
  "Prompt": "참조 영상의 동작으로 새 영상 생성",
  "FileInfos": [
    {
      "Type": "Url",
      "Category": "Video",
      "Url": "https://<cdn>/ref_motion.mp4"
    },
    {
      "Type": "Url",
      "Category": "Image",
      "Url": "https://<cdn>/person.webp"
    }
  ],
  "ExtInfo": "{\"AdditionalParameters\":\"{\\\"keep_original_sound\\\":\\\"no\\\",\\\"character_orientation\\\":\\\"video\\\"}\"}",
  "OutputConfig": {
    "StorageMode": "Temporary"
  },
  "SessionContext": "job-001"
}

ExtInfo 주요 파라미터

keep_original_sound: yes(원본 소리 유지)/no. character_orientation: image(이미지 인물 방향, 참조 영상 ≤10초)/video(영상 인물 방향, 참조 영상 ≤30초).

립싱크 (lip_sync) ​

인물이 말하는 소스에 오디오를 맞춰 입 모양을 동기화합니다. 먼저 DescribeAigcFaceInfo로 SessionId와 얼굴 정보를 얻은 뒤, SceneType=lip_sync로 호출합니다. 오디오와 영상 정보는 모두 ExtInfo로 전달하고 FileInfos는 비웁니다.

json
{
  "SubAppId": 123456789,
  "ModelName": "Kling",
  "ModelVersion": "2.6",
  "SceneType": "lip_sync",
  "Prompt": "lip sync",
  "ExtInfo": "{\"AdditionalParameters\":\"{\\\"session_id\\\":\\\"845736590818832460\\\",\\\"face_choose\\\":[{\\\"face_id\\\":0,\\\"sound_file\\\":\\\"https://<cdn>/audio.mp3\\\",\\\"sound_start_time\\\":0,\\\"sound_end_time\\\":5000,\\\"sound_insert_time\\\":0,\\\"sound_volume\\\":2,\\\"original_audio_volume\\\":0}]}\"}",
  "OutputConfig": {
    "StorageMode": "Temporary"
  },
  "SessionContext": "job-001"
}

두 단계 흐름

1단계: DescribeAigcFaceInfo로 session_id와 face_id를 얻습니다. 2단계: lip_sync 호출 시 FileInfos는 비우고, face_choose 배열에 face_id / sound_file, 구간(ms), 볼륨을 지정합니다.

디지털 휴먼 (avatar_i2v) ​

인물 이미지 1장과 오디오로 말하거나 움직이는 인물 영상을 만듭니다. SceneType=avatar_i2v로 지정하고 인물 이미지를 FileInfos로, 오디오는 ExtInfo의 sound_file로 지정합니다.

json
{
  "SubAppId": 123456789,
  "ModelName": "Kling",
  "ModelVersion": "2.6",
  "SceneType": "avatar_i2v",
  "Prompt": "talking naturally",
  "FileInfos": [
    {
      "Type": "Url",
      "Category": "Image",
      "Url": "https://<cdn>/portrait.png"
    }
  ],
  "ExtInfo": "{\"AdditionalParameters\":\"{\\\"sound_file\\\":\\\"https://<cdn>/audio.mp3\\\"}\"}",
  "OutputConfig": {
    "StorageMode": "Temporary"
  },
  "SessionContext": "job-001"
}

오디오 입력 규칙

sound_file(mp3/wav/m4a/aac, 최대 5MB, 2~300초) 또는 audio_id 중 하나를 입력합니다.

이미지 / 영상 참조 (image_list / video_list) ​

프롬프트 안에서 <<<...>>> 표기로 참조 목록의 항목을 지목할 수 있습니다. 이미지 목록과 영상 목록은 FileInfos로 전달하고, Category로 종류를 구분합니다. 순서는 FileInfos 배열의 순서를 따릅니다.

표기대상
<<<image_1>>> / <<<image_2>>> ...Category=Image 항목
<<<video_1>>> / <<<video_2>>> ...Category=Video 항목
<<<element_1>>> / <<<element_2>>> ...SubjectInfos 또는 element_list로 전달한 참조 대상
json
{
  "SubAppId": 123456789,
  "ModelName": "Kling",
  "ModelVersion": "3.0-Omni",
  "FileInfos": [
    {
      "Type": "Url",
      "Category": "Image",
      "Url": "https://<cos>/f0.jpeg",
      "Usage": "Reference"
    },
    {
      "Type": "Url",
      "Category": "Image",
      "Url": "https://<cos>/f1.jpeg",
      "Usage": "Reference"
    },
    {
      "Type": "Url",
      "Category": "Video",
      "Url": "https://<cos>/1.mp4",
      "Usage": "Reference"
    }
  ],
  "Prompt": "let <<<image_1>>> hold hands with <<<image_2>>> in the environment of <<<video_1>>>",
  "OutputConfig": {
    "Duration": 8,
    "Resolution": "1080P",
    "AspectRatio": "16:9",
    "AudioGeneration": "Disabled",
    "StorageMode": "Temporary"
  },
  "SessionContext": "job-001"
}

ReferenceType: 참조 영상의 성격 ​

Category=Video일 때 ReferenceType으로 용도를 지정합니다. GV, Kling, PixVerse에 적용됩니다.

값의미
feature특징 참조. 영상의 스타일이나 움직임 특징만 참조
base편집 대상. 이 영상 자체를 수정

참조 개수 제한 ​

조건제한
참조 영상 있음참조 이미지 수 + 참조 대상 수 합산 4 이하
참조 영상 —참조 이미지 수 + 참조 대상 수 합산 7 이하
끝 프레임 사용참조 이미지 최대 2장

등록한 참조 대상 (SubjectInfos) ​

같은 인물이나 사물을 여러 태스크에서 재사용할 때 사용합니다. 참조 대상를 미리 만들어 두면 ID가 발급되고, 생성 요청에서 그 ID를 참조합니다. Kling은 등록한 참조 대상만 지원합니다.

참조 대상 생성 API ​

API설명
CreateAigcAdvancedCustomElement권장. 비동기. 이미지와 영상 모두 지원. 응답으로 TaskId를 주고 DescribeTaskDetail로 조회
CreateAigcCustomElement구버전. 동기. 이미지 전용. 하위 호환용으로만 유지
DescribeAigcAdvancedCustomElements생성한 참조 대상 목록 조회
DeleteAigcAdvancedCustomElement참조 대상 삭제

해외 참조 대상 라이브러리를 이미 개통한 경우 CreateAigcAdvancedCustomElement에 DisableModeration=True를 넘기면 해외 참조 대상 라이브러리를 사용합니다.

캐릭터 등록 ​

SubjectInfos.N.Id에 참조 대상 ID를 넣고, 프롬프트에서 <<<element_N>>>으로 지목합니다. Name은 선택이며 붙여도 프롬프트 참조 표기는 동일합니다.

json
{
  "SubAppId": 123456789,
  "ModelName": "Kling",
  "ModelVersion": "3.0-Omni",
  "SubjectInfos": [
    {
      "Id": "858477278396170315"
    },
    {
      "Id": "858477602846711835"
    }
  ],
  "Prompt": "let <<<element_1>>> hold hands with <<<element_2>>> and spin around",
  "OutputConfig": {
    "StorageMode": "Temporary",
    "Resolution": "1080P"
  },
  "SessionContext": "job-001"
}

등록한 참조 대상 (구버전, ExtInfo) ​

ExtInfo의 element_list로도 같은 동작을 시킬 수 있지만 새 구현에는 SubjectInfos를 권장합니다.

json
{
  "SubAppId": 123456789,
  "ModelName": "Kling",
  "ModelVersion": "3.0-Omni",
  "Prompt": "let <<<element_1>>> hold hands with <<<element_2>>> and spin around",
  "OutputConfig": {
    "StorageMode": "Temporary",
    "Resolution": "1080P"
  },
  "ExtInfo": "{\"AdditionalParameters\": \"{\\\"element_list\\\": [{\\\"element_id\\\": 858477278396170315}, {\\\"element_id\\\": 858477602846711835}]}\"}",
  "SessionContext": "job-001"
}

스마트 샷 (multi_shot) ​

Kling 3.0 계열은 프롬프트 한 문장으로 여러 컷을 자동 구성하거나, 컷별 스크립트를 직접 지정할 수 있습니다. ExtInfo의 AdditionalParameters로 전달합니다.

필드타입기본값설명
multi_shotBoolfalsetrue이면 다중 컷 모드. 이때 최상위 Prompt는 무시됩니다
shot_typeString빈 값customize(직접 지정) / intelligence(자동). multi_shot=true이면 필수
multi_promptArray빈 값컷별 정보. 최대 6개, 최소 1개

multi_prompt 항목 구성:

필드설명
index컷 번호
prompt컷 스크립트. 최대 512자
duration컷 길이(초). 1 이상, 전체 길이 이하

컷 길이 합계는 전체 길이와 같아야 합니다

각 컷의 duration 합계를 OutputConfig.Duration과 동일하게 지정합니다.

customize: 컷 직접 지정 ​

json
{
  "SubAppId": 123456789,
  "ModelName": "Kling",
  "ModelVersion": "3.0",
  "Prompt": "not used when multi_shot is on",
  "OutputConfig": {
    "StorageMode": "Temporary",
    "Resolution": "1080P",
    "Duration": 5,
    "AspectRatio": "16:9",
    "AudioGeneration": "Enabled"
  },
  "ExtInfo": "{\"AdditionalParameters\": \"{\\\"multi_shot\\\": true, \\\"shot_type\\\": \\\"customize\\\", \\\"multi_prompt\\\": [{\\\"index\\\": 1, \\\"prompt\\\": \\\"A person sitting on a park bench, sunlight filtering through trees\\\", \\\"duration\\\": 2}, {\\\"index\\\": 2, \\\"prompt\\\": \\\"A car speeding down a rainy street, headlights glowing. Dynamic angle, focus on motion.\\\", \\\"duration\\\": 3}]}\"}",
  "SessionContext": "job-001"
}

Python으로 ExtInfo를 만드는 예시입니다.

python
import json
kl_ext_info = {
    "multi_shot": True,
    "shot_type": "customize",
    "multi_prompt": [
        {"index": 1, "prompt": "A person sitting on a park bench, sunlight filtering through trees", "duration": 2},
        {"index": 2, "prompt": "A car speeding down a rainy street, headlights glowing. Dynamic angle, focus on motion.", "duration": 3},
    ],
}
inner = json.dumps(kl_ext_info, ensure_ascii=False)
ext_info = json.dumps({"AdditionalParameters": inner}, ensure_ascii=False)

intelligence: 자동 분할 ​

shot_type=intelligence이면 multi_prompt는 무시되고 Prompt를 기준으로 모델이 컷을 구성합니다.

커스텀 음색 (voice_id) ​

음성을 포함해 생성할 때 목소리를 지정합니다. 지원 버전은 2.6 / 3.0 / 3.0-Omni이며 2.6은 1080P에서만 음색 ID 지정이 가능합니다.

음색은 별도 API로 미리 생성하고, ExtInfo의 voice_list로 전달한 뒤 프롬프트에서 <<<voice_N>>>으로 지목합니다.

json
{
  "SubAppId": 123456789,
  "ModelName": "Kling",
  "ModelVersion": "2.6",
  "FileInfos": [
    {
      "Type": "Url",
      "Category": "Image",
      "Url": "https://<cos>/portrait.png",
      "Usage": "FirstFrame"
    }
  ],
  "Prompt": "the person in the image says loudly with <<<voice_1>>>: I want to be free",
  "OutputConfig": {
    "StorageMode": "Permanent",
    "Duration": 5,
    "Resolution": "1080P",
    "AspectRatio": "9:16",
    "AudioGeneration": "Enabled"
  },
  "ExtInfo": "{\"AdditionalParameters\": \"{\\\"voice_list\\\": [{\\\"voice_id\\\": 869048851066937391}]}\"}",
  "SessionContext": "job-001"
}

영상 편집 (base 영상) ​

이미 생성된 영상을 편집 대상으로 삼고, 프롬프트로 내용을 바꿉니다. Category=Video에 ReferenceType=base를 지정합니다.

json
{
  "SubAppId": 123456789,
  "ModelName": "Kling",
  "ModelVersion": "3.0-Omni",
  "FileInfos": [
    {
      "Type": "Url",
      "Category": "Video",
      "Url": "https://<cos>/source.mp4",
      "ReferenceType": "base"
    }
  ],
  "Prompt": "change the color of the main character's dress to white",
  "OutputConfig": {
    "StorageMode": "Permanent",
    "MediaName": "kling-video-edit"
  },
  "SessionContext": "job-001"
}

feature와 base의 차이

feature는 참조 영상의 특징만 가져오고 새 영상을 만듭니다. base는 그 영상 자체를 편집합니다. 편집 목적이면 반드시 base를 지정해야 합니다.

다중 요소 편집 (multi_elements) ​

영상 속 특정 요소(피사체)를 선택해 삭제하거나 재생성하는 Kling 편집 기능입니다. 선택 영역을 만드는 두 개의 세션 API로 SessionId를 준비한 뒤, CreateAigcVideoTask에 SceneType=multi_elements로 최종 생성 태스크를 제출하는 3단계 흐름입니다.

1단계 InitializeAigcMultiElementsSelection 입력 영상을 업로드하고 해석해 SessionId 발급 2단계 EditAigcMultiElementsSelection 선택 영역 편집(add / delete / clear / preview). 만족할 때까지 반복 3단계 CreateAigcVideoTask SceneType=multi_elements로 최종 영상 생성

입력 영상 제약

입력 영상은 길이 10초 이하, 가로와 세로 각각 720px 이상이어야 합니다. 발급된 SessionId는 24시간 유효합니다.

1단계 선택 세션 초기화 (InitializeAigcMultiElementsSelection) ​

편집할 영상을 업로드하고 해석해 SessionId를 발급합니다.

파라미터필수타입설명
SubAppId필수IntegerVOD 애플리케이션 ID
FileInfo선택Object영상 소스
FileInfo.Type필수StringFile 또는 Url
FileInfo.FileId선택StringType=File일 때 필수. VOD 파일 ID
FileInfo.Url선택StringType=Url일 때 필수. 접근 가능한 영상 URL
json
{
  "SubAppId": 123456789,
  "FileInfo": {
    "Type": "Url",
    "Url": "https://<cdn>/input.mp4"
  }
}

응답 필드:

필드설명
SessionId세션 ID. 24시간 유효하며 이후 호출에서 사용
Status인식 코드. 0이면 성공
Fps영상 프레임레이트
OriginalDuration영상 길이(초)
Width / Height영상 가로 / 세로
TotalFrame총 프레임 수
NormalizedVideo정규화된 영상 URL
json
{
  "Response": {
    "SessionId": "<session-id>",
    "Status": 0,
    "Fps": 30.0,
    "OriginalDuration": 5.0,
    "Width": 720,
    "Height": 1280,
    "TotalFrame": 150,
    "NormalizedVideo": "https://<cdn>/normalized.mp4",
    "RequestId": "<request-id>"
  }
}

2단계 선택 영역 편집 (EditAigcMultiElementsSelection) ​

하나의 API가 SelectionAction으로 네 가지 동작을 구분합니다. add(선택점 추가) / delete(선택점 삭제) / clear(전체 초기화) / preview(마스크 미리보기). 선택이 만족스러울 때까지 반복 호출합니다.

파라미터필수타입설명
SubAppId필수IntegerVOD 애플리케이션 ID
SelectionAction필수Stringadd / delete / clear / preview
SessionId필수String1단계에서 받은 세션 ID
FrameIndex선택Integeradd/delete 시 필수. 대상 프레임 번호
Points선택Arrayadd/delete 시 필수. 정규화 좌표. Point.X / Point.Y는 0~1 범위
json
{
  "SubAppId": 123456789,
  "SelectionAction": "add",
  "SessionId": "<session-id>",
  "FrameIndex": 0,
  "Points": [
    {
      "X": 0.773,
      "Y": 0.297
    }
  ]
}

응답 필드:

필드출현설명
Status공통인식 코드. 0이면 성공
Result.FrameIndexadd / delete조작 프레임 번호
Result.RleMaskList.ObjectIdadd / delete선택된 객체 ID
Result.RleMaskList.RleMaskadd / delete선택 마스크 RLE(Counts)와 크기(Size)
Result.RleMaskList.PngMask.Urladd / deletePNG 마스크 URL
Result.Video / VideoCoverpreview마스크가 표시된 미리보기 영상 / 커버 URL
Result.TrackingOutputpreview프레임별 마스크 추적 결과 URL

동작별 응답

delete의 응답 구조는 add와 동일합니다. clear는 Result 없이 Status만 반환합니다.

3단계 최종 생성 (CreateAigcVideoTask, SceneType=multi_elements) ​

SceneType=multi_elements로 다중 요소 편집 씬을 트리거합니다. ExtInfo의 AdditionalParameters에 앞서 만든 session_id와 edit_mode를 담고, Prompt에서 편집 대상을 <<<video_1>>>로 참조합니다.

json
{
  "SubAppId": 123456789,
  "ModelName": "Kling",
  "ModelVersion": "1.6",
  "FileInfos": [
    {
      "Type": "Url",
      "Url": "https://<cdn>/ref.jpeg",
      "Usage": "Reference"
    }
  ],
  "Prompt": "<<<video_1>>>에서 특정 피사체 재생성",
  "OutputConfig": {
    "Duration": 10,
    "StorageMode": "Temporary"
  },
  "SceneType": "multi_elements",
  "ExtInfo": "{\"AdditionalParameters\":\"{\\\"session_id\\\":\\\"<session-id>\\\",\\\"edit_mode\\\":\\\"addition\\\"}\"}",
  "SessionContext": "job-001"
}
json
{
  "Response": {
    "TaskId": "<task-id>",
    "RequestId": "<request-id>"
  }
}

반환된 TaskId는 아래 태스크 접수 응답 절차대로 DescribeTaskDetail로 폴링합니다.

基于 VitePress 构建 · 部署于腾讯云 EdgeOne Pages