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-reference-to-video",
"prompt": "Use the first-person perspective framing of @video1 throughout, and use @audio1 as background music throughout. First-person perspective fruit tea promotional video...",
"image_urls": [
"https://example.com/ref1.jpg",
"https://example.com/ref2.jpg"
],
"video_urls": [
"https://example.com/reference.mp4"
],
"audio_urls": [
"https://example.com/bgm.mp3"
],
"duration": 10,
"quality": "720p",
"aspect_ratio": "16:9",
"generate_audio": true,
"content_filter": true
}
'{
"created": 1761313744,
"id": "task-unified-1774857405-abc123",
"model": "seedance-2.5-reference-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_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-reference-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.5 Reference-to-Video
- Entrez des images de reference (0 a 30) + des videos de reference (0 a 10) + des audios de reference (0 a 10) + un prompt textuel pour generer une video ; au moins une image, une video ou un audio de reference doit etre fourni
- Adapte a la creation de nouvelles videos : les images, videos et audios servent de reference de style, de sujet, de mouvement de camera et de musique
- Pour reecrire ou prolonger une video existante, utilisez Video Edit / Video Extend : des que le prompt de ce modele exprime une intention d’edition ou d’extension, les parametres sont valides comme ceux d’une tache d’edition / extension : la requete est acceptee sans erreur et la tache echoue seulement pendant la generation
- 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.5-reference-to-video",
"prompt": "Use the first-person perspective framing of @video1 throughout, and use @audio1 as background music throughout. First-person perspective fruit tea promotional video...",
"image_urls": [
"https://example.com/ref1.jpg",
"https://example.com/ref2.jpg"
],
"video_urls": [
"https://example.com/reference.mp4"
],
"audio_urls": [
"https://example.com/bgm.mp3"
],
"duration": 10,
"quality": "720p",
"aspect_ratio": "16:9",
"generate_audio": true,
"content_filter": true
}
'{
"created": 1761313744,
"id": "task-unified-1774857405-abc123",
"model": "seedance-2.5-reference-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_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-reference-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
Nom du modele de generation video
seedance-2.5-reference-to-video "seedance-2.5-reference-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. Longueur maximale du prompt : 10000 tokens
Details :
- Pour faire reference aux ressources d'entree dans le prompt, utilisez de preference des balises explicites comme
@image1,@video1et@audio1, plutot que de vous fier uniquement a des references en langage naturel telles que « image 1 », « video 1 » ou « audio 1 » - La numerotation des balises suit l'ordre du tableau d'URL correspondant et commence a 1 : le premier element de
image_urlsest@image1, le premier devideo_urlsest@video1et le premier deaudio_urlsest@audio1 - La numerotation en langage naturel peut encore etre comprise, mais les balises explicites associent plus clairement chaque ressource a son usage
Eviter que la tache soit classee comme edition / extension :
- Le type de tache est deduit de l'intention du prompt : des formulations comme "editer la video", "ajouter", "supprimer / enlever", "modifier / remplacer" sont interpretees comme une edition video ; des formulations comme "prolonger vers l'avant / vers l'arriere" ou "continuer" sont interpretees comme une extension video
- Une fois classee ainsi,
aspect_ratiodoit valoiradaptiveet, pour l'edition video,durationdoit valoir-1; sinon la requete est acceptee sans erreur et la tache passe ensuite enfailed(code d'erreurInvalidParameter.TaskTypeConstraint). Le quota preleve est rembourse, mais le temps d'attente est perdu - Si vous avez reellement besoin d'editer ou de prolonger, utilisez directement
seedance-2.5-video-editouseedance-2.5-video-extend: les parametres sont valides a l'envoi, une valeur invalide renvoie donc une erreur synchrone immediate - Pour une generation par reference pure, reformulez les mots comme "remplacer" ou "enlever" de maniere descriptive, par exemple "la scene fait apparaitre ..." ou "rendu dans le style de @image1"
"Use the first-person perspective framing of @video1 throughout, and use @audio1 as background music throughout. First-person perspective fruit tea promotional video..."
Tableau d'URLs d'images de reference, facultatif ; 1 a 30 images si fourni
Condition requise : Au moins un des champs image_urls, video_urls ou audio_urls doit etre fourni.
Description des roles :
| Type de media | Role | Utilisation typique |
|---|---|---|
| Image | reference_image | Reference de style, image produit, premiere/derniere image (specifiee via le prompt) |
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 - Les URLs d'images doivent etre directement accessibles par le serveur
1 - 30 elements[
"https://example.com/ref1.jpg",
"https://example.com/ref2.jpg"
]
Tableau d'URLs de videos de reference, facultatif ; 1 a 10 videos si fourni
Condition requise : Au moins un des champs image_urls, video_urls ou audio_urls doit etre fourni.
Description des roles :
| Type de media | Role | Utilisation typique |
|---|---|---|
| Video | reference_video | Reference de mouvement de camera, reference d'action, video originale a editer/etendre |
Exigences pour les videos :
- Formats pris en charge :
.mp4,.mov - Resolution : 480p, 720p, 1080p, 4K
- Duree par video :
2a30secondes, maximum 10 videos, duree totale de toutes les videos ≤30secondes - Rapport d'aspect (largeur/hauteur) :
0.4a2.5 - Dimensions en pixels :
300a6000px - Pixels d'image (largeur x hauteur) :
409 600a8 295 044(ex. 640×640 a 3326×2494) - Taille maximale par video :
200 Mo - Frequence d'images :
24a60FPS - Taille totale du corps de requete ne depassant pas
64 Mo, ne pas utiliser l'encodage Base64 - La validite du codec, de la resolution et des autres caracteristiques du contenu est verifiee en plus par le modele
- L'utilisation de references video entraine des frais supplementaires (la duree de la video d'entree est comptabilisee dans la facturation)
- Les URLs de videos doivent etre directement accessibles par le serveur
1 - 10 elements["https://example.com/reference.mp4"]
Tableau d'URLs d'audios de reference, facultatif ; 1 a 10 segments si fourni
Condition requise : Au moins un des champs image_urls, video_urls ou audio_urls doit etre fourni.
Description des roles :
| Type de media | Role | Utilisation typique |
|---|---|---|
| Audio | reference_audio | Musique de fond, effets sonores, reference vocale/dialogue |
Exigences pour les audios :
- Formats pris en charge :
.wav,.mp3 - Duree par segment audio :
2a30secondes, maximum 10 segments, duree totale de tous les audios ≤30secondes - Taille maximale par segment :
15 Mo - Taille totale du corps de requete ne depassant pas
64 Mo, ne pas utiliser l'encodage Base64 - Les URLs d'audios doivent etre directement accessibles par le serveur
1 - 10 elements["https://example.com/bgm.mp3"]
Duree de la video de sortie (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
Si le prompt est classe comme tache d'edition video, seul -1 est accepte ; un nombre de secondes explicite fait echouer la tache plus tard, sans erreur a l'envoi
10
Resolution video, par defaut 720p
Valeurs possibles :
480p: resolution inferieure, prix reduit720p: resolution standard, valeur par defaut1080p: resolution Ultra HD
480p, 720p, 1080p "720p"
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: determine en fonction de l'intention du prompt, priorite : video > image > prompt
Pixels correspondants par resolution :
| Rapport d'aspect | 480p | 720p |
|---|---|---|
| 16:9 | 854×480 | 1280×720 |
| 4:3 | 752×560 | 1112×834 |
| 1:1 | 640×640 | 960×960 |
| 3:4 | 560×752 | 834×1112 |
| 9:16 | 480×854 | 720×1280 |
| 21:9 | 992×432 | 1470×630 |
Si le prompt est classe comme tache d'edition / extension video, seul adaptive est accepte ; un rapport fixe fait echouer la tache plus tard, sans erreur a l'envoi
16:9, 9:16, 1:1, 4:3, 3:4, 21:9, adaptive "16:9"
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 :
- 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
Horodatage de creation de la tache
1761313744
ID de la tache
"task-unified-1774857405-abc123"
Nom du modele effectivement utilise
"seedance-2.5-reference-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