Guía del modelo

API de Seedance 2.5: clips de 30 segundos, precios y código

Seedance 2.5 es el modelo Seedance más reciente del catálogo de Revana. Crea clips de hasta 30 segundos a partir de texto, imágenes o vídeo. Esta guía cubre en qué se diferencia de Seedance 2.0, lo que cuesta y cómo llamarlo.

Qué añade Seedance 2.5 respecto a Seedance 2.0

Seedance 2.5 admite el mismo formato de solicitud que la familia 2.0 y cubre los mismos tipos de trabajos: texto a vídeo con sonido, fotogramas inicial y final e imágenes de referencia. Las diferencias que importan cuando construyes sobre él son prácticas, y todas se ven en el catálogo:

Seedance 2.0 y Seedance 2.5 comparados
Seedance 2.0Seedance 2.5
Tareastexto a vídeo, imagen a vídeo, fotograma inicial y final e imágenes de referenciatexto a vídeo, imagen a vídeo, fotograma inicial y final, imágenes de referencia y vídeo a vídeo
Duración del clip4 a 15 s4 a 30 s
Resolución480p, 720p, 1080p y 4K480p, 720p y 1080p
Imágenes de referenciahasta 9hasta 30
Relación de aspecto16:9, 9:16, 1:1, 4:3, 3:4, 21:9 o adaptativa16:9, 9:16, 1:1, 4:3, 3:4, 21:9 o adaptativa
Precio desde$0.08 / s$0.11 / s
Rutastres rutascinco rutas

En resumen: Seedance 2.5 llega hasta 30 segundos en un solo clip frente a 15 de Seedance 2.0, admite 30 imágenes de referencia en lugar de 9 y añade vídeo a vídeo. Seedance 2.0 sigue siendo el que hay que usar si necesitas salida en 4K. Para clips de 15 segundos o menos, compara los precios por segundo antes de elegir: en 720p, Seedance 2.0 lista $0.15 y Seedance 2.5 lista $0.25.

No publicamos puntuaciones de calidad de ninguno de los dos modelos. La mejor forma de elegir es pasar por ambos tres o cuatro prompts de tu propio producto y comparar.

Cuándo ayuda un clip de 30 segundos

  • Una toma continua. Un recorrido, una demostración de producto o una escena con diálogo que mostraría una costura visible si unieras dos clips de 15 segundos.
  • Spots publicitarios completos. Muchos formatos de anuncios para redes sociales duran de 15 a 30 segundos. Una sola generación puede cubrir todo el spot, con el sonido diseñado a lo largo de él.
  • Menos uniones en ediciones largas. Incluso cuando montas clips, las piezas más largas implican menos puntos donde un personaje o la iluminación puedan variar.

Si tus clips duran 15 segundos o menos, comprueba primero si Seedance 2.0 cubre el trabajo: puede que no necesites el límite más largo.

Precios de Seedance 2.5 (octubre de 2026)

Seedance 2.5 se factura por segundo de salida, desde $0.11 por segundo en 480p. La tabla muestra la tarifa listada y lo que cuesta un clip de 10 segundos y uno de 30 segundos en cada resolución. Para ver los mismos precios en otras APIs, consulta la comparación de precios de Seedance 2.5.

Precio de Seedance 2.5 por segundo y por clip
ResoluciónPor segundoClip de 10 sClip de 30 sCon entrada de vídeo
480p$0.11$1.10$3.30$0.06 / s
720p$0.25$2.50$7.50$0.15 / s
1080p$0.55$5.50$16.50$0.34 / s

El precio es el mismo con el sonido activado o desactivado. Los trabajos que usan un vídeo como entrada se facturan a la tarifa menor con entrada de vídeo, pero los segundos facturados incluyen la entrada: los segundos de salida más la duración del clip de entrada. Un clip de 10 segundos en 720p creado a partir de un vídeo de origen de 10 segundos se factura como 20 segundos, $3.00, frente a $2.50 por un clip de 10 segundos a partir de un prompt de texto.

El precio de cada trabajo se retiene de tu saldo al enviarlo y solo se cobra si el trabajo termina con éxito. Un trabajo fallido libera la retención, así que un trabajo de 30 segundos que falla no cuesta nada. El importe exacto vuelve como cost_usd; los paquetes de créditos y la tabla completa están en la página de precios.

Genera un vídeo con Seedance 2.5

