Claude Opus 5.5 ya está disponible en SeedRouter

Video

Seedance 2.5

View Markdown

Genera, edita y extiende vídeo con Seedance 2.5 a través de la API de tareas oficial de ModelArk: hasta 30 segundos en 1080p, con hasta 30 referencias de imagen, 10 de vídeo y 10 de audio.

Seedance 2.5 es el modelo de generación de vídeo más reciente de ByteDance (Dreamina Seedance 2.5). Envía el cuerpo de tarea oficial de ModelArk a POST /v1/videos/generations, conserva el identificador de tarea devuelto y obtén el vídeo terminado desde GET /v1/tasks/{id}. Las imágenes, los vídeos y el audio van en content como URL.

ID de modelo

ID de modeloResolucionesDuración
dreamina-seedance-2-5480p, 720p, 1080pDe 4 a 30 segundos, o automática

Consulta la página del modelo para ver los precios actuales.

Ejemplo rápido

curl https://api.seedrouter.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "dreamina-seedance-2-5",
    "content": [{"type": "text", "text": "A red paper boat drifts across a calm pond at sunrise, slow dolly-in"}],
    "resolution": "720p",
    "ratio": "16:9",
    "duration": 5,
    "generate_audio": true
  }'

Endpoint

POST https://api.seedrouter.ai/v1/videos/generations
CabeceraValor
AuthorizationBearer YOUR_API_KEY
Content-Typeapplication/json

El cuerpo es el cuerpo de la solicitud oficial de ModelArk para «crear una tarea de generación de vídeo»; este es el mismo endpoint que usan todos los modelos de vídeo de SeedRouter. La respuesta es la nueva tarea (id, status: "processing"), no el vídeo terminado. Mantén las claves API en código del servidor.

Parámetros

NombreTipoObligatorioPor defectoNotas
modelstringSí—dreamina-seedance-2-5.
contentobject[]Sí—El prompt y los medios; consulta más abajo.
draftbooleanNofalsetrue crea un borrador en 480p.
resolutionenumNo480p, 720p, 1080p. Por defecto, 720p para la generación estándar y 480p para borradores. Para generar el vídeo final desde un borrador, debes indicar 1080p explícitamente.480p, 720p, 1080p.
ratioenumNoadaptive16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive. Debe ser adaptive (u omitirse) con un primer fotograma, y para edit y extend.
durationintegerNo-1De 4 a 30 segundos, o -1 para que elija el modelo. Debe ser -1 para edit.
generate_audiobooleanNotrueGenera sonido junto con el vídeo.
watermarkbooleanNofalseAñade una marca de agua.
return_last_framebooleanNofalseDevuelve también el último fotograma como URL de imagen.
output_formatenumNomp4mp4 o mov.
omni_reference_task_typeenumNoautoauto, reference, edit, extend. edit y extend requieren un vídeo de referencia.
execution_expires_afterintegerNo172800De 3600 a 259200 segundos. Una tarea que siga sin terminar pasado este plazo falla con task_expired y no se cobra.
priorityintegerNo0De 0 a 9.
safety_identifierstringNo—De 1 a 64 caracteres que identifican a tu usuario final. Un hash sirve.
service_tierenumNodefaultSolo default.
content_filterbooleanNotrueExtensión de SeedRouter. false desactiva el filtrado de contenido en esta solicitud.

Elementos de content

ElementoFormaRolLímite
Texto{"type": "text", "text": "..."}—Uno.
Imagen{"type": "image_url", "image_url": {"url": "https://..."}, "role": "..."}first_frame, last_frame, reference_imageHasta 30 imágenes de referencia.
Vídeo{"type": "video_url", "video_url": {"url": "https://..."}, "role": "reference_video"}reference_videoHasta 10.
Audio{"type": "audio_url", "audio_url": {"url": "https://..."}, "role": "reference_audio"}reference_audioHasta 10.

Los campos desconocidos se rechazan. No se admiten: seed, callback_url (sondea la tarea en su lugar), tools, ni frames y camera_fixed, exclusivos de 1.x. Las tareas no se pueden cancelar ni eliminar.

Modos

El modo se deduce de los elementos de content; no hay un parámetro de modo.

Modocontent
Texto a vídeoun elemento de texto
Primer fotogramatexto (opcional) + una imagen con el rol first_frame, o una imagen sin rol
Primer y último fotogramatexto (opcional) + una imagen first_frame + una imagen last_frame
Referencia multimodaltexto + cualquier combinación de elementos reference_image, reference_video y reference_audio
Editar un vídeotexto + un reference_video, con omni_reference_task_type: "edit"
Extender un vídeotexto + un reference_video, con omni_reference_task_type: "extend"

Los modos de primer fotograma no se pueden combinar con elementos de referencia. Con varias imágenes o con cualquier otro medio, cada imagen necesita un role.

Ejemplo con referencias

