curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "seedance-2.5-image-to-video",
"prompt": "The camera slowly zooms in, the scene gradually comes to life",
"image_urls": [
"https://example.com/first-frame.jpg"
],
"duration": 5,
"quality": "720p",
"aspect_ratio": "adaptive"
}
'{
"created": 1761313744,
"id": "task-unified-1774857405-abc123",
"model": "seedance-2.5-image-to-video",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": false,
"estimated_time": 165,
"video_duration": 8
},
"type": "video",
"usage": {
"billing_rule": "per_second",
"credits_reserved": 50,
"user_group": "default"
}
}{
"error": {
"code": "invalid_parameter",
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": "insufficient_quota",
"message": "Insufficient quota. Please top up your account.",
"type": "insufficient_quota"
}
}{
"error": {
"code": "model_access_denied",
"message": "Token does not have access to model: seedance-2.5-image-to-video",
"type": "invalid_request_error"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}{
"error": {
"code": "internal_error",
"message": "Internal server error",
"type": "api_error"
}
}{
"error": {
"code": "draft_unavailable",
"message": "Draft mode is not available on the selected service right now. Retry later or send the request without draft.",
"type": "invalid_request_error"
}
}Seedance 2.5 Image-to-Video
- Entrez 1 image pour generer une video a partir de la premiere image, entrez 2 images pour generer une video avec images de debut et de fin, le modele determine automatiquement
- Prend desormais en charge les contenus humains realistes generes par IA (AIGC)
- Le mode brouillon est pris en charge : envoyez
draft: truepour générer un brouillon en 480p, puis utilisez Draft-to-Video pour obtenir une vidéo finale en 1080p si le résultat vous convient. Les deux générations sont facturées séparément - Mode de traitement asynchrone, utilisez l’ID de tache retourne pour consulter le statut
- Le lien de la video generee est valide pendant 24 heures, veuillez le sauvegarder rapidement
curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "seedance-2.5-image-to-video",
"prompt": "The camera slowly zooms in, the scene gradually comes to life",
"image_urls": [
"https://example.com/first-frame.jpg"
],
"duration": 5,
"quality": "720p",
"aspect_ratio": "adaptive"
}
'{
"created": 1761313744,
"id": "task-unified-1774857405-abc123",
"model": "seedance-2.5-image-to-video",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": false,
"estimated_time": 165,
"video_duration": 8
},
"type": "video",
"usage": {
"billing_rule": "per_second",
"credits_reserved": 50,
"user_group": "default"
}
}{
"error": {
"code": "invalid_parameter",
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": "insufficient_quota",
"message": "Insufficient quota. Please top up your account.",
"type": "insufficient_quota"
}
}{
"error": {
"code": "model_access_denied",
"message": "Token does not have access to model: seedance-2.5-image-to-video",
"type": "invalid_request_error"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}{
"error": {
"code": "internal_error",
"message": "Internal server error",
"type": "api_error"
}
}{
"error": {
"code": "draft_unavailable",
"message": "Draft mode is not available on the selected service right now. Retry later or send the request without draft.",
"type": "invalid_request_error"
}
}Autorisations
Toutes les interfaces necessitent une authentification par Bearer Token
Obtenir une cle API :
Visitez la Page de gestion des cles API pour obtenir votre cle API
Ajoutez dans l'en-tete de la requete :
Authorization: Bearer YOUR_API_KEY
Corps
Nom du modele de generation video
seedance-2.5-image-to-video "seedance-2.5-image-to-video"
Prompt textuel decrivant la video souhaitee. Prend en charge le chinois et l'anglais, il est recommande de ne pas depasser 500 caracteres en chinois ou 1000 mots en anglais. Longueur maximale du prompt : 10000 tokens
Remarque :
- Ce modele ne prend pas en charge les entrees
video_urls,audio_urls
"The camera slowly zooms in, the scene gradually comes to life"
Tableau d'URLs d'images, 1 a 2 images
Nombre d'images et comportement :
| Nombre d'images | Comportement | Role |
|---|---|---|
| 1 image | Video a partir de la premiere image | Automatiquement defini comme first_frame |
| 2 images | Video avec images de debut et de fin | 1ere image → first_frame, 2eme image → last_frame |
Exigences pour les images :
- Formats pris en charge :
.jpeg,.png,.webp - Rapport d'aspect (largeur/hauteur) :
0.4a2.5 - Dimensions en pixels :
300a6000px - Taille maximale par image :
30 Mo - Taille totale du corps de requete ne depassant pas
64 Mo - Lors de l'envoi d'images de debut et de fin, les deux images peuvent etre identiques. En cas de rapport d'aspect different, la premiere image prevaut et la derniere image est automatiquement recadree
- Les URLs d'images doivent etre directement accessibles par le serveur
1 - 2 elements["https://example.com/first-frame.jpg"]
Duree de la video (secondes), par defaut 5 secondes
Details :
- Prend en charge toute valeur entiere entre
4et30secondes -1: duree automatique, le modele choisit une duree entre4et30secondes et la facturation suit la duree reellement produite- La duree est directement liee a la facturation
5
Resolution video, par defaut 720p
Valeurs possibles :
480p: resolution inferieure, prix reduit720p: resolution standard, valeur par defaut1080p: resolution Ultra HD
Mode brouillon : lorsque draft vaut true, seule la résolution 480p est autorisée. Si quality est omis, 480p est utilisé automatiquement
480p, 720p, 1080p "720p"
Active le mode brouillon, false par défaut
Détails :
true: génère d’abord un brouillon en 480p, plus rapidement, au tarif normal de la résolution 480p- Lorsque ce mode est activé,
qualitydoit valoir480pou être omis. Toute autre résolution renvoie une erreur de paramètre 400 - Ce champ doit figurer au niveau racine du corps de la requête. Le placer dans
model_paramsrenvoie une erreur de paramètre 400
Conversion en vidéo finale :
- Une fois le brouillon terminé, la consultation de la tâche renvoie
draft_expires_at - Avant cette échéance, transmettez l’ID de tâche du brouillon à Seedance 2.5 Draft-to-Video pour générer une vidéo finale en 1080p au contenu identique
- La vidéo finale et le brouillon sont facturés séparément. Si le brouillon ne vous convient pas, vous pouvez renoncer à la conversion et ne payer que le brouillon
- Par défaut, le brouillon reste convertible pendant 24 heures après son achèvement ;
draft_expires_atindique l’échéance réelle. Envoyez la demande de conversion suffisamment tôt : une expiration pendant l’attente dans la file entraîne également l’échec de la conversion
Indisponibilité temporaire : une réponse 503 peut être renvoyée lorsque le service est temporairement indisponible. Si le code d’erreur est draft_unavailable, réessayez plus tard ou retirez draft pour utiliser le mode normal
false
Rapport d'aspect de la video, Image-to-Video prend uniquement en charge adaptive
Valeurs possibles :
adaptive: selectionne automatiquement le rapport d'aspect le plus proche en fonction de la premiere image ; c'est la seule valeur acceptee par ce modele- Les rapports fixes comme
16:9ou9:16ne peuvent pas etre specifies pour ce modele
adaptive "adaptive"
Generer ou non un audio synchronise, par defaut true
Valeurs possibles :
true: la video inclut un audio synchronise, sans frais supplementairesfalse: video muette en sortie
true
Filtre de contenu, par defaut true
Valeurs possibles :
true: verification standard de securite du contenu, c'est la valeur par defautfalse: assouplit les restrictions de contenu, facture avec +10% (1.1x). Les contenus illegaux et interdits sont toujours appliques independamment de ce parametre
Incompatible avec la recherche web :
content_filter: falseetmodel_params.web_search: truene peuvent pas etre utilises ensemble ; les envoyer ensemble renvoie une erreur de parametre 400- Conservez
content_filter: true(valeur par defaut) si la recherche web est necessaire
true
Format de conteneur de sortie, par defaut mp4
Valeurs possibles :
mp4: encodage H.264, meilleure compatibilite et precision colorimetrique standard ; c'est la valeur par defautmov: H.264 + echantillonnage chroma yuv444p + audio PCM, fidelite colorimetrique superieure, recommande pour l'etalonnage, l'incrustation et le compositing. La lecture dans le navigateur peut ne pas fonctionner ; telechargez le fichier et lisez-le avec VLC / mpv / ffplay. Sans frais supplementaires
mp4, mov "mp4"
URL de rappel HTTPS apres l'achevement de la tache
Declenchement du rappel :
- Déclenché lorsque la tâche est terminée (completed) ou a échoué (failed)
- Envoye apres la confirmation de la facturation
Restrictions de securite :
- Seul le protocole HTTPS est pris en charge
- Les rappels vers les adresses IP privees 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 depasser
2048caracteres
Mecanisme de rappel :
- Delai d'expiration :
10secondes - Jusqu'a
3tentatives apres un echec (respectivement1/2/4secondes apres l'echec) - Le format du corps de reponse du rappel est identique a celui de l'interface de consultation de tache
- Un code de statut 2xx est considere comme un succes, les autres codes declenchent une nouvelle tentative
"https://your-domain.com/webhooks/video-task-completed"
Réponse
Tache de generation video creee avec succes
Horodatage de creation de la tache
1761313744
ID de la tache
"task-unified-1774857405-abc123"
Nom du modele effectivement utilise
"seedance-2.5-image-to-video"
Type specifique de la tache
video.generation.task Pourcentage de progression de la tache (0-100)
0 <= x <= 1000
Statut de la tache
pending, processing, completed, failed "pending"
Informations detaillees de la tache video
Show child attributes
Show child attributes
Type de sortie de la tache
text, image, audio, video "video"
Informations d'utilisation et de facturation
Show child attributes
Show child attributes