APIMaster.ai

本人認證與人像素材入庫

SD2.0、Fast、Mini 與 SD2.5 共用的 APIMaster 認證、素材及生成流程。

本人認證與人像素材入庫

四個模型共用 APIMaster 介面。上游路徑、憑證、素材 ID 及審核狀態由後台適配。官方本人認證、渠道人像素材審核、普通或虛擬素材審核是不同流程。僅提交本人明確授權的照片。

1. 能力與適用範圍

使用 APIMaster Key 查詢能力,以返回的 channel_id 綁定上下文。可用性取決於權限、專案與模型路由;不支援時明確拒絕,不自動更換渠道或模型。SD1.0、SD1.5 及自訂別名須另行核對精確協議。

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. 依能力選擇流程

official_h5 需要建立會話並由本人手機認證。channel_material_review 先建立 purpose=channel_portrait 素材組,再提交及查詢素材;owner_verified=false 不代表官方本人認證通過。支援時普通素材使用 purpose=ordinary。virtual_or_ordinary 不支援官方本人認證;unverified 表示能力未核實。省略 purpose 維持既有虛擬組行為,舊組不批次升級為已認證真人組。

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. 本人手機認證

official_h5 流程建立會話後,由本人在手機開啟 h5_link。APIMaster 託管 HTTPS 回呼,客戶不需自建回呼伺服器;不要傳 callback_url。長期金鑰與 BytedToken 僅在服務端管理。不能只憑瀏覽器結果確認成功,必須由服務端向上游查詢;重複回呼不重複建立資源。

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. 確認認證結果

completed 後取得公開 group_id。下列狀態及期限與人像使用授權期限不同。暫時網路錯誤保留原狀態,不自動建立新會話。控制台入口為 /console/seedance-materials。會話、組、素材及影片任務 ID 必須分開。

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. 上傳及查詢素材

POST /uploads 僅託管原件;POST /assets 是共用素材提交及審核介面。舊 POST /v1/seedance2/private-avatar 是相同處理的相容入口。只有 Active 可生成,Processing、Pending、Failed 均不可用。官方 real_person 組的新照片須同人一致性審核;channel_portrait 是渠道素材審核。部分成功保留已通過素材。逾時後先查詢已受理素材,不自動重複 POST,也不從檔名或任務 ID 推造 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. 生成與下載

生成前透過 /v1/videos/quote 查詢報價,報價不是最高收費保證。後台固定素材相容的渠道、帳號與專案,不相容組合明確拒絕。換模型仍按其輸入限制校驗,新增照片仍需審核。成功後查詢費用回執並下載影片。

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. 隱私與刪除

簽名連結屬敏感資訊,有效期內持有者可下載。不要記錄完整 H5 連結、簽名 URL 或回呼憑證。刪除託管原件不刪除上游資產;素材刪除移除 APIMaster 映射,僅在上游支援時執行上游刪除,不承諾未提供的能力。先刪素材再刪組。已生成影片不會自動消失。不保存生物辨識模板,審核通過不取代使用授權。

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. 費用與錯誤

2026-10-07 核對:官方文件稱本人認證限時免費。會話、審核、上傳、儲存及管理的實際費用依上下文而定,尚未全部核實,不自動購買權益包。影片沿用既有報價、預扣、結算及退款機制,應查看實際費用回執。錯誤區分權限、能力不支援、認證或審核待完成/失敗、素材不相容及上游結果不確定。不同使用者不得查詢或使用彼此資源。

HTTP context
400 input / callback
403 permissions
404 resource
409 pending / failed review / incompatible context
429 rate limit
502 / 503 uncertain upstream result / unavailable