Passer au contenu principal
POST
/
v1
/
videos
/
generations
curl --request POST \
  --url https://api.evolink.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "wan2.7-image-to-video",
  "generation_mode": "first_frame",
  "prompt": "Un chat qui joue du piano",
  "image_start": "https://example.com/first_frame.jpg"
}
'
{
  "created": 1757169743,
  "id": "task-unified-1757169743-7cvnl5zw",
  "model": "wan2.7-image-to-video",
  "progress": 0,
  "status": "pending",
  "task_info": {
    "can_cancel": true,
    "estimated_time": 120
  },
  "type": "video",
  "usage": {
    "billing_rule": "per_call",
    "credits_reserved": 5,
    "user_group": "default"
  }
}

Documentation Index

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

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

Autorisations

Authorization
string
header
requis

Toutes les API nécessitent une authentification Bearer Token

Obtenir votre clé API :

Rendez-vous sur la page de gestion des clés API pour obtenir votre clé API

Ajoutez à l'en-tête de la requête :

Authorization: Bearer YOUR_API_KEY

Corps

application/json
model
enum<string>
requis

Nom du modèle, doit être wan2.7-image-to-video

Options disponibles:
wan2.7-image-to-video
Exemple:

"wan2.7-image-to-video"

generation_mode
enum<string>

Mode de génération qui détermine quelles combinaisons d'éléments sont valides. La spécification explicite est recommandée

Valeurs :

  • first_frame : Premier plan vers vidéo. Requis : image_start. Optionnel : audio_urls. Non accepté : image_end, video_urls
  • first_last_frame : Premier et dernier plan vers vidéo. Requis : image_start + image_end. Optionnel : audio_urls. Non accepté : video_urls
  • video_continuation : Continuation vidéo. Requis : video_urls[0]. Optionnel : image_end (comme dernier plan). Non accepté : image_start, audio_urls

Comportement de rétrocompatibilité : lorsque generation_mode est omis, le mode approprié est sélectionné automatiquement selon les éléments fournis ; la spécification explicite évite l'ambiguïté

Options disponibles:
first_frame,
first_last_frame,
video_continuation
Exemple:

"first_frame"

prompt
string

Invite textuelle pour la génération vidéo. Prend en charge le chinois et l'anglais ; chaque caractère/lettre compte pour 1, le surplus est tronqué automatiquement. Longueur maximale : 5000 caractères

Maximum string length: 5000
Exemple:

"Un chat qui joue du piano"

negative_prompt
string

Prompt négatif décrivant ce qui ne doit pas apparaître dans la vidéo. Prend en charge le chinois et l'anglais. Longueur maximale 500 caractères ; surplus tronqué automatiquement

Maximum string length: 500
Exemple:

"Flou, basse qualité"

image_start
string<uri>

URL de l'image de premier plan

Contraintes par mode :

  • Mode first_frame : requis
  • Mode first_last_frame : requis
  • Mode video_continuation : non autorisé

Limites d'image :

  • Formats : JPEG, JPG, PNG (transparence non prise en charge), BMP, WEBP
  • Résolution : largeur et hauteur dans [240, 8000] pixels
  • Rapport d'aspect : 1:8 ~ 8:1
  • Taille du fichier : jusqu'à 20 Mo
Exemple:

"https://example.com/first_frame.jpg"

image_end
string<uri>

URL de l'image de dernier plan

Contraintes par mode :

  • Mode first_last_frame : requis
  • Mode video_continuation : optionnel (sert de dernier plan pour la continuation)
  • Mode first_frame : non autorisé (utilisez first_last_frame si vous avez besoin d'un premier et d'un dernier plan)

Limites d'image :

  • Formats : JPEG, JPG, PNG (transparence non prise en charge), BMP, WEBP
  • Résolution : largeur et hauteur dans [240, 8000] pixels
  • Rapport d'aspect : 1:8 ~ 8:1
  • Taille du fichier : jusqu'à 20 Mo
Exemple:

"https://example.com/last_frame.jpg"

video_urls
string<uri>[]

Liste d'URL pour la continuation vidéo. Un seul élément est pris en charge

Contraintes par mode :

  • Mode video_continuation : requis
  • Mode first_frame / first_last_frame : non autorisé
  • Ne peut pas être combiné avec audio_urls

