본문으로 건너뛰기
색인되지 않은 문서
이 문서는 색인되지 않습니다. 검색 엔진이 이 문서를 색인하지 않으며, 주소를 알고 있는 사용자만 접근할 수 있습니다.

Talk-V2V (립싱크) API

View in English: Talk V2V (Lip-Sync) API | 한국어로 보기 (현재 페이지)

Talk-V2V API는 기존 비디오와 별도의 오디오 파일을 입력받아, 비디오 속 발화자의 입과 동작을 오디오에 맞춰 립싱크된 비디오를 생성합니다.

🎯 서비스 개요

지원 기능

  • Video-to-Video 립싱크: 입력 비디오를 새 오디오로 구동 (talk_v2v)
  • 해상도: 720p (기본)
  • 비율 처리: keep_proportion 으로 출력을 목표 프레임에 맞추는 방식 제어

대표 활용 사례

  • K-pop 아이돌 로컬라이제이션 (기존 퍼포먼스 영상 재더빙)
  • 새 나레이션을 입힌 K-beauty 제품 리뷰
  • 단일 원본 클립의 다국어 재활용

Talk-V2V 는 self-hosted GPU 서버에서만 처리됩니다.

📡 API 엔드포인트

기본 정보

Base URL:       https://api.kvid.ai
Authentication: api-key 헤더
Content-Type: application/json

Talk-V2V 는 비동기 방식입니다. 작업을 제출해 job_id 를 받고, 공용 status 엔드포인트를 폴링한 뒤 result 엔드포인트로 결과를 조회합니다.

MethodPath용도
POST/ai/generation/talk-v2v/generate-asyncTalk-V2V 작업 제출
GET/ai/generation/status?jobId={job_id}작업 상태 조회 (공용 엔드포인트)
GET/ai/generation/result?jobId={job_id}완료된 결과 조회 (공용 엔드포인트)

인증 및 크레딧 식별. 모든 요청은 api-key 헤더를 보내야 합니다. 추가로 AI 생성 엔드포인트는 차감할 크레딧 풀을 식별하기 위해 request body에 product_id / product_code / email 중 정확히 하나를 반드시 포함해야 합니다.

별도의 개발용 라우팅(api.hometip.net + /ai/generation-clone/...)이 존재하지만, 이 페이지는 프로덕션 경로(api.kvid.ai)를 기준으로 설명합니다.

1. Talk-V2V 작업 제출

import requests

url = "https://api.kvid.ai/ai/generation/talk-v2v/generate-async"
api_key = "YOUR_API_KEY"

payload = {
"product_id": "pdt_XXXXXXXXXXXX", # product_code / email 중 하나 필수
"input_video": "https://your-host.example/source.mp4",
"audio_file": "https://your-host.example/voice.mp3",
"prompt": "a woman is singing a lullaby",
"model": "talk",
"function": "talk_v2v",
"resolution": "720p",
"max_frames": 500,
"steps": 6,
"cfg_scale": 1,
"frame_rate": 25,
"crf": 19,
"keep_proportion": "stretch",
"seed": 5834
}
headers = {
"api-key": api_key,
"Content-Type": "application/json",
}

response = requests.post(url, headers=headers, json=payload)
print(response.json())

응답

{
"success": true,
"data": {
"job_id": "job_1768540311147_4mcdv65c7",
"status": "queued",
"message": "비디오 생성 작업이 큐에 추가되었습니다.",
"estimated_time": "2-5분",
"video_type": "talk-v2v"
}
}

2. 작업 상태 조회

import requests

api_key = "YOUR_API_KEY"
job_id = "job_1768540311147_4mcdv65c7"

url = f"https://api.kvid.ai/ai/generation/status?jobId={job_id}"
headers = {"api-key": api_key}

response = requests.get(url, headers=headers)
print(response.json())

status 값: queued, processing, completed, failed, canceled. Talk-V2V 권장 폴링 간격: 15–30초.

3. 완료된 결과 조회

import requests

api_key = "YOUR_API_KEY"
job_id = "job_1768540311147_4mcdv65c7"

url = f"https://api.kvid.ai/ai/generation/result?jobId={job_id}"
headers = {"api-key": api_key}

response = requests.get(url, headers=headers)
print(response.json())

응답

{
"success": true,
"data": {
"job_id": "job_1768540311147_4mcdv65c7",
"status": "completed",
"result_url": "https://cdn.kvid.ai/videos/job_1768540311147_4mcdv65c7.mp4",
"created_at": "2026-05-27T09:00:00.000Z",
"width": 1280,
"height": 720,
"size": 5242880,
"file_size": 5242880,
"type": "talk-v2v",
"used_credit": 80
}
}

📋 매개변수 상세

요청 필드

필드타입필수기본값설명
product_id / product_code / emailstring✅ (셋 중 하나)차감할 크레딧 풀 식별
input_videostring (URL)원본 비디오 HTTPS URL
audio_filestring (URL)립싱크를 구동할 오디오 HTTPS URL
promptstring""스타일 보조 프롬프트
negative_promptstring""제외할 요소
modelstringtalk모델 식별자
functionstringtalk_v2v함수 식별자
resolutionstring720p출력 해상도
image_sizeobject{ width, height } (또는 width / height 직접)
max_framesinteger500최대 프레임 수
stepsinteger6추론 step
cfg_scalenumber1guidance scale
frame_rateinteger25출력 FPS
crfinteger19인코딩 품질 (0~51, 낮을수록 고화질)
keep_proportionstringstretch비율 불일치 처리 방식
audio_durationnumber오디오 길이(초) — credit 계산용 hint
seedintegerrandom재현성

모델 지원 및 정확한 모델별 매개변수 — 요금 안내 및 모델 문서 참조.

⚠️ 오류 응답

오류 코드HTTP설명
MISSING_PARAMETERS400input_video / audio_file 누락
INSUFFICIENT_CREDIT402크레딧 부족
CONCURRENT_LIMIT429동시 작업 초과
JOB_NOT_FOUND404jobId 없음 (또는 자기 소유 아님) — result 엔드포인트
JOB_NOT_COMPLETED400status 가 아직 queued/processing — result 엔드포인트
JOB_FAILED400status 가 failed; status 엔드포인트의 error_message 참조

⚠️ 제한사항 및 주의사항

  • 원본 비디오: 발화자의 얼굴이 선명하고 대체로 정면일 때 최상의 결과
  • 오디오: 명료한 단일 화자 오디오가 가장 좋음
  • 길이: 긴 출력은 비례해서 크레딧이 더 소모되고 렌더링 시간도 길어짐

🔗 관련 링크

📞 지원 및 문의


언어: English | 한국어 (현재 페이지)