메인 콘텐츠로 건너뛰기
OrcaRouter는 비디오 생성을 위해 Kling을 네이티브로 지원합니다. 작업을 제출하고, 작업 ID로 상태를 폴링한 다음, 업스트림이 완료되면 렌더링된 MP4를 받습니다(보통 30 - 90초). 이 비동기 제출-후-폴링 패턴은 비디오에만 고유합니다. 채팅 / 이미지 / TTS는 모두 동기 요청-응답이지만 Kling 비디오는 아닙니다.
제출 엔드포인트 POST /v1/video/generations는 비디오 프로바이더 간에 공유됩니다 — 요청 본문 형태는 당신의 model 접두사로 선택됩니다. 이 페이지는 model: kling/...를 다룹니다. ByteDance Seedance 모델은 model: byteplus/...을 사용하고 Seedance 비디오를 따르세요. 가져오기 엔드포인트 GET /v1/video/generations/{task_id}는 둘에 동일합니다.

모델

모든 모델이 텍스트-to-비디오와 이미지-to-비디오를 지원합니다. 고급 기능은 다음과 같이 다릅니다:
모델멀티소스 참조¹4K네이티브 오디오²멀티샷
kling/kling-v2-master
kling/kling-v2-1-master
kling/kling-v2-5-turbo
kling/kling-v2-6pro 모드
kling/kling-v3
kling/kling-video-o1✓ (제한적)
kling/kling-v3-omni✓ (완전)
¹ 멀티소스 참조 = image_list / video_list 메타데이터 필드. 존재하면 Kling의 Omni-Video 업스트림 엔드포인트로 라우팅됩니다. kling/kling-video-o1은 제한된 부분집합(5s/10s만, 멀티샷 없음, 오디오 없음); 전체 Omni 인터페이스에는 kling/kling-v3-omni를 선택하세요. ² 네이티브 오디오 = Kling이 비디오와 일치하는 사운드트랙을 자동 생성. 업스트림에서 추가 청구. metadata.sound: "on"으로 전환. 모든 모델의 제출 엔드포인트는 동일 — POST /v1/video/generations. 달라지는 것은 업스트림이 위 표에 따라 어떤 metadata 필드를 존중하는지입니다.

작업 제출

/v1/video/generationsmodel, prompt 및 업스트림 고유 매개변수를 metadata 아래에 두고 POST 하세요:
curl https://api.orcarouter.ai/v1/video/generations \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling/kling-v3-omni",
    "prompt": "cat playing piano in a sunny room",
    "metadata": {
      "mode": "std",
      "aspect_ratio": "16:9",
      "duration": "5"
    }
  }'
응답에 작업 ID가 포함됩니다:
{
  "id": "task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw",
  "task_id": "task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw",
  "object": "video",
  "model": "kling/kling-v3-omni",
  "status": "queued",
  "progress": 0,
  "created_at": 1777975188
}
POST는 소문자 status: "queued"를 반환합니다. GET은 대문자 상태 (SUBMITTED / IN_PROGRESS / SUCCESS / FAILURE)를 가진 래핑된 봉투를 반환합니다 — 아래 “결과 폴링” 참조.

공통 메타데이터 필드

이 세 가지는 모든 엔드포인트 변형에 적용됩니다:
필드타입비고
modestringstd(720P) / pro(1080P) / 4k. 4kkling/kling-v3kling/kling-v3-omni에서만. 텍스트/이미지-to-비디오의 기본값은 std, Omni-Video의 기본값은 pro.
aspect_ratiostring16:9 / 9:16 / 1:1. 첫 프레임 참조나 video_list를 제공하지 않는 한 Omni-Video에서 필수(그 경우 입력에서 추론).
durationstring초 단위 길이. 기본값 "5". kling/kling-v3-omnikling/kling-v3"3"-"15"를 받음; v2 패밀리(v2-master, v2-1-master, v2-5-turbo, v2-6)와 kling/kling-video-o1"5" 또는 "10"을 받음. 권위 있는 모델별 범위는 Kling Capability Map 참조.
이 두 가지는 텍스트-to-비디오와 이미지-to-비디오에만(Omni-Video는 NOT):
필드타입비고
negative_promptstring피할 것. 최대 2500자.
cfg_scalefloat범위 [0, 1], 기본값 0.5. 높을수록 엄격한 프롬프트 준수. v2.x 모델에서 지원되지 않음(kling-v2-master / v2-1-master / v2-5-turbo / v2-6).

