ByteDance: Seedance 2.0
Seedance 2.0 tạo và chỉnh sửa video bằng văn bản cùng ảnh, video và âm thanh tham chiếu. Mô hình có thể nối tiếp video sẵn có và tạo âm thanh đồng bộ, với thời lượng 4–15 giây, đầu ra 480p hoặc 720p và vai trò tham chiếu được nêu rõ.
Về mô hình
Mô tả này trình bày khả năng của mô hình. Đầu vào, đầu ra và tùy chọn có trên Ailoot được liệt kê bên dưới cho phương thức đã chọn.
Seedance 2.0 tạo video từ một cảnh viết bằng văn bản hoặc tổ hợp ảnh, video và âm thanh tham chiếu. Mã chọn cụ thể doubao-seedance-2-0-260128 xác định cấu hình 2.0 tiêu chuẩn. Các quy trình được ghi gồm tạo video mới, chỉnh sửa và nối dài video sẵn có. Dùng tham chiếu để truyền đạt diện mạo, chuyển động, ngôn ngữ máy quay và âm thanh, rồi nêu chúng cần điều khiển phần nào của cảnh.
Có thể chỉ cung cấp văn bản. Các tổ hợp đa phương thức được ghi cũng cho phép ảnh hoặc video kèm văn bản tùy chọn, ảnh với âm thanh, video với âm thanh, và ảnh, video cùng âm thanh. Vì vậy, âm thanh đi kèm phương tiện hình ảnh trong các tổ hợp liệt kê này; tài liệu không mô tả yêu cầu tạo video chỉ từ âm thanh độc lập. Viết rõ kết quả mong muốn kể cả khi văn bản là tùy chọn, để vai trò từng tham chiếu được nêu rõ thay vì bị suy ra từ các tài nguyên không liên quan.
Mảng content phân biệt các mục text, image_url, video_url và audio_url. Tham chiếu đa phương thức dùng các vai trò như reference_image, reference_video và reference_audio. Ảnh có thể xác lập người, vật, địa điểm hoặc diện mạo. Video có thể minh họa phần thể hiện, chuyển động hoặc góc nhìn máy quay; âm thanh có thể xác lập bản âm thanh hoặc nhịp thời gian. Nêu cách phân công trong yêu cầu: giữ chủ thể từ ảnh, theo góc nhìn máy quay của video và dùng âm thanh làm nền. Đừng yêu cầu mọi tham chiếu xác định tất cả thuộc tính cùng lúc.
Ví dụ quảng cáo được ghi kết hợp hai ảnh sản phẩm với video và âm thanh tham chiếu. Ví dụ mô tả góc nhìn mở đầu, chuỗi hành động, cận cảnh chi tiết sản phẩm và bố cục kết thúc, đồng thời giữ giọng nền nhất quán. Cấu trúc tương tự có thể tổ chức một phần giới thiệu ngắn: xác lập vật, thể hiện một hành động và kết thúc ở đặc điểm dễ nhận ra. Với chỉnh sửa, xác định video nguồn và yếu tố cần đổi; với nối dài, giải thích hành động tiếp tục sau cảnh hiện có, đồng thời giữ chủ thể và hướng chuyển động.
Cấu hình 2.0 ghi thời lượng theo giây nguyên từ bốn đến mười lăm, hoặc -1 để tự động chọn thời lượng trong khoảng đó. Mặc định là năm giây. Các tùy chọn độ phân giải là 480p và 720p, với 720p là mặc định; 1080p bị loại trừ cho 2.0. Tỷ lệ khung cố định gồm 16:9, 4:3, 1:1, 3:4, 9:16 và 21:9. Tỷ lệ thích ứng có thể chọn khuôn hình từ prompt hoặc tham chiếu: quy trình dùng khung đầu theo ảnh mở đầu, còn quy trình đa phương thức dùng cảnh mong muốn hoặc phương tiện phù hợp đầu tiên, ưu tiên video hơn ảnh. Kiểm tra kết quả tác vụ để biết tỷ lệ và thời lượng thực tế.
Âm thanh được tạo được điều khiển riêng với phương tiện tham chiếu. generate_audio=true yêu cầu giọng nói, hiệu ứng và nhạc nền đồng bộ dựa trên văn bản và nội dung hình ảnh; false yêu cầu video không tiếng. Mặc định được ghi là true, và lời thoại đặt trong ngoặc kép được khuyên dùng cho phần nói. Nêu người nói và quan hệ giữa âm thanh với hành động nhìn thấy, rồi kiểm tra lời nói thực tế, giọng được gán và nhịp thời gian. Cung cấp âm thanh tham chiếu và bật âm thanh được tạo là các lựa chọn yêu cầu riêng biệt.
Hướng dẫn 2.0 loại trừ các tùy chỉnh frames và camera_fixed cũ, đồng thời không hỗ trợ xử lý offline flex. Dùng trường duration và mô tả chuyển động máy quay ngay trong cảnh. Seed và hình mờ vẫn là các tùy chỉnh được ghi; hướng dẫn nói cùng yêu cầu và seed có thể cho kết quả tương tự nhưng không bảo đảm giống hệt. Tránh coi seed là bằng chứng tái lập kết quả, hoặc coi yêu cầu lặp lại như đoạn video đã được kiểm tra.
Mức sử dụng token video được tính bằng: (thời lượng video đầu vào + thời lượng video đầu ra) × chiều rộng đầu ra × chiều cao đầu ra × tốc độ khung hình đầu ra / 1024. Yêu cầu có video đầu vào và yêu cầu không có video đầu vào thuộc các nhóm tính phí riêng. Truy vấn tác vụ báo usage.completion_tokens và usage.total_tokens; lưu các lượng được báo này cùng đoạn video hoàn chỉnh.
Quy trình diễn ra bất đồng bộ: việc gửi trả mã tác vụ, còn tác vụ hoàn tất cung cấp content.video_url cùng thời lượng, độ phân giải, tỷ lệ, tốc độ khung hình và mức sử dụng token được báo. Giữ mã tác vụ và lưu video hoàn chỉnh cùng tham chiếu gốc và prompt. Trường hết hạn mặc định 172800 giây, chấp nhận 3600–259200 giây kể từ lúc tạo tác vụ; tác vụ vượt quá khoảng này trở thành expired. Kiểm tra toàn bộ đầu ra, kể cả điểm ghép của phần chỉnh sửa hoặc nối tiếp, về diện mạo nhân vật, chi tiết vật, quan hệ không gian, tính liên tục của máy quay và thời điểm âm thanh khớp hình.
Ailoot Ultra · Tạo video POST /v1/videos doubao-seedance-2-0-260128
doubao-seedance-2-0-260128Bắt đầu
Seedance 2.0 tạo và chỉnh sửa video bằng văn bản cùng ảnh, video và âm thanh tham chiếu. Mô hình có thể nối tiếp video sẵn có và tạo âm thanh đồng bộ, với thời lượng 4–15 giây, đầu ra 480p hoặc 720p và vai trò tham chiếu được nêu rõ.
- Đầu vào được chấp nhận
- Văn bản · Ảnh · Video · Âm thanh
- Kết quả
- Video
Có trên Ailoot · đầu vào & phương thức
Ailoot Ultra · Tạo video POST /v1/videos
- Đầu vào
text,image,video,audio- Đầu ra
video
| Trường | Loại | Yêu cầu | Giá trị & giới hạn | Mặc định |
|---|---|---|---|---|
Trườngmodel | Loạistring | Yêu cầuBắt buộc | Giá trị & giới hạn doubao-seedance-2-0-260128 | Mặc định— |
Trườngcontent | Loạiarray | Yêu cầuBắt buộc | Giá trị & giới hạn Điều kiện: Các đối tượng văn bản/đa phương tiện gốc; mảng ngoài phải không rỗng. Bộ dựng tổng quát này của Ailoot không xác thực kiểu của các nút lồng nhau. | Mặc định— |
Trườnggenerate_audio | Loạiboolean | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Điều kiện: Âm thanh đồng bộ được nhúng trong video. | Mặc địnhtrue |
Trườngduration | Loạiinteger | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Điều kiện: Số nguyên 4–15 hoặc -1; thời lượng đầu ra thực tế được trả về. | Mặc định5 |
Trườngresolution | Loạistring | Yêu cầuKhông bắt buộc | Giá trị & giới hạn 480p, 720p Điều kiện: 1080p được ghi rõ là không hỗ trợ cho 2.0/fast. | Mặc định720p |
Trườngratio | Loạistring | Yêu cầuKhông bắt buộc | Giá trị & giới hạn 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive Điều kiện: Adaptive được quy định rõ cho 2.0/fast/1.5; ví dụ 2.5 chỉ dùng 16:9. | Mặc địnhadaptive |
Trườngwatermark | Loạiboolean | Yêu cầuKhông bắt buộc | Giá trị & giới hạn | Mặc địnhfalse |
Trườngseed | Loạiinteger | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tối thiểu: -1 Tối đa: 4.294.967.295 | Mặc định-1 |
Trườngexecution_expires_after | Loạiinteger | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tối thiểu: 3.600 Tối đa: 259.200 Đơn vị: giây | Mặc định172.800 |
Trườngservice_tier | Loạistring | Yêu cầuKhông bắt buộc | Giá trị & giới hạn default Điều kiện: 2.0/fast không hỗ trợ chế độ flex ngoại tuyến; phạm vi của 2.5 chưa được xác định. | Mặc địnhdefault |
Trườngsafety_identifier | Loạistring | Yêu cầuKhông bắt buộc | Giá trị & giới hạn | Mặc định— |
Trườngtools | Loạiobject | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Điều kiện: Chỉ 2.0/fast; type=web_search theo tài liệu. | Mặc định— |
Tổ hợp tư liệu đầu vào
Tham số phương thức và vòng đời
| Tham số | Hợp đồng |
|---|---|
Tham sốcontent_type | Hợp đồngapplication/json |
Tham sốrequired | Hợp đồngcontent, model |
Tham sốoptional | Hợp đồnggenerate_audio, duration, resolution, ratio, watermark, seed, execution_expires_after, service_tier, safety_identifier, tools |
Tham sốmaterial_types | Hợp đồngtext, image, video, audio |
Tham sốadditional_properties | Hợp đồngtrue |
Tham sốvalidation_scope | Hợp đồngAiloot kiểm tra kiểu dữ liệu của các trường bắt buộc và mảng model/content không rỗng. Các trường yêu cầu khác được giữ nguyên cho mô hình đã chọn. |
Tham sốmaterial_combinations | Hợp đồngtext, image, video, image, audio, image, video, video, audio, image, video, audio |
Tham sốoptional_text_with_media | Hợp đồngtrue |
Tham sốreference_media_count_and_size_limits | Hợp đồngnull |
Bí danh phương thức: /v1/videos/generations
Vòng đời: submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/videos/generations/{request_id}/content
Tạo một lần và giữ lại id/polling_url công khai được trả về.
Thăm dò tác vụ ban đầu; tải xuống content.video_url thực tế thuộc quyền sở hữu sau trạng thái succeeded.
Bảng giá
Cách tính phí cuối cùng
Các đơn giá hiển thị dùng để ước tính chi phí trước khi tạo. Khoản phí cuối cùng được tính dựa trên chi phí ghi nhận cho lượt tạo gốc. Thời lượng đầu ra đo được và số lượng dự kiến không phải là số lượng cuối cùng dùng để tính phí.
Thông tin biểu giá không bổ sung tùy chọn yêu cầu. Các tham số được hỗ trợ nằm trong phương thức đã chọn.
- Chế độ nhanh
- Chưa chỉ định Khi chọn chế độ nhanh
- Chế độ Flex
- Chưa chỉ định Khi chọn chế độ flex
- Mức độ suy luận tối đa
- Chưa chỉ định Khi áp dụng mức điều chỉnh mặc định (default) cho mức độ suy luận tối đa
Mức phí ước tính để so sánh
Giá theo cấu hình
Đối chiếu từng khoản phí với điều kiện hiển thị. Dùng một mức phí cho mỗi nhóm cấu hình thay thế.
| Cấu hình | Biểu mức phí | Số lượng dự báo | Đơn vị tính phí | Phí |
|---|---|---|---|---|
| Cấu hìnhGiá cơ sở cho token | Biểu mức phíMức phí cơ bản | Số lượng dự báo— | Đơn vị tính phí— | Phí Đầu vào · Token đầu vào · Ước tính chỉ để so sánh — / 1K token Đầu ra · Token đầu ra · Ước tính chỉ để so sánh — / 1K token Đầu vào · Đọc bộ nhớ đệm · Ước tính chỉ để so sánh — / 1K token Đầu vào · Ghi bộ nhớ đệm · Ước tính chỉ để so sánh — / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ · Ước tính chỉ để so sánh — / 1K token |
| Cấu hìnhĐầu vào có video. | Biểu mức phí— | Số lượng dự báo— | Đơn vị tính phímỗi 1K token video | Phí Đầu ra · Ước tính chỉ để so sánh $0.0096 mỗi 1K token video |
| Cấu hìnhĐầu vào không có video. | Biểu mức phí— | Số lượng dự báo— | Đơn vị tính phímỗi 1K token video | Phí Đầu ra · Ước tính chỉ để so sánh $0.015768 mỗi 1K token video |
| Cấu hìnhChi phí tạo ước tính | Biểu mức phí— | Số lượng dự báoước tính cho một lần tạo | Đơn vị tính phí— | Phí Đầu ra · Chi phí tạo ước tính · Ước tính chỉ để so sánh $0.822402 ước tính trước khi tạo Ước tính này không phải là khoản phí bổ sung hay mức giá cố định cho lượt tạo đã hoàn tất. |
Ailoot tạm giữ một khoản ước tính trước yêu cầu. Sau khi có kết quả, phí cuối cùng được quyết toán theo mức sử dụng đo được. Việc quyết toán khi truyền luồng dùng bản ghi mức sử dụng cuối cùng. Cách hoạt động của cơ chế tạm giữ và quyết toán →
Ví dụ yêu cầu
Ailoot Ultra · Tạo video
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON_REQUEST'
{"model":"doubao-seedance-2-0-260128","content":[{"type":"text","text":"女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动"}]}
JSON_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_POLL'
import json
from pathlib import Path
from urllib.parse import quote,urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
i=r.get("id")
if not isinstance(i,str) or not i.startswith("native302_"):raise SystemExit("Keep original response/headers/id; do not resubmit creation.")
u=urljoin("https://api.ailoot.ai",r.get("polling_url") or "/v1/videos/"+quote(i,safe=""))
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/videos/"):raise SystemExit("Use actual Ailoot lookup path.")
Path("poll-url.txt").write_text(u)
PY_POLL
curl --fail-with-body --silent --show-error "$(cat poll-url.txt)" -H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
set -eu
python3 - <<'PY_ASSETS'
import json
from pathlib import Path
from urllib.parse import urlsplit
r=json.loads(Path("status.json").read_text())
if r.get("status")!="succeeded":raise SystemExit("Poll same original job until an owned result is returned.")
u=r.get("content",{}).get("video_url")
urls=[u] if isinstance(u,str) else u
if not isinstance(urls,list) or not urls:raise SystemExit("No completed video URL.")
for u in urls:
if not isinstance(u,str):raise SystemExit("Invalid returned URL.")
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/media/assets/") or not p.path.endswith("/content") or not p.query:raise SystemExit("Wait for actual Ailoot-owned signed result.")
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_ASSETS
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" -o "video-${index}.bin"
index=$((index + 1))
done < asset-urls.txt
Nhận và lưu kết quả
Ailoot Ultra · Tạo video
JSON gốc với id/polling_url công khai. Sau khi công bố, content.video_url chứa URL đã ký thuộc quyền sở hữu của Ailoot; trước khi công bố, các URL đầu ra được chọn bị xóa trống.
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Lưu tất cả kết quả đã hoàn tất
Lưu mọi video đã hoàn tất hoặc tệp trả về; truy xuất từng URL tài nguyên thực tế được trả về.
Giữ lại mọi URL thực tế trong content.video_url; index phải xác định một đầu ra thực tế được trả về.
Nếu cần kiểm tra phản hồi gốc
Giữ nguyên phản hồi/tiêu đề/id ban đầu và thăm dò thao tác đó; tuyệt đối không gửi lại yêu cầu tạo chưa rõ kết quả.
Trường phản hồi
| Trường | Loại |
|---|---|
Trườngid | Loạistring |
Trườngprovider_task_id | Loạistring |
Trườngpolling_url | Loạistring |
Trườngstatus | Loạistring when supplied |
Trườngcontent.video_url | Loạistring|string[] |
Trườngusage | Loạiobject when supplied |
Lỗi và bước tiếp theo
| Phản hồi | Điều kiện | Bước tiếp theo |
|---|---|---|
Phản hồi400 · invalid_request_error | Điều kiệnJSON/model/kiểu của trường bắt buộc hoặc chỉ số nội dung không hợp lệ. | Bước tiếp theo |
Phản hồi401 · authentication_error | Điều kiệnKhóa API Ailoot không hợp lệ. | Bước tiếp theo |
Phản hồi404 · not_found_error | Điều kiệnTác vụ/đầu ra không tồn tại hoặc không thuộc cùng người dùng/khóa API/nhóm. | Bước tiếp theo |
Phản hồi502 · result_pending_check | Điều kiệnLần gửi/trạng thái ban đầu chưa đầy đủ; giữ nguyên ID ban đầu, không gửi lại. | Bước tiếp theo |
Phản hồi503 · result_pending_check | Điều kiệnNội dung đa phương tiện/tuyến/quyết toán ban đầu đang được kiểm tra; tiếp tục thao tác ban đầu. | Bước tiếp theo |
Bí danh
Bí danh mô hình
Ailoot Ultra doubao-seedance-2-0-260128
Bí danh đường dẫn phương thức
/v1/videos/generations
ID gọi liên quan
FAQ · ByteDance: Seedance 2.0
- Có những đầu vào và kết quả nào?
POST /v1/videos·doubao-seedance-2-0-260128:text,image,video,audio→video- Yêu cầu sử dụng những trường nào?
POST /v1/videos·doubao-seedance-2-0-260128:model,content,generate_audio,duration,resolution,ratio,watermark,seed,execution_expires_after,service_tier,safety_identifier,tools- Áp dụng những giới hạn nào?
POST /v1/videos·doubao-seedance-2-0-260128:seed.minimum:-1;seed.maximum:4294967295;execution_expires_after.minimum:3600;execution_expires_after.maximum:259200