Verifica del titolare e risorse ritratto
Guida condivisa APIMaster per verifica, risorse e generazione Seedance.
Verifica del titolare e risorse ritratto
I quattro modelli usano le stesse interfacce APIMaster. Il backend adatta endpoint, identificatori e stati del fornitore. Verifica ufficiale del titolare, revisione dei ritratti del canale e risorse ordinarie o virtuali sono processi distinti. Usare solo foto espressamente autorizzate.
1. Capacità e ambito
Consultare le capacità con la chiave APIMaster. Usare il channel_id restituito per vincolare il contesto. La disponibilità dipende da permessi, progetto e instradamento del modello. Le richieste non supportate sono rifiutate senza cambiare canale o modello. SD1.0, SD1.5 e alias personalizzati richiedono verifica separata del protocollo.
| 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. Scegliere il flusso
official_h5 richiede una sessione e verifica personale sul telefono. channel_material_review usa un gruppo purpose=channel_portrait, invio e interrogazione delle risorse; owner_verified=false non dimostra verifica ufficiale. purpose=ordinary serve per materiale ordinario dove supportato. virtual_or_ordinary non offre verifica ufficiale; unverified indica capacità non verificata. Omettere purpose mantiene il comportamento virtuale esistente.
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. Verifica sul telefono
Per official_h5 creare una sessione e far aprire h5_link al titolare sul proprio telefono. APIMaster ospita il callback HTTPS: non serve un server del cliente. Omettere callback_url. Le chiavi permanenti e BytedToken restano sul server. Il risultato del browser non basta: il server lo conferma presso il fornitore. Callback ripetuti non creano nuove risorse.
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. Confermare il risultato
Dopo completed usare il group_id pubblico. Stati e scadenze sotto non indicano la durata del consenso sul ritratto. Errori temporanei di rete mantengono lo stato; non creare automaticamente altre sessioni. La console è /console/seedance-materials. Sessione, gruppo, risorsa e attività video hanno identificatori distinti.
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. Caricare e verificare risorse
POST /uploads ospita solo il file originale; POST /assets è il punto condiviso di registrazione e revisione. POST /v1/seedance2/private-avatar è un alias compatibile dello stesso trattamento. Solo Active può generare; Processing, Pending e Failed no. Ogni nuova foto nel gruppo ufficiale real_person è sottoposta a verifica della stessa persona; channel_portrait è revisione di risorse. I successi parziali conservano le risorse accettate. Dopo timeout interrogare quelle esistenti; non ripetere POST automaticamente e non inventare 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. Generare e scaricare
Prima di generare chiamare /v1/videos/quote: la stima non garantisce un tetto massimo. Il server mantiene canale, account e progetto compatibili. Combinazioni incompatibili sono rifiutate. Cambiare modello richiede i controlli dei suoi limiti; nuove foto richiedono nuova revisione. Dopo successo consultare la ricevuta e scaricare il 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. Privacy ed eliminazione
I link firmati sono sensibili: chi li possiede può scaricare durante la validità. Non registrare link H5, URL firmati o credenziali callback. Eliminare l’originale non elimina la risorsa del fornitore. L’eliminazione rimuove la mappatura APIMaster e usa l’eliminazione remota dove supportata; nessuna operazione remota indisponibile è promessa. Eliminare risorse prima del gruppo. I video già generati non spariscono automaticamente. Nessun modello biometrico viene conservato; revisione e autorizzazione d’uso sono distinte.
| 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. Costi ed errori
Verificato il 2026-10-07: la documentazione ufficiale descrive la verifica come temporaneamente gratuita. I costi effettivi di sessione, revisione, upload, archiviazione e gestione dipendono dal contesto e non sono tutti confermati. Nessun acquisto automatico di pacchetti. La generazione conserva preventivo, prenotazione, liquidazione e rimborso esistenti; verificare la ricevuta reale. Gli errori distinguono permessi, capacità indisponibile, revisione in attesa o fallita, risorse incompatibili e risposta incerta del fornitore. L’accesso ai dati altrui è vietato.
| HTTP | context |
|---|---|
| 400 | input / callback |
| 403 | permissions |
| 404 | resource |
| 409 | pending / failed review / incompatible context |
| 429 | rate limit |
| 502 / 503 | uncertain upstream result / unavailable |
