HiAPI
블로그

사용 가이드

개발자를 위한 Kling 4.0 텍스트-투-비디오 프롬프트 레시피

그대로 복사해 붙여넣을 수 있는 프롬프트 패턴 — 시네마틱 장면, 카메라 제어, 길이 제어를 아우른다

Oct 31, 2026
Abstract cover image of overlapping translucent glass planes casting cool blue bands across a pale field.
주요 프롬프트 레시피로 생성한 Kling 4.0 텍스트-투-비디오 출력 — 시네마틱 구도, 돌리에서 크레인으로 이어지는 카메라 무브먼트, 6초 길이 제어.

왜 프롬프트 구조가 표현보다 중요한가

대부분의 팀은 표현부터 손댄다. 형용사를 계속 바꾸고 유의어를 갈아 끼우며 다음 렌더가 더 나아지기를 기대한다. 단일 클립에서는 통할 수 있다. 하지만 API 파이프라인에 들어가는 순간 — 같은 프롬프트가 수십에서 수백 건의 요청에서 일관된 결과를 내야 하는 순간 — 이 방식은 완전히 무너진다.

표현은 표면적 디테일에 불과하다. 출력을 예측 가능하게 만드는 핵심은 구조다.

kling-4.0/text-to-video를 호출할 때 모델이 받는 것은 하나의 문자열이다. 그 문자열 안에서 모델은 여러 독립적 결정을 동시에 해결해야 한다. 주체가 무엇인지, 환경이 어떻게 생겼는지, 카메라가 어떻게 움직이는지, 그리고 요청한 클립 길이가 담을 수 있는 서사량은 얼마인지. 이 결정들이 매끄러운 한 문장에 뒤엉키면, 어떤 문장이 나쁜 렌더를 초래했는지 알 수 없고 다른 차원을 건드리지 않고 한 차원만 조정할 수도 없다.

구조화된 프롬프트는 이 결정들을 안정적인 슬롯으로 분리한다. 이는 세 가지 실질적 이점을 낳는다.

  • 격리성. 카메라가 느낌상 잘못됐을 때, 카메라 슬롯만 바꾼다. 장면 설명은 그대로 두므로 비교가 의미를 갖는다.
  • 재사용성. 같은 장면 블록을 한 배치 안에서 서로 다른 카메라 블록과 조합할 수 있다. 이것이 저비용으로 변형을 탐색하는 방법이다.
  • 진단 가능성. 모델이나 파라미터 변경 후 출력이 회귀할 때, 추측 대신 프롬프트 버전을 비교할 수 있다.

구조가 이기는 두 번째 이유가 있다. 비디오 생성은 반복 비용이 비싸다. 렌더마다 시간과 예산이 들고 중간 상태를 볼 수 없다. 최종 클립만 볼 수 있기에, 프롬프트는 사실상 유일한 디버깅 인터페이스다. 사양서처럼 읽히는 프롬프트는 추론할 거리를 준다. 시처럼 읽히는 프롬프트는 아무것도 주지 않는다.

마지막으로, 구조화된 프롬프트는 인수인계를 견딘다. 동료가 읽고 채우고 버전 관리할 수 있는 레시피는 자산이다. 기발한 일회성 프롬프트는 누군가의 초안 파일에 살다가 거기서 죽는다.

그래서 이 가이드의 레시피는 마법 같은 구절 목록이 아니라 하나의 골격을 중심으로 구성된다. 구절도 중요하지만, 통제 가능한 형태에 박혀 있을 때만 힘을 낸다.

핵심 프롬프트 골격

이 가이드의 모든 레시피는 동일한 4단 템플릿의 채우기다. 순서를 안정적으로 유지해야 diff가 읽힌다.

[SUBJECT] + [SCENE] + [CAMERA] + [PACING]

각 슬롯에 무엇이 들어가야 하는지는 다음과 같다.

주체(Subject)

클립이 누구 또는 무엇에 관한지, 그리고 운동 중에 유지돼야 할 물리적 디테일 한두 개를 덧붙인다. 구체적이고 시각적으로 유지하라. "빗물에 젖은 트렌치코트를 입은 여자"가 "신비로운 사람"보다 낫다. 여기서는 추상적 감정 라벨을 피하라. 모델은 의도가 아니라 몸과 사물을 렌더링한다.

