Saltar al contenido principal
OrcaRouter habla con los modelos de vídeo Seedance en el mismo endpoint enviar-y-consultar que Kling. Envías model: byteplus/dreamina-seedance-2-0-260128, OrcaRouter enruta la solicitud a la API upstream Ark /contents/generations/tasks, y consultas el mismo ID de tarea de vuelta a través de OrcaRouter una vez terminado (típicamente 30 segundos a 4 minutos dependiendo de duración / resolución / generate_audio).
Modelo actualmente disponible. Solo Seedance 2.0 está aprovisionado ahora mismo, bajo el nombre backend byteplus/dreamina-seedance-2-0-260128. La tabla de capacidades abajo lista el resto de la familia Seedance para referencia, pero aún no son seleccionables en el playground ni enrutables a través de OrcaRouter — usa byteplus/dreamina-seedance-2-0-260128 para cada solicitud por ahora.
El endpoint de envío POST /v1/video/generations y el endpoint de obtención GET /v1/video/generations/{task_id} se comparten con Kling. Lo que cambia es el cuerpo de la solicitud: Kling usa prompt + image + metadata.{mode, aspect_ratio, image_list, ...}, Seedance usa prompt + metadata.{content[], ratio, duration, generate_audio, watermark, ...}. El prefijo en model selecciona qué esquema se honra.

Modelos

ModeloT2VI2V (primero)I2V (primero+último)Ref. multimodal¹Edición vídeo²Generar audio³DuraciónDisponible
byteplus/dreamina-seedance-2-0-260128 (2.0)✓ completo4 – 15 s
byteplus/seedance-2.0-fast✓ completo4 – 15 splaneado
byteplus/seedance-1-5-prosolo imagen4 – 12 splaneado
byteplus/seedance-1-0-prosolo imagen2 – 12 splaneado
byteplus/seedance-1-0-pro-fastsolo imagen2 – 12 splaneado
byteplus/seedance-1-0-lite-i2vsolo imagen2 – 12 splaneado
byteplus/seedance-1-0-lite-t2vsolo imagen2 – 12 splaneado
¹ Referencia multimodal = el array metadata.content[] puede llevar elementos image_url / video_url / audio_url con marcadores role (reference_image / reference_video / reference_audio). “Completo” significa que se aceptan combinaciones de imagen + vídeo
  • audio.
² Edición de vídeo = pasa un elemento de contenido video_url para aplicar ediciones impulsadas por prompt al vídeo fuente (intercambio de sujeto, inpainting de región, etc.). ³ Audio nativo = el upstream auto-genera una banda sonora que coincide con el vídeo. Activa vía metadata.generate_audio: true. El endpoint de envío es el mismo para cada modelo — POST /v1/video/generations. Lo que cambia es qué campos metadata honra el upstream según la tabla anterior. Ver la matriz de capacidades Seedance upstream para la lista de características por modelo autorizada.

Enviar una tarea

Envía un POST a /v1/video/generations con model, prompt y cualquier parámetro específico del upstream bajo metadata:
curl https://api.orcarouter.ai/v1/video/generations \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "byteplus/dreamina-seedance-2-0-260128",
    "prompt": "A girl holding a fox, the girl opens her eyes, looks gently at the camera, the fox hugs affectionately, the camera slowly pulls out, the girl'\''s hair is blown by the wind",
    "metadata": {
      "content": [
        { "type": "image_url", "image_url": { "url": "https://example.com/foxgirl.png" } }
      ],
      "ratio": "16:9",
      "duration": 5,
      "generate_audio": true,
      "watermark": false
    }
  }'
La respuesta lleva el ID de tarea (misma envoltura que Kling — OrcaRouter normaliza entre proveedores):
{
  "id": "task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw",
  "task_id": "task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw",
  "object": "video",
  "model": "byteplus/dreamina-seedance-2-0-260128",
  "status": "queued",
  "progress": 0,
  "created_at": 1777975188
}
OrcaRouter envuelve tu prompt como el elemento de texto dentro del array content[] de Seedance automáticamente — no necesitas pasar un elemento {type: "text"} tú mismo. Cualquier elemento de texto que proporciones en metadata.content[] se reemplaza por tu prompt de nivel superior. Otros elementos de contenido (image_url, video_url, audio_url) pasan sin cambios.

Campos del cuerpo

