Seedance 2.0 Reference API로 참조 기반 영상을 제작하세요. 영상 참조, 실제 인물 지원, 유연한 비율, 안정적인 출력을 활용해 움직임, 카메라, 스타일 방향을 더 쉽게 제어할 수 있습니다. 참조 동작, 인물 표현, 화면 리듬이 중요한 숏폼 영상과 광고 소재 제작에 활용하기 좋습니다.
ByteDance Seedance V2.0 참조 기반 동영상 API는 Best Image AI의 개발자와 크리에이티브 팀을 위한 참조 기반 동영상 생성을 제공합니다. 현재 API 통합은 텍스트 프롬프트와 최소 하나의 참조 이미지 또는 동영상을 입력받으며, 이미지, 동영상, 오디오 참조를 선택적으로 추가할 수 있습니다. 설정 가능한 길이, 다양한 화면 비율, 여러 해상도 옵션 및 제어된 동영상 워크플로를 위한 선택적 생성 사운드 설정을 지원합니다.
참고 최소 하나의 참조 이미지 또는 동영상이 필요하며, 오디오만 유일한 참조 입력으로 사용할 수 없습니다. 프롬프트와 참조 미디어가 ByteDance의 콘텐츠 안전 가이드라인을 준수하는지 확인하세요.
Seedance V2.0 참조 기반 동영상과 Seedance V2.0 텍스트 기반 동영상 Seedance V2.0 텍스트 기반 동영상은 텍스트 프롬프트로 작동합니다. 참조 기반 동영상에는 지원되는 이미지, 동영상, 선택적 오디오 입력과 프롬프트 기반 미디어 언급이 추가됩니다.
Seedance V2.0 참조 기반 동영상과 Seedance V2.0 Fast 참조 기반 동영상 두 버전 모두 동일한 참조 미디어 유형과 Best Image AI의 핵심 제어 항목을 제공합니다. 표준 버전에는 1080p 및 4K 해상도 옵션이 추가되며, Fast 버전은 480p 및 720p 워크플로에 중점을 둡니다.
Seedance V2.0 참조 기반 동영상과 Wan 2.7 참조 기반 동영상 두 API 모두 이미지 및 동영상 참조를 입력받습니다. Wan 2.7은 네거티브 프롬프트와 시드 제어도 제공하며, Seedance V2.0은 여러 선택적 오디오 참조와 생성 사운드 전환을 지원합니다.
Seedance V2.0 참조 기반 동영상과 Vidu Q3 참조 기반 동영상 현재 Best Image AI 설정에서 Vidu Q3 참조 기반 동영상은 이미지 참조를 사용합니다. Seedance V2.0은 참조 동영상과 선택적 참조 오디오도 입력받습니다.
Seedance V2.0 참조 기반 동영상과 Runway 동영상 도구 Runway는 더 광범위한 대화형 제작 도구 모음을 제공합니다. Seedance V2.0 참조 기반 동영상은 프롬프트, 지원되는 참조 업로드, 출력 설정 및 생성 사운드에 초점을 맞춘 API 워크플로를 제공합니다.
// Step 1: Submit generation request
const response = await fetch('https://api.flaq.ai/api/v1/video/task', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
body: JSON.stringify({
model_name: 'seedance-v2.0-reference-to-video',
prompt: 'Use image one for the subject, video one for the movement, and audio one for the atmosphere',
resolution: '1080p',
duration: 8,
aspect_ratio: '16:9',
sound: true,
images: ['https://example.com/subject-reference.jpg'],
videos: ['https://example.com/motion-reference.mp4'],
audios: ['https://example.com/atmosphere-reference.mp3']
})
});
const { data } = await response.json();
const taskId = data.task_id;
// Use the @ (AT) reference feature in prompt through <<<...>>> placeholders.
// Placeholder numbering is 1-based for each media array:
// <<<image_1>>> = images[0], <<<image_2>>> = images[1]
// <<<video_1>>> = videos[0], <<<audio_1>>> = audios[0]
const mediaReferenceResponse = await fetch('https://api.flaq.ai/api/v1/video/task', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
body: JSON.stringify({
model_name: 'seedance-v2.0-reference-to-video',
prompt: 'Place the explorer from <<<image_1>>> in the environment from <<<image_2>>>, following the camera movement in <<<video_1>>> and speaking with the reference voice from <<<audio_1>>>',
resolution: '1080p',
duration: 10,
aspect_ratio: '16:9',
sound: true,
images: [
'https://example.com/explorer-reference.jpg',
'https://example.com/environment-reference.jpg'
],
videos: ['https://example.com/camera-movement-reference.mp4'],
audios: ['https://example.com/voice-reference.mp3']
})
});
const { data: mediaReferenceData } = await mediaReferenceResponse.json();
const mediaReferenceTaskId = mediaReferenceData.task_id;
// Step 2: Poll for results
const taskId = data.task_id;
const pollResult = async (taskId) => {
const res = await fetch(`https://api.flaq.ai/api/v1/video/${taskId}`, {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
return res.json();
};
while (true) {
const pollResultData = await pollResult(taskId);
const status = pollResultData.data.task_status;
if (status === 'succeed') {
console.log(pollResultData.data.task_result.videos[].);
;
}
(status === ) {
.(pollResultData..);
;
}
( (resolve, ));
}
# Step 1: Submit generation request
import requests
response = requests.post(
'https://api.flaq.ai/api/v1/video/task',
headers={
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
json={
'model_name': ,
: ,
: ,
: ,
: ,
: ,
: [],
: [],
: []
}
)
result = response.json()
task_id = result[][]
media_reference_response = requests.post(
,
headers={
: ,
:
},
json={
: ,
: ,
: ,
: ,
: ,
: ,
: [
,
],
: [],
: []
}
)
media_reference_result = media_reference_response.json()
media_reference_task_id = media_reference_result[][]
# Step 1: Submit generation request
curl -X POST https://api.flaq.ai/api/v1/video/task \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model_name": "seedance-v2.0-reference-to-video",
"prompt": "Use image one for the subject, video one for the movement, and audio one for the atmosphere",
"resolution": "1080p",
"duration": 8,
"aspect_ratio": "16:9",
"sound": true,
"images": ["https://example.com/subject-reference.jpg"],
"videos": ["https://example.com/motion-reference.mp4"],
"audios": ["https://example.com/atmosphere-reference.mp3"]
}'
# Use the @ (AT) reference feature in prompt through <<<...>>> placeholders.
# Placeholder numbering is 1-based for each media array:
curl -X POST https://api.flaq.ai/api/v1/video/task \
-H \
-H \
-d
# Step 2: Poll for results
task_id = response.json()['data']['task_id']
poll_url = f"https://api.flaq.ai/api/v1/video/{task_id}"
while True:
poll_result = requests.get(poll_url, headers={'Authorization': 'Bearer YOUR_API_KEY'}).json()
status = poll_result['data']['task_status']
if status == 'succeed':
print(poll_result['data']['task_result']['videos'][0]['url'])
break
if status == 'failed':
print(poll_result['data']['task_status_msg'])
break
time.sleep(10)
# Step 2: Poll for results
# Replace {task_id} with the task_id returned from the submit response
curl -X GET "https://api.flaq.ai/api/v1/video/{task_id}" \
-H "Authorization: Bearer YOUR_API_KEY"