Envía POST /v1/generations con el id de modelo seedance-2.5. La respuesta es un 202 con una generación id; consúltala periódicamente hasta que el estado sea succeeded o failed. Este clip de 10 segundos en 720p con sonido cuesta $2.50.

cURL
export REVANA_API_KEY="sr_live_..."

# 1. Submit the job (returns 202 with the generation id)
curl https://api.revana.si/v1/generations \
  -H "Authorization: Bearer $REVANA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.5",
    "input": {
      "prompt": "A street food vendor in a night market prepares noodles, wok flames rising. Shot 1: wide shot of the busy stall. Shot 2: close-up of noodles tossed in the wok. Shot 3: a customer takes the first bite and smiles. Sizzling wok, crowd chatter, distant music.",
      "resolution": "720p",
      "duration": 10,
      "aspect_ratio": "16:9",
      "audio": true
    },
    "max_cost_usd": 3
  }'

# 2. Poll with the id from step 1 until status is "succeeded" or "failed"
curl https://api.revana.si/v1/generations/gen_01JBX7Q2M4 \
  -H "Authorization: Bearer $REVANA_API_KEY"
Python
import os
import time

import requests

API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}

resp = requests.post(f"{API}/generations", headers=HEADERS, json={
    "model": "seedance-2.5",
    "input": {
        "prompt": "A street food vendor in a night market prepares noodles, wok flames rising. Shot 1: wide shot of the busy stall. Shot 2: close-up of noodles tossed in the wok. Shot 3: a customer takes the first bite and smiles. Sizzling wok, crowd chatter, distant music.",
        "resolution": "720p",
        "duration": 10,
        "aspect_ratio": "16:9",
        "audio": True,
    },
    "max_cost_usd": 3,
})
resp.raise_for_status()
job = resp.json()

while job["status"] in ("queued", "running"):
    time.sleep(5)
    job = requests.get(f"{API}/generations/{job['id']}", headers=HEADERS).json()

if job["status"] == "succeeded":
    print(job["output"]["urls"], job["cost_usd"])
else:
    print("Failed:", job["error"])
Node.js
// Node 18 or later. Save as generate.mjs and run: node generate.mjs
const API = "https://api.revana.si/v1";
const headers = {
  Authorization: `Bearer ${process.env.REVANA_API_KEY}`,
  "Content-Type": "application/json",
};

const res = await fetch(`${API}/generations`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    model: "seedance-2.5",
    input: {
      prompt: "A street food vendor in a night market prepares noodles, wok flames rising. Shot 1: wide shot of the busy stall. Shot 2: close-up of noodles tossed in the wok. Shot 3: a customer takes the first bite and smiles. Sizzling wok, crowd chatter, distant music.",
      resolution: "720p",
      duration: 10,
      aspect_ratio: "16:9",
      audio: true,
    },
    max_cost_usd: 3,
  }),
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
let job = await res.json();

while (job.status === "queued" || job.status === "running") {
  await new Promise((r) => setTimeout(r, 5000));
  job = await (await fetch(`${API}/generations/${job.id}`, { headers })).json();
}

if (job.status === "succeeded") console.log(job.output.urls, job.cost_usd);
else console.error("Failed:", job.error);

Los trabajos largos tardan más en terminar que los cortos, así que consulta el estado cada cinco a diez segundos en lugar de saturar el endpoint. Un trabajo terminado tiene este aspecto:

Respuesta
{
  "id": "gen_01JBX7Q2M4",
  "model": "seedance-2.5",
  "status": "succeeded",
  "output": {
    "urls": [
      "https://cdn.revana.si/g/gen_01JBX7Q2M4/0.mp4"
    ]
  },
  "cost_usd": 2.5,
  "attempts": 1,
  "error": null,
  "created_at": "2026-10-19T14:02:11Z",
  "completed_at": "2026-10-19T14:03:47Z"
}

Un clip vertical de 30 segundos con referencias

Para un spot vertical de duración completa, envía los recursos de la marca como imágenes de referencia y describe los planos en orden. En 1080p este trabajo cuesta $16.50; fija max_cost_usd por encima de esa cifra para que no se omita. La misma solicitud en 480p cuesta $3.30, una forma más barata de comprobar la estructura antes de comprometerte con la resolución completa.

