curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling_3_0_motion_control",
"params": {
"prompt": "캐릭터가 참고 영상에 맞춰 자연스럽게 춤추도록 하며, 주체 아이덴티티를 유지",
"image_url": "https://example.com/subject.png",
"video_url": "https://example.com/motion.mp4",
"resolution": "720p",
"character_orientation": "video",
"background_source": "input_video"
},
"out_task_id": "my_task_123456"
}'
import requests
url = "https://aireiter.com/api/openapi/submit"
payload = {
"model": "kling_3_0_motion_control",
"params": {
"prompt": "캐릭터가 참고 영상에 맞춰 자연스럽게 춤추도록 하며, 주체 아이덴티티를 유지",
"image_url": "https://example.com/subject.png",
"video_url": "https://example.com/motion.mp4",
"resolution": "720p",
"character_orientation": "video",
"background_source": "input_video"
},
"out_task_id": "my_task_123456"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://aireiter.com/api/openapi/submit";
const payload = {
model: "kling_3_0_motion_control",
params: {
prompt: "캐릭터가 참고 영상에 맞춰 자연스럽게 춤추도록 하며, 주체 아이덴티티를 유지",
image_url: "https://example.com/subject.png",
video_url: "https://example.com/motion.mp4",
resolution: "720p",
character_orientation: "video",
background_source: "input_video"
},
out_task_id: "my_task_123456"
};
fetch(url, {
method: "POST",
headers: {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data));
{
"out_task_id": "<string>",
"status": "<string>",
"estimated_credits": 123,
"created_at": "<string>"
}Kling 3.0 Motion Control
Kling 3.0 모션 컨트롤 비디오 생성
- 비동기 처리 모드, 작업 ID 반환으로 후속 조회 지원
- 하나의 주요 참조 이미지와 하나의 동작 참조 비디오를 사용하여 제어 가능한 비디오 생성
- 720p / 1080p 지원, 인물 방향 소스 및 배경 소스 설정 가능하며 참조 비디오 실제 지속 시간에 따라 과금
POST
/
api
/
openapi
/
submit
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling_3_0_motion_control",
"params": {
"prompt": "캐릭터가 참고 영상에 맞춰 자연스럽게 춤추도록 하며, 주체 아이덴티티를 유지",
"image_url": "https://example.com/subject.png",
"video_url": "https://example.com/motion.mp4",
"resolution": "720p",
"character_orientation": "video",
"background_source": "input_video"
},
"out_task_id": "my_task_123456"
}'
import requests
url = "https://aireiter.com/api/openapi/submit"
payload = {
"model": "kling_3_0_motion_control",
"params": {
"prompt": "캐릭터가 참고 영상에 맞춰 자연스럽게 춤추도록 하며, 주체 아이덴티티를 유지",
"image_url": "https://example.com/subject.png",
"video_url": "https://example.com/motion.mp4",
"resolution": "720p",
"character_orientation": "video",
"background_source": "input_video"
},
"out_task_id": "my_task_123456"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://aireiter.com/api/openapi/submit";
const payload = {
model: "kling_3_0_motion_control",
params: {
prompt: "캐릭터가 참고 영상에 맞춰 자연스럽게 춤추도록 하며, 주체 아이덴티티를 유지",
image_url: "https://example.com/subject.png",
video_url: "https://example.com/motion.mp4",
resolution: "720p",
character_orientation: "video",
background_source: "input_video"
},
out_task_id: "my_task_123456"
};
fetch(url, {
method: "POST",
headers: {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data));
{
"out_task_id": "<string>",
"status": "<string>",
"estimated_credits": 123,
"created_at": "<string>"
}Authorizations
모든 엔드포인트는 Bearer Token 인증이 필요합니다.API Key 획득 방법:API Key 관리 페이지에서 API Key를 획득하세요.요청 헤더에 다음과 같이 추가하여 사용합니다:
Authorization: Bearer YOUR_API_KEY
Body
모델 이름:
"kling_3_0_motion_control"- 기본값
모델 파라미터 객체
표시 params 객체 속성
표시 params 객체 속성
기대하는 출력 효과에 대한 텍스트 설명
- 선택 사항
- 최대 길이: 2500자
- 예시:
No distortion, the character's movements are consistent with the video.
주체 참고 이미지 URL
- 필수
- 단일 이미지만 지원
- 지원 형식: JPG, JPEG, PNG
- 최대 파일 크기: 10MB
- 이미지 크기는 300px 이상이어야 함
- 가로세로 비율은 2:5에서 5:2 사이여야 함
- 생성되는 비디오의 캐릭터, 배경 및 기타 요소들은 이 참고 이미지를 기반으로 함
동작 참고 비디오 URL
- 필수
- 단일 비디오만 지원
- 지원 형식: MP4, MOV / QuickTime
- 최대 파일 크기: 100MB
- 비디오 크기는 300px 이상이어야 함
- 가로세로 비율은 2:5에서 5:2 사이여야 함
- 길이:
character_orientation=image일 때 최대 10초,character_orientation=video일 때 최대 30초 - 예상 포인트와 실제 비용은 이 비디오의 실제 길이에 따라 계산되며,
video_length를 전달할 필요 없음 - 생성 비디오의 캐릭터 동작은 이 참고 비디오와 일치함
출력 해상도 모드
720p- 표준 모드(기본값)1080p- 고화질 모드
캐릭터 방향 참고 출처
video- 참고 비디오 내 캐릭터 방향과 일치, 비디오 최대 30초(기본값)image- 참고 이미지 내 캐릭터 방향과 일치, 비디오 최대 10초
배경 참고 출처
input_video- 동작 비디오 배경 사용(기본값)input_image- 주체 이미지 배경 사용
요청자 작업 ID사용자 정의 작업 식별자, 필수
Response
요청자 작업 ID, 결과 조회에 사용할 수 있음
초기 상태, 고정값
"pending"예상 소모 포인트
생성 시간 (ISO 형식)
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling_3_0_motion_control",
"params": {
"prompt": "캐릭터가 참고 영상에 맞춰 자연스럽게 춤추도록 하며, 주체 아이덴티티를 유지",
"image_url": "https://example.com/subject.png",
"video_url": "https://example.com/motion.mp4",
"resolution": "720p",
"character_orientation": "video",
"background_source": "input_video"
},
"out_task_id": "my_task_123456"
}'
import requests
url = "https://aireiter.com/api/openapi/submit"
payload = {
"model": "kling_3_0_motion_control",
"params": {
"prompt": "캐릭터가 참고 영상에 맞춰 자연스럽게 춤추도록 하며, 주체 아이덴티티를 유지",
"image_url": "https://example.com/subject.png",
"video_url": "https://example.com/motion.mp4",
"resolution": "720p",
"character_orientation": "video",
"background_source": "input_video"
},
"out_task_id": "my_task_123456"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://aireiter.com/api/openapi/submit";
const payload = {
model: "kling_3_0_motion_control",
params: {
prompt: "캐릭터가 참고 영상에 맞춰 자연스럽게 춤추도록 하며, 주체 아이덴티티를 유지",
image_url: "https://example.com/subject.png",
video_url: "https://example.com/motion.mp4",
resolution: "720p",
character_orientation: "video",
background_source: "input_video"
},
out_task_id: "my_task_123456"
};
fetch(url, {
method: "POST",
headers: {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data));
⌘I