curl https://api.seedrouter.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "dreamina-seedance-2-5",
    "content": [
      {"type": "text", "text": "The character from the image walks through the market in the video, same camera move"},
      {"type": "image_url", "image_url": {"url": "https://example.com/character.png"}, "role": "reference_image"},
      {"type": "video_url", "video_url": {"url": "https://example.com/market.mp4"}, "role": "reference_video"}
    ],
    "ratio": "adaptive",
    "duration": 8
  }'

Sustituye las URL de ejemplo por archivos propios accesibles.

Entradas multimedia

Esta API solo acepta referencias por URL. No se aceptan base64, URL data:, ID asset:// ni subidas multipart. El Playground sube los archivos seleccionados al almacenamiento antes de enviar sus URL.

Los medios deben ser URL HTTP(S) públicas y cumplir los límites oficiales del modelo:

MedioFormatosLímites
ImagenJPEG, PNG, WebP, BMP, TIFF, GIF, HEIC, HEIFMenos de 30 MB; ancho y alto de 300–6000 px; relación de aspecto (ancho / alto) de 0,4–2,5; de 1 a 30 imágenes de referencia
VídeoMP4, MOV (H.264 o H.265)De 2 a 30 segundos cada uno (de 4 a 30 segundos para edit), hasta 10, como máximo 30 segundos en total; como máximo 200 MB; 24–60 FPS; ancho y alto de 300–6000 px; relación de aspecto de 0,4–2,5; 407.696–8.295.044 píxeles (ancho × alto)
AudioWAV, MP3De 2 a 30 segundos cada uno, hasta 10, como máximo 30 segundos en total; como máximo 15 MB

El modelo no admite imágenes ni vídeos de referencia que contengan rostros humanos reales.

Los medios se comprueban al iniciarse la tarea, antes de cualquier generación. Una tarea cuyos medios incumplan uno de estos límites termina como failed con invalid_request_error y un mensaje que nombra la regla, por ejemplo The request was rejected: content reference videos must total at most 15 seconds., y no se cobra. Un archivo que no se pueda leer en ese momento se pasa al modelo, que lo acepta o lo rechaza; en ningún caso se cobra una tarea fallida.

Factores de coste

Consulta la sección de precios del modelo para ver las tarifas actuales. Seedance 2.5 factura tokens de vídeo, la unidad oficial:

video tokens = (output seconds + reference video seconds) × width × height × 24 / 1024

La tarifa por millón de tokens depende de la resolución de salida y de si la solicitud incluye un vídeo de referencia; una solicitud con vídeo de referencia aplica una tarifa más baja a todos sus tokens. Las entradas de texto, imagen y audio no se facturan. En 16:9, un segundo son 9.607,5 tokens en 480p (854×480), 21.600 en 720p y 48.600 en 1080p.

Las solicitudes con vídeos de referencia también tienen un umbral mínimo de tokens. Para las estimaciones, usa al menos ceil(output seconds × 2 / 3) segundos de referencia en la fórmula, aunque los vídeos de referencia originales sean más cortos. Esto se aplica tanto a las tareas de borrador como a las de vídeo final; el clip del borrador en sí no pasa a ser un vídeo de referencia. El cobro real se basa en el uso que informa la tarea completada.

El cargo sigue los tokens que informa el vídeo terminado (output.usage.completion_tokens), así que duration: -1 se factura según la duración realmente generada. Los clips renderizados duran algo más de lo solicitado: una solicitud de 5 segundos en 720p y 16:9 renderiza 121 fotogramas e informa 108.900 tokens en lugar de 108.000. Consulta los cargos definitivos en el historial de uso de tu cuenta. Las tareas fallidas no se cobran.

Esquema de salida

El envío devuelve la nueva tarea:

{"id": "task_...", "model": "dreamina-seedance-2-5", "status": "processing", "created_at": 1790321515}

Consultar la tarea

curl https://api.seedrouter.ai/v1/tasks/YOUR_TASK_ID \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY"

Sondea cada 10–20 segundos hasta que status sea completed o failed. Que se agote el tiempo de red durante el sondeo no significa que la generación haya fallado: conserva el identificador de tarea y reanuda la comprobación. No crees otra tarea para consultar el progreso.

Ejemplo completo de sondeo

Ejecuta esto después del ejemplo de envío en Python anterior.

import time

deadline = time.monotonic() + 1800
while time.monotonic() < deadline:
    result = requests.get(
        f"https://api.seedrouter.ai/v1/tasks/{task_id}",
        headers={"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"},
        timeout=30,
    )
    result.raise_for_status()
    task = result.json()
    if task["status"] == "completed":
        print(task["output"]["video_url"])
        break
    if task["status"] == "failed":
        raise RuntimeError(task["error"]["message"])
    time.sleep(15)
else:
    raise TimeoutError(f"Still waiting. Resume polling task {task_id}.")

Tarea completada