결과 폴링

제출 시 반환된 작업 ID를 사용:
curl https://api.orcarouter.ai/v1/video/generations/task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw \
  -H "Authorization: Bearer sk-orca-..."
응답 형태는 래핑됨:
{
  "code": "success",
  "message": "",
  "data": {
    "task_id": "task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw",
    "status": "SUCCESS",
    "progress": "100%",
    "result_url": "https://v16-kling-fdl.klingai.com/.../video.mp4?...",
    "action": "omniVideo",
    "submit_time": 1777975188,
    "start_time": 1777975241,
    "finish_time": 1777975277,
    "fail_reason": ""
  }
}
상태 값(대문자, 원시 작업 상태):
상태의미
NOT_START작업 행 생성됨, 아직 디스패치되지 않음(일시적, 보통 2초 미만)
SUBMITTEDKling 업스트림에 보내짐, 그들의 큐에서 대기
IN_PROGRESSKling이 렌더링 중
SUCCESS완료. data.result_url이 MP4를 운반
FAILURE실패. data.fail_reason이 이유
진행 상황은 int가 아니라 퍼센트 문자열("30%", "100%")로 반환됩니다. 5 - 10초마다 폴링하세요. 전형적인 std 5초 클립은 30 - 60초에 완료; 4K, 15초, 멀티샷 작업은 2 - 5분 소요. data.result_url은 Kling 서명 URL입니다(ksTime / ksSecret 쿼리 매개변수 주의). 장기 보관이 필요하면 즉시 다운로드하거나 다시 호스팅하세요 — 서명에는 업스트림에서 정의한 만료가 있습니다.

엔드포인트 변형

세 변형 모두 POST /v1/video/generations를 공유합니다. Kling이 실제로 제공하는 엔드포인트는 어떤 필드를 제공하는지에 따라 결정됩니다.

텍스트-to-비디오

model + prompt(+ 위의 선택적 메타데이터)만. 이미지 입력이 없으면 텍스트-to-비디오:
curl https://api.orcarouter.ai/v1/video/generations \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling/kling-v2-6",
    "prompt": "ocean waves at sunset, cinematic",
    "metadata": {"mode": "pro", "duration": "5"}
  }'

이미지-to-비디오

첫/마지막 프레임 i2v를 위해 최상위 image(첫 프레임) 및/또는 metadata.image_tail(마지막 프레임) 추가:
curl https://api.orcarouter.ai/v1/video/generations \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling/kling-v2-master",
    "prompt": "the cat starts dancing",
    "image": "https://example.com/cat.png",
    "metadata": {"mode": "std", "duration": "5"}
  }'

멀티소스 참조 (Omni-Video)

image_listvideo_list는 요청을 Kling의 Omni-Video 엔드포인트 로 라우팅합니다. kling/kling-video-o1kling/kling-v3-omni에서 만 사용 가능. image_list — 다중 이미지 참조:
{ "image_list": [{ "image_url": "...", "type": "first_frame" }] }
  • image_url(필수): URL 또는 원시 base64(data: 접두사 없음).
  • type(선택): first_frame / end_frame. 이미지가 프레임 앵커로 의도되지 않은 한 생략. end-only는 지원되지 않음(항상 first-frame 이미지와 함께).
video_list — 비디오 참조(최대 1 비디오, MP4/MOV, ≤200MB):
{ "video_list": [{ "video_url": "...", "refer_type": "base", "keep_original_sound": "yes" }] }
  • refer_type: base(비디오 편집 — 입력 비디오가 편집됨; 기본값) 또는 feature(스타일/구성 참조 — 다음/이전 샷 생성).
  • keep_original_sound: yes / no.
  • kling/kling-v3-omni에서 비디오 참조는 3-10s 지속 시간, std/pro 모드(4K가 아님)에서만 지원.
video_list가 설정되면 metadata.sound"off"여야 합니다 — 그렇지 않으면 Kling이 조합을 거부합니다.
프롬프트 내 이미지 / 비디오 / 요소를 <<<>>> 구문으로 참조: <<<image_1>>>, <<<video_1>>>, <<<element_1>>>. Omni만. 인덱스는 배열 순서(1 기반)와 일치.
curl https://api.orcarouter.ai/v1/video/generations \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling/kling-v3-omni",
    "prompt": "<<<image_1>>> waves at the camera, then walks toward the ocean",
    "metadata": {
      "image_list": [{"image_url": "https://example.com/person.jpg"}],
      "mode": "pro",
      "aspect_ratio": "16:9",
      "duration": "5",
      "sound": "on"
    }
  }'

고급 기능

이 기능들은 텍스트-to-비디오, 이미지-to-비디오, Omni-Video 엔드포인트 에서 작동합니다 — 모델 지원이 다릅니다. metadata로 전달.

멀티샷

각각 자체 프롬프트와 지속 시간을 가진 여러 순차 샷으로 구성된 비디오를 생성합니다. kling/kling-v3kling/kling-v3-omni에서 사용 가능.
필드타입목적
multi_shotbool활성화하려면 true로 설정. 최상위 prompt와 첫/마지막 프레임 입력 무시.
shot_typestringcustomize(multi_prompt를 문자 그대로 사용) 또는 intelligence(Kling이 자동 세그먼트). multi_shot=true일 때 필수.
multi_promptarray[{index, prompt, duration}]. 1 - 6 스토리보드. 각 샷의 duration ≥ 1s; 합계는 작업의 총 duration과 같아야 함. 각 prompt ≤ 512자.

네이티브 오디오

Kling이 비디오와 일치하는 사운드트랙을 자동 생성. 업스트림에서 추가 청구. metadata.sound: "on"(기본값 "off")으로 전환. 모델 지원:
  • kling/kling-v3kling/kling-v3-omni: 모든 모드(std / pro / 4K)
  • kling/kling-v2-6: pro 모드만
  • 다른 모든 모델: 지원되지 않음

워터마크

metadata.watermark_info: {enabled: true}를 전달하여 렌더링된 비디오에 Kling 워터마크를 새깁니다. 기본값은 워터마크 없음.

청구

Kling 비디오는 작업당 청구됩니다. OrcaRouter는 Kling이 청구하는 것을 정확히 청구합니다 — 업스트림 final_unit_deduction이 마크업 없이 지갑 차감이 됩니다. 최종 비용은 Kling이 공개한 요율 카드와 일치합니다. 제출 시 당신의 요청에 대한 가장 그럴듯한 최고 비용(예: 4K + 오디오) 을 커버하기 위해 작은 사전 소비 보류가 예약됩니다; 차액은 작업이 성공하는 즉시 환불됩니다. 실제 작업당 지출은 콘솔의 지갑 기록에서 확인하세요.

Kling SDK 직접 사용

이미 Kling 공식 SDK에 대해 작성된 코드가 있다면, OrcaRouter는 /kling/v1/videos/...에서 Kling의 네이티브 와이어 형식도 말합니다. 본문 필드는 플랫하게 유지(model_name, mode 등) — base URL, Authorization 헤더, model_name 값만 변경됩니다:
curl https://api.orcarouter.ai/kling/v1/videos/omni-video \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model_name": "kling/kling-v3-omni",
    "prompt": "cat playing piano",
    "mode": "pro",
    "aspect_ratio": "16:9",
    "duration": "5",
    "sound": "on"
  }'
model_name은 OrcaRouter 측 모델 신원(즉 /v1/video/generations 에서 사용할 동일한 이름)을 사용해야 하며, Kling의 베어 모델 이름이 아닙니다. OrcaRouter는 채널의 model_mapping을 통해 해결한 다음 Kling으로 전달합니다.
해당 가져오기 경로는 GET /kling/v1/videos/omni-video/{task_id}(또는 text2video, image2video)입니다. 기존 코드에 맞는 와이어 형식을 선택하세요. 둘 다 동일하게 청구 됩니다.

관련 항목