Seedance 2.0
API de Seedance 2.0: generación de vídeo, fotogramas, referencias, ejemplos de solicitudes, consulta de tareas, descargas y precios.
Seedance 2.0 admite texto, primer y último fotograma y referencias de imagen, vídeo y audio, con salida a 480p, 720p, 1080p, 4K. Genera vídeos de hasta 15 segundos por solicitud. Detalles del modelo y área de pruebas.
Conecta con Wan API
Usa https://api.wanapi.app como URL base de la API. Crea una clave con la familia de modelos Seedance en los ajustes de claves API y envíala como Authorization: Bearer YOUR_API_KEY. Guarda las claves en tu servidor. El área de pruebas usa tu sesión del sitio web y cobra del mismo saldo de cuenta; no requiere pegar una clave en el navegador.
El acceso requiere una cuenta habilitada con saldo suficiente. GET /v1/models enumera los modelos disponibles para tu clave. Los modelos Seedance usan POST /v1/videos; selecciona el modelo en el cuerpo JSON.
| Ajuste | Seedance 2.0 |
|---|---|
| ID del modelo | bytedance/seedance-2.0 |
resolution | 480p, 720p, 1080p, 4k; por defecto: 720p. |
duration | 4–15 segundos de salida, o -1 para automática; por defecto: 5. |
aspectRatio | adaptive, 16:9, 4:3, 1:1, 3:4, 9:16, 21:9; por defecto: adaptive. |
generateAudio | true por defecto. false no reduce la tarifa por token. |
| Salida | Un vídeo por solicitud, a 24 fps. |
Los campos de la solicitud describen los 13 campos de nivel superior. Usa los nombres de campo indicados aquí, incluidos aspectRatio y generateAudio.
Envía una tarea de Seedance 2.0
Esta solicitud de texto a vídeo pide una salida de cuatro segundos a 720p. Asigna tu clave de Seedance a WAN_API_KEY en el servidor. Envía la solicitud una sola vez y guarda el id devuelto.
curl https://api.wanapi.app/v1/videos \
-H "Authorization: Bearer $WAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bytedance/seedance-2.0",
"prompt": "A paper boat floats through a sunlit stream. Slow tracking shot.",
"resolution": "720p",
"aspectRatio": "16:9",
"duration": 4,
"generateAudio": true
}'Consulta una tarea de Seedance 2.0
Guarda el id devuelto como TASK_ID y consulta con la misma clave. El envío devuelve un comprobante de tarea; el vídeo está disponible al completarse. Empieza consultando cada cinco segundos; consulta los estados de tarea y las descargas.
curl "https://api.wanapi.app/v1/videos/$TASK_ID" \
-H "Authorization: Bearer $WAN_API_KEY"Precios de Seedance 2.0
Las tarifas están en USD por un millón de tokens de vídeo. Los tokens de vídeo de entrada y salida determinan el coste final. La resolución, la duración y los vídeos de referencia afectan al consumo; usa la tarifa correspondiente a solicitudes con o sin vídeo de referencia. El audio no tiene un nivel de precio independiente.
| Resolución | Vídeo de referencia | Precio oficial | Precio de Wan API | Ahorro (%) |
|---|---|---|---|---|
| 480p | Sin vídeo | 0,0703 US$ | No disponible | — |
| 480p | Con vídeo | 0,0432 US$ | No disponible | — |
| 720p | Sin vídeo | 0,1512 US$ | No disponible | — |
| 720p | Con vídeo | 0,0929 US$ | No disponible | — |
| 1080p | Sin vídeo | 0,3742 US$ | No disponible | — |
| 1080p | Con vídeo | 0,2284 US$ | No disponible | — |
| 4K | Sin vídeo | 0,7776 US$ | No disponible | — |
| 4K | Con vídeo | 0,4666 US$ | No disponible | — |
Las estimaciones se basan en una salida en 16:9 a 24 fps. Otras relaciones de aspecto y las dimensiones reales de salida pueden cambiar el coste.
Sin vídeo de referencia, solo cuentan los segundos de salida. Con vídeo de referencia, cuentan los segundos de entrada y de salida; el tiempo de entrada facturable es, como mínimo, dos tercios de la duración de salida, redondeados hacia arriba al segundo entero.
Comparación oficial: Precios internacionales bajo demanda de BytePlus. Verificado el 2026-10-15. Los precios de Wan API se actualizan automáticamente.
Los tokens de vídeo de entrada y salida determinan el coste final. Las solicitudes fallidas no se cobran.
Consulta los precios y las estimaciones de Seedance 2.0. Revisa la estimación en el área de pruebas antes de enviar la solicitud.
Campos de la solicitud
Envía un objeto JSON. model es obligatorio, junto con un prompt no vacío o al menos una entrada multimedia. Los demás campos son opcionales. Se rechazan los campos desconocidos.
| Campo | Tipo | Contrato |
|---|---|---|
model | cadena | Obligatorio: bytedance/seedance-2.0. |
prompt | cadena | Instrucciones de texto; hasta 20.000 caracteres en este servicio. Se requiere un prompt o una entrada multimedia. |
image | URL u objeto URL | URL de imagen del primer fotograma, o un objeto con type: "url", url y mediaType opcional. Usa image o frameImages, no ambos. |
frameImages | lista | Un first_frame y un last_frame opcional. Cada entrada tiene frameType e image; consulta el ejemplo de fotogramas de abajo. |
inputReferences | lista | Hasta 9 imágenes y 3 vídeos. Cada entrada tiene type: "url", url y mediaType. También se acepta la forma de URL con data/mediaType. |
aspectRatio | cadena | adaptive (por defecto), 16:9, 4:3, 1:1, 3:4, 9:16, 21:9. |
resolution | cadena | 480p, 720p, 1080p, 4k. Por defecto: 720p. También acepta 854x480, 1280x720, 1920x1080 y 3840x2160 como niveles de resolución; usa aspectRatio para seleccionar el formato. |
duration | entero | 4–15 segundos de salida, o -1 para automática. Por defecto: 5. |
fps | entero | Fijo en 24; omite el campo o envía 24. |
seed | entero | Opcional; de -1 a 2147483647. Sin garantía de repetibilidad. No especifiques también providerOptions.bytedance.seed. |
generateAudio | booleano | Genera audio. Por defecto: true; desactivarlo no cambia la tarifa por token. |
n | entero | Fijo en 1; un vídeo por solicitud. |
providerOptions | objeto | Objeto bytedance opcional: referenceAudio (hasta 3 URL HTTP(S)), seed (mismos límites que seed en el nivel superior). No se admite draft: true. Se rechazan las opciones desconocidas. |
Combinaciones de entrada y límites multimedia
-
Usa
imagepara un primer fotograma oframeImagespara un primer fotograma y un último fotograma opcional. Se rechazan un último fotograma aislado y los tipos de fotograma duplicados. -
Los fotogramas no se pueden combinar con
inputReferencesni conproviderOptions.bytedance.referenceAudio. -
El modo de referencias acepta hasta 9 imágenes, 3 vídeos y 3 clips de audio, con un máximo de 15 referencias en total.
-
Las entradas multimedia deben ser URL HTTP(S) públicas. No se aceptan cargas de bytes ni URL que contengan credenciales.
-
Imágenes: JPEG, PNG, WebP, BMP, TIFF o GIF; menos de 30 MB; cada lado de 300–6000 píxeles; relación de aspecto de 0.4–2.5.
-
Vídeos: MP4 o MOV; como máximo 50 MB por archivo; cada clip de 2–15 segundos y como máximo 15 segundos en conjunto; 300–6000 píxeles por lado, relación de aspecto de 0.4–2.5, 24–60 fps.
-
Audio: MP3 o WAV; como máximo 15 MB por archivo; cada clip de 2–15 segundos y como máximo 15 segundos en conjunto. Se requiere al menos una imagen o un vídeo de referencia.
-
El tamaño, la codificación y la duración de los archivos multimedia remotos se comprueban durante el procesamiento; validar solo la URL no garantiza que el archivo sea utilizable.
-
Este endpoint no ofrece renderizado final a partir de un borrador de una tarea anterior ni opciones nativas de tarea arbitrarias.
Ejemplos de fotogramas y referencias
Envía estos cuerpos al mismo endpoint POST /v1/videos. Sustituye cada URL de example.com por una URL propia de archivo multimedia directamente accesible antes de enviar la solicitud. Mantén las URL de entrada disponibles hasta que termine la tarea.
Primer y último fotograma
Para un único primer fotograma, usa image: "https://example.com/first-frame.jpg" y omite frameImages. Para definir ambos extremos del clip, usa:
{
"model": "bytedance/seedance-2.0",
"prompt": "The camera slowly moves from the opening scene to the closing scene.",
"frameImages": [
{
"frameType": "first_frame",
"image": "https://example.com/first-frame.jpg"
},
{
"frameType": "last_frame",
"image": "https://example.com/last-frame.jpg"
}
],
"aspectRatio": "adaptive",
"resolution": "720p",
"duration": 4
}Referencias de imagen, vídeo y audio
Coloca las entradas de imagen y vídeo en inputReferences, con un tipo MIME explícito. Coloca las URL de audio en providerOptions.bytedance.referenceAudio. No añadas entradas de fotogramas a esta solicitud.
{
"model": "bytedance/seedance-2.0",
"prompt": "Use the character from the image and the camera movement from the video.",
"inputReferences": [
{
"type": "url",
"url": "https://example.com/character.jpg",
"mediaType": "image/jpeg"
},
{
"type": "url",
"url": "https://example.com/motion.mp4",
"mediaType": "video/mp4"
}
],
"providerOptions": {
"bytedance": {
"referenceAudio": [
"https://example.com/sound.wav"
]
}
},
"resolution": "720p",
"duration": 4
}Consulta el estado y descarga el vídeo
Una tarea aceptada devuelve un objeto como este. Los ID y las marcas de tiempo del ejemplo son ilustrativos:
{
"id": "task_EXAMPLE",
"object": "video",
"model": "bytedance/seedance-2.0",
"status": "queued",
"progress": 0,
"created_at": 1792022400
}Consulta GET /v1/videos/{task_id} con tu clave API. La consulta devuelve el mismo ID público de tarea y el mismo modelo. Usa status para decidir cuándo dejar de consultar; progress no estima el tiempo restante.
| Estado | Significado | Siguiente paso |
|---|---|---|
queued | La tarea se ha aceptado. | Sigue consultando. |
in_progress | La generación está en curso. | Sigue consultando. |
completed | El vídeo está listo. | Lee videos[0].url y descárgalo. |
failed | La generación ha fallado. | Deja de consultar y revisa error. |
Una consulta completada incluye videos, una lista de objetos con url y mediaType. Las marcas de tiempo usan segundos Unix; completed_at aparece cuando se registra la finalización.
{
"id": "task_EXAMPLE",
"object": "video",
"model": "bytedance/seedance-2.0",
"status": "completed",
"progress": 100,
"created_at": 1792022400,
"completed_at": 1792022460,
"videos": [
{
"url": "/v1/tasks/task_EXAMPLE/artifacts/video/content",
"mediaType": "video/mp4"
}
]
}Si la URL devuelta es una ruta relativa, resuélvela con respecto a https://api.wanapi.app y autentícate con tu clave API. Para el ejemplo anterior:
curl "https://api.wanapi.app/v1/tasks/$TASK_ID/artifacts/video/content" \
-H "Authorization: Bearer $WAN_API_KEY" \
-o video.mp4Si se devuelve una URL HTTPS firmada de un archivo multimedia, úsala directamente sin reenviar tu clave API a ese host. Las URL de resultados pueden caducar. Guarda en tu propio almacenamiento los vídeos que quieras conservar. Consultar el estado y descargar un resultado existente no crea otra generación.
Una tarea fallida incluye un objeto error con code y message, por ejemplo:
{
"id": "task_EXAMPLE",
"object": "video",
"model": "bytedance/seedance-2.0",
"status": "failed",
"error": {
"code": "generation_failed",
"message": "Video generation failed"
}
}Facturación y gestión de errores
El cargo final depende del consumo real de tokens de vídeo y de la tarifa actual del modelo. La estimación del área de pruebas es una estimación máxima, no un presupuesto fijo. Los clips más largos y las resoluciones de salida mayores pueden aumentar el consumo de tokens. Las solicitudes fallidas no se cobran.
- Parámetros no válidos: corrige los campos o la combinación de entradas antes de enviar de nuevo. Comprueba los formatos y límites multimedia, además de la sintaxis de las URL.
- Autenticación o acceso al modelo: usa una clave Seedance válida y habilitada para el modelo solicitado.
- Saldo insuficiente: añade fondos antes de una nueva solicitud de pago. Un límite de clave no añade crédito a la cuenta.
- Fallo temporal al consultar el estado: reintenta el GET con intervalos crecientes y un periodo máximo de espera. Una consulta fallida no significa que la generación haya fallado.
- Tiempo de espera agotado al enviar o ID de tarea ausente: el resultado puede ser desconocido. No repitas el POST automáticamente; podría crear una segunda tarea de pago.
- Fallo de descarga: reintenta la descarga del resultado existente antes de iniciar una nueva generación.
Conserva el ID de tarea y contacta con soporte si es necesario investigar un envío incierto.