{
  "id": "task_...",
  "model": "dreamina-seedance-2-5",
  "status": "completed",
  "created_at": 1790321515,
  "finished_at": 1790321652,
  "output": {
    "video_url": "https://static.seedrouter.ai/media/tasks/task_example/0.mp4",
    "last_frame_url": "https://static.seedrouter.ai/media/tasks/task_example/last_frame/0.jpg",
    "content": {
      "video_url": "https://static.seedrouter.ai/media/tasks/task_example/0.mp4",
      "last_frame_url": "https://static.seedrouter.ai/media/tasks/task_example/last_frame/0.jpg"
    },
    "usage": {"completion_tokens": 108900, "total_tokens": 108900},
    "seed": 42,
    "resolution": "720p",
    "ratio": "16:9",
    "duration": 5,
    "framespersecond": 24,
    "generate_audio": true,
    "draft": false,
    "output_format": "mp4",
    "service_tier": "default",
    "execution_expires_after": 172800,
    "priority": 0
  }
}
CampoSignificado
idConserva este identificador para consultas posteriores.
statusprocessing, completed o failed.
output.video_urlEl vídeo generado.
output.last_frame_urlEl último fotograma, cuando return_last_frame es true.
output.contentLas mismas URL en forma oficial de ModelArk.
output.usage.completion_tokensTokens de vídeo del vídeo terminado; la cantidad facturada.
output.duration, output.resolution, output.ratio, output.framespersecond, output.seedLo que se renderizó realmente; seed es la que eligió el modelo.
created_at, finished_atMarcas de tiempo Unix en segundos.
error{"code", "message"} en una tarea fallida.

Las URL de los vídeos se alojan en nuestro almacenamiento. Guarda el archivo en tu propio almacenamiento si necesitas una copia duradera.

Errores

Las solicitudes rechazadas antes de crear una tarea devuelven un error HTTP con un objeto error y no se cobran. Una tarea que falla tras ser aceptada devuelve HTTP 200 al consultarla, con status: "failed" y un objeto error. Un resultado retenido por el filtrado de contenido falla con content_policy_violation; una tarea que supera execution_expires_after falla con task_expired.

Consulta el catálogo de errores común para ver códigos, estados HTTP y pautas de reintento.

{
  "id": "task_...",
  "model": "dreamina-seedance-2-5",
  "status": "failed",
  "error": {
    "code": 60001,
    "message": "The request was rejected by the content policy. Please revise the prompt or input images."
  }
}

Si el propio envío agota el tiempo de espera, revisa tu historial de tareas antes de volver a enviarlo: puede que la primera solicitud ya se haya aceptado.

Consejos

  • Describe el sujeto, la acción, el movimiento de cámara y la iluminación con frases completas.
  • Haz borradores en 480p con una duration corta y luego renderiza la versión elegida a una resolución mayor.
  • Encadena planos con return_last_frame: usa el fotograma devuelto como first_frame de la siguiente tarea.
  • Para editar metraje, define omni_reference_task_type como edit y describe solo lo que debe cambiar.

Relacionado

Vista previa en borrador y vídeo final

Establece draft: true para generar una vista previa en 480p. Las demás resoluciones no son válidas en el modo borrador. La generación de vistas previas usa el mismo cálculo de tokens y el mismo precio unitario que la generación estándar en 480p.

{
  "model": "dreamina-seedance-2-5",
  "content": [{ "type": "text", "text": "A fox walks through a sunny garden." }],
  "draft": true,
  "resolution": "480p",
  "duration": 4,
  "ratio": "16:9"
}

Sondea el ID de tarea de SeedRouter devuelto hasta que status sea completed y output.draft sea true. En los 7 días posteriores a la creación del borrador, envía una solicitud independiente con ese ID:

{
  "model": "dreamina-seedance-2-5",
  "content": [{ "type": "draft_task", "draft_task": { "id": "task_YOUR_DRAFT_ID" } }],
  "resolution": "1080p"
}

El borrador debe pertenecer a tu cuenta, haberse completado correctamente y usar el mismo modelo. content debe contener únicamente un elemento draft_task. Establece resolution explícitamente en 1080p; omite draft o establécelo en false. No vuelvas a enviar duration, ratio, seed, generate_audio, omni_reference_task_type, texto ni contenido multimedia, aunque los valores sean los mismos. Estos ajustes se heredan del borrador.

Puedes configurar watermark, return_last_frame, output_format, execution_expires_after, priority, safety_identifier y service_tier: "default" para la nueva tarea. Las opciones de salida omitidas usan sus valores predeterminados. content_filter se hereda y no puede cambiarse. Un vídeo final generado correctamente devuelve un nuevo ID de tarea, output.draft: false y output.draft_task_id con el ID de tu borrador original de SeedRouter. Un mismo borrador puede usarse para varias generaciones finales independientes antes de que caduque.

El borrador y el vídeo final se facturan de forma independiente. El vídeo final usa la tarifa de 1080p correspondiente a la categoría de entrada del borrador original: si el borrador usó un vídeo de referencia, el vídeo final también usa la tarifa con vídeo de referencia e incluye la duración del vídeo de referencia original en el uso de tokens. El clip del borrador en sí no se añade como otro vídeo de entrada. Cada tarea usa el precio vigente en el momento de enviarla. Las solicitudes fallidas no se cobran.