Animation de personnages Hedra

Animation de personnages avec synchronisation audio parfaite. Donnez vie aux portraits avec des expressions et des mouvements naturels.

✓ Animation de personnages

✓ Synchronisation audio

✓ Portraits

✓ Contrôle des expressions

Authentification

Pour accéder à Hedra via l'API Doitong, utilisez votre clé API Doitong. Incluez-la dans la mutation GraphQL ou dans les en-têtes de l'API REST.

Important: Gardez votre clé API Doitong en sécurité et ne l'exposez jamais dans le code côté client. Effectuez toujours vos appels API à partir de votre serveur backend.
// GraphQL Header
{
  "Authorization": "Bearer YOUR_API_KEY"
}

// REST Header
"X-API-Key": "YOUR_API_KEY"

Démarrage rapide

Commencez à utiliser Hedra Lip Sync API en quelques minutes seulement. Suivez ces étapes simples pour générer votre premier avatar.

Étape 1 : Obtenez votre clé API

Inscrivez-vous à un compte Doitong et accédez à votre tableau de bord pour générer une clé API.

Étape 2 : Effectuez votre première requête

Utilisez l'un des exemples de code ci-dessous pour effectuer votre premier appel API.

curl -X POST https://api.doitong.com/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "query": "mutation Generate($input: GenerateInput!) { generate(input: $input) { id status type provider url metadata creditCost } }",
    "variables": {
      "input": {
        "type": "AVATAR",
        "provider": "hedra",
        "input": {
          "text": "Hello, welcome to our platform!",
          "avatarId": "professional-1"
        },
        "options": {
          "voice": "en-US-neural"
        }
      }
    }
  }'
const response = await fetch('https://api.doitong.com/graphql', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: JSON.stringify({
    query: `
      mutation GenerateAvatar($input: AvatarGenerationInput!) {
        generateAvatar(input: $input) {
          id
          status
          videoUrl
        }
      }
    `,
    variables: {
      input: {
        service: 'hedra',
        text: 'Hello, welcome to our platform!',
        avatarId: 'professional-1',
        voice: 'en-US-neural'
      }
    }
  })
});

const data = await response.json();
console.log('Avatar Video:', data.data.generateAvatar);
import requests
import json

url = "https://api.doitong.com/graphql"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
}

query = """
mutation Generate($input: GenerateInput!) {
  generate(input: $input) {
    id
    status
    type
    provider
    url
    metadata
    creditCost
  }
}
"""

variables = {
    "input": {
        "type": "AVATAR",
        "provider": "hedra",
        "input": {
            "text": "Hello, welcome to our platform!",
            "avatarId": "professional-1"
        },
        "options": {
            "voice": "en-US-neural"
        }
    }
}

response = requests.post(url, json={
    "query": query,
    "variables": variables
}, headers=headers)

data = response.json()
print("Result:", data["data"]["generate"])
mutation Generate($input: GenerateInput!) {
  generate(input: $input) {
    id
    status
    type
    provider
    url
    metadata
    creditCost
    createdAt
  }
}

# Variables
{
  "input": {
    "type": "AVATAR",
    "provider": "hedra",
    "input": {
      "text": "Hello, welcome to our platform!",
      "avatarId": "professional-1"
    },
    "options": {
      "voice": "en-US-neural",
      "language": "en",
      "version": "hedra-1.0"
    }
  }
}

Tarification

Hedra Lip Sync API utilise un modèle de tarification basé sur des crédits. Les crédits sont consommés selon la complexité et la durée du contenu généré.

Fonctionnalité Crédits Description
Vidéo courte 50-100 Crédits Jusqu'à 30 secondes
Vidéo longue 200-500 Crédits De 30 secondes à 2 minutes

Points de terminaison de l'API

Hedra Lip Sync API est accessible via notre point de terminaison GraphQL unifié.

Point de terminaison GraphQL

POST https://api.doitong.com/graphql

Point de terminaison REST

POST https://api.doitong.com/v1/avatar

Paramètres

Paramètres disponibles pour les requêtes Hedra Lip Sync API :

Paramètre Type Requis Description
service Chaîne Yes Identifiant du service: "hedra"
version Chaîne No Model version: "hedra-1.0"
webhookUrl Chaîne No URL pour recevoir les notifications de fin de traitement

