사용 가이드
Kling Transformation 동영상 스타일 재그리기 API: 모든 숏폼 동영상에 통일된 시각 스타일 적용
kling-3.0-omni/transformation을 사용해 기존 소재를 통일된 숏폼 스타일로 재구성합니다——서로 무관한 두 개의 원본 영상, 동일한 프롬프트 프리셋, 모두 실제 출력 형태로 본문에 삽입되었습니다.
숏폼 동영상을 게시한다면, 당신의 가장 큰 적은 창의성이 아니라 시각적 일관성입니다. 서로 다른 시간, 서로 다른 조명, 서로 다른 출처에서 클립을 촬영하거나 생성하다 보면 당신의 피드는 다섯 명의 서로 다른 크리에이터가 만든 것처럼 보입니다. 일반적인 해결책은 편집 소프트웨어에서 몇 시간 동안 수동으로 색 보정하고 필터를 맞추는 것입니다.
kling-3.0-omni/transformation은 다른 경로를 제공합니다. 기존 동영상과 프롬프트를 주면 전체 화면을 다시 그립니다——장면, 색조, 질감, 피사체——동시에 원본의 카메라 움직임과 타이밍을 완전히 보존합니다. 이 마지막 부분이 핵심입니다. 동영상을 재생성하는 것이 아니라 동영상에 새 껍데기를 씌우는 것입니다. 즉, 서로 무관한 클립들을 모아 모두 같은 프롬프트로 처리하면 단일하고 통일된 시각 스타일을 강제로 형성할 수 있습니다.
이 글은 transformation API 사용 가이드의 숏폼 동영상 제작 동반 글입니다. 그 가이드는 원시적인 create → poll → download 흐름을 다루고, 이 글은 크리에이터에게 실제로 중요한 워크플로에 집중합니다: 일련의 클립을 동일한 시각 스타일로 통일하고, 스크립트 하나로 전체 배치를 일괄 재그리기. 아래의 모든 동영상은 실제 /v1/tasks 출력이며, 정확한 프롬프트와 비용이 함께 제공됩니다.
핵심 기법: 재사용 가능한 "비주얼 프리셋"
아래는 손으로 그린 수채화 그림책 스타일로 재그리기된 동영상입니다. 원본 소재는 도시 배수로에 있는 종이배의 평범하고 음울한 야경이었고, 아래 버전은 모델이 반환한 결과입니다:
전체 재그리기는 전적으로 프롬프트로 구동됩니다——이 엔드포인트에는 strength나 fidelity 슬라이더가 없습니다. 출력이 원본 소재에서 벗어나는 정도는 당신의 텍스트가 밀어붙이는 힘에 달려 있습니다. 이는 제한이 아니라 특성입니다. 즉, 당신의 프롬프트가 곧 프리셋입니다. 한 번 작성하고, 정확한 문자열을 저장한 뒤, 일치시키고 싶은 모든 클립에 그대로 재사용하세요.
다음은 위 동영상을 생성한 프롬프트이며, 바로 복사해 붙여넣을 수 있습니다:
Restyle this video as a hand-painted watercolor storybook illustration:
soft visible brushstroke textures, a warm golden-amber and muted teal
palette, gentle paper grain, softly glowing highlights, and a cozy
picture-book mood. Keep the exact camera motion, framing, timing, and
subject movement from the source clip completely unchanged — change only
the visual style, never the action.
두 부분에 주목하세요. 앞부분은 시각 스타일입니다: 색조, 질감, 분위기——브랜드 스타일 가이드에 적을 부분입니다. 뒷부분은 움직임과 타이밍을 보존하라는 강력한 지시입니다. 뒷부분을 빼면 재생성 쪽으로 흘러가고, 유지하면 충실한 껍데기 교체 효과를 얻습니다. 숏폼 시리즈에는 이 분리가 바로 원하는 것입니다: 시각 스타일은 클립 간에 전달되고, 움직임은 각 샷에 원래대로 유지됩니다.
증거: 하나의 프리셋, 서로 무관한 두 개의 클립
스타일 프리셋은 설계된 적 없는 소재에 적용해도 여전히 유효할 때만 유용합니다. 그래서 여기에는 완전히 다른 두 개의 원본 클립이 있으며, 위의 완전히 동일한 프롬프트 문자열로 재그리기되었습니다——입력 동영상 외에는 두 실행 사이에 아무것도 변경되지 않았습니다.
클립 A——재그리기 전: 밤에 네온 불빛이 비추는 도시 배수로를 떠다니는 종이배.
클립 B——재그리기 전: 새벽녘 안개에 둘러싸인 항구에 정박한 목재 어선들. 다른 피사체, 다른 시간대, 다른 색조, 다른 카메라 리듬.
이제 클립 B에 동일한 프리셋을 적용한 재그리기 결과를 보세요:
두 재그리기 출력을 나란히 놓으면 한 세트의 작품처럼 읽힙니다——같은 호박색과 청록색 색조, 같은 종이 질감의 가장자리, 같은 그림책의 부드러움——하나는 추운 도시의 밤에서, 다른 하나는 안개 낀 바닷가 새벽에서 비롯되었음에도 불구하고. 이것이 스타일 통일입니다: 서로 무관한 소재, 하나의 식별 가능한 시각 스타일. 그리고 두 출력 모두에서 원본 움직임이 온전히 유지됩니다——종이배는 여전히 같은 경로를 따라 떠다니고, 항구 샷은 여전히 같은 방식으로 패닝합니다.
전체 소재 라이브러리 재그리기: 비동기 배치 처리
실제로 양이 있는 숏폼 동영상은 두 개가 아니라 수십 수백 개의 클립을 의미합니다. 한 번에 하나씩 블로킹 호출로 재그리기하는 것은 원하지 않을 일입니다. 작업 API는 비동기이므로 올바른 패턴은 먼저 모든 클립을 한꺼번에 제출한 뒤 완료되는 대로 결과를 수집하는 것입니다.
스키마는 작습니다——input에 세 개의 필드만 있습니다: prompt, video_urls(정확히 하나의 공개 원본 URL), 그리고 resolution(720p, 1080p 또는 4k). 아래는 동일한 프리셋을 클립 세트에 적용하는 간결한 배치 실행기입니다:
import os, time, json, requests
API = "https://api.hiapi.ai/v1/tasks"
TOKEN = os.environ["HIAPI_API_KEY"]
HEADERS = {"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"}
PRESET = (
"Restyle this video as a hand-painted watercolor storybook illustration: "
"soft visible brushstroke textures, a warm golden-amber and muted teal palette, "
"gentle paper grain, softly glowing highlights, and a cozy picture-book mood. "
"Keep the exact camera motion, framing, timing, and subject movement from the "
"source clip completely unchanged — change only the visual style, never the action."
)
# Your clip library — the SAME preset is applied to every one of them.
SOURCE_CLIPS = [
"https://example.com/clips/hook-01.mp4",
"https://example.com/clips/hook-02.mp4",
# ...dozens more
]
def submit(video_url: str) -> str:
body = {
"model": "kling-3.0-omni/transformation",
"input": {"prompt": PRESET, "video_urls": [video_url], "resolution": "720p"},
}
r = requests.post(API, headers=HEADERS, json=body, timeout=60)
return r.json()["data"]["taskId"]
# 1) Fire off every task first — they run in parallel on the platform.
tasks = {submit(url): url for url in SOURCE_CLIPS}
print(f"submitted {len(tasks)} restyle tasks")
# 2) Poll until each one reaches a terminal state, then grab the output URL.
pending = set(tasks)
outputs = {}
while pending:
for task_id in list(pending):
r = requests.get(f"{API}/{task_id}", headers=HEADERS, timeout=40)
data = r.json().get("data", {})
status = data.get("status")
if status == "success":
outputs[task_id] = data["output"][0]["url"]
pending.discard(task_id)
elif status == "fail":
print(f"{task_id} failed: {data.get('error')}")
pending.discard(task_id)
if pending:
time.sleep(8)
# 3) Download immediately — output URLs are short-lived signed links.
for task_id, url in outputs.items():
dest = f"restyled-{task_id}.mp4"
with open(dest, "wb") as f:
f.write(requests.get(url, timeout=120).content)
print("saved", dest)
두 가지를 특히 짚을 만하며, 사용 가이드에서 둘 다 깊이 다룹니다: 출력을 즉시 다운로드하세요(반환된 URL은 만료됩니다), 대량 작업의 경우 잦은 폴링 대신 callback을 우선 사용해 세부 정보 엔드포인트를 반복적으로 두드리지 않도록 하세요. 비동기 작업 문서에 요청/응답 구조 설명이 있습니다.
숏폼 동영상 실용 조언
- 원본 클립을 짧게 유지하세요. 비용은 초 단위로 계산되므로 짧은 훅은 더 저렴하고 더 빠릅니다. 위의 3초 클립 두 개는 720p에서 각각 약 $0.43입니다(가격은 아래 참조).
- 해상도는 허영심이 아니라 플랫폼에 맞춰 선택하세요. 2026년 10월 기준
kling-3.0-omni/transformation의 가격은 720p 초당 $0.143, 1080p 초당 $0.193, 4K 초당 $0.479입니다. 어차피 재압축되는 세로형 피드에는 720p–1080p가 보통 적정 구간이고, 4K는 대표작에 사용하세요. 항상 가격 페이지에서 현재 수치를 확인하세요. - 프리셋을 확정하고 나면 건드리지 마세요. 각 클립에 맞춰 문구를 미세 조정하는 순간, 재그리기를 하려던 바로 그 일관성을 잃게 됩니다. 프리셋 문자열을 코드처럼 버전 관리하세요.
- 움직임은 상속되는 것이지 창작되는 것이 아닙니다. 출력 길이와 움직임은 원본 클립을 따릅니다. 프롬프트나 정지 이미지로부터 모델이 움직임을 생성해야 한다면 다른 도구입니다——텍스트 투 비디오 또는 이미지 투 비디오를 참조하세요.
자주 묻는 질문
재그리기 강도를 제어할 수 있나요? 파라미터로는 제어할 수 없습니다——strength나 fidelity 필드가 없습니다. 문구로 제어하세요. 가벼운 색 보정이라면 약간의 색/질감 변화를 묘사하고 "나머지는 원래 모습을 유지하세요"를 강조하세요. 수채화 예시처럼 완전한 재그리기라면 스타일 어휘를 쌓으세요. 재그리기 강도는 전적으로 프롬프트 안에 존재합니다.
원본 움직임을 보존하나요, 아니면 장면을 다시 애니메이션화하나요? 원본 움직임과 타이밍을 보존합니다——이것이 transformation 엔드포인트의 정의적 동작입니다. 프롬프트의 명시적인 "정확한 카메라 움직임과 타이밍 유지" 조항이 이를 강화합니다. 출력 길이는 입력 클립과 일치합니다.
이것은 이미지 투 비디오나 참조 투 비디오와 어떻게 다른가요? 이미지 투 비디오는 정지 이미지를 움직임으로 애니메이션화하고, 참조 투 비디오는 참조 미디어에서 요소를 빌려와 새로 생성한 클립에 넣습니다. Transformation은 완성된 동영상에서 출발해 스타일만 바꾸고 이미 가진 움직임을 유지합니다. 다른 모드에 대해서는 참조 투 비디오 프롬프트 레시피를 참조하세요.
숏폼 동영상에는 어떤 원본 해상도와 길이가 가장 잘 맞나요? 깨끗하고 조명이 충분한 원본 소재를 사용하세요——모델은 볼 수 있는 내용을 다시 그리므로 흐릿한 원본은 흐릿한 재그리기 결과를 낳습니다. 훅과 B-롤은 몇 초로 유지하고, 긴 클립 하나 대신 짧은 클립을 많이 배치 처리하세요. 이는 비용과 위에서 보여준 클립별 병렬성 모두를 위해서입니다.
시리즈 전체에 하나의 프리셋을 사용할 수 있나요?
네——바로 그것이 핵심입니다. 모든 클립에 동일한 프롬프트 문자열을 재사용하면 같은 시각 스타일을 공유하게 됩니다. 위의 배치 스크립트가 바로 그렇게 합니다: 하나의 PRESET 상수를 목록의 모든 원본 소재에 적용합니다.
당신의 피드에 통일된 시각 스타일을
당신의 숏폼 동영상이 서로 다른 계정에서 온 것처럼 보인다면, kling-3.0-omni/transformation은 그것들을 하나로 모으는 가장 빠른 방법입니다: 비주얼 프리셋을 하나 작성하고, 모든 콘텐츠에 적용하고, 각 클립의 원본 움직임을 유지하세요. 샘플 클립 하나를 가져와 위의 수채화 프리셋을 복사하거나(또는 직접 작성하거나) kling-3.0-omni/transformation 모델 페이지에서 실행해 보세요. 배치 스크립트를 작성할 준비가 되면 사용 가이드에 전체 클라이언트가 있습니다.
관련 글
모든 아티클 보기 →-
사용 가이드
seedream-5.0-pro/image-to-image 시작 가이드: 기능, 가격 및 연동 핵심 포인트
ByteDance 이미지 편집 모델의 기능 경계, 과금 방식 및 엔지니어링 연동 실무
-
사용 가이드
seedream-5.0-pro 텍스트-이미지 생성 입문 가이드: 능력 경계, API 연동 및 비용 관리
개발자를 위한 실무 관점: 파라미터 핵심부터 장당 $0.05 비용 추정까지
-
사용 가이드
Hailuo 2.3 Fast 이미지-투-비디오 입문 가이드: 성능 범위, 가격 및 연동 실무
개발자를 위한 MiniMax 이미지-투-비디오 모델 선택과 연동 핵심 포인트