Xác minh chủ thể và tài sản chân dung
Hướng dẫn APIMaster dùng chung cho xác minh, tài sản và tạo video Seedance.
Xác minh chủ thể và tài sản chân dung
Bốn mô hình dùng chung giao diện APIMaster. Máy chủ ánh xạ API, thông tin xác thực, ID và trạng thái của nhà cung cấp. Xác minh chính chủ chính thức, kiểm duyệt chân dung của kênh và tài sản thông thường hoặc ảo là các quy trình khác nhau. Chỉ gửi ảnh được chủ thể cho phép rõ ràng.
1. Khả năng và phạm vi
Tra cứu khả năng bằng khóa APIMaster. Dùng channel_id trả về để gắn ngữ cảnh. Khả dụng phụ thuộc quyền, dự án và tuyến mô hình. Quy trình không hỗ trợ bị từ chối, không tự đổi kênh hay mô hình. SD1.0, SD1.5 và bí danh tùy chỉnh cần kiểm tra giao thức riêng.
| model | duration | Image | Video | Audio |
|---|---|---|---|---|
| seedance-2.0 | 4–15 s | ≤9 | ≤3 / ≤15 s | ≤3 / ≤15 s |
| seedance-2.0-fast | 4–15 s | ≤9 | ≤3 / ≤15 s | ≤3 / ≤15 s |
| seedance-2.0-mini | 4–15 s | ≤9 | ≤3 / ≤15 s | ≤3 / ≤15 s |
| seedance-2.5 | 4–30 s / -1 | ≤30 | ≤10 / ≤30 s | ≤10 / ≤30 s |
2. Chọn quy trình
official_h5 yêu cầu tạo phiên rồi chính chủ xác minh trên điện thoại. channel_material_review tạo nhóm purpose=channel_portrait rồi gửi và tra cứu tài sản; owner_verified=false không chứng minh xác minh chính chủ chính thức. purpose=ordinary dành cho tài sản thông thường khi được hỗ trợ. virtual_or_ordinary không cung cấp xác minh chính thức; unverified nghĩa là chưa xác minh khả năng. Bỏ purpose giữ hành vi nhóm ảo hiện có.
curl --fail-with-body 'https://apimaster.ai/v1/seedance2/private-avatar/groups' \
-H "Authorization: Bearer $APIMASTER_KEY" -H 'Content-Type: application/json' \
-d "{\"model\":\"seedance-2.5\",\"channel_id\":${APIMASTER_CHANNEL_ID},\"purpose\":\"channel_portrait\",\"name\":\"Authorized portrait materials\"}"
3. Xác minh trên điện thoại
Với official_h5, tạo phiên rồi chính chủ mở h5_link trên điện thoại của mình. APIMaster tiếp nhận callback HTTPS nên khách hàng không cần máy chủ callback riêng. Không gửi callback_url. Khóa dài hạn và BytedToken chỉ lưu trên máy chủ. Kết quả trình duyệt chưa đủ: máy chủ xác nhận với nhà cung cấp. Callback lặp lại không tạo tài nguyên mới.
export APIMASTER_KEY='<your APIMaster key>'
export APIMASTER_CHANNEL_ID='<available channel ID from the capability API>'
curl --fail-with-body 'https://apimaster.ai/v1/seedance2/private-avatar/capabilities?model=seedance-2.5' -H "Authorization: Bearer $APIMASTER_KEY"
curl --fail-with-body 'https://apimaster.ai/v1/seedance2/private-avatar/verifications' \
-H "Authorization: Bearer $APIMASTER_KEY" -H 'Content-Type: application/json' \
-H 'Idempotency-Key: portrait-session-001' \
-d "{\"model\":\"seedance-2.5\",\"channel_id\":${APIMASTER_CHANNEL_ID},\"name\":\"My portrait\"}"
4. Xác nhận kết quả
Sau completed dùng group_id công khai. Trạng thái và thời hạn dưới đây khác thời hạn cho phép sử dụng chân dung. Lỗi mạng tạm thời giữ nguyên trạng thái; không tự tạo phiên mới. Bảng điều khiển: /console/seedance-materials. Phiên, nhóm, tài sản và tác vụ video có ID riêng.
curl --fail-with-body 'https://apimaster.ai/v1/seedance2/private-avatar/verifications/verification_PUBLIC_ID' -H "Authorization: Bearer $APIMASTER_KEY"
| API | fields / values |
|---|---|
| capabilities | model, channel_id, method, configured, reason, hosted_callback, real_person_verified |
| verification | session_id (id), method, status, h5_link (verification_url), created_at, expires_at, group_id |
| verification.status | creating, pending, completed, failed, expired, failed_unconfirmed, submission_unknown |
| Idempotency-Key | 8–128; same request → original receipt; changed request → 409 |
| verification rate | ≤3 / user / minute; upstream limits also apply |
| H5 / BytedToken | single-use H5; query credential ≤30 min; expires_at ≠ portrait authorization expiry |
5. Tải lên và kiểm duyệt tài sản
POST /uploads chỉ lưu bản gốc; POST /assets là API chung để đăng ký và kiểm duyệt. POST /v1/seedance2/private-avatar là đường dẫn tương thích của cùng xử lý. Chỉ Active được tạo video; Processing, Pending và Failed không được. Ảnh mới trong nhóm chính thức real_person được kiểm tra cùng người; channel_portrait vẫn là kiểm duyệt tài sản. Thành công một phần giữ lại tài sản đã chấp nhận. Sau timeout, tra cứu tài sản hiện có; không tự lặp POST hoặc suy đoán asset_id.
curl --fail-with-body 'https://apimaster.ai/v1/seedance2/private-avatar/uploads' \
-H "Authorization: Bearer $APIMASTER_KEY" -F 'file=@authorized-owner.png'
curl --fail-with-body 'https://apimaster.ai/v1/seedance2/private-avatar/assets' \
-H "Authorization: Bearer $APIMASTER_KEY" -H 'Content-Type: application/json' \
-H 'Idempotency-Key: portrait-asset-001' \
-d '{"model":"seedance-2.5","group_id":"group_PUBLIC_ID","asset_type":"Image","assets":[{"url":"<signed upload URL>","name":"Owner"}]}'
curl --fail-with-body 'https://apimaster.ai/v1/tasks/asset_task_PUBLIC_ID' -H "Authorization: Bearer $APIMASTER_KEY"
curl --fail-with-body 'https://apimaster.ai/v1/seedance2/private-avatar/assets?group_id=group_PUBLIC_ID' -H "Authorization: Bearer $APIMASTER_KEY"
curl --fail-with-body 'https://apimaster.ai/v1/seedance2/private-avatar/assets/asset_PUBLIC_ID' -H "Authorization: Bearer $APIMASTER_KEY"
| API | fields / values |
|---|---|
| uploads | JPEG / PNG ≤10 MB; upload_id, url, url_expires_at, delete_after |
| groups | public id; group_type=virtual / ordinary / channel_portrait / real_person |
| assets | public asset_id; status=Pending / Processing / Active / Failed |
| channel_material_review | verification_method, owner_verified=false, material_purpose, review.scope_model |
| review task | asset_task_*; GET /v1/tasks/{id} |
6. Tạo và tải video
Trước khi tạo video, gọi /v1/videos/quote: báo giá không đảm bảo trần phí. Máy chủ giữ kênh, tài khoản và dự án tương thích. Tổ hợp không tương thích bị từ chối. Đổi mô hình vẫn kiểm tra giới hạn đầu vào riêng; ảnh mới cần kiểm duyệt mới. Sau thành công, xem biên nhận phí và tải video.
curl --fail-with-body 'https://apimaster.ai/v1/videos' \
-H "Authorization: Bearer $APIMASTER_KEY" -H 'Content-Type: application/json' \
-H 'Idempotency-Key: portrait-video-001' \
-d '{"model":"seedance-2.5","prompt":"The person smiles naturally","image_urls":["asset://asset_PUBLIC_ID"],"resolution":"480p","duration":4,"generate_audio":false}'
curl --fail-with-body 'https://apimaster.ai/v1/seedance2/private-avatar/video-requests/video_request_PUBLIC_ID' -H "Authorization: Bearer $APIMASTER_KEY"
curl --fail-with-body 'https://apimaster.ai/v1/videos/task_PUBLIC_ID' -H "Authorization: Bearer $APIMASTER_KEY"
curl --fail-with-body 'https://apimaster.ai/v1/videos/task_PUBLIC_ID/billing' -H "Authorization: Bearer $APIMASTER_KEY"
curl --fail-with-body 'https://apimaster.ai/v1/videos/task_PUBLIC_ID/content' -H "Authorization: Bearer $APIMASTER_KEY" -o owner.mp4
| API | fields / values |
|---|---|
| generation | Idempotency-Key required; no automatic POST retry |
| receipt | video_request_*; X-Seedance-Request-Id; replay → 202 + original receipt |
| video task | task_*; separate from receipt, verification and asset IDs |
7. Quyền riêng tư và xóa
Liên kết có chữ ký là thông tin nhạy cảm: người giữ liên kết có thể tải trong thời hạn hiệu lực. Không ghi log liên kết H5, URL có chữ ký hay thông tin callback. Xóa bản gốc không xóa tài sản nhà cung cấp. Xóa tài sản loại bỏ ánh xạ APIMaster và dùng API xóa nhà cung cấp nếu hỗ trợ; không hứa khả năng xóa từ xa chưa có. Xóa tài sản trước nhóm. Video đã tạo không tự biến mất. Không lưu mẫu sinh trắc học; duyệt thành công không thay thế sự cho phép sử dụng.
| API / storage | values |
|---|---|
| signed original URL | 1 h |
| hosted original | access ≤24 h; hourly cleanup ≤25 h; private files 0600 |
| DELETE /uploads/{upload_id} | hosted original |
| DELETE /assets/{asset_id} | APIMaster mapping; upstream deletion if supported |
| DELETE /groups/{group_id} | empty group |
8. Chi phí và lỗi
Kiểm tra ngày 2026-10-07: tài liệu chính thức mô tả xác minh miễn phí có thời hạn. Phí thực tế của phiên, duyệt, tải lên, lưu trữ và quản lý tùy ngữ cảnh và chưa xác nhận đầy đủ. Không tự mua gói quyền lợi. Tạo video dùng cơ chế báo giá, tạm giữ, quyết toán và hoàn tiền hiện có; kiểm tra biên nhận thực tế. Lỗi phân biệt quyền, khả năng không hỗ trợ, xác minh hoặc duyệt chờ/thất bại, tài sản không tương thích và kết quả nhà cung cấp chưa rõ. Không truy cập tài nguyên người dùng khác.
| HTTP | context |
|---|---|
| 400 | input / callback |
| 403 | permissions |
| 404 | resource |
| 409 | pending / failed review / incompatible context |
| 429 | rate limit |
| 502 / 503 | uncertain upstream result / unavailable |