Format de la réponse

Toutes les réponses de l'API suivent un format cohérent :

Réponse de succès

{
  "data": {
    "avatar": {
      "id": "abc123xyz",
      "status": "processing",
      "url": null,
      "webhookUrl": "https://your-webhook.com/callback",
      "createdAt": "2024-01-01T00:00:00Z"
    }
  }
}

Réponse terminée

{
  "data": {
    "avatar": {
      "id": "abc123xyz",
      "status": "completed",
      "url": "https://cdn.doitong.com/outputs/abc123xyz.mp3",
      "duration": null,
      "createdAt": "2024-01-01T00:00:00Z"
    }
  }
}

Gestion des erreurs

L'API utilise des codes d'état HTTP standard et renvoie des messages d'erreur détaillés.

Codes d'erreur courants

Code d'état Type d'erreur Description
400 Bad Request Invalid parameters or malformed request
401 Unauthorized Missing or invalid API key
402 Payment Required Insufficient credits
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Server error, please retry

Format de réponse d'erreur

{
  "errors": [
    {
      "message": "Insufficient credits for this operation",
      "extensions": {
        "code": "INSUFFICIENT_CREDITS",
        "creditsRequired": 100,
        "creditsAvailable": 50
      }
    }
  ]
}

Webhooks

Recevez des notifications en temps réel lorsque la génération de votre avatar est terminée.

Configuration des webhooks

Include a <code>webhookUrl</code> parameter in your request to receive a POST notification when processing is complete.

Charge utile (payload) du webhook

{
  "id": "abc123xyz",
  "status": "completed",
  "url": "https://cdn.doitong.com/outputs/abc123xyz.mp3",
  "service": "hedra",
  "createdAt": "2024-01-01T00:00:00Z",
  "completedAt": "2024-01-01T00:01:00Z",
  "metadata": {
    "duration": null,
    "width": null,
    "height": null
  }
}

Sécurité des webhooks

Toutes les requêtes de webhook incluent un en-tête de signature pour vérification :

X-Doitong-Signature: sha256=abc123...

Limites de débit

Pour garantir une utilisation équitable et la stabilité du système, les limites de débit suivantes s'appliquent :

Forfait Requêtes/minute Tâches simultanées Limite quotidienne
Gratuit 10 1 100
Débutant 30 3 1,000
Pro 60 10 10,000
Entreprise Personnalisé Personnalisé Illimité
En-têtes de limite de débit: Consultez les en-têtes de réponse pour connaître l'état actuel de vos limites :
  • X-RateLimit-Limit: Maximum requests per window
  • X-RateLimit-Remaining: Requests remaining
  • X-RateLimit-Reset: Window reset timestamp

Bonnes pratiques

1. Optimisez vos instructions (prompts)

Rédigez des instructions claires et descriptives pour obtenir les meilleurs résultats :

  • Be specific about visual elements, style, and mood
  • Include details about lighting, camera angles, and composition
  • Avoid contradictory or impossible requests

2. Gérez le traitement asynchrone

La génération est asynchrone. Implémentez un système de sondage (polling) ou des webhooks appropriés :

// Polling example
async function pollStatus(jobId) {
  let status = 'processing';
  while (status === 'processing') {
    await sleep(2000); // Wait 2 seconds
    const result = await checkJobStatus(jobId);
    status = result.status;
  }
  return result;
}

3. Récupération après erreur

Implémentez une logique de tentative (retry) avec un repli exponentiel :

async function retryWithBackoff(fn, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    try {
      return await fn();
    } catch (error) {
      if (i === maxRetries - 1) throw error;
      await sleep(Math.pow(2, i) * 1000);
    }
  }
}

4. Surveillez l'utilisation des crédits

Suivez votre consommation de crédits pour éviter toute interruption :

  • Check credit balance before large batch operations
  • Set up alerts for low credit thresholds
  • Implement credit-aware request queuing

Prêt à commencer ?

Rejoignez des milliers de développeurs qui utilisent Hedra Lip Sync API pour créer du contenu incroyable

Obtenir une clé API Voir les tarifs