Chuyển đến nội dung chính
Dùng POST /v1/videos để tạo một tác vụ tạo video Seedance bất đồng bộ. Theo dõi tác vụ cho đến khi hoàn thành, sau đó tải video từ URL Flatkey được trả về. Các mô hình được hỗ trợ gồm seedance-2.0, seedance-2.0-fast, seedance-2.0-mini và seedance-2.5. Tính khả dụng phụ thuộc vào tài khoản của bạn; dùng GET /v1/models để lấy danh sách mô hình hiện tại.

Endpoint

Flatkey cũng chấp nhận POST /v1/video/generations và GET /v1/video/generations/{task_id}. Dùng /v1/videos để có cấu trúc phản hồi chuẩn và dữ liệu usage gốc.

Yêu cầu

Tham số body

string
bắt buộc
ID mô hình Seedance: "seedance-2.0", "seedance-2.0-fast", "seedance-2.0-mini" hoặc "seedance-2.5".
array
bắt buộc
Các mục đầu vào đa phương thức. Bao gồm ít nhất một mục văn bản không rỗng, hình ảnh, video hoặc âm thanh. Xem các mục content.
string
Độ phân giải đầu ra. Mặc định: "720p".
string
Tỷ lệ khung hình đầu ra: "16:9", "4:3", "1:1", "3:4", "9:16", "21:9" hoặc "adaptive". Mặc định: "adaptive". Với "adaptive", mô hình tự chọn tỷ lệ dựa trên hình ảnh hoặc video đầu vào. Với seedance-2.5, các tác vụ khung đầu và khung đầu/cuối chỉ hỗ trợ "adaptive".
integer
Thời lượng video tính bằng giây. Mặc định: 5. Các mô hình Seedance 2.0 chấp nhận từ 4 đến 15; seedance-2.5 chấp nhận từ 4 đến 30.
Luôn gửi duration là số dương. Flatkey tính phí Seedance theo giây, nên -1 (để mô hình tự chọn thời lượng) sẽ bị từ chối với video_price_not_configured. Ngoại lệ duy nhất là chỉnh sửa video với seedance-2.5, vốn bắt buộc dùng -1.
boolean
Thêm hình mờ “AI generated” vào góc dưới bên phải. Mặc định: false.
boolean
Tạo một bản âm thanh mono đồng bộ. Mặc định: true. Đặt thành false nếu bạn chỉ cần video; âm thanh được tạo đôi khi có thể không vượt qua kiểm tra bản quyền.
boolean
Trả về khung hình cuối cùng của video đã tạo dưới dạng hình ảnh. Mặc định: false. Khi là true, tác vụ đã hoàn thành sẽ có metadata.last_frame_url, dùng để tải một ảnh JPEG cùng kích thước với video và không có hình mờ. Dùng ảnh này làm first_frame cho tác vụ tiếp theo để nối các clip. Giống như metadata.url, URL này không cần header xác thực; hãy giữ nó ở chế độ riêng tư.
string
Chỉ dành cho seedance-2.5. Định dạng container của video được tạo: "mp4" hoặc "mov". Mặc định: "mp4". MOV giữ độ chính xác màu cao hơn cho chỉnh màu và ghép hình (H.264, YUV 4:4:4, âm thanh PCM), nhưng một số trình phát không mở được. Endpoint nội dung trả về video/quicktime cho kết quả MOV.
string
Chỉ dành cho seedance-2.5, áp dụng cho tác vụ ở chế độ tham chiếu. Cho mô hình biết bạn muốn thực hiện tác vụ nào: "auto" (mặc định), "reference", "edit" hoặc "extend". Khi đặt rõ giá trị này, các bước kiểm tra loại tác vụ được chuyển lên lúc gửi yêu cầu, nên một tổ hợp không hợp lệ sẽ thất bại ngay thay vì sau khi tác vụ đã bắt đầu. "reference", "edit" và "extend" đều cần các mục tham chiếu trong content; yêu cầu chỉ có văn bản mà dùng "reference" sẽ bị từ chối. Xem chỉnh sửa và kéo dài video.
integer
Mức ưu tiên trong hàng đợi, từ 0 đến 9. Mặc định: 0. Giá trị cao hơn đưa tác vụ lên trước các tác vụ có mức ưu tiên thấp hơn đang chờ cùng mô hình. Được hỗ trợ trên tất cả các mô hình Seedance 2.0 và seedance-2.5. Giá trị ngoài khoảng 0–9 sẽ bị từ chối với 400.
integer
Số giây tác vụ được phép chờ và chạy trước khi hết hạn. Mặc định: 172800 (48 giờ). Hãy dùng giá trị ngắn hơn khi kết quả đến muộn không còn hữu ích với bạn.
string
URL HTTPS công khai nhận một yêu cầu POST mỗi khi trạng thái tác vụ thay đổi. Xem Callback tác vụ. URL phải dùng https, không chứa thông tin đăng nhập của người dùng, dài tối đa 2.048 ký tự và phân giải tới một địa chỉ công khai; nếu không, yêu cầu sẽ bị từ chối với 400.

