Проверка владельца и портретные материалы
Общее руководство APIMaster по проверке, материалам и генерации Seedance.
Проверка владельца и портретные материалы
Все четыре модели используют общие интерфейсы APIMaster. Сервер сопоставляет интерфейсы, идентификаторы и статусы поставщика. Официальная проверка личности, проверка портретных материалов каналом и обычные или виртуальные материалы — разные процессы. Используйте только фотографии с явным разрешением.
1. Возможности и область применения
Запросите возможности ключом APIMaster. Используйте полученный 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, собственный сервер клиенту не нужен. Не передавайте callback_url. Постоянные ключи и BytedToken остаются на сервере. Результата браузера недостаточно: сервер подтверждает его у поставщика. Повторные callback не создают дополнительные ресурсы.
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. У сеанса, группы, материала и видеозадачи отдельные идентификаторы.
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 автоматически и не придумывайте 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 и данные callback в журналы. Удаление оригинала не удаляет ресурс поставщика. Удаление ресурса удаляет привязку 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 |