Limites vidéo :

  • Formats : mp4, mov
  • Durée : 2 ~ 10 secondes (longueur du clip d'entrée)
  • Résolution : largeur et hauteur dans [240, 4096] pixels
  • Rapport d'aspect : 1:8 ~ 8:1
  • Taille du fichier : jusqu'à 100 Mo

Règles de durée pour la continuation :

  • duration représente la durée totale de la vidéo finale (clip d'entrée + continuation générée par le modèle)
  • Durée générée par le modèle = duration − durée de la vidéo d'entrée
  • duration doit être ≥ durée de la vidéo d'entrée
  • La facturation se base sur la durée totale de la vidéo finale (c'est-à-dire duration)

Exemples :

Durée du clip d'entréedurationContinuation généréeSortie finaleFacturé
3s1512s15s15s
5s105s10s10s
8s80s (entrée seule)8s8s
Exemple:
["https://example.com/clip.mp4"]
audio_urls
string<uri>[]

Liste d'URL audio pilote. Actuellement, un seul élément est pris en charge. Le modèle utilise cet audio comme source pilote pour la génération (par ex. synchronisation labiale, alignement de mouvement)

Contraintes par mode :

  • Mode first_frame : optionnel
  • Mode first_last_frame : optionnel
  • Mode video_continuation : non autorisé (ne peut pas être combiné avec video_urls)

Exigences de format :

  • Formats pris en charge : wav, mp3
  • Durée : 2 ~ 30 secondes
  • Taille du fichier : jusqu'à 15 Mo

Gestion du dépassement :

  • Si la durée audio dépasse duration, les premières N secondes sont utilisées et le reste est ignoré
  • Si la durée audio est plus courte que la durée vidéo, la portion restante est silencieuse. Par exemple : avec un audio de 3s et une vidéo de 5s, les 3 premières secondes ont du son et les 2 dernières sont muettes
Required array length: 1 element
Exemple:
["https://example.com/audio.mp3"]
quality
enum<string>
défaut:720p

Qualité vidéo, par défaut 720p

Options :

  • 720p : définition standard, prix standard (par défaut)
  • 1080p : haute définition, prix plus élevé
Options disponibles:
720p,
1080p
Exemple:

"720p"

duration
number
défaut:5

Durée vidéo en secondes (entier). Plage 2 ~ 15, par défaut 5

Signification :

  • Modes first_frame / first_last_frame : longueur totale de la vidéo générée
  • Mode video_continuation : longueur totale de la vidéo finale (= clip d'entrée + continuation générée par le modèle)

Contraintes supplémentaires en mode video_continuation :

  • duration doit être ≥ durée de la vidéo d'entrée (sinon une erreur est renvoyée)
  • Durée générée par le modèle = duration − durée de la vidéo d'entrée
  • Quand duration est égal à la durée de la vidéo d'entrée, aucune continuation n'est générée et le clip d'entrée est renvoyé tel quel
  • Voir les règles et exemples de continuation dans le champ video_urls

Facturation : basée sur la durée réelle de la vidéo générée

Plage requise: 2 <= x <= 15
Exemple:

5

seed
integer

Graine aléatoire, aléatoire par défaut

Notes :

  • Plage : 1 ~ 2147483647
  • Fixer la graine réduit la variation lors de l'itération sur les prompts et améliore la reproductibilité
Plage requise: 1 <= x <= 2147483647
Exemple:

42

prompt_extend
boolean
défaut:false

Activer ou non la réécriture intelligente du prompt. Lorsqu'elle est activée, un grand modèle optimise le prompt, ce qui améliore nettement les résultats pour des prompts simples ou peu descriptifs.

Note : la valeur par défaut est false. Omettre le champ ou envoyer false ne déclenchera pas la réécriture ; envoyez explicitement true pour l'activer.

Exemple:

false

callback_url
string<uri>

URL de callback HTTPS pour la fin de tâche

Moment du callback :

  • Déclenché à la fin, l'échec ou l'annulation de la tâche
  • Envoyé après confirmation de facturation

Restrictions de sécurité :

  • Seul HTTPS est pris en charge
  • Les callbacks vers des adresses IP internes sont interdits (127.0.0.1, 10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)
  • La longueur de l'URL ne doit pas dépasser 2048 caractères

Mécanisme de callback :

  • Délai d'attente : 10 secondes
  • Jusqu'à 3 tentatives après échec (à 1/2/4 secondes)
  • Le format de réponse du callback est identique à celui de l'API de requête de tâche
  • Les codes 2xx sont considérés comme réussis ; les autres codes déclenchent des nouvelles tentatives
Exemple:

"https://your-domain.com/webhooks/video-task-completed"

Réponse

Tâche vidéo créée avec succès

created
integer

Horodatage de création de la tâche

Exemple:

1757169743

id
string

ID de la tâche

Exemple:

"task-unified-1757169743-7cvnl5zw"

model
string

Nom du modèle réellement utilisé

Exemple:

"wan2.7-image-to-video"

object
enum<string>

Type spécifique de tâche

Options disponibles:
video.generation.task
progress
integer

Pourcentage d'avancement de la tâche (0-100)

Plage requise: 0 <= x <= 100
Exemple:

0

status
enum<string>

Statut de la tâche

Options disponibles:
pending,
processing,
completed,
failed
Exemple:

"pending"

task_info
object

Informations détaillées sur la tâche vidéo

type
enum<string>

Type de sortie de la tâche

Options disponibles:
text,
image,
audio,
video
Exemple:

"video"

usage
object

Informations d'utilisation et de facturation