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ámetroTipoRequeridoPredeterminadoDescripción
modelstringID del modelo. Use seedance-2.0
promptstringDescripción textual del video deseado (máx. 2000 tokens). Use etiquetas @ para referenciar archivos subidos
image_urlsarrayNoURLs de imágenes de referencia (hasta 9). Consulte Requisitos de Archivos de Entrada
video_urlsarrayNoURLs de videos de referencia (hasta 3). Consulte Requisitos de Archivos de Entrada
audio_urlsarrayNoURLs de audio de referencia (hasta 3). Consulte Requisitos de Archivos de Entrada
durationintegerNo5Duración del video en segundos. Cualquier entero de 4 a 15. Duraciones más largas cuestan más
qualitystringNo720pResolución del video: 480p, 720p o 1080p. Mayor calidad cuesta más
aspect_ratiostringNo16:9Relación de aspecto: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9 o adaptive
generate_audiobooleanNotrueSi se genera audio sincronizado. Activarlo incrementa el costo
callback_urlstringNoURL 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 ProporcionadasModoDescripción
Solo promptTexto-a-VideoGenera video a partir de una descripción textual
prompt + image_urls (1 imagen)Imagen-a-VideoAnima una imagen de referencia
prompt + image_urls (2 imágenes)Primer-Último-FotogramaGenera una transición entre dos fotogramas clave
prompt + cualquier combinación de image_urls, video_urls, audio_urlsMultimodalUse etiquetas @ en el prompt para asignar roles a cada entrada. Consulte Referencia Multimodal

Requisitos de Archivos de Entrada

Imágenes

PropiedadLímite
Cantidad máxima9 por solicitud
Tamaño máximo de archivo30MB por imagen
Formatos soportados.jpeg, .png, .webp, .bmp, .tiff, .gif

Videos

PropiedadLímite
Cantidad máxima3 por solicitud
Tamaño máximo de archivo50MB por video
Formatos soportados.mp4, .mov
Duración2–15 segundos
Rango de píxeles409,600 (480p) – 927,408 (720p)

Audio

PropiedadLímite
Cantidad máxima3 por solicitud
Tamaño máximo de archivo15MB 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

CampoTipoDescripción
idstringIdentificador único de tarea para consulta de estado
objectstringSiempre video.generation.task
createdintegerMarca de tiempo Unix de creación de la tarea
modelstringModelo utilizado para la generación
statusstringpending, processing, completed o failed
progressintegerPorcentaje de progreso (0–100)
typestringTipo de salida: text, image, audio o video
task_info.can_cancelbooleanSi la tarea puede ser cancelada
task_info.estimated_timeintegerTiempo estimado de finalización en segundos
task_info.video_durationintegerDuración del video solicitada en segundos
usage.billing_rulestringRegla de facturación (per_call, per_token, per_second)
usage.credits_reservednumberCréditos estimados consumidos
usage.user_groupstringCategorí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_audio en true (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_audio en false para 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