Các mục content

Mỗi URL có thể là một URL HTTPS công khai, một data URI dạng data:<mime>;base64, (chỉ áp dụng cho hình ảnh và âm thanh), hoặc một tham chiếu asset:// từ thư viện tài sản. Toàn bộ body của yêu cầu phải nhỏ hơn 64 MB. Chọn một chế độ đầu vào cho mỗi tác vụ. Không thể kết hợp các chế độ này:

Chỉnh sửa video

seedance-2.5 có thể chỉnh sửa hoặc kéo dài một video có sẵn ở chế độ tham chiếu. Mô tả thay đổi trong prompt và gọi video đó là @Video1.
Giống như mọi yêu cầu seedance-2.5 có video tham chiếu, một tác vụ chỉnh sửa được tính phí theo đơn giá có video của độ phân giải tương ứng cho cố định 30 giây, bất kể thời lượng đầu vào hay đầu ra.

Chế độ bản nháp

seedance-2.5 có thể tạo trước một bản nháp 480p giá rẻ để bạn kiểm tra bối cảnh, các cảnh quay và chuyển động trước khi trả tiền cho video chính thức. Quy trình gồm hai yêu cầu:
  1. Tạo bản nháp. Gửi một yêu cầu bình thường với "draft": true và "resolution": "480p". Yêu cầu này được tính phí như một video 480p thông thường.
  2. Tạo video chính thức. Sau khi bản nháp hoàn thành, gửi một yêu cầu có mục content duy nhất là một draft_task trỏ tới ID tác vụ của bản nháp, kèm "resolution": "1080p".
Video chính thức dùng lại prompt, nội dung đa phương tiện, thời lượng, tỷ lệ khung hình, seed, thiết lập âm thanh và loại tác vụ của bản nháp. Không gửi duration, ratio, frames, seed, generate_audio, omni_reference_task_type, draft hoặc bất kỳ mục content nào khác cùng với draft_task; yêu cầu sẽ bị từ chối với 400. Bạn vẫn có thể đặt return_last_frame, output_format, watermark, priority, execution_expires_after và callback_url.
Seedance không chấp nhận trực tiếp hình ảnh hoặc video có khuôn mặt người thật. Hãy tải chúng lên dưới dạng tài sản người thật và tham chiếu bằng asset://.

Ví dụ yêu cầu

Đầu vào khung đầu và khung cuối

Tham chiếu đa phương thức

Phản hồi

Các trường phản hồi

string
ID tác vụ công khai dùng để theo dõi tác vụ và tải video đã hoàn thành. task_id chứa cùng giá trị.
string
Trạng thái tác vụ: queued, in_progress, completed, hoặc failed.
integer
Tiến độ tạo từ 0 đến 100.
integer
Dấu thời gian Unix khi tạo tác vụ.

Theo dõi trạng thái tác vụ

Trong khi đang tạo, phản hồi bao gồm tiến độ hiện tại:
Khi tác vụ hoàn thành, phản hồi bao gồm URL video và thông tin sử dụng token:
Các tác vụ thất bại trả về chi tiết lỗi kèm theo phản hồi tác vụ:
Bất kỳ số dư đã tiêu trước nào sẽ được hoàn lại tự động.

Các giá trị trạng thái

Callback tác vụ

Đặt callback_url để nhận các thay đổi trạng thái thay cho việc theo dõi tác vụ, hoặc song song với việc đó. Flatkey gửi một yêu cầu POST với Content-Type: application/json khi tác vụ chuyển sang in_progress, completed hoặc failed. Body chính là nội dung mà GET /v1/videos/{task_id} trả về tại thời điểm đó, bao gồm metadata.url và metadata.last_frame_url với các tác vụ đã hoàn thành.
Hãy phản hồi bằng bất kỳ mã trạng thái 2xx nào trong vòng 5 giây. Nếu không, Flatkey sẽ thử lại hai lần, sau 2 và 8 giây, rồi dừng hẳn. Flatkey không đi theo chuyển hướng (redirect). Callback không được ký, vì vậy hãy xác minh kết quả bằng cách truy vấn tác vụ trước khi xử lý, và luôn lấy việc theo dõi tác vụ làm nguồn dữ liệu chuẩn phòng khi một callback bị mất.

Tải video

Endpoint nội dung truyền dữ liệu video/mp4, hoặc video/quicktime khi tác vụ dùng output_format: "mov". Nó không yêu cầu Bearer token và có thể dùng trực tiếp làm nguồn cho thẻ <video>.
Endpoint nội dung chỉ hoạt động sau khi tác vụ hoàn thành và bị giới hạn tốc độ theo IP client. Hãy coi URL là thông tin nhạy cảm vì bất kỳ ai có URL đó đều có thể tải video.

Lỗi

Các lỗi tại thời điểm yêu cầu dùng phong bì lỗi chuẩn của Flatkey:

Ví dụ đầu-cuối

Ví dụ này tạo một tác vụ, theo dõi mỗi năm giây, và tải video đã hoàn thành. Yêu cầu cài đặt jq.