Cuerpo de la solicitud
{
  "model": "seedance-2.5",
  "input": {
    "prompt": "A 30 second vertical ad. Shot 1: the runner from the first image laces the shoe from the second image at dawn. Shot 2: tracking shot as she runs along the seafront. Shot 3: close-up of the shoe hitting wet sand. Shot 4: she stops, breathing hard, and looks out to sea. Steady electronic beat, waves, footsteps.",
    "image_urls": [
      "https://example.com/runner.jpg",
      "https://example.com/shoe.jpg"
    ],
    "resolution": "1080p",
    "duration": 30,
    "aspect_ratio": "9:16",
    "audio": true
  },
  "max_cost_usd": 20
}

Usa fotogramas inicial y final (image_url, end_image_url) o imágenes de referencia (image_urls) en una solicitud, pero no ambos: son modos distintos, y una solicitud que los mezcle puede ser rechazada con un 422 antes de cobrar nada.

Consejos de prompts para clips largos

  • Escribe una lista de planos, no un párrafo. Numera los planos y da a cada uno un sujeto, una acción y un movimiento de cámara. En 30 segundos, la estructura importa más que los adjetivos.
  • Mantén el reparto pequeño. Uno o dos personajes se mantienen coherentes con más fiabilidad que una multitud, sobre todo a lo largo de varios cortes.
  • Apóyate en las referencias. Con hasta 30 imágenes puedes fijar el personaje desde más de un ángulo, el producto, el lugar y la paleta de colores. Refiérete a cada una por su posición, como "el zapato de la segunda imagen".
  • Diseña el sonido para todo el clip. Indica qué suena de fondo en cada plano (un ritmo, el ambiente) y qué ocurre en momentos concretos (un portazo, una línea de diálogo).
  • Haz borradores cortos y pequeños. Prueba los primeros planos como un clip de 10 segundos en 480p y renderiza los 30 segundos completos cuando el aspecto sea el correcto. Los resultados difieren entre resoluciones, así que trata los borradores como una guía y no como una vista previa.
  • Deja el texto fuera del encuadre. Añade subtítulos, precios y logotipos en tu editor.

Enrutamiento y respaldo

Seedance 2.5 tiene actualmente cinco rutas en Revana. El enrutador envía cada trabajo primero a la ruta más barata y, si esa ruta falla o agota el tiempo, lo pasa a la siguiente. Las rutas de respaldo cuestan más por segundo (la página del modelo lista cada una), y solo se cobra la ruta que tiene éxito. El campo attempts indica cuántas rutas usó un trabajo.

El respaldo mejora las probabilidades de obtener un resultado, pero no es una garantía de disponibilidad. En los trabajos largos en particular, gestiona failed en tu aplicación, por ejemplo reintentando más tarde en una resolución menor.

Consulta todos los niveles de Seedance en la página de modelos, la referencia de solicitudes en la documentación, o obtén una clave de API y ejecuta el ejemplo de arriba.

Preguntas frecuentes

¿Cuánto cuesta la API de Seedance 2.5?

En octubre de 2026, Seedance 2.5 cuesta $0.11 por segundo a 480p, $0.25 a 720p y $0.55 a 1080p. Un clip de 10 segundos a 720p cuesta $2.50 y uno de 30 segundos a 1080p, $16.50.

¿Cuál es la diferencia entre Seedance 2.0 y Seedance 2.5?

Seedance 2.5 crea clips de hasta 30 segundos (2.0 se queda en 15), admite hasta 30 imágenes de referencia (2.0 admite 9) y añade vídeo a vídeo. Seedance 2.0 ofrece 4K; Seedance 2.5 llega hasta 1080p.

¿Cuánto puede durar un vídeo de Seedance 2.5?

Entre 4 y 30 segundos por solicitud. Establece la duración con el campo duration.

¿Seedance 2.5 admite 4K?

Hoy no figura en el catálogo: lista 480p, 720p y 1080p. Para salida en 4K, usa Seedance 2.0.

¿Seedance 2.5 genera sonido?

Sí. Establece audio en true para obtener sonido generado junto con la imagen, o en false para un clip sin sonido. El precio es el mismo en ambos casos.

¿Se cobra si falla un trabajo largo de Seedance 2.5?

No. El precio se retiene al enviar el trabajo y se libera si este falla. El enrutador prueba primero las demás rutas, y solo pagas por un trabajo que termina con éxito.

Prueba Seedance 2.5 con una sola clave

Una clave de API para Seedance 2.5, Seedance 2.0 y todos los demás modelos del catálogo. Crédito prepago desde $10, solo se cobran los trabajos que se completan.