Hướng dẫn media
Material Seedance và xác minh người thật
Tạo material Seedance có thể tái sử dụng, xác minh người thật và dùng asset đang hoạt động trong quá trình tạo video.
Material Seedance là tham chiếu hình ảnh, video hoặc âm thanh có thể tái sử dụng trong phạm vi tổ chức. Hãy chọn quy trình trước: material avatar thông thường và material người thật đã xác minh có đường tạo khác nhau.
Chọn quy trình material
| Mục tiêu | Quy trình bắt buộc |
|---|---|
| Dùng URL hình ảnh một lần | Gửi URL trong trường hình ảnh được hỗ trợ; thao tác này không tạo ID material tái sử dụng |
| Tái sử dụng avatar, sản phẩm hoặc phong cách | Tạo nhóm aigc_avatar và material, chờ ACTIVE, rồi dùng ID |
| Tái sử dụng người thật | Hoàn tất xác minh hình ảnh, nhận GroupId, tạo material, chờ ACTIVE, rồi dùng ID |
| Di chuyển client material Volcengine | Giữ định dạng Action và dùng tài liệu tham chiếu tương thích Volcengine: Action material tương thích Volcengine |
Khái niệm về tài nguyên (Material)
Tài nguyên Seedance là các tham chiếu có thể tái sử dụng, thuộc phạm vi tổ chức, có thể được chọn sau này trong quá trình tạo video.
| Khái niệm | Trường công khai | Ý nghĩa |
|---|---|---|
| Nhóm tài nguyên | group_id | Một nhóm TokenLab sở hữu các tài nguyên Seedance liên quan. Sử dụng khi tải lên hoặc liệt kê tài nguyên. |
| Tài sản tài nguyên | id | Một tệp hình ảnh, video hoặc âm thanh đã tải lên. Sử dụng giá trị này làm material_asset_id sau khi tài sản chuyển sang trạng thái ACTIVE. |
| Nhóm tài nguyên avatar ảo | library_type: "aigc_avatar" | Dành cho người ảo, avatar, sản phẩm, phong cách và các tham chiếu có thể tái sử dụng khác không yêu cầu xác minh người thật. |
| Nhóm tài nguyên người thật | library_type: "liveness_face" | Được tạo thông qua xác minh tài nguyên người thật. Một nhóm đại diện cho một người thật đã được xác minh. |
Hãy giữ riêng biệt group_id và id của tài sản tài nguyên. group_id dùng để tổ chức các tệp tải lên; id của tài sản tài nguyên dùng để tạo video. Nếu một yêu cầu video trả về lỗi Seedance material asset not found or not accessible, hãy xác nhận rằng bạn đã truyền id của tài sản tài nguyên chứ không phải group_id, và tài sản đó thuộc cùng một tổ chức, chưa bị xóa và có status: "ACTIVE".
Thời hạn lưu giữ tài nguyên
TokenLab giữ mọi tài nguyên cho đến khi bạn xóa tài nguyên đó hoặc nhóm chứa nó. TokenLab không dọn dẹp tài nguyên vì không hoạt động.
Nhà cung cấp Seedance ở upstream có thể xóa bản làm việc của riêng họ sau 30 ngày không sử dụng. Việc này không xóa tài nguyên của bạn và không đổi ID: lần tới khi bạn dùng tài nguyên trong yêu cầu tạo, TokenLab tự động chuẩn bị bản upstream mới từ bản gốc đã lưu.
- Lần tạo đầu tiên sau khi dọn dẹp có thể lâu hơn một chút trong lúc chuẩn bị bản mới. Nếu chưa sẵn sàng, yêu cầu trả về
seedance_material_preparing; hãy thử lại sau ít phút. - Xóa tài nguyên hoặc nhóm là vĩnh viễn và không thể hoàn tác.
URL hình ảnh và material tái sử dụng
Gửi URL HTTP(S) công khai hoặc data URL được hỗ trợ trong trường hình ảnh của mô hình đã chọn. Các đầu vào này được xử lý như media thông thường và không tự tạo ID material tái sử dụng.
Để tái sử dụng, tạo tài nguyên qua API material, chờ ACTIVE, rồi dùng material_asset_id, material_asset_ids hoặc asset://<id> trong trường media được hỗ trợ. Giữ đúng vai trò khung đầu, khung cuối hoặc ảnh tham chiếu.
Nếu material được chỉ định rõ vẫn đang chuẩn bị, POST /v1/videos/generations trả 409 seedance_material_preparing cùng inactive_asset_ids. Kiểm tra tài nguyên đến khi ACTIVE, rồi thử lại bằng cùng ID. Nếu FAILED, xem error_message và sửa hoặc nhập lại trước khi thử lại.
Xác minh tài nguyên người thật
Sử dụng xác minh tài nguyên người thật khi sản phẩm của bạn cần sự đồng ý và xác minh khuôn mặt trước khi một người thật có thể được sử dụng làm tham chiếu Seedance có thể tái sử dụng.
- Gọi Tạo phiên xác thực trực quan với
CallbackURLvà lưuResult.BytedTokenđược trả về. - Mở
Result.H5Linkcho người cần xác thực. Thêmlngvào liên kết H5 nếu cần ngôn ngữ cụ thể. - Sau khi quy trình H5 hoàn tất, trình duyệt mở
Result.CallbackURLvới các tên truy vấn chính thức nhưbytedTokenvàresultCode. - Thăm dò Lấy kết quả xác thực trực quan bằng
BytedTokencho đến khi trả vềResult.GroupId. - Lưu
GroupIdvà dùng làmgroup_idkhi tạo tư liệuliveness_face.
BytedToken có hiệu lực trong 30 phút. Dùng cùng ProjectName trong cả hai yêu cầu Action. Xác thực dùng Authorization: Bearer <TOKENLAB_API_KEY>; không chấp nhận chữ ký AK/SK của Volc.
Mở H5Link trả về ngay sau khi tạo. Thời hạn token không bảo đảm có thể mở trang xác minh lần đầu vào bất kỳ lúc nào trong khoảng thời gian đó.
Tùy chọn: sử dụng bảng điều khiển kiểm thử để xác minh yêu cầu và quy trình callback của bạn, kiểm tra các nhóm tài nguyên và xem lại lịch sử xác minh. Việc tích hợp trong môi trường production của bạn nên gọi trực tiếp các API.
Tạo nhóm tài nguyên
Sử dụng Tạo Nhóm Tài Nguyên Vật Liệu cho các nhóm aigc_avatar. Các nhóm người thật mới được tạo thông qua quy trình xác minh để người được xác minh và nhóm tài nguyên luôn được liên kết với nhau.
Sử dụng Liệt kê các nhóm tài nguyên vật liệu, Lấy Nhóm Tài Nguyên Vật Liệu, Cập nhật Nhóm Tài nguyên Vật liệu và Xóa Nhóm Tài Nguyên Vật Liệu để quản lý các nhóm sau khi chúng đã tồn tại.
Việc xóa một nhóm tài nguyên cũng sẽ xóa các tài nguyên TokenLab bên trong nhóm đó và không thể hoàn tác. Nếu thư viện tài nguyên TokenLab không thể hoàn tất việc xóa do trạng thái ủy quyền hiện tại không cho phép, TokenLab sẽ trả về lỗi thư viện tài nguyên trung lập.
Tải lên tài nguyên
Sử dụng Tạo Tài nguyên Vật liệu để nhập từng URL nguồn có thể truy cập công khai.
Đối với aigc_avatar, group_id là tùy chọn; TokenLab sẽ sử dụng hoặc tạo nhóm avatar ảo mặc định của tổ chức. Đối với liveness_face, group_id là bắt buộc và phải là nhóm được trả về bởi Lấy kết quả xác thực trực quan.
| Loại | Đầu vào hỗ trợ |
|---|---|
| Hình ảnh | jpeg, png, webp, bmp, tiff, gif, heic, heif; ≤ 30 MiB; chiều rộng và chiều cao [300, 6000] px; tỷ lệ khung hình [0.4, 2.5] |
| Video | mp4, mov; ≤ 200 MiB |
| Âm thanh | aac, wav, mp3; ≤ 15 MiB |
Bảng nêu giới hạn nhập tệp. Yêu cầu được tiếp nhận không bảo đảm media hoặc xác minh người thật sẽ được duyệt. Đợi ACTIVE; nếu FAILED, sửa nguồn theo error_message trước khi nhập lại.
Việc tiếp nhận tài nguyên là không đồng bộ. Hãy thăm dò Lấy tài nguyên vật liệu (Get Material Asset) cho đến khi status trở thành ACTIVE. Phản hồi HTTP thành công chỉ có nghĩa là yêu cầu đã được chấp nhận; hãy luôn đọc trạng thái nghiệp vụ. Nếu trạng thái là FAILED, hãy kiểm tra error_message, sửa tài nguyên nguồn và tạo tài sản mới.
Trong yêu cầu tạo vật liệu, asset_url chỉ là nguồn nhập. TokenLab trả về id tài nguyên vật liệu; hãy dùng id đó để tạo video thay vì dùng lại URL gốc.
TokenLab giữ tài nguyên trong thư viện tài nguyên của tổ chức cho đến khi bạn xóa tài nguyên đó hoặc nhóm tài nguyên chứa nó. Bản upstream sẽ được tạo lại tự động nếu bị dọn dẹp; xem mục thời hạn lưu giữ ở trên.
Đối với các nhóm tài nguyên người thật, một nhóm tương ứng với một người thật. Các tệp tải lên sẽ được kiểm tra đối chiếu với khuôn mặt đã xác minh. Các tài sản có nhiều khuôn mặt hoặc khuôn mặt không khớp với người đã xác minh có thể bị lỗi. Để có kết quả tốt nhất, hãy tải lên cả hình ảnh tham chiếu toàn thân từ phía trước và ảnh cận cảnh khuôn mặt rõ nét từ phía trước.
Sử dụng tài nguyên trong tạo video
Sau khi tài sản ở trạng thái ACTIVE, hãy truyền id tài sản TokenLab được trả về dưới dạng material_asset_id, hoặc đưa nó vào material_asset_ids, khi gọi Tạo video. Các tài sản tài nguyên được tính vào giới hạn tham chiếu của Seedance.
REST hoặc Action Volcengine
Tích hợp TokenLab native có thể tiếp tục dùng API REST snake_case /v1/videos/assets*. Client Volcengine hiện có giữ body PascalCase và dùng Action material tương thích Volcengine. Hai giao diện thao tác cùng dữ liệu material theo tổ chức và project.
Ví dụ về API
Tạo một nhóm avatar ảo, tải lên một hình ảnh, thăm dò cho đến khi nó hoạt động, sau đó sử dụng ID tài sản tài nguyên trong một yêu cầu video.
curl https://api.tokenlab.sh/v1/videos/assets/groups \
-H "Authorization: Bearer $TOKENLAB_API_KEY" \
-H "Content-Type: application/json" \
-d '{"library_type":"aigc_avatar","group_name":"Product references"}'
curl https://api.tokenlab.sh/v1/videos/assets \
-H "Authorization: Bearer $TOKENLAB_API_KEY" \
-H "Content-Type: application/json" \
-d '{"library_type":"aigc_avatar","group_id":"group-20260720123456-abc12","asset_url":"https://example.com/reference.png","asset_type":"Image"}'
curl https://api.tokenlab.sh/v1/videos/assets/asset-20260720123457-def45 \
-H "Authorization: Bearer $TOKENLAB_API_KEY"Đối với nhóm tư liệu người thật, hãy tạo phiên xác thực trực quan và lấy kết quả trước khi tải tư liệu lên.
curl 'https://api.tokenlab.sh/api/v3?Action=CreateVisualValidateSession&Version=2024-01-01' \
-H "Authorization: Bearer $TOKENLAB_API_KEY" \
-H "Content-Type: application/json" \
-d '{"CallbackURL":"https://yourapp.example.com/seedance/callback","ProjectName":"default"}'
curl 'https://api.tokenlab.sh/api/v3?Action=GetVisualValidateResult&Version=2024-01-01' \
-H "Authorization: Bearer $TOKENLAB_API_KEY" \
-H "Content-Type: application/json" \
-d '{"BytedToken":"ZXhhbXBsZS10b2tlbg","ProjectName":"default"}'Quy trình Action đầy đủ cho người thật
Truyền GroupId từ kết quả xác minh vào CreateAsset.
curl 'https://api.tokenlab.sh/?Action=CreateAsset&Version=2024-01-01' \
-H "Authorization: Bearer $TOKENLAB_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"GroupId":"group-20260720123456-real1",
"URL":"https://example.com/person-front.png",
"Name":"Verified front view",
"AssetType":"Image",
"ProjectName":"default"
}'Polling GetAsset đến khi trạng thái là Active, rồi dùng ID material được trả về để tạo video.