ByteDance: Seedance 1.5 Pro
ByteDance Seedance 1.5 Pro genera vídeo junto con diálogo sincronizado, efectos sonoros y música. Dirija los hablantes, las emociones, la cámara y la atmósfera sonora para desarrollar dramas breves, anuncios con voz y escenas de personajes.
Sobre el modelo
Esta descripción cubre las capacidades del modelo. Las entradas, salidas y opciones disponibles en Ailoot se indican a continuación para el método seleccionado.
Seedance 1.5 Pro es el modelo de ByteDance Seed para generación nativa conjunta de audio y vídeo. Modela la acción visual, la voz y el ritmo conjuntamente, lo que permite que una escena incluya la interpretación de un personaje, diálogo sincronizado y un entorno sonoro diseñado. La diferencia central frente a un encargo de vídeo exclusivamente visual es que el sonido pasa a formar parte de la descripción de la escena: quién habla, cómo se interpreta la frase y qué escucha el público alrededor de la acción.
Generación audiovisual conjunta
La gama de sonidos documentada incluye sonidos ambientales, efectos de acción, sonidos sintetizados, instrumentos, música de fondo y voces cantadas. El modelo está orientado a conectar el sonido con lo que sucede en pantalla: un objeto que golpea una mesa, una puerta que se abre o un personaje que habla. Utilícelo para un momento dramático breve, un anuncio de producto con voz o una escena cuyo ambiente dependa tanto de la interpretación como del sonido.
Comience la instrucción por el sujeto y el movimiento y después añada el entorno, la cámara, el estilo visual y el sonido. Una escena concisa podría ser: «Una cocinera levanta la tapa de una olla pequeña, sonríe y dice: “Ya está listo”. Sale una pequeña nube de vapor, seguida del suave tintineo de la tapa al apoyarse sobre la encimera». Esto da una causa visible a la frase hablada y a los efectos.
Diálogo y voz en off
El modelo admite monólogos y conversaciones con varios hablantes, con movimientos labiales ajustados a los personajes. Su guía documenta mandarín, dialectos chinos como cantonés, shaanxi y sichuanés, además de inglés, japonés, coreano, español e indonesio hablados. Los idiomas documentados de las instrucciones son chino e inglés; el idioma de la instrucción y el solicitado para una frase hablada son elecciones independientes.
Identifique a cada hablante mediante un rasgo visible coherente y escriba las frases entre comillas. Incluya indicaciones de interpretación, como voz calmada, respuesta dubitativa o ritmo más rápido, y haga explícita la alternancia de turnos. Para dos hablantes, describa quién habla primero y la reacción de quién muestra la cámara. Un intercambio breve que quepa en el clip elegido ofrece al modelo un objetivo de interpretación más claro que un pasaje largo con hablantes sin especificar.
La voz en off puede dirigirse mediante timbre, emoción, entonación y velocidad de habla. Resulta útil cuando la voz debe explicar un producto mientras la cámara permanece sobre él o cuando un narrador establece el ambiente sin hablante en pantalla. La guía describe mantener un timbre reconocible mientras cambia la interpretación; revise la redacción real, la pronunciación y la interpretación junto con la imagen.
Efectos sonoros y música de fondo
Describa los efectos como acontecimientos conectados con la acción: pasos cuando entra un personaje, lluvia que se intensifica fuera de una ventana o tela que se mueve al ponerse un abrigo. De forma predeterminada, se genera música de fondo adaptada a la instrucción. Especifique su ambiente, estilo y ritmo cuando sean relevantes e indique cuándo debe comenzar o desvanecerse en relación con la escena.
Para una demostración tranquila, pida música discreta y destaque los sonidos de manipulación del producto. Para una escena animada, describa el momento de acción que debe coincidir con el ritmo musical. La banda sonora generada es mono. El control de audio documentado también permite un vídeo silencioso cuando el proyecto necesita una banda sonora preparada por separado.
Transiciones de plano y dirección de cámara
El modelo admite cambios de plano con un tratamiento visual coherente, contraplanos para conversaciones e instrucciones sobre el momento de las transiciones. Una secuencia de diálogo útil puede presentar a dos hablantes en un plano medio, cortar al hablante que responde y volver a la reacción del primero. Indique la identidad de cada persona cuando cambie el plano.
La guía abarca ángulos picados, contrapicados y a la altura de los ojos; puntos de vista sobre el hombro y subjetivos; y encuadres amplios, medios y cercanos. Describa un movimiento de cámara mediante su composición inicial, dirección, amplitud y composición final. Por ejemplo, un acercamiento lento de cámara puede terminar en la expresión del hablante al concluir una frase. Conecte el movimiento con la historia, en lugar de enumerar varias técnicas de cámara sin propósito.
Modos, salida y previsualización
Los modos de entrada documentados son texto a vídeo, imagen a vídeo con primer fotograma e imagen a vídeo con primer y último fotograma. Una primera imagen preparada establece la composición inicial; una imagen final puede definir el extremo previsto. Las especificaciones de salida enumeran MP4 a 24 fps, 480p, 720p o 1080p y ajustes de duración de 4–12 segundos. El modelo también puede elegir una duración de segundos enteros dentro del intervalo compatible. Las relaciones documentadas son 21:9, 16:9, 4:3, 1:1, 3:4 y 9:16, con encuadre adaptable compatible.
El fabricante documenta un flujo Draft en dos fases: una previsualización de 480p para examinar la estructura de la escena, las elecciones de plano, el movimiento y la intención de la instrucción, seguida de una generación final que reutiliza las entradas creativas. Es una forma de juzgar la interpretación prevista antes de elegir su resolución final. La previsualización está limitada a 480p y no permite devolver el último fotograma. El ID de tarea Draft del fabricante sigue siendo válido durante siete días después de su creación; genere el vídeo final a partir de él dentro de ese plazo.
Para trabajos basados en imagen, prepare la imagen de origen para el encuadre previsto: cambiar la relación de salida puede recortarla. Una semilla repetida produce fotogramas similares, sin garantizar que sean idénticos, y una instrucción de cámara fija no garantiza un bloqueo perfecto. Sobre todo, juzgue un clip de diálogo como una sola interpretación audiovisual: el hablante correcto, la frase audible, la reacción facial y el énfasis de cámara deben apoyar el mismo acontecimiento.
Ailoot Ultra · Vídeo POST /v1/videos bytedance/seedance-1-5-pro
bytedance/seedance-1-5-proPrimeros pasos
ByteDance Seedance 1.5 Pro genera vídeo junto con diálogo sincronizado, efectos sonoros y música. Dirija los hablantes, las emociones, la cámara y la atmósfera sonora para desarrollar dramas breves, anuncios con voz y escenas de personajes.
- Entradas aceptadas
- Texto · Imágenes
- Resultados
- Vídeo
Disponible en Ailoot · entradas y métodos
Ailoot Ultra · Vídeo POST /v1/videos
- Tipos de entrada
text,image- Tipos de salida
video- Formato de salida
- bytes MP4 originales; sin normalización ni transcodificación
| Campo | Tipo | Requisito | Valores y límites | Predeterminado |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObligatorio | Valores y límites bytedance/seedance-1-5-pro | Predeterminado— |
Campoprompt | Tipostring | RequisitoObligatorio | Valores y límites | Predeterminado— |
Campoduration | Tipointeger | RequisitoObligatorio | Valores y límites 4, 5, 6, 7, 8, 9, 10, 11, 12 Mínimo: 1 Máximo: 600 | Predeterminado— |
Camporesolution | Tipostring | RequisitoOpcional | Valores y límites 480p, 720p, 1080p | Predeterminado— |
Campoaspect_ratio | Tipostring | RequisitoOpcional | Valores y límites 1:1, 3:4, 9:16, 9:21, 4:3, 16:9, 21:9 | Predeterminado— |
Campogenerate_audio | Tipoboolean | RequisitoOpcional | Valores y límites false, true Condiciones: Omitir esta opción selecciona el precio con audio. Establécela en false para seleccionar el precio sin audio. Comprueba has_audio en el resultado para saber si se ha devuelto una pista de audio. | Predeterminado— |
Campoframe_images | Tipoarray | RequisitoOpcional | Valores y límites Número mínimo de elementos: 1 Número máximo de elementos: 2 Contenido de entrada: Lista de objetos de fotograma. Cada objeto contiene type=image_url, image_url con url y frame_type. Usa una URL HTTPS de imagen y establece frame_type en first_frame o last_frame. Cada función de fotograma aparece como máximo una vez. Claves exactas: type, image_url, frame_type Condiciones: Estas claves describen cada objeto de fotograma; image_url solo contiene url. Omite frame_images para una solicitud que solo contenga texto. | Predeterminado— |
Campoinput_references | Tipoarray | RequisitoOpcional | Valores y límites | Predeterminado— |
Camposize | Tipostring | RequisitoOpcional | Valores y límites 480x480, 480x640, 480x854, 480x1120, 640x480, 720x720, 720x960, 720x1280, 720x1680, 854x480, 960x720, 1080x1080, 1080x1440, 1080x1920, 1080x2520, 1120x480, 1280x720, 1440x1080, 1680x720, 1920x1080, 2520x1080 Patrón: ^[1-9][0-9]*x[1-9][0-9]*$ | Predeterminado— |
Camposeed | Tipointeger | RequisitoOpcional | Valores y límites Mínimo: -9.223.372.036.854.775.808 Máximo: 9.223.372.036.854.775.807 | Predeterminado— |
Campocallback_url | Tipostring | RequisitoOpcional | Valores y límites Patrón: ^https:// | Predeterminado— |
Camposession_id | Tipostring | RequisitoOpcional | Valores y límites | Predeterminado— |
Campotrace | Tipoobject | RequisitoOpcional | Valores y límites | Predeterminado— |
Campouser | Tipostring | RequisitoOpcional | Valores y límites | Predeterminado— |
Combinaciones de materiales de entrada
Texto a vídeo · Una instrucción escrita. · Obligatorio: model, prompt, duration
Proporciona prompt como texto y duration en segundos enteros. Elige una resolución y una relación de aspecto compatibles, o un tamaño exacto de los enumerados.
model: Tipo: string · bytedance/seedance-1-5-pro
prompt: Tipo: string · Máximo de bytes UTF-8: 10.000 · Se requiere contenido distinto de espacios en blanco: Sí
Imagen a vídeo · Una instrucción escrita y una imagen del primer fotograma. · Obligatorio: model, prompt, duration, frame_images
frame_images es una lista. Cada objeto de fotograma incluye type, image_url y frame_type; image_url contiene url. Establece type en image_url. Usa first_frame con last_frame opcional. Cada función de fotograma aparece como máximo una vez. Proporciona una URL HTTPS pública de imagen para cada fotograma. Elige una resolución y una relación de aspecto compatibles, o un tamaño exacto de los enumerados.
Claves exactas: type, image_url, frame_type
model: Tipo: string · bytedance/seedance-1-5-pro
prompt: Tipo: string · Máximo de bytes UTF-8: 10.000 · Se requiere contenido distinto de espacios en blanco: Sí
Parámetros del método y ciclo de vida
| Parámetro | Contrato |
|---|---|
Parámetrocontent_type | Contratoapplication/json |
Parámetrorequired | Contratomodel, prompt, duration |
Parámetromaterial_types | Contratotext, image |
Parámetroadditional_properties | Contratofalse |
Parámetrooptional_controls | Contratoresolution, aspect_ratio, generate_audio, frame_images, input_references, size, seed, callback_url, session_id, trace, user |
Ciclo de vida: submit_once_poll_original
GET /v1/videos/{public_id}
GET /v1/videos/{public_id}/content
Planes
Cómo se calcula el cargo definitivo
Las tarifas mostradas estiman el coste antes de la generación. El cargo final se calcula a partir del coste registrado para la generación original. La duración medida del resultado y las cantidades previstas no constituyen la cantidad facturable final.
Las referencias tarifarias no añaden opciones a la solicitud. Los parámetros admitidos se indican en el método seleccionado.
- Modo rápido
- Sin especificar Cuando se selecciona el modo rápido
- Modo flex
- Sin especificar Cuando se selecciona el modo flex
- Esfuerzo máximo de razonamiento
- Sin especificar Cuando el esfuerzo máximo de razonamiento utiliza el ajuste predeterminado (default)
Tarifas estimadas para comparar
Precios por configuración
Relaciona cada cargo con las condiciones mostradas. Usa una tarifa para cada conjunto de configuraciones alternativas.
| Configuración | Tabla de tarifas | Cantidad prevista | Unidad de facturación | Condiciones de facturación | Cargo |
|---|---|---|---|---|---|
| ConfiguraciónTarifas base por token | Tabla de tarifasTarifa base | Cantidad prevista— | Unidad de facturación— | Condiciones de facturación— | Cargo Entrada · Tokens de entrada · Estimación solo para comparar — / 1K tokens Salida · Tokens de salida · Estimación solo para comparar — / 1K tokens Entrada · Lectura de caché · Estimación solo para comparar — / 1K tokens Entrada · Escritura en caché · Estimación solo para comparar — / 1K tokens Entrada · Escritura en caché, 1 hora · Estimación solo para comparar — / 1K tokens |
| ConfiguraciónPrecio por token de vídeo | Tabla de tarifas— | Cantidad prevista— | Unidad de facturaciónpor 1K tokens de vídeo | Condiciones de facturaciónNo se declara ninguna condición adicional en esta clave de precios. | Cargo Salida · Precio por token de vídeo · Estimación solo para comparar $0.0048 por 1K tokens de vídeo La tarifa por token de vídeo es la referencia principal de precios. Las estimaciones destacadas por segundo son referencias separadas, no un cargo adicional. |
| ConfiguraciónPrecio por token de vídeo | Tabla de tarifas— | Cantidad prevista— | Unidad de facturaciónpor 1K tokens de vídeo | Condiciones de facturaciónsonido: without_audio | Cargo Salida · Precio por token de vídeo · Estimación solo para comparar $0.0024 por 1K tokens de vídeo La tarifa por token de vídeo es la referencia principal de precios. Las estimaciones destacadas por segundo son referencias separadas, no un cargo adicional. |
| ConfiguraciónCoste estimado de generación | Tabla de tarifas— | Cantidad previstaestimación para una generación | Unidad de facturación— | Condiciones de facturación— | Cargo Salida · Coste estimado de generación · Estimación solo para comparar $0.05184 estimación previa a la generación Esta estimación no es un cargo adicional ni una tarifa fija para la generación completada. |
Ailoot reserva un importe estimado antes de la solicitud. Tras obtener el resultado, liquida el cargo definitivo según el uso medido. En las respuestas en flujo, la liquidación usa el registro de uso final. Cómo funcionan la reserva y la liquidación →
Detalles de la tarifa de referencia
Las tablas de referencia del modelo no cambian la selección del método, las estimaciones de coste ni los cargos. Los cargos aplicados usan las tarifas del método Ailoot seleccionado.
Referencias de precios de configuraciones de vídeo
Precios por configuración
Relaciona cada cargo con las condiciones mostradas. Usa una tarifa para cada conjunto de configuraciones alternativas.
| Configuración | Condiciones de facturación | Cargo |
|---|---|---|
| ConfiguraciónPrecio por token de vídeo | Condiciones de facturaciónNo se declara ninguna condición adicional en esta clave de precios. | Cargo Salida · Precio por token de vídeo $0.0048 por 1K tokens de vídeo La tarifa por token de vídeo es la referencia principal de precios. Las estimaciones destacadas por segundo son referencias separadas, no un cargo adicional. |
| ConfiguraciónPrecio por token de vídeo | Condiciones de facturaciónsonido: without_audio | Cargo Salida · Precio por token de vídeo $0.0024 por 1K tokens de vídeo La tarifa por token de vídeo es la referencia principal de precios. Las estimaciones destacadas por segundo son referencias separadas, no un cargo adicional. |
Solicitudes de ejemplo
Ailoot Ultra · Vídeo
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
from pathlib import Path
Path('request.json').write_text('{"aspect_ratio":"16:9","duration":8,"model":"bytedance/seedance-1-5-pro","prompt":"A serene mountain landscape at sunset","resolution":"720p"}', encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('result.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
Recibir y guardar resultados
Ailoot Ultra · Vídeo
URL firmadas de contenido bajo tu titularidad
GET /v1/videos/{public_id}GET /v1/videos/{public_id}/content
Consultar el estado de la tarea
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_STATUS_URL'
import json
from pathlib import Path
from urllib.parse import quote
r=json.loads(Path('result.json').read_text())
if not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')
Path('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))
PY_STATUS_URL
curl --fail-with-body --silent --show-error "$(cat status-url.txt)" \
-H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('status.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
Otras consultas de contenido
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path('status.json').read_text())
if r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')
if not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')
urls=[]
for i,u in enumerate(r.get('data',[])):
if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')
urls.append((str(i),u))
for label,path in urls:
u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)
if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')
target=Path('owned-'+label+'.bin')
subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)
print('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')
PY_ASSETS
Conserva todos los resultados completados
Guarda todos los vídeos completados o archivos recibidos; descarga cada URL de archivo que se haya devuelto.
Conserva todos los resultados reales bajo tu titularidad y los metadatos medidos que se devuelvan.
Si es necesario revisar la respuesta original
503 result_pending_check + originalid + X-Should-Retry:false; no repitas nunca la operación original
Campos de respuesta
| Campo | Tipo | Significado |
|---|---|---|
Campoindex | Tipointeger | SignificadoPosición de este vídeo en la lista de resultados, empezando por cero. |
Campocontent_url | Tipostring | SignificadoURL HTTPS firmada de descarga de este vídeo completado. |
Camposha256 | Tipostring | null | SignificadoHuella SHA-256 de los bytes del vídeo original; null si no está disponible. |
Camposize_bytes | Tipointeger | null | SignificadoTamaño del archivo de vídeo original en bytes; null si no está disponible. |
Campoduration_ms | Tipointeger | null | SignificadoDuración medida del vídeo en milisegundos; null si no está disponible. |
Campowidth | Tipointeger | null | SignificadoAnchura del vídeo en píxeles; null si no está disponible. |
Campoheight | Tipointeger | null | SignificadoAltura del vídeo en píxeles; null si no está disponible. |
Campovideo_codec | Tipostring | null | SignificadoIdentificador del códec de vídeo; null si no se ha registrado. |
Campohas_audio | Tipoboolean | null | SignificadoIndica si el vídeo contiene una pista de audio; null si no se ha medido. |
Campoaudio_codec | Tipostring | null | SignificadoIdentificador del códec de audio; null cuando no se ha registrado ninguno. |
Errores y siguientes pasos
| Respuesta | Condición | Siguiente paso |
|---|---|---|
Respuesta404 · not_found_error | CondiciónEl acceso al vídeo no está disponible o no se ha encontrado este ID de vídeo. | Siguiente pasoComprueba el acceso al vídeo. Para un vídeo existente, usa su ID público original y la misma clave API. |
Respuesta401 · authentication_error | CondiciónLa clave API no corresponde a la cuenta autenticada. | Siguiente pasoComprueba tu clave API y el acceso de tu cuenta antes de enviar la solicitud. |
Respuesta400 · invalid_request_error | CondiciónNo se ha podido leer la solicitud o el índice de descarga no es válido. | Siguiente pasoCorrige el cuerpo de la solicitud. Para una descarga, elige un índice de salida devuelto por la tarea original. |
Respuesta422 · price_unavailable | CondiciónNo se puede calcular el precio de la configuración de vídeo seleccionada. | Siguiente pasoElige una configuración de vídeo compatible y completa sus opciones obligatorias antes de enviar una solicitud corregida. |
Respuesta422 · invalid_request_error | CondiciónUna entrada de vídeo o la tarea original de continuación no es válida. | Siguiente pasoUsa entradas HTTPS válidas. Para continuar, usa el ID público de tu vídeo original completado con la misma clave API. |
Respuesta402 · billing_error | CondiciónEl saldo disponible o los límites no permiten efectuar una reserva. | Siguiente pasoComprueba tu saldo disponible y tus límites antes de enviar una nueva solicitud. |
Respuesta503 · server_error | CondiciónLa verificación del vídeo, el almacenamiento o el acceso al servicio no están disponibles temporalmente. | Siguiente pasoEspera a que el servicio esté disponible. Si ya tienes un ID de vídeo, comprueba esa tarea original en lugar de crear otra generación. |
Respuesta503 · result_pending_check | CondiciónEs necesario comprobar el resultado del vídeo original y el cargo. | Siguiente pasoConserva el ID de vídeo devuelto y comprueba esa tarea. No envíes una solicitud de generación sustitutiva mientras se esté comprobando. |
Respuesta503 · owned_result_unavailable | CondiciónLa descarga del vídeo existente no está disponible temporalmente. | Siguiente pasoComprueba más tarde la misma tarea de vídeo y descarga su resultado existente. Una nueva generación crea una operación independiente. |
Respuesta409 · video_not_ready | CondiciónEl contenido del vídeo no se ha publicado. | Siguiente pasoComprueba el estado de la tarea original. Descarga cuando indique completed; si indica failed, sigue su aviso de comprobación del cargo. |
Alias
Alias del modelo
Ailoot Ultra bytedance/seedance-1-5-pro
Alias de rutas de métodos
Usa las rutas de método indicadas arriba.
ID de modelo relacionados
FAQ · ByteDance: Seedance 1.5 Pro
- ¿Qué entradas y resultados están disponibles?
POST /v1/videos·bytedance/seedance-1-5-pro:text,image→video- ¿Qué campos utiliza la solicitud?
POST /v1/videos·bytedance/seedance-1-5-pro:model,prompt,duration,resolution,aspect_ratio,generate_audio,frame_images,input_references,size,seed,callback_url,session_id,trace,user- ¿Qué límites se aplican?
POST /v1/videos·bytedance/seedance-1-5-pro:duration.minimum:1;duration.maximum:600;frame_images.max_items:2;frame_images.min_items:1;seed.minimum:-9223372036854775808;seed.maximum:9223372036854775807