OrcaRouter는 Kling과 동일한 제출-폴링 엔드포인트에서 Seedance 비디오
모델을 말합니다. model: byteplus/dreamina-seedance-2-0-260128을
보내면, OrcaRouter가 요청을 업스트림 Ark
/contents/generations/tasks API로 라우팅하고, 완료되면 동일한
작업 ID를 OrcaRouter를 통해 다시 폴링합니다(지속 시간 / 해상도 /
generate_audio에 따라 보통 30초에서 4분).
현재 사용 가능한 모델. 지금은 Seedance 2.0만 백엔드 이름
byteplus/dreamina-seedance-2-0-260128로 프로비저닝되어 있습니다.
아래 기능 테이블은 참조를 위해 나머지 Seedance 패밀리를 나열하지만,
플레이그라운드에서 선택할 수도 없고 OrcaRouter를 통해 라우팅할
수도 없습니다 — 현재로서는 모든 요청에
byteplus/dreamina-seedance-2-0-260128을 사용하세요.
제출 엔드포인트 POST /v1/video/generations와 가져오기 엔드포인트
GET /v1/video/generations/{task_id}는 Kling
과 공유됩니다. 달라지는 것은 요청 본문: Kling은
prompt + image + metadata.{mode, aspect_ratio, image_list, ...},
Seedance는 prompt + metadata.{content[], ratio, duration, generate_audio, watermark, ...}. model의 접두사가 어떤 스키마가
존중되는지 선택합니다.
| 모델 | T2V | I2V (첫) | I2V (첫+마지막) | 멀티모달 참조¹ | 비디오 편집² | 오디오 생성³ | 지속 시간 | 사용 가능 |
|---|
byteplus/dreamina-seedance-2-0-260128 (2.0) | ✓ | ✓ | ✓ | ✓ 완전 | ✓ | ✓ | 4 – 15 s | ✓ |
byteplus/seedance-2.0-fast | ✓ | ✓ | ✓ | ✓ 완전 | ✓ | ✓ | 4 – 15 s | 예정 |
byteplus/seedance-1-5-pro | ✓ | ✓ | ✓ | 이미지만 | | ✓ | 4 – 12 s | 예정 |
byteplus/seedance-1-0-pro | ✓ | ✓ | ✓ | 이미지만 | | | 2 – 12 s | 예정 |
byteplus/seedance-1-0-pro-fast | ✓ | ✓ | | 이미지만 | | | 2 – 12 s | 예정 |
byteplus/seedance-1-0-lite-i2v | | ✓ | ✓ | 이미지만 | | | 2 – 12 s | 예정 |
byteplus/seedance-1-0-lite-t2v | ✓ | | | 이미지만 | | | 2 – 12 s | 예정 |
¹ 멀티모달 참조 = metadata.content[] 배열이 role 마커
(reference_image / reference_video / reference_audio)가 있는
image_url / video_url / audio_url 항목을 운반할 수 있음.
“완전”은 이미지 + 비디오 + 오디오의 조합이 허용됨을 의미.
² 비디오 편집 = video_url 컨텐츠 항목을 전달하여 소스 비디오에
프롬프트 기반 편집(주체 교체, 영역 인페인팅 등)을 적용.
³ 네이티브 오디오 = 업스트림이 비디오와 일치하는 사운드트랙을
자동 생성. metadata.generate_audio: true로 전환.
모든 모델의 제출 엔드포인트는 동일 — POST /v1/video/generations.
달라지는 것은 업스트림이 위 표에 따라 어떤 metadata 필드를
존중하는지입니다. 권위 있는 모델별 기능 목록은 업스트림의
Seedance capability matrix
를 참조하세요.
작업 제출
/v1/video/generations에 model, prompt 및 업스트림 고유
매개변수를 metadata 아래에 두고 POST 하세요:
curl https://api.orcarouter.ai/v1/video/generations \
-H "Authorization: Bearer sk-orca-..." \
-H "Content-Type: application/json" \
-d '{
"model": "byteplus/dreamina-seedance-2-0-260128",
"prompt": "A girl holding a fox, the girl opens her eyes, looks gently at the camera, the fox hugs affectionately, the camera slowly pulls out, the girl'\''s hair is blown by the wind",
"metadata": {
"content": [
{ "type": "image_url", "image_url": { "url": "https://example.com/foxgirl.png" } }
],
"ratio": "16:9",
"duration": 5,
"generate_audio": true,
"watermark": false
}
}'
응답에 작업 ID가 포함됩니다(Kling과 동일한 봉투 — OrcaRouter가
프로바이더 간에 정규화):
{
"id": "task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw",
"task_id": "task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw",
"object": "video",
"model": "byteplus/dreamina-seedance-2-0-260128",
"status": "queued",
"progress": 0,
"created_at": 1777975188
}
OrcaRouter는 당신의 prompt를 Seedance의 content[] 배열 내
텍스트 항목으로 자동 래핑합니다 — {type: "text"} 항목을 자신이
전달할 필요가 없습니다. metadata.content[]에 제공한 텍스트 항목은
최상위 prompt로 대체됩니다. 다른 컨텐츠 항목(image_url,
video_url, audio_url)은 변경 없이 통과됩니다.
본문 필드
이 필드들은 metadata 내부에 있습니다. 아래 변형 테이블에 따라
배열하세요.
| 필드 | 타입 | 비고 |
|---|
content | array | 멀티모달 참조 항목. 각 항목: {type, image_url? | video_url? | audio_url?, role?}. 순수 텍스트-to-비디오이면 생략. |
ratio | string | 종횡비. 16:9 / 9:16 / 1:1 / 4:3 / 3:4 / 21:9 / adaptive. adaptive는 입력에서 추론. |
duration | integer | 초. 허용 범위는 모델에 따라 다름 — 위 표 참조. |
resolution | string | 480p / 720p / 1080p. 기본값 720p. 1080p는 seedance-2.0 / seedance-2.0-fast / seedance-1-5-pro / seedance-1-0-pro / seedance-1-0-pro-fast만. |
generate_audio | boolean | 동기화된 사운드트랙을 자동 생성. 기본값 false. seedance-2.0 / 2.0-fast / 1-5-pro만. |
watermark | boolean | 업스트림 워터마크 새김. 기본값은 업스트림에서 정의. |
seed | integer | 재현성을 위한 랜덤 시드. |
service_tier | string | default(온라인) 또는 flex(오프라인 / 낮은 우선순위, 더 높은 할당량). 기본값 default. |
return_last_frame | boolean | 최종 프레임을 MP4와 함께 이미지로 반환. 기본값 false. |
callback_url | string | 웹훅 URL — 폴링 대신(또는 함께) 상태 변경을 수신. |
content[] 항목 형태
metadata.content의 각 항목은 네 가지 형태 중 하나입니다:
{ "type": "image_url", "image_url": { "url": "https://..." }, "role": "first_frame" }
{ "type": "video_url", "video_url": { "url": "https://..." }, "role": "reference_video" }
{ "type": "audio_url", "audio_url": { "url": "https://..." }, "role": "reference_audio" }
{ "type": "text", "text": "..." } // 최상위 프롬프트로 자동 교체
role 값:
role | 목적 |
|---|
first_frame | 이 이미지를 생성된 비디오의 첫 프레임으로 앵커. |
end_frame | 이 이미지를 마지막 프레임으로 앵커(첫+마지막 프레임 i2v를 위해 first_frame과 함께 사용). |
reference_image | 스타일 / 주체 참조(멀티모달 참조 변형; 여러 개 전달 가능). |
reference_video | 스타일 / 모션 참조, 또는 편집 / 확장을 위한 소스 비디오. |
reference_audio | 배경 음악 또는 음성 참조(오디오-비디오 생성). |
프롬프트 내 참조 항목은 [Image 1], [Video 1], [Audio 1] 구문
으로 참조. 인덱스는 배열 순서(1 기반, 타입별 범위)와 일치.
결과 폴링
제출 시 반환된 작업 ID를 사용:
curl https://api.orcarouter.ai/v1/video/generations/task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw \
-H "Authorization: Bearer sk-orca-..."
응답 형태는 래핑됨(Kling과 동일):
{
"code": "success",
"message": "",
"data": {
"task_id": "task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw",
"status": "SUCCESS",
"progress": "100%",
"result_url": "https://ark-content-generation-ap-southeast-1.tos-ap-southeast-1.volces.com/.../video.mp4",
"submit_time": 1777975188,
"start_time": 1777975241,
"finish_time": 1777975277,
"fail_reason": ""
}
}
상태 값은 프로바이더 전반에 걸쳐 대문자로 정규화됩니다:
| 상태 | 업스트림 Seedance 상태 | 의미 |
|---|
NOT_START | (일시적) | 작업 행 생성됨, 아직 디스패치되지 않음 |
SUBMITTED | queued | 업스트림에 보내짐, 큐에서 대기 |
IN_PROGRESS | running | 업스트림이 렌더링 중 |
SUCCESS | succeeded | 완료. data.result_url이 MP4를 운반 |
FAILURE | failed | 실패. data.fail_reason이 이유 |
진행 상황은 정수가 아니라 퍼센트 문자열("50%", "100%").
5 - 10초마다 폴링하세요. 5초 720p 클립은 보통 30 - 60초에 완료;
오디오 있는 1080p나 15초 / 멀티모달 참조 클립은 3 - 5분 소요 가능.
result_url은 짧은 TTL의 업스트림 서명 TOS URL — 장기 보관이
필요하면 즉시 다운로드하거나 다시 호스팅하세요.
엔드포인트 변형
모든 변형이 POST /v1/video/generations를 공유합니다. 업스트림이
제공하는 Seedance 기능 경로는 URL이 아니라 metadata.content[]
항목과 role 마커에 의해 결정됩니다.
텍스트-to-비디오
model + prompt + 선택적 메타데이터만. 컨텐츠 항목 없음은 순수
텍스트-to-비디오를 의미:
curl https://api.orcarouter.ai/v1/video/generations \
-H "Authorization: Bearer sk-orca-..." \
-H "Content-Type: application/json" \
-d '{
"model": "byteplus/dreamina-seedance-2-0-260128",
"prompt": "Photorealistic style: under a clear blue sky, a vast expanse of white daisy fields stretches out. The camera gradually zooms in on a single daisy with glistening dewdrops on its petals.",
"metadata": {
"ratio": "16:9",
"duration": 5,
"watermark": true
}
}'
이미지-to-비디오 — 첫 프레임
role: "first_frame"인 이미지 항목 하나 전달:
curl https://api.orcarouter.ai/v1/video/generations \
-H "Authorization: Bearer sk-orca-..." \
-H "Content-Type: application/json" \
-d '{
"model": "byteplus/dreamina-seedance-2-0-260128",
"prompt": "the cat starts dancing energetically",
"metadata": {
"content": [
{ "type": "image_url", "image_url": { "url": "https://example.com/cat.png" }, "role": "first_frame" }
],
"ratio": "adaptive",
"duration": 5,
"generate_audio": true
}
}'
이미지-to-비디오 — 첫과 마지막 프레임
first_frame과 end_frame을 위한 이미지 항목 두 개:
curl https://api.orcarouter.ai/v1/video/generations \
-H "Authorization: Bearer sk-orca-..." \
-H "Content-Type: application/json" \
-d '{
"model": "byteplus/dreamina-seedance-2-0-260128",
"prompt": "Create a 360-degree orbiting camera shot from start to end frame.",
"metadata": {
"content": [
{ "type": "image_url", "image_url": { "url": "https://example.com/start.jpg" }, "role": "first_frame" },
{ "type": "image_url", "image_url": { "url": "https://example.com/end.jpg" }, "role": "end_frame" }
],
"ratio": "16:9",
"duration": 6
}
}'
멀티모달 참조 — 이미지 + 비디오 + 오디오
reference_image / reference_video / reference_audio 항목을
조합. 프롬프트에서 [Image N] / [Video N] / [Audio N] 인덱스
(1 기반, 타입별)로 참조:
curl https://api.orcarouter.ai/v1/video/generations \
-H "Authorization: Bearer sk-orca-..." \
-H "Content-Type: application/json" \
-d '{
"model": "byteplus/dreamina-seedance-2-0-260128",
"prompt": "Use the first-person POV framing from [Video 1] throughout, and use [Audio 1] as the background music. First-person POV fruit tea promotional ad: [Image 1] hands pick a dew-covered apple; [Image 2] holds the finished drink up to the camera.",
"metadata": {
"content": [
{ "type": "image_url", "image_url": { "url": "https://example.com/tea_pic1.jpg" }, "role": "reference_image" },
{ "type": "image_url", "image_url": { "url": "https://example.com/tea_pic2.jpg" }, "role": "reference_image" },
{ "type": "video_url", "video_url": { "url": "https://example.com/tea_video1.mp4" }, "role": "reference_video" },
{ "type": "audio_url", "audio_url": { "url": "https://example.com/tea_audio1.mp3" }, "role": "reference_audio" }
],
"ratio": "16:9",
"duration": 11,
"generate_audio": true,
"watermark": false
}
}'
seedance-2.0과 seedance-2.0-fast에서 사용 가능(완전한 이미지 +
비디오 + 오디오 조합); seedance-1-5-pro와 seedance-1-0-*는
reference_image 항목만 받습니다.
비디오 편집 / 확장
{type: "video_url", role: "reference_video"}를 전달하고 프롬프트가
그것을 수정하거나 확장하도록 요청:
curl https://api.orcarouter.ai/v1/video/generations \
-H "Authorization: Bearer sk-orca-..." \
-H "Content-Type: application/json" \
-d '{
"model": "byteplus/dreamina-seedance-2-0-260128",
"prompt": "Change all the fruits in [Video 1] into fresh fruits.",
"metadata": {
"content": [
{ "type": "video_url", "video_url": { "url": "https://example.com/source.mp4" }, "role": "reference_video" }
],
"ratio": "adaptive",
"duration": 6
}
}'
seedance-2.0과 seedance-2.0-fast에서만 사용 가능.
metadata.callback_url: "https://your.domain/webhook"을 전달하면
작업이 SUCCESS 또는 FAILURE로 전환될 때 POST를 받습니다.
페이로드는 폴링 응답을 미러링합니다. 폴링과 콜백을 모두 설정하면
둘 다 받습니다 — 그것들은 독립적입니다.
OrcaRouter는 업스트림의 작업당 토큰 청구를 마크업 없이 통과시킵
니다. 최종 비용은 ByteDance Ark가 공개한 요율 카드와 일치합니다
(작업 결과의 업스트림 completion_tokens / total_tokens는
Channel Margin 구성에서 설정된 모델의 토큰당 요율로 할당량으로
변환됨).
제출 시 작은 사전 소비 보류가 예약됩니다; 차액은 성공 시 정산
됩니다. 운영 / 청구 및 사용량
참조.
관련 항목