Estos campos van dentro de metadata. Disponlos según las tablas de variantes abajo.
CampoTipoNotas
contentarrayElementos de referencia multimodal. Cada elemento: {type, image_url? | video_url? | audio_url?, role?}. Omitir si texto-a-vídeo puro.
ratiostringRelación de aspecto. 16:9 / 9:16 / 1:1 / 4:3 / 3:4 / 21:9 / adaptive. adaptive infiere de la entrada.
durationintegerSegundos. El rango permitido depende del modelo — ver tabla arriba.
resolutionstring480p / 720p / 1080p. Por defecto 720p. 1080p solo en seedance-2.0 / seedance-2.0-fast / seedance-1-5-pro / seedance-1-0-pro / seedance-1-0-pro-fast.
generate_audiobooleanAuto-generar una banda sonora sincronizada. Por defecto false. Solo en seedance-2.0 / 2.0-fast / 1-5-pro.
watermarkbooleanImprimir marca de agua upstream. Por defecto definido por upstream.
seedintegerSemilla aleatoria para reproducibilidad.
service_tierstringdefault (en línea) o flex (fuera de línea / prioridad más baja, mayor cuota). Por defecto default.
return_last_framebooleanDevolver el fotograma final como imagen junto con el MP4. Por defecto false.
callback_urlstringURL de webhook — recibe cambios de estado en lugar de (o junto con) la consulta.

Forma del elemento content[]

Cada elemento en metadata.content es una de cuatro formas:
{ "type": "image_url", "image_url": { "url": "https://..." }, "role": "first_frame" }
{ "type": "video_url", "video_url": { "url": "https://..." }, "role": "reference_video" }
{ "type": "audio_url", "audio_url": { "url": "https://..." }, "role": "reference_audio" }
{ "type": "text",      "text": "..." }    // reemplazado automáticamente por el prompt de nivel superior
Valores role:
rolePropósito
first_frameAnclar esta imagen como el primer fotograma del vídeo generado.
end_frameAnclar esta imagen como el último fotograma (usar con first_frame para i2v primer+último fotograma).
reference_imageReferencia de estilo / sujeto (variante de referencia multimodal; puede pasar múltiples).
reference_videoReferencia de estilo / movimiento, o el vídeo fuente para edición / extensión.
reference_audioMúsica de fondo o referencia de voz (generación audio-vídeo).
Referencia elementos dentro del prompt con la sintaxis [Image 1], [Video 1], [Audio 1]. El índice coincide con el orden del array (base 1, alcance por tipo).

Consultar resultados

Usa el ID de tarea devuelto al enviar:
curl https://api.orcarouter.ai/v1/video/generations/task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw \
  -H "Authorization: Bearer sk-orca-..."
La forma de respuesta está envuelta (idéntica a Kling):
{
  "code": "success",
  "message": "",
  "data": {
    "task_id": "task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw",
    "status": "SUCCESS",
    "progress": "100%",
    "result_url": "https://ark-content-generation-ap-southeast-1.tos-ap-southeast-1.volces.com/.../video.mp4",
    "submit_time": 1777975188,
    "start_time": 1777975241,
    "finish_time": 1777975277,
    "fail_reason": ""
  }
}
Los valores de estado se normalizan en mayúsculas entre proveedores:
EstadoEstado upstream SeedanceSignificado
NOT_START(transitorio)Fila de tarea creada, aún no despachada
SUBMITTEDqueuedEnviado al upstream, esperando en la cola
IN_PROGRESSrunningEl upstream está renderizando
SUCCESSsucceededHecho. data.result_url lleva el MP4
FAILUREfailedFallido. data.fail_reason tiene la razón
El progreso es una cadena de porcentaje ("50%", "100%"), no un entero. Consulta cada 5 - 10 segundos. Un clip 720p de 5 segundos típicamente se completa en 30 - 60 segundos; 1080p con audio o clips de 15 segundos / referencia multimodal pueden tardar 3 - 5 minutos. El result_url es una URL TOS firmada por el upstream con un TTL corto — descarga o re-aloja rápidamente si necesitas retención larga.

Variantes de endpoint

Todas las variantes comparten POST /v1/video/generations. Qué camino de característica Seedance sirve el upstream se determina por los elementos metadata.content[] y los marcadores role — no por la URL.

Texto-a-vídeo

