OrcaRouter giao tiếp với các mô hình video Seedance trên cùng endpoint
submit-rồi-poll như Kling. Bạn gửi
model: byteplus/dreamina-seedance-2-0-260128, OrcaRouter định tuyến
yêu cầu đến API upstream Ark /contents/generations/tasks, và bạn
poll cùng task ID đó qua OrcaRouter khi xong (thường 30 giây đến 4
phút tùy duration / độ phân giải / generate_audio).
Mô hình hiện có. Hiện chỉ Seedance 2.0 được cung cấp, dưới tên
backend byteplus/dreamina-seedance-2-0-260128. Bảng khả năng bên
dưới liệt kê các thành viên còn lại của họ Seedance để tham khảo,
nhưng chúng chưa thể chọn trong playground hay định tuyến qua
OrcaRouter — hiện tại hãy dùng byteplus/dreamina-seedance-2-0-260128
cho mọi yêu cầu.
Endpoint submit POST /v1/video/generations và endpoint fetch
GET /v1/video/generations/{task_id} được dùng chung với
Kling. Khác biệt là thân yêu cầu: Kling
dùng prompt + image + metadata.{mode, aspect_ratio, image_list, ...},
Seedance dùng prompt + metadata.{content[], ratio, duration, generate_audio, watermark, ...}. Tiền tố trên model chọn lược đồ
nào được tôn trọng.
Mô hình
| Mô hình | T2V | I2V (khung đầu) | I2V (đầu+cuối) | Ref đa phương thức¹ | Chỉnh sửa video² | Tạo âm thanh³ | Duration | Khả dụng |
|---|
byteplus/dreamina-seedance-2-0-260128 (2.0) | ✓ | ✓ | ✓ | ✓ đầy đủ | ✓ | ✓ | 4 – 15 s | ✓ |
byteplus/seedance-2.0-fast | ✓ | ✓ | ✓ | ✓ đầy đủ | ✓ | ✓ | 4 – 15 s | dự kiến |
byteplus/seedance-1-5-pro | ✓ | ✓ | ✓ | chỉ hình ảnh | | ✓ | 4 – 12 s | dự kiến |
byteplus/seedance-1-0-pro | ✓ | ✓ | ✓ | chỉ hình ảnh | | | 2 – 12 s | dự kiến |
byteplus/seedance-1-0-pro-fast | ✓ | ✓ | | chỉ hình ảnh | | | 2 – 12 s | dự kiến |
byteplus/seedance-1-0-lite-i2v | | ✓ | ✓ | chỉ hình ảnh | | | 2 – 12 s | dự kiến |
byteplus/seedance-1-0-lite-t2v | ✓ | | | chỉ hình ảnh | | | 2 – 12 s | dự kiến |
¹ Tham chiếu đa phương thức = mảng metadata.content[] có thể mang
các mục image_url / video_url / audio_url với cờ role
(reference_image / reference_video / reference_audio). “Đầy đủ”
nghĩa là tổ hợp ảnh + video + âm thanh đều được chấp nhận.
² Chỉnh sửa video = truyền một mục content video_url để áp dụng các
chỉnh sửa theo prompt lên video nguồn (đổi đối tượng, inpaint vùng,
v.v.).
³ Âm thanh bản địa = upstream tự sinh nhạc nền khớp với video. Bật/tắt
qua metadata.generate_audio: true.
Endpoint submit giống nhau cho mọi mô hình — POST /v1/video/generations.
Khác biệt nằm ở việc upstream tôn trọng trường metadata nào theo
bảng trên. Xem
ma trận khả năng Seedance
của upstream để biết danh sách tính năng theo từng mô hình chính
thức.
Gửi một task
Gửi POST đến /v1/video/generations với model, prompt và bất kỳ
tham số riêng nào của upstream dưới metadata:
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
}
}'
Phản hồi mang task ID (cùng envelope với Kling — OrcaRouter chuẩn hóa
giữa các nhà cung cấp):
{
"id": "task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw",
"task_id": "task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw",
"object": "video",
"model": "byteplus/dreamina-seedance-2-0-260128",
"status": "queued",
"progress": 0,
"created_at": 1777975188
}
OrcaRouter tự động bọc prompt của bạn thành mục văn bản bên trong
mảng content[] của Seedance — bạn không cần tự truyền một mục
{type: "text"}. Bất kỳ mục văn bản nào bạn cung cấp trong
metadata.content[] đều được thay bằng prompt cấp cao nhất của
bạn. Các mục content khác (image_url, video_url, audio_url) đi
qua không thay đổi.
Các trường thân
Các trường này nằm bên trong metadata. Sắp xếp chúng theo các bảng
biến thể bên dưới.
| Trường | Kiểu | Ghi chú |
|---|
content | array | Các mục tham chiếu đa phương thức. Mỗi mục: {type, image_url? | video_url? | audio_url?, role?}. Bỏ qua nếu chỉ text-to-video. |
ratio | string | Tỷ lệ khung hình. 16:9 / 9:16 / 1:1 / 4:3 / 3:4 / 21:9 / adaptive. adaptive suy ra từ đầu vào. |
duration | integer | Số giây. Dải cho phép phụ thuộc vào mô hình — xem bảng ở trên. |
resolution | string | 480p / 720p / 1080p. Mặc định 720p. 1080p chỉ trên seedance-2.0 / seedance-2.0-fast / seedance-1-5-pro / seedance-1-0-pro / seedance-1-0-pro-fast. |
generate_audio | boolean | Tự sinh nhạc nền đồng bộ. Mặc định false. Chỉ trên seedance-2.0 / 2.0-fast / 1-5-pro. |
watermark | boolean | In watermark của upstream. Mặc định do upstream định nghĩa. |
seed | integer | Hạt ngẫu nhiên cho tính tái lập. |
service_tier | string | default (online) hoặc flex (offline / ưu tiên thấp hơn, hạn mức cao hơn). Mặc định default. |
return_last_frame | boolean | Trả về khung cuối dưới dạng hình ảnh đi kèm MP4. Mặc định false. |
callback_url | string | URL webhook — nhận thay đổi trạng thái thay cho (hoặc song song với) polling. |
Hình dạng mục content[]
Mỗi mục trong metadata.content là một trong bốn hình dạng:
{ "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": "..." } // tự động thay bằng prompt cấp cao nhất
Các giá trị role:
role | Mục đích |
|---|
first_frame | Neo hình ảnh này làm khung đầu của video sinh ra. |
end_frame | Neo hình ảnh này làm khung cuối (dùng với first_frame cho i2v đầu+cuối). |
reference_image | Tham chiếu phong cách / chủ thể (biến thể tham chiếu đa phương thức; có thể truyền nhiều). |
reference_video | Tham chiếu phong cách / chuyển động, hoặc video nguồn để chỉnh sửa / mở rộng. |
reference_audio | Tham chiếu nhạc nền hoặc giọng (tạo video kèm âm thanh). |
Tham chiếu các mục trong prompt bằng cú pháp [Image 1], [Video 1],
[Audio 1]. Chỉ số khớp với thứ tự mảng (bắt đầu từ 1, phạm vi theo
từng loại).
Poll kết quả
Dùng task ID được trả về khi submit:
curl https://api.orcarouter.ai/v1/video/generations/task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw \
-H "Authorization: Bearer sk-orca-..."
Hình dạng phản hồi được bọc (giống 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": ""
}
}
Các giá trị status được chuẩn hóa thành chữ hoa giữa các nhà cung cấp:
| Status | Status upstream Seedance | Ý nghĩa |
|---|
NOT_START | (thoáng qua) | Dòng task đã tạo, chưa được dispatch |
SUBMITTED | queued | Đã gửi đến upstream, đang chờ trong hàng đợi |
IN_PROGRESS | running | Upstream đang render |
SUCCESS | succeeded | Xong. data.result_url mang file MP4 |
FAILURE | failed | Thất bại. data.fail_reason có lý do |
Tiến độ là chuỗi phần trăm ("50%", "100%"), không phải số
nguyên.
Poll mỗi 5 - 10 giây. Một clip 720p 5 giây thường hoàn tất trong
30 - 60 giây; 1080p kèm âm thanh hoặc các clip 15 giây / có tham
chiếu đa phương thức có thể mất 3 - 5 phút.
result_url là URL TOS được upstream ký với TTL ngắn — hãy tải xuống
hoặc rehost nhanh chóng nếu bạn cần lưu giữ lâu.
Biến thể endpoint
Mọi biến thể đều dùng chung POST /v1/video/generations. Đường tính
năng Seedance nào mà upstream phục vụ được xác định bởi các mục
metadata.content[] và các cờ role — không phải bởi URL.
Text-to-video
Chỉ model + prompt + metadata tùy chọn. Không có mục content
nghĩa là text-to-video thuần túy:
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
}
}'
Image-to-video — khung đầu
Truyền một mục image với 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
}
}'
Image-to-video — khung đầu và khung cuối
Hai mục image, mỗi mục cho first_frame và 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
}
}'
Tham chiếu đa phương thức — hình ảnh + video + âm thanh
Kết hợp các mục reference_image / reference_video /
reference_audio. Tham chiếu chúng trong prompt bằng các chỉ số
[Image N] / [Video N] / [Audio N] (bắt đầu từ 1, theo từng
loại):
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
}
}'
Có trên seedance-2.0 và seedance-2.0-fast (đầy đủ tổ hợp image +
video + audio); seedance-1-5-pro và seedance-1-0-* chỉ chấp nhận
mục reference_image.
Chỉnh sửa / mở rộng video
Truyền {type: "video_url", role: "reference_video"} và yêu cầu
prompt chỉnh sửa hoặc mở rộng nó:
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
}
}'
Chỉ có trên seedance-2.0 và seedance-2.0-fast.
Webhook
Truyền metadata.callback_url: "https://your.domain/webhook" để nhận
một POST khi task chuyển sang SUCCESS hoặc FAILURE. Payload phản
chiếu phản hồi polling. Nếu bạn đặt cả polling và callback, bạn sẽ
nhận cả hai — chúng độc lập với nhau.
Tính phí
OrcaRouter chuyển nguyên phí theo task của upstream mà không phụ phí.
Chi phí cuối khớp với bảng giá đã công bố của ByteDance Ark
(completion_tokens / total_tokens của upstream từ kết quả task
được chuyển sang quota theo giá theo token của mô hình được đặt trong
cấu hình Channel Margin của bạn).
Một khoản giữ trước nhỏ được dành ra tại thời điểm submit; phần chênh
được quyết toán khi thành công. Xem
Vận hành / Thanh toán và sử dụng.
Xem thêm