Passer au contenu principal
POST
/
v1
/
seedance2
/
real-avatar
curl --request POST \
  --url https://api.apimart.ai/v1/seedance2/real-avatar \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "callback_url": "https://example.com/callback",
    "project_name": "default"
  }'
{
  "code": 200,
  "data": {
    "id": "task_01K...",
    "status": "completed"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.apimart.ai/llms.txt

Use this file to discover all available pages before exploring further.

curl --request POST \
  --url https://api.apimart.ai/v1/seedance2/real-avatar \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "callback_url": "https://example.com/callback",
    "project_name": "default"
  }'
{
  "code": 200,
  "data": {
    "id": "task_01K...",
    "status": "completed"
  }
}

Authentification

Authorization
string
requis
Toutes les requêtes nécessitent une authentification par Bearer TokenObtenez votre API Key :Rendez-vous sur la page de gestion des API Keys pour obtenir votre API KeyAjoutez l’en-tête suivant à chaque requête :
Authorization: Bearer YOUR_API_KEY

Paramètres de la requête

Étape 1 : créer une session de vérification d’une personne réelle

callback_url
string
requis
URL de rappel après la fin de la vérificationLe système envoie une notification de rappel à cette adresse dès que l’utilisateur termine la vérification H5
project_name
string
défaut:"default"
Nom du projetPar défaut : default

Réponse

code
integer
Code d’état de la réponse, 200 en cas de succès
data
object
Informations sur la tâche
Interrogez la tâche pour obtenir le lien de vérification H5 :
GET /v1/tasks/task_01K...
{
  "code": 200,
  "data": {
    "id": "task_01K...",
    "status": "completed",
    "result": {
      "byted_token": "token_xxx",
      "h5_link": "https://...",
      "raw_response": {}
    }
  }
}

Étape 2 : interroger le résultat de la vérification d’une personne réelle

byted_token
string
requis
Jeton d’authentification obtenu à partir du résultat de la tâche de l’étape 1Une fois la vérification H5 effectuée par l’utilisateur, interrogez la tâche via GET /v1/tasks/{id} pour obtenir byted_token, puis utilisez-le ici pour récupérer le résultat de la vérification et le GroupId du groupe d’assets de personne réelle
project_name
string
défaut:"default"
Nom du projetPar défaut : default

Étape 3 : soumettre par lot les assets de personnes réelles

group_id
string
requis
ID du groupe d’assets de personnes réellesLe GroupId obtenu à partir du résultat de vérification de l’étape 2
project_name
string
défaut:"default"
Nom du projetPar défaut : default
asset_type
string
défaut:"Video"
Type d’assetOptions :
  • Video — asset vidéo (par défaut, recommandé pour les portraits de personnes réelles)
  • Image — asset image
Par défaut : Video
assets
array
requis
Liste d’assets, prend en charge la soumission de plusieurs assets en une seule requêteExemple :
{
  "assets": [
    {
      "url": "https://example.com/avatar-a.png",
      "name": "avatar-a"
    },
    {
      "url": "https://example.com/avatar-b.png",
      "name": "avatar-b"
    }
  ]
}

Réponse

code
integer
Code d’état de la réponse, 200 en cas de succès
data
object
Informations sur la tâche de validation d’assets

Interroger le résultat de validation

La soumission d’assets est une tâche asynchrone. Utilisez le point de terminaison Obtenir le statut de la tâche pour effectuer le suivi :

Tous approuvés

{
  "code": 200,
  "data": {
    "id": "task_01K...",
    "status": "completed",
    "progress": 100,
    "result": {
      "assets": [
        {
          "asset_id": "asset_a",
          "asset_url": "asset://asset_a",
          "status": "Active"
        },
        {
          "asset_id": "asset_b",
          "asset_url": "asset://asset_b",
          "status": "Active"
        }
      ],
      "usable_assets": [
        {
          "asset_id": "asset_a",
          "asset_url": "asset://asset_a",
          "status": "Active"
        },
        {
          "asset_id": "asset_b",
          "asset_url": "asset://asset_b",
          "status": "Active"
        }
      ],
      "failed_assets": []
    }
  }
}

Échec partiel

{
  "code": 200,
  "data": {
    "id": "task_01K...",
    "status": "failed",
    "progress": 100,
    "result": {
      "assets": [
        {
          "asset_id": "asset_a",
          "asset_url": "asset://asset_a",
          "status": "Active"
        },
        {
          "asset_id": "asset_b",
          "asset_url": "asset://asset_b",
          "status": "Failed"
        }
      ],
      "usable_assets": [
        {
          "asset_id": "asset_a",
          "asset_url": "asset://asset_a",
          "status": "Active"
        }
      ],
      "failed_assets": [
        {
          "asset_id": "asset_b",
          "asset_url": "asset://asset_b",
          "status": "Failed"
        }
      ]
    },
    "error": {
      "code": "task_failed",
      "message": "Some assets failed review"
    }
  }
}
  • result.usable_assets[].asset_url peut être utilisé directement dans la génération vidéo Seedance 2.0
  • Les assets de result.failed_assets doivent être remplacés ou resoumis

Utilisation des assets approuvés

Transmettez l’URL asset://... directement au point de terminaison Génération vidéo Seedance 2.0 :
{
  "model": "doubao-seedance-2.0-face",
  "prompt": "Generate a video using the reference portrait",
  "image_with_roles": [
    {
      "url": "asset://asset_a",
      "role": "reference_image"
    }
  ]
}
  • Il est recommandé d’utiliser les assets d’avatars de personnes réelles avec les modèles doubao-seedance-2.0-face ou doubao-seedance-2.0-fast-face
  • Dès que le serveur détecte le préfixe asset://, il soumet la tâche de génération directement sans déclencher une nouvelle validation d’asset