Solo model + prompt + metadatos opcionales. Sin elementos de contenido significa texto-a-vídeo puro:
curl https://api.orcarouter.ai/v1/video/generations \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "byteplus/dreamina-seedance-2-0-260128",
    "prompt": "Photorealistic style: under a clear blue sky, a vast expanse of white daisy fields stretches out. The camera gradually zooms in on a single daisy with glistening dewdrops on its petals.",
    "metadata": {
      "ratio": "16:9",
      "duration": 5,
      "watermark": true
    }
  }'

Imagen-a-vídeo — primer fotograma

Pasa un elemento de imagen con role: "first_frame":
curl https://api.orcarouter.ai/v1/video/generations \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "byteplus/dreamina-seedance-2-0-260128",
    "prompt": "the cat starts dancing energetically",
    "metadata": {
      "content": [
        { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" }, "role": "first_frame" }
      ],
      "ratio": "adaptive",
      "duration": 5,
      "generate_audio": true
    }
  }'

Imagen-a-vídeo — primer y último fotograma

Dos elementos de imagen, uno cada uno para first_frame y end_frame:
curl https://api.orcarouter.ai/v1/video/generations \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "byteplus/dreamina-seedance-2-0-260128",
    "prompt": "Create a 360-degree orbiting camera shot from start to end frame.",
    "metadata": {
      "content": [
        { "type": "image_url", "image_url": { "url": "https://example.com/start.jpg" }, "role": "first_frame" },
        { "type": "image_url", "image_url": { "url": "https://example.com/end.jpg" },   "role": "end_frame"   }
      ],
      "ratio": "16:9",
      "duration": 6
    }
  }'

Referencia multimodal — imagen + vídeo + audio

Combina elementos reference_image / reference_video / reference_audio. Referénciallos en el prompt con índices [Image N] / [Video N] / [Audio N] (base 1, por tipo):
curl https://api.orcarouter.ai/v1/video/generations \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "byteplus/dreamina-seedance-2-0-260128",
    "prompt": "Use the first-person POV framing from [Video 1] throughout, and use [Audio 1] as the background music. First-person POV fruit tea promotional ad: [Image 1] hands pick a dew-covered apple; [Image 2] holds the finished drink up to the camera.",
    "metadata": {
      "content": [
        { "type": "image_url", "image_url": { "url": "https://example.com/tea_pic1.jpg" }, "role": "reference_image" },
        { "type": "image_url", "image_url": { "url": "https://example.com/tea_pic2.jpg" }, "role": "reference_image" },
        { "type": "video_url", "video_url": { "url": "https://example.com/tea_video1.mp4" }, "role": "reference_video" },
        { "type": "audio_url", "audio_url": { "url": "https://example.com/tea_audio1.mp3" }, "role": "reference_audio" }
      ],
      "ratio": "16:9",
      "duration": 11,
      "generate_audio": true,
      "watermark": false
    }
  }'
Disponible en seedance-2.0 y seedance-2.0-fast (combinaciones completas imagen + vídeo + audio); seedance-1-5-pro y seedance-1-0-* solo aceptan elementos reference_image.

Edición de vídeo / extensión

Pasa {type: "video_url", role: "reference_video"} y pide al prompt que lo modifique o extienda:
curl https://api.orcarouter.ai/v1/video/generations \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "byteplus/dreamina-seedance-2-0-260128",
    "prompt": "Change all the fruits in [Video 1] into fresh fruits.",
    "metadata": {
      "content": [
        { "type": "video_url", "video_url": { "url": "https://example.com/source.mp4" }, "role": "reference_video" }
      ],
      "ratio": "adaptive",
      "duration": 6
    }
  }'
Disponible solo en seedance-2.0 y seedance-2.0-fast.

Webhooks

Pasa metadata.callback_url: "https://your.domain/webhook" para recibir un POST cuando la tarea transicione a SUCCESS o FAILURE. La carga útil refleja la respuesta de consulta. Si configuras tanto consulta como un callback, obtendrás ambos — son independientes.

Facturación

OrcaRouter pasa el cargo upstream por tarea y token sin recargo. El coste final coincide con la tarjeta de tarifas publicada de ByteDance Ark (los completion_tokens / total_tokens upstream del resultado de la tarea se convierten en cuota a la tasa por token del modelo configurada en tu configuración Channel Margin). Una pequeña reserva de pre-consumo se reserva al enviar; la diferencia se liquida al éxito. Ver Operaciones / Facturación y uso.

Véase también