API de Generación de Video
Genere videos con IA a partir de texto, imágenes, referencias de video y entradas de audio — todo a través de un único endpoint unificado. El modo de generación se determina automáticamente según la combinación de parámetros que proporcione.
Endpoint
POST https://api.evolink.ai/v1/videos/generations
Parámetros de Solicitud
| Parámetro | Tipo | Requerido | Predeterminado | Descripción |
|---|---|---|---|---|
model | string | Sí | — | ID del modelo. Use seedance-2.0 |
prompt | string | Sí | — | Descripción textual del video deseado (máx. 2000 tokens). Use etiquetas @ para referenciar archivos subidos |
image_urls | array | No | — | URLs de imágenes de referencia (hasta 9). Consulte Requisitos de Archivos de Entrada |
video_urls | array | No | — | URLs de videos de referencia (hasta 3). Consulte Requisitos de Archivos de Entrada |
audio_urls | array | No | — | URLs de audio de referencia (hasta 3). Consulte Requisitos de Archivos de Entrada |
duration | integer | No | 5 | Duración del video en segundos. Cualquier entero de 4 a 15. Duraciones más largas cuestan más |
quality | string | No | 720p | Resolución del video: 480p, 720p o 1080p. Mayor calidad cuesta más |
aspect_ratio | string | No | 16:9 | Relación de aspecto: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9 o adaptive |
generate_audio | boolean | No | true | Si se genera audio sincronizado. Activarlo incrementa el costo |
callback_url | string | No | — | URL HTTPS para callback de finalización de tarea. Consulte Webhooks |
Modos de Generación
La API detecta automáticamente el modo de generación según los parámetros de entrada que proporcione:
| Entradas Proporcionadas | Modo | Descripción |
|---|---|---|
Solo prompt | Texto-a-Video | Genera video a partir de una descripción textual |
prompt + image_urls (1 imagen) | Imagen-a-Video | Anima una imagen de referencia |
prompt + image_urls (2 imágenes) | Primer-Último-Fotograma | Genera una transición entre dos fotogramas clave |
prompt + cualquier combinación de image_urls, video_urls, audio_urls | Multimodal | Use etiquetas @ en el prompt para asignar roles a cada entrada. Consulte Referencia Multimodal |
Requisitos de Archivos de Entrada
Imágenes
| Propiedad | Límite |
|---|---|
| Cantidad máxima | 9 por solicitud |
| Tamaño máximo de archivo | 30MB por imagen |
| Formatos soportados | .jpeg, .png, .webp, .bmp, .tiff, .gif |
Videos
| Propiedad | Límite |
|---|---|
| Cantidad máxima | 3 por solicitud |
| Tamaño máximo de archivo | 50MB por video |
| Formatos soportados | .mp4, .mov |
| Duración | 2–15 segundos |
| Rango de píxeles | 409,600 (480p) – 927,408 (720p) |
Audio
| Propiedad | Límite |
|---|---|
| Cantidad máxima | 3 por solicitud |
| Tamaño máximo de archivo | 15MB por audio |
| Formatos soportados | .mp3, .wav |
| Duración total | ≤ 15 segundos |
Límite total de archivos: Máximo 12 archivos en todas las modalidades por solicitud.
Restricción de rostros: No se admiten cargas de rostros humanos realistas y serán rechazadas automáticamente.
Todas las URLs de archivos deben ser directamente accesibles por el servidor.
Ejemplos
Texto-a-Video
import requests
response = requests.post(
"https://api.evolink.ai/v1/videos/generations",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"model": "seedance-2.0",
"prompt": "A luxury watch rotating slowly on a marble surface, soft studio lighting, product showcase, cinematic 4K",
"duration": 8,
"quality": "1080p",
"aspect_ratio": "16:9",
"generate_audio": False
}
)
print(response.json())
Imagen-a-Video
response = requests.post(
"https://api.evolink.ai/v1/videos/generations",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"model": "seedance-2.0",
"prompt": "The woman turns her head slowly and smiles, hair gently flowing in the wind",
"image_urls": ["https://example.com/portrait.jpg"],
"duration": 5,
"quality": "1080p"
}
)
Primer-Último-Fotograma
response = requests.post(
"https://api.evolink.ai/v1/videos/generations",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"model": "seedance-2.0",
"prompt": "Smooth camera pan revealing the landscape, golden hour lighting",
"image_urls": [
"https://example.com/frame-start.jpg",
"https://example.com/frame-end.jpg"
],
"duration": 8,
"quality": "1080p"
}
)
Multimodal con @Tags
response = requests.post(
"https://api.evolink.ai/v1/videos/generations",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"model": "seedance-2.0",
"prompt": "@Image1 as first frame, replicate @Video1 camera movement, @Audio1 for BGM rhythm",
"image_urls": ["https://example.com/scene.jpg"],
"video_urls": ["https://example.com/reference-camera.mp4"],
"audio_urls": ["https://example.com/bgm.mp3"],
"duration": 10,
"quality": "1080p"
}
)
Consulte Referencia Multimodal para la sintaxis completa de etiquetas @ y la asignación de roles.
Respuesta
{
"id": "task-unified-1761313744-vux2jw0k",
"object": "video.generation.task",
"created": 1761313744,
"model": "seedance-2.0",
"status": "pending",
"progress": 0,
"type": "video",
"task_info": {
"can_cancel": true,
"estimated_time": 165,
"video_duration": 8
},
"usage": {
"billing_rule": "per_call",
"credits_reserved": 12,
"user_group": "default"
}
}
Campos de Respuesta
| Campo | Tipo | Descripción |
|---|---|---|
id | string | Identificador único de tarea para consulta de estado |
object | string | Siempre video.generation.task |
created | integer | Marca de tiempo Unix de creación de la tarea |
model | string | Modelo utilizado para la generación |
status | string | pending, processing, completed o failed |
progress | integer | Porcentaje de progreso (0–100) |
type | string | Tipo de salida: text, image, audio o video |
task_info.can_cancel | boolean | Si la tarea puede ser cancelada |
task_info.estimated_time | integer | Tiempo estimado de finalización en segundos |
task_info.video_duration | integer | Duración del video solicitada en segundos |
usage.billing_rule | string | Regla de facturación (per_call, per_token, per_second) |
usage.credits_reserved | number | Créditos estimados consumidos |
usage.user_group | string | Categoría del grupo de usuario |
Generación de Audio
Seedance 2.0 puede generar automáticamente audio sincronizado incluyendo voz, efectos de sonido y música de fondo basándose en su prompt de texto y contenido visual.
- Establezca
generate_audioentrue(predeterminado) para activar el audio - Coloque los diálogos entre comillas dobles en su prompt para una mejor generación de voz
- Ejemplo:
The man stopped the woman and said: "Remember, you must never point at the moon with your finger." - Establezca
generate_audioenfalsepara una salida de video sin sonido
Consejos para Prompts
- Sea específico sobre ángulos de cámara, iluminación y movimiento
- Incluya palabras clave de estilo: "cinematic", "slow motion", "aerial shot"
- Describa el sujeto, la acción y la atmósfera
- La longitud máxima del prompt es de 2000 tokens
- Para estrategias detalladas de ingeniería de prompts, consulte nuestra Guía de Prompts de Seedance 2.0
Relacionado
- Referencia Multimodal -- Controle la generación con referencias @tag para imágenes, videos y audio
- Tareas Asíncronas -- Consulte el estado de tareas y recupere resultados
- Webhooks -- Notificaciones de finalización en tiempo real mediante
callback_url - SDKs y Ejemplos -- Código de integración en Python, Node.js, Go y cURL