Seedance 2.0 Reference API でガイド付き動画を作成。動画参照、実人物サポート、柔軟な比率、安定出力により、動き、カメラ、スタイルの方向性をより扱いやすくできます。 参照したい動き、人物表現、画面テンポを活かした短尺動画や広告素材の制作に適しています。
ByteDance Seedance V2.0 参照動画生成 API は、Best Image AI 上の開発者やクリエイティブ チーム向けに、参照ガイド動画生成を提供します。現在の API 統合では、テキストプロンプトと少なくとも 1 つの参照画像または動画に加え、 任意で追加の画像、動画、音声参照を使用できます。設定可能な長さ、複数のアスペクト比、 複数の解像度、制御された動画ワークフロー向けの任意の生成サウンド設定に対応しています。
注記 少なくとも 1 つの参照画像または動画が必要です。音声のみを唯一の参照入力として使用することはできません。 プロンプトと参照メディアが 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"