Référence API

Génération de vidéo

Soumettez des tâches de génération de vidéo, interrogez l'état des tâches et transmettez les paramètres avancés Seedance/Doubao via TENSORAXIS.

La génération de vidéo est asynchrone : soumettez une tâche pour obtenir un task_id, interrogez l'état de la tâche, puis récupérez l'URL de la vidéo une fois terminée.

Pour les modèles vidéo Seedance/Doubao, utilisez les champs de requête TENSORAXIS prompt, images et metadata. N'envoyez pas directement le corps content[] de niveau supérieur au style Volcengine amont à /v1/video/generations ; TENSORAXIS ne trouvera pas de champ prompt et renverra 400 prompt is required.

Pages par modèle

Cette page couvre le flux commun de soumission, de récupération et d'interrogation. Pour la matrice de capacités, les champs de requête, les exemples par capacité et les tableaux de paramètres de chaque famille de vidéo, consultez les pages dédiées :

Points de terminaison

MéthodeCheminObjectifUtilisation recommandée
POST/v1/video/generationsSoumettre une tâche de génération de vidéoPoint d'entrée commun TENSORAXIS pour les tâches vidéo Seedance/Doubao
GET/v1/video/generations/{task_id}Récupérer une tâche de génération de vidéoUtilisé avec le point de terminaison de soumission ci-dessus
POST/v1/videosSoumission de tâche au style OpenAI/SoraClients compatibles Sora/OpenAI
GET/v1/videos/{task_id}Récupération de tâche au style OpenAI/SoraClients compatibles Sora/OpenAI
GET/v1/videos/{task_id}/contentTéléchargement proxy du contenu vidéoRécupération du contenu vidéo terminé

Pour les nouvelles intégrations Seedance/Doubao, privilégiez /v1/video/generations.

Corps de la requête

POST /v1/video/generations

ChampTypeObligatoireDescription
modelstringOuiNom du modèle à appeler
promptstringOuiInvite vidéo (prompt) ; une valeur vide renvoie 400 prompt is required
imagestringNonURL d'une seule image de référence ; le serveur la normalise dans images
imagesstring[]NonURLs des images de référence pour l'image vers vidéo
metadataobjectNonParamètres spécifiques au modèle ou au fournisseur ; les paramètres avancés Seedance/Doubao se placent ici
secondsstringNonChamp de compatibilité ; un entier positif correspond au duration amont pour Doubao/Seedance
durationintegerNonChamp commun de tâche ; pour Seedance/Doubao, privilégiez metadata.duration
sizestringNonChamp de taille utilisé par certains modèles vidéo
modestringNonChamp de mode utilisé par certains modèles vidéo
input_referencestringNonRéférence d'entrée utilisée par certains flux compatibles OpenAI/Sora ; non utilisée dans les exemples Seedance/Doubao

Exemples corrects et incorrects

Incorrect : envoyer directement le corps content[] de niveau supérieur amont à TENSORAXIS.

{
  "model": "doubao-seedance-2-0-260128",
  "content": [
    {
      "type": "text",
      "text": "An old man wearing a hat smiles and walks forward"
    }
  ]
}

Correct : utilisez les champs de requête TENSORAXIS et laissez le relais les traduire.

{
  "model": "doubao-seedance-2-0-260128",
  "prompt": "An old man wearing a hat smiles and walks forward",
  "images": ["https://example.com/reference.jpg"],
  "metadata": {
    "resolution": "1080p",
    "ratio": "16:9",
    "duration": 5,
    "camera_fixed": true,
    "watermark": false
  }
}

Soumettre une tâche

curl https://api.tensoraxis.ai/v1/video/generations \
  -H "Authorization: Bearer $TENSORAXIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubao-seedance-2-0-260128",
    "prompt": "An old man wearing a hat smiles and walks forward",
    "images": ["https://example.com/reference.jpg"],
    "metadata": {
      "resolution": "1080p",
      "ratio": "16:9",
      "duration": 5,
      "camera_fixed": true,
      "watermark": false
    }
  }'

Une réponse de soumission réussie renvoie un identifiant de tâche public. Les champs peuvent varier légèrement selon le canal vidéo, mais incluent généralement :

{
  "id": "task_xxxxx",
  "task_id": "task_xxxxx",
  "object": "video",
  "model": "doubao-seedance-2-0-260128",
  "status": "queued",
  "progress": 0,
  "created_at": 1760000000
}

Enregistrez id ou task_id pour l'interrogation.

Récupérer une tâche

Si vous soumettez via le point de terminaison commun des tâches vidéo, interrogez avec :

curl https://api.tensoraxis.ai/v1/video/generations/task_xxxxx \
  -H "Authorization: Bearer $TENSORAXIS_API_KEY"

La réponse commune de récupération utilise le format d'enveloppe de tâche :

{
  "code": "success",
  "message": "",
  "data": {
    "task_id": "task_xxxxx",
    "status": "SUCCESS",
    "progress": "100%",
    "result_url": "https://example.com/video.mp4",
    "fail_reason": ""
  }
}

Significations courantes des statuts :

StatutSignification
SUBMITTED / QUEUEDSoumise ou en file d'attente
IN_PROGRESSEn cours de génération
SUCCESSTerminée ; consultez result_url
FAILUREÉchouée ; consultez fail_reason

Le chemin de récupération au style OpenAI/Sora est :

curl https://api.tensoraxis.ai/v1/videos/task_xxxxx \
  -H "Authorization: Bearer $TENSORAXIS_API_KEY"

Ce chemin renvoie une réponse object: "video" et, en cas de succès, expose l'URL de la vidéo sous forme de url, video_url et metadata.url.

Métadonnées Seedance/Doubao

Pour les canaux Doubao/Seedance, TENSORAXIS convertit prompt, images et metadata dans le format de tâche de génération de contenu Volcengine :

Champ de requête TENSORAXISTransmis en amont comme
promptcontent[].text
images[]content[].image_url.url
secondsduration
metadata.resolutionresolution
metadata.ratioratio
metadata.durationduration
metadata.framesframes
metadata.seedseed
metadata.camera_fixedcamera_fixed
metadata.watermarkwatermark
metadata.generate_audiogenerate_audio
metadata.draftdraft
metadata.service_tierservice_tier
metadata.return_last_framereturn_last_frame
metadata.execution_expires_afterexecution_expires_after
metadata.callback_urlcallback_url
metadata.toolstools

Remarques :

  • metadata.model est supprimé et ne peut pas remplacer le modèle facturé.
  • Les champs metadata qui ne correspondent pas à la structure de l'adaptateur actuel ne sont généralement pas transmis en amont.
  • metadata.content est un champ de compatibilité interne avancé qui peut remplacer la liste de contenu générée à partir de images ; les intégrations publiques ne doivent pas l'utiliser.
  • Les valeurs valides, les énumérations et le comportement réel en amont sont définis par la documentation officielle Volcengine du modèle sélectionné. Cette page documente uniquement la façon dont le relais TENSORAXIS actuel reçoit et transmet les champs.

Recommandations d'interrogation

  • Attendez 2 à 5 secondes avant la première interrogation après la soumission.
  • Interrogez toutes les 5 à 10 secondes pendant que la tâche est en cours de génération.
  • N'utilisez pas d'interrogation à haute fréquence pour remplacer les callbacks ; mettez en file d'attente les lots volumineux dans votre application.
  • Si vous recevez 429, réduisez la concurrence et réessayez avec un backoff exponentiel.