curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "seedance-2.0-fast-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,
"aspect_ratio": "adaptive"
}
'{
"created": 1761313744,
"id": "task-unified-1774857405-abc123",
"model": "seedance-2.0-fast-image-to-video",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 165,
"video_duration": 8
},
"type": "video",
"usage": {
"billing_rule": "per_second",
"credits_reserved": 50,
"user_group": "default"
}
}{
"error": {
"code": "invalid_request",
"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.0-fast-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"
}
}Seedance 2.0 Fast 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)
- 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.0-fast-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,
"aspect_ratio": "adaptive"
}
'{
"created": 1761313744,
"id": "task-unified-1774857405-abc123",
"model": "seedance-2.0-fast-image-to-video",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 165,
"video_duration": 8
},
"type": "video",
"usage": {
"billing_rule": "per_second",
"credits_reserved": 50,
"user_group": "default"
}
}{
"error": {
"code": "invalid_request",
"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.0-fast-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"
}
}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
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, ne pas utiliser l'encodage Base64 pour les fichiers volumineux - 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"]
Rapport d'aspect de la video, par defaut adaptive
Valeurs possibles :
16:9(paysage),9:16(portrait),1:1(carre),4:3,3:4,21:9(ultra-large)adaptive: selectionne automatiquement le rapport d'aspect le plus proche en fonction de la premiere image
Pixels correspondants par resolution :
| Rapport d'aspect | 480p | 720p |
|---|---|---|
| 16:9 | 864×496 | 1280×720 |
| 4:3 | 752×560 | 1112×834 |
| 1:1 | 640×640 | 960×960 |
| 3:4 | 560×752 | 834×1112 |
| 9:16 | 496×864 | 720×1280 |
| 21:9 | 992×432 | 1470×630 |
16:9, 9:16, 1:1, 4:3, 3:4, 21:9, adaptive "adaptive"
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
URL de rappel HTTPS apres l'achevement de la tache
Declenchement du rappel :
- Declenche lorsque la tache est terminee (completed), echouee (failed) ou annulee (cancelled)
- 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