본문으로 건너뛰기

Video 생성 AI API

View in English: Video Generation AI API | 한국어로 보기 (현재 페이지)

kvidAI의 Video 생성 AI API는 텍스트·이미지·참조 미디어를 입력으로 받아 고품질 비디오를 생성하는 서비스입니다. K-pop·K-beauty 콘텐츠에 특화되어 있습니다.

🎯 서비스 개요

지원 기능

  • Text-to-Video: 텍스트 프롬프트로 비디오 생성 (txt2vid)
  • Image-to-Video: 입력 이미지를 모션 프롬프트로 애니메이션 (img2vid)
  • Reference-to-Video: 참조 이미지/영상/오디오로 일관성 있는 비디오 생성 (ref2vid)
  • 해상도: 480p / 720p / 1080p (모델 별 상이)
  • 길이: 보통 4–15초 (모델 별 상이)

특화 기능

  • 카메라 앵글 조작 프롬프트 지원 (완벽하지 않을 수 있음)
  • 다양한 생성 옵션 및 제어 가능
  • K-pop 안무·K-beauty 콘텐츠 최적화

📡 API 엔드포인트

기본 정보

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

Video Generation API는 비동기 방식입니다. POST로 작업을 제출하면 job_id 가 반환되고, status 엔드포인트를 폴링해서 완료된 시점에 result 엔드포인트로 결과를 조회합니다.

MethodPath용도
POST/ai/generation/text-to-video/generate-asyncText-to-Video 작업 제출
POST/ai/generation/image-to-video/generate-asyncImage-to-Video 작업 제출
POST/ai/generation/reference-to-video/generate-asyncReference-to-Video 작업 제출
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. Text-to-Video 작업 생성

Python 예제

import requests

url = "https://api.kvid.ai/ai/generation/text-to-video/generate-async"
api_key = "YOUR_API_KEY"

payload = {
"product_id": "pdt_XXXXXXXXXXXX", # product_code / email 중 하나 필수
"prompt": "A beautiful sunset over the ocean",
"model": "veo3.1", # wan / seedance / veo3.1
"function": "txt2vid",
"resolution": "720p", # 480p / 720p / 1080p (모델 별)
"duration": 4,
"aspect_ratio": "16:9",
"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": "text-to-video"
}
}

2. Image-to-Video 작업 생성

import requests

url = "https://api.kvid.ai/ai/generation/image-to-video/generate-async"
api_key = "YOUR_API_KEY"

payload = {
"product_id": "pdt_XXXXXXXXXXXX", # product_code / email 중 하나 필수
"prompt": "windy, forest, autumn",
"model": "wan",
"function": "img2vid",
"image_url": "https://your-host.example/scene.png", # 또는 image_file (base64)
"resolution": "720p",
"duration": 5,
"aspect_ratio": "auto", # auto는 입력 이미지 비율을 따름
"seed": 5834
}
headers = {
"api-key": api_key,
"Content-Type": "application/json",
}

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

3. Reference-to-Video 작업 생성

하나 이상의 참조 이미지·영상·오디오 로부터 일관성 있는 비디오를 생성합니다. 출력 전반에서 캐릭터나 스타일을 안정적으로 유지할 때 유용합니다.

import requests

url = "https://api.kvid.ai/ai/generation/reference-to-video/generate-async"
api_key = "YOUR_API_KEY"

payload = {
"product_id": "pdt_XXXXXXXXXXXX", # product_code / email 중 하나 필수
"prompt": "the character from the reference image walks through a neon city at night",
"model": "bytedance/seedance-2.0/fast/reference-to-video",
"function": "ref2vid",
"image_urls": ["https://your-host.example/ref-character.png"],
"video_urls": [],
"audio_urls": [],
"resolution": "720p",
"duration": 5, # 4–15 (정수) 또는 "auto"
"aspect_ratio": "auto",
"generate_audio": True,
"seed": 5834
}
headers = {
"api-key": api_key,
"Content-Type": "application/json",
}

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

참조 제약: 이미지 최대 9개, 영상 최대 3개(합산 ≤ 15초), 오디오 최대 3개(합산 ≤ 15초). 전체 참조(image + video + audio) 합계 ≤ 12개. audio_urls 를 보낼 경우 이미지 또는 영상 참조가 최소 1개 이상 필요합니다.

4. 작업 상태 조회

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())

응답 (진행 중):

{
"success": true,
"data": {
"job_id": "job_1768540311147_4mcdv65c7",
"status": "processing",
"prompt": "A beautiful sunset over the ocean",
"result_url": null,
"error_message": null
}
}

status 값: queued, processing, completed, failed, canceled.

비디오 작업 권장 폴링 간격: 10–15초 (생성에 수십 초 ~ 수 분 소요).

5. 완료된 결과 조회

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",
"prompt": "A beautiful sunset over the ocean",
"width": 1280,
"height": 720,
"size": 5242880,
"file_size": 5242880,
"type": "text-to-video",
"used_credit": 54
}
}

📋 매개변수 상세

공통 매개변수