장면(Scene)

환경, 조명, 시간. 시네마틱 품질이 여기서 나온다. 감정 단어가 아니라 빛의 방향과 질감을 지정하라. "낮은 각도의 햇빛이 렌즈 왼쪽에서 비스듬히 들어와 강한 그림자, 공기 중의 먼지"가 "드라마틱한 조명"보다 모델에 더 많은 정보를 준다.

카메라(Camera)

샷 사이즈와 무브먼트를 하나의 독립 절로 진술한다. 독립 슬롯이기에 통째로 교체할 수 있다. 고정 와이드 샷과 느린 푸시인은 같은 주체와 장면을 공유하지만 완전히 다른 클립을 낳는다.

페이싱(Pacing)

클립 안에서 무슨 일이 일어나야 하는지, 요청한 길이에 맞춰 기술한다. 짧은 클립은 비트 하나를 지탱한다. 긴 클립은 작은 아크를 담을 수 있다.

채우기 예시는 다음과 같다.

SUBJECT: a lone cyclist in a dark windbreaker, water beading on the helmet
SCENE: empty coastal road at dawn, overcast sky, wet asphalt reflecting grey light
CAMERA: wide shot, slow lateral tracking at walking pace
PACING: single continuous action, cyclist pedals steadily, no cuts

kling-4.0/text-to-video에 보낼 하나의 요청 문자열로 평탄화하면 다음과 같다.

A lone cyclist in a dark windbreaker, water beading on the helmet, on an empty coastal road at dawn, overcast sky, wet asphalt reflecting grey light. Wide shot, slow lateral tracking at walking pace. Single continuous action, cyclist pedals steadily, no cuts.

이 골격을 실전에서 작동시키는 두 가지 규약이 있다. 첫째, 슬롯 사이는 쉼표가 아니라 마침표로 구분한다. 이는 프롬프트에 자연스러운 리듬을 주고 각 결정을 분리한다. 둘째, 절대 실수로 슬롯을 비우지 마라. 카메라가 중요하지 않더라도 "static medium shot"처럼 명시적 선택을 적어야 모델이 즉흥적으로 채우지 않는다.

골격을 계약으로 취급하라. 골격을 바꿀 때는 의식적으로 바꾸고 프롬프트 버전 번호를 올려라.

시네마틱 장면 표현 레시피

시네마틱 출력은 영화처럼 들리는 형용사가 아니라 빛과 공간에 대한 구체적 묘사에서 나온다. 아래 패턴은 감정 단어를 물리적 사실로 대체한다.

레시피: 방향성 조명

SCENE: interior workshop at night, single warm lamp from upper right casting long shadows across a cluttered bench, dust visible in the light beam, dark background falling into black

무엇이 작동하는지 보라. 광원, 방향, 질감, 그리고 빛이 드러내는 것. "Warm"과 "night"는 색조를 정하고, "upper right"는 기하학을 고정하며, "dust visible in the beam"은 깊이를 더한다. 램프를 창문으로 바꾸면 주체나 카메라를 건드리지 않고도 같은 골격으로 다른 장면이 나온다.

레시피: 환경 깊이

SCENE: narrow alley after rain, foreground puddles with reflections, midground fire escape and hanging cables, distant streetlight haze behind, cool blue-grey palette

전경, 중경, 배경을 명시적으로 층화하면 모델에 깊이 계획을 준다. 또한 프롬프트가 한 평면만 묘사할 때 생기는 흐릿한 중간 화면을 줄여준다.

레시피: 질감을 동반한 주체 행동

SUBJECT: a chef in a white apron, flour dusting the forearms, hands working dough
PACING: continuous kneading motion, flour puffing with each press, no cuts

행동을 모델이 지속적으로 유지할 수 있는 물리적 순환으로 묘사하라. 연속적이고 반복 가능한 행동은 클립 전체에서 일회성 사건보다 일관적이다. 일회성 사건은 모델이 일찍 완료한 뒤 공회전할 수 있다.

레시피: 날씨와 분위기

SCENE: city rooftop at dusk, thin fog moving through the frame, wind pushing loose fabric, distant skyline softened by haze, low contrast, desaturated

분위기는 움직이는 것으로 묘사해야 한다. 비디오는 운동 단서에 보상을 주기 때문이다. 안개, 바람, 비, 흩날리는 입자는 모두 화면에 지속적 질감을 준다.

피해야 할 안티패턴

  • 형용사 적층. "Epic, stunning, cinematic, beautiful"은 모델이 렌더링할 수 있는 정보를 전혀 더하지 않는다.
  • 장면에 카메라 단어 혼입. "slow dolly"를 장면 슬롯 밖으로 빼야 따로 조정할 수 있다.
  • 모순. "Bright night scene"은 예측 불가능하게 해석된다. 조명 방식 하나를 골라 유지하라.
  • 주체 과다. 캐릭터나 사물이 늘어날 때마다 모델의 주의를 나눠 갖고, 그중 하나가 기형이 될 확률이 커진다.

카메라와 샷 사이즈 제어 레시피

카메라는 레버리지가 가장 큰 슬롯이다. 내용을 바꾸지 않고도 클립의 질감을 바꾸기 때문이다. 배치에서 교체하려면 격리해 두어라.

샷 사이즈 어휘

모든 카메라 절은 샷 사이즈로 시작한다. 익스트림 와이드, 와이드, 미디엄, 클로즈업, 익스트림 클로즈업. 이 한 단어가 주체가 화면을 얼마나 차지하고 환경이 얼마나 보이는지를 결정한다.

CAMERA: medium close-up, static tripod

무브먼트 레시피

아래 각각은 그대로 교체 가능한 카메라 절이다.

CAMERA: wide shot, slow push-in toward the subject
CAMERA: medium shot, lateral tracking left at walking pace
CAMERA: close-up, slow handheld drift with slight instability
CAMERA: wide shot, static, subject moves through frame
CAMERA: medium shot, slow tilt up from hands to face

핵심 규율은 절마다 무브먼트 하나만 두는 것이다. 푸시인, 틸트, 롤을 같은 요청에 조합하면 대개 뭉개진 결과가 나온다. 모델이 상충하는 무브먼트 계획을 혼합해야 하기 때문이다.

속도 수식어

지각 품질에서 무브먼트 속도는 방향보다 더 중요하다. 소박한 수식어를 사용하라. slow, steady, walking pace, gradual. 숫자 속도는 모델의 무브먼트 계획에 안정적으로 변환되지 않으므로 피하라.

핸드헬드와 안정화

다큐멘터리식 사실감을 원하면 명시적으로 "handheld, slight instability"를 써라. 상업용 수준의 세련됨을 원하면 "stabilized, smooth motion"을 써라. 이것을 지정하지 않는 것이 클립이 뭔가 이상한데 뚜렷한 이유를 찾지 못할 때 가장 흔한 원인 중 하나다.

배치에서 카메라 교체

카메라가 독립 슬롯이므로 주체, 장면, 페이싱을 고정한 채 통제된 비교를 생성할 수 있다. 작은 카메라 절 배열을 만들고 순회하며 나머지 모두를 고정하라.

cameras = [
    "wide shot, static tripod",
    "medium shot, slow push-in",
    "close-up, handheld with slight drift",
]
for cam in cameras:
    prompt = f"{subject}. {scene}. {cam}. {pacing}."
    # send prompt to kling-4.0/text-to-video

출력 집합은 해당 콘텐츠에서 어떤 구도가 가장 잘 읽히는지 알려준다. 변수를 하나만 움직였기에 비교는 정직하다.

길이와 페이싱 레시피

프롬프트 디테일은 클립 길이와 일치해야 한다. 짧은 클립에서 세 비트를 묘사하는 프롬프트는 급하고 깨진 결과를 낳는다. 긴 클립에서 작은 행동 하나만 쓰는 프롬프트는 죽은 시간을 낳는다.

짧은 클립: 비트 하나

짧은 길이에서는 서사적 진행 없이 연속적 단일 행동을 묘사하라.

PACING: one continuous gesture, subject turns head slowly toward the light, nothing else changes

연속을 암시하는 모든 것을 제거하라. "then", "after", "finally" 같은 단어는 모델이 사건을 압축하게 유도하고 일관성을 잃게 만든다.

중간 길이 클립: 행동 하나에 환경 운동

두 번째 주체 행동이 아니라 환경 운동을 추가하라.

PACING: subject stands still breathing, cloth shifting in the wind, background smoke drifting continuously

환경 운동은 모델에 새로운 사건을 연출하라고 요구하지 않으면서 시간을 채운다.

긴 클립: 작은 아크

길이가 뒷받침한다면 시작과 종료 상태를 묘사할 수 있다. 비트 두 개를 유지하고 전환은 물리적으로 만들라.

PACING: subject begins facing away, slowly turns to face camera, expression settles into a neutral gaze by the end

시작, 운동, 종료 위치를 진술하라. 이는 모델에 채워 넣어야 할 빈 시간이 아니라 보간할 궤적을 준다.

단어와 초 맞추기

경험칙으로, 비트마다 물리적 행동 하나를 묘사하고 짧은 클립에는 대략 비트 하나를 배정하라. 페이싱 부분에서 두 문장을 넘겨 쓰고 있다면, 클립이 아크를 담을 만큼 길거나, 아니면 과도하게 지정한 것이다.

흔한 페이싱 실수

  • 암묵적 컷. "Shot one, then shot two"는 거의 통하지 않는다. 단일 생성은 하나의 연속 샷이다.
  • 말하면서 움직이기. 대사에 복잡한 운동을 더하는 것은 어려운 조합이다. 하나에 기울어라.
  • 시간 변화. 클립 내 일몰은 제어하기 어렵다. 조명 상태 하나를 골라 유지하라.
  • 군중 연출. 독립적으로 움직이는 여러 형상은 빠르게劣화된다. 군중을 배우가 아니라 질감으로 취급하라.

파이프라인에서 레시피 테스트하기

프롬프트 레시피는 곧 코드다. 코드처럼 버전 관리하고 테스트하고 기록해야 한다.

프롬프트를 자산으로 버전 관리

각 레시피를 버전 식별자와 채워진 슬롯을 포함한 파일로 저장하라. 애플리케이션 로직 안에 문자열로 파묻지 마라. 구절을 바꾸면 그것이 새 버전이고, 이전 버전은 비교와 롤백을 위해 사용 가능하게 둔다.

{
  "id": "cyclist_coastal_v3",
  "subject": "a lone cyclist in a dark windbreaker...",
  "scene": "empty coastal road at dawn...",
  "camera": "wide shot, slow lateral tracking...",
  "pacing": "single continuous action..."
}

작은 비교 배치 실행

레시피를 프로덕션으로 승격하기 전에 작은 배치를 생성하라. 수백 개가 아니라 소수의 변형이다. 한 번에 슬롯 하나만 바꿔라. 신경 쓰는 차원으로 출력을 점수화하라. 주체 충실도, 운동 안정성, 구도, 그리고 클립이 길이를 채우는 정도. 승자를 승격하고 결정을 기록하라.

프롬프트, 파라미터, 출력을 함께 기록

모든 요청은 프롬프트 버전, 채워진 슬롯, 요청 파라미터, 출력 식별자, 품질 점수를 포함한 레코드로 남겨야 한다. 나중에 회귀가 생기면 그 로그가 5분 진단과 하루짜리 추측 사이의 차이다.

log = {
    "prompt_id": recipe["id"],
    "prompt": flattened_prompt,
    "params": {"prompt": flattened_prompt},
    "output": response_id,
    "score": manual_score,
}

회귀 세트 유지

레시피가 프로덕션에 들어가면 작은 동결 프롬프트 세트와 승인된 출력을 보관하라. 모델이나 파라미터가 바뀔 때마다 그 세트를 다시 실행해 비교하라. 사용자가 발견하기 전에 조용한 드리프트를 잡을 수 있다.

간단한 승격 루프

골격으로 레시피를 초안하고, 슬롯을 채우고, 특정 슬롯의 대안에 대해 작은 배치를 돌리고, 점수화한 뒤 승자를 전체 로그를 갖춘 버전 자산으로 승격하라. 콘텐츠 요구가 바뀌면 반복하라.

각 레시피를 테스트 가능한 산출물로 취급하면 파이프라인은 더 이상 슬롯머신이 아니다. kling-4.0/text-to-video 엔드포인트에서 시작해 그 위에 자신만의 버전 관리 라이브러리를 구축할 수 있다.

영구 AI 아티팩트로 빌드 시작하기

API 키를 받아 태스크 기반의 하나의 API로 이미지, 비디오, 오디오 모델을 호출하세요.

API 문서 보기