Weryfikacja właściciela i zasoby portretowe
Wspólny przewodnik APIMaster po weryfikacji, zasobach i generowaniu Seedance.
Weryfikacja właściciela i zasoby portretowe
Cztery modele korzystają z tych samych interfejsów APIMaster. Backend mapuje endpointy, identyfikatory i stany dostawcy. Oficjalna weryfikacja osoby, kontrola portretów przez kanał oraz materiały zwykłe lub wirtualne to różne procesy. Używaj wyłącznie zdjęć objętych wyraźną zgodą.
1. Możliwości i zakres
Sprawdź możliwości kluczem APIMaster. Użyj zwróconego channel_id, aby powiązać kontekst. Dostępność zależy od uprawnień, projektu i trasy modelu. Nieobsługiwane procesy są odrzucane bez zmiany kanału lub modelu. SD1.0, SD1.5 i własne aliasy wymagają osobnego sprawdzenia protokołu.
| 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. Wybór procesu
official_h5 wymaga sesji i osobistej weryfikacji na telefonie. channel_material_review używa grupy purpose=channel_portrait, przesłania i sprawdzania zasobów; owner_verified=false nie potwierdza oficjalnej weryfikacji. purpose=ordinary dotyczy zwykłych materiałów, jeśli funkcja jest dostępna. virtual_or_ordinary nie oferuje oficjalnej weryfikacji; unverified oznacza niesprawdzoną możliwość. Brak purpose zachowuje dotychczasowe zachowanie grup wirtualnych.
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. Weryfikacja na telefonie
Dla official_h5 utwórz sesję; właściciel otwiera h5_link na swoim telefonie. APIMaster obsługuje callback HTTPS, więc klient nie potrzebuje własnego serwera. Pomiń callback_url. Stałe klucze i BytedToken pozostają na serwerze. Wynik przeglądarki nie wystarcza: serwer potwierdza go u dostawcy. Powtórne callbacki nie tworzą nowych zasobów.
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. Potwierdzenie wyniku
Po completed użyj publicznego group_id. Poniższe stany i terminy nie określają ważności zgody na użycie portretu. Przejściowy błąd sieci zachowuje stan; nie twórz automatycznie nowych sesji. Konsola: /console/seedance-materials. Sesja, grupa, zasób i zadanie wideo mają osobne identyfikatory.
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. Przesyłanie i kontrola zasobów
POST /uploads przechowuje tylko oryginał; POST /assets to wspólny endpoint rejestracji i kontroli. POST /v1/seedance2/private-avatar jest zgodnym aliasem tego samego przetwarzania. Tylko Active pozwala generować; Processing, Pending i Failed nie. Nowe zdjęcia w oficjalnej grupie real_person podlegają kontroli zgodności osoby; channel_portrait pozostaje kontrolą materiałów. Częściowy sukces zachowuje zaakceptowane zasoby. Po timeout sprawdź istniejące zasoby; nie ponawiaj POST automatycznie i nie wymyślaj 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. Generowanie i pobieranie
Przed generowaniem wywołaj /v1/videos/quote: szacunek nie gwarantuje maksymalnej opłaty. Serwer zachowuje zgodny kanał, konto i projekt. Niezgodne kombinacje są odrzucane. Zmiana modelu wymaga sprawdzenia jego limitów; nowe zdjęcia wymagają nowej kontroli. Po sukcesie sprawdź rozliczenie i pobierz wideo.
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. Prywatność i usuwanie
Podpisane linki są poufne: posiadacz może pobrać plik w okresie ważności. Nie zapisuj linków H5, podpisanych URL ani danych callbacku w logach. Usunięcie oryginału nie usuwa zasobu dostawcy. Usunięcie zasobu usuwa mapowanie APIMaster i korzysta z usuwania u dostawcy, jeśli jest dostępne; nie obiecuje niedostępnych operacji zdalnych. Usuń zasoby przed grupą. Wygenerowane filmy nie znikają automatycznie. Nie przechowujemy wzorców biometrycznych; zatwierdzenie nie zastępuje zgody na użycie.
| 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. Koszty i błędy
Sprawdzono 2026-10-07: oficjalna dokumentacja określa weryfikację jako tymczasowo bezpłatną. Faktyczne opłaty za sesję, kontrolę, przesyłanie, przechowywanie i zarządzanie zależą od kontekstu i nie wszystkie zostały potwierdzone. Brak automatycznych zakupów pakietów. Generowanie zachowuje istniejące wyceny, rezerwacje, rozliczenia i zwroty; sprawdź rzeczywisty rachunek. Błędy rozróżniają uprawnienia, brak możliwości, oczekiwanie lub niepowodzenie kontroli, niezgodne zasoby i niepewną odpowiedź dostawcy. Dostęp do zasobów innych użytkowników jest zabroniony.
| HTTP | context |
|---|---|
| 400 | input / callback |
| 403 | permissions |
| 404 | resource |
| 409 | pending / failed review / incompatible context |
| 429 | rate limit |
| 502 / 503 | uncertain upstream result / unavailable |