매개변수타입필수설명
product_id / product_code / emailstring✅ (셋 중 하나)차감할 크레딧 풀 식별
promptstring비디오 생성 프롬프트
modelstring모델 식별자 (wan, seedance, veo3.1 …). 기본 wan
functionstringtxt2vid / img2vid / ref2vid (엔드포인트에 대응)
negative_promptstring제외할 요소
resolutionstring480p / 720p / 1080p. 기본 480p (모델 별 상한)
durationinteger | string초 단위 길이. num_frames 와 택일. ref2vid 는 415 또는 "auto"
aspect_ratiostring16:9 / 9:16 / 1:1 / auto
seedinteger재현성을 위한 시드값

Image-to-Video 추가 매개변수

매개변수타입필수설명
image_url / image_filestring시작 프레임 — HTTPS URL(image_url) 또는 base64(image_file)

Reference-to-Video 추가 매개변수

매개변수타입기본값설명
image_urlsstring[][]참조 이미지 (최대 9개)
video_urlsstring[][]참조 영상 (최대 3개, 합산 ≤ 15초)
audio_urlsstring[][]참조 오디오 (최대 3개, 합산 ≤ 15초)
generate_audiobooleantrue영상과 함께 오디오 생성

V1(self-hosted) 모델 매개변수

self-hosted V1 모델 계열(예: wan)에 적용됩니다. 모델별로 지원 여부가 다릅니다.

매개변수타입기본값설명
num_framesinteger모델별프레임 수. duration 과 택일
frames_per_secondinteger모델별출력 FPS
num_inference_stepsinteger모델별추론 단계 수 (높을수록 품질↑, 속도↓)
guidance_scalenumber모델별프롬프트 충실도
shiftnumber모델별scheduler shift
enable_safety_checkerbooleantrueNSFW 필터
enable_prompt_expansionboolean모델별프롬프트 자동 확장
accelerationstringregular / high 우선순위 처리

모델별로 허용되는 매개변수 집합이 다르며(DB model-parameter 검증), 미지원 field 는 게이트웨이 백엔드에서 sanitize 되어 무시됩니다. 해상도별 모델 지원 및 정확한 모델별 매개변수 — 요금 안내 참조.

⚠️ 오류 응답

오류 코드HTTP설명
MISSING_PARAMETERS / INVALID_PARAMETERS400prompt/image 누락 또는 잘못된 매개변수
INSUFFICIENT_CREDIT402크레딧 부족
CONCURRENT_LIMIT429동시 작업 초과
403api-key invalid
JOB_NOT_FOUND404jobId 없음 (또는 자기 소유 아님) — result 엔드포인트
JOB_NOT_COMPLETED400status 가 아직 queued/processing — result 엔드포인트
JOB_FAILED400status 가 failed; status 엔드포인트의 error_message 참조

🎬 사용 예제

1. 등산객과 배낭 비디오

등산객 배낭

프롬프트: A video of a man hiking with a backpack. The bag must be the main subject. Walking slowly

2. 청소기 사용 비디오

진공청소기

프롬프트: Video of cleaning with a vacuum cleaner. slow movement. low angle

3. 음식 홍보 비디오

연어 요리

프롬프트: Remove the cooking effect and only add camera movement. highlight the food in Zoom format. promotional video for this food

4. 한국 전통 정자 비디오

전주 공원

프롬프트: A traditional Korean pavilion by a lotus pond, with two small dogs (a white poodle and a brown shiba inu) joyfully running along the wooden walkway. The pond is filled with green lotus leaves, and the background is full of lush green trees. Bright sunny day, peaceful and vivid atmosphere.

Text-to-Video 버전:

추가 프롬프트: The two small dogs (white poodle and brown shiba inu) approach the pavilion, wagging their tails, playfully interacting. They stop at the end of the deck, looking around curiously. [Over-the-shoulder shot] Captures the view of the park and lotus pond from behind the dogs.

5. 호랑이 이미지-비디오 변환

호랑이

프롬프트: The tiger briefly pulls back its tongue, blinks, and tilts its head slightly. Then immediately sticks out its tongue for a second time, a bit longer than the first, while lowering its head slightly. [Low-angle close-up shot] Capture from below to show both majesty and cuteness.

⚠️ 제한사항 및 주의사항

기술적 제한

  • 길이: 짧은 클립 (4–15초, 모델별 상이)
  • 해상도: 모델별 지원 범위 다름 (요금 페이지 참고)
  • 카메라 앵글: 카메라 앵글 조작 프롬프트가 항상 정확하게 작동하지 않을 수 있음
  • 처리 시간: 해상도와 길이에 따라 1–5분 소요

최적화 팁

  • 구체적인 프롬프트: 세부적이고 명확한 설명 제공
  • 카메라 앵글: 필요시 [Low-angle], [Over-the-shoulder shot] 등의 지시어 사용
  • 적절한 해상도: 용도에 맞는 해상도 선택

🔗 관련 링크

📞 지원 및 문의

문의사항이 있으시면 다음 경로로 연락해 주세요:


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