ByteDance: Seedance 1.5 Pro
ByteDance Seedance 1.5 Pro genera video junto con diálogo sincronizado, efectos sonoros y música. Dirige hablantes, emociones, cámara y atmósfera sonora para desarrollar dramas cortos, 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 conjunta nativa de audio y video. Modela juntos acción visual, habla y ritmo, permitiendo incluir actuación de un personaje, diálogo sincronizado y un paisaje sonoro diseñado. La diferencia central respecto a un encargo solo visual es que el sonido pasa a formar parte de la descripción: quién habla, cómo interpreta la línea y qué escucha el público alrededor de la acción.
Generación audiovisual conjunta
La gama documentada de sonido incluye sonidos ambientales, efectos de acción, sonidos sintetizados, instrumentos, música de fondo y voces cantadas. El modelo busca conectar el sonido con lo que ocurre en pantalla: un objeto que golpea una mesa, una puerta que se abre o un personaje que habla. Úsalo para un momento dramático breve, un anuncio de producto con voz o una escena cuyo ambiente dependa de interpretación y sonido.
Empieza la instrucción por sujeto y movimiento; añade entorno, cámara, estilo visual y sonido. Una escena concisa podría ser: «Un chef levanta la tapa de una olla pequeña, sonríe y dice: “Ya está listo”. Sale una ráfaga suave de vapor, seguida por el tintineo discreto de la tapa al descansar sobre la encimera». Así, la línea hablada y los efectos tienen una causa visible.
Diálogo y voz en off
El modelo admite monólogos y conversaciones con varios hablantes, con movimientos de labios asociados a los personajes. La guía documenta mandarín, dialectos chinos como cantonés, de Shaanxi y de Sichuan, y habla en inglés, japonés, coreano, español e indonesio. Los idiomas de instrucciones documentados son chino e inglés; el idioma de la instrucción y el solicitado para una línea hablada son elecciones separadas.
Identifica a cada hablante con un rasgo visible consistente y escribe las líneas entre comillas. Incluye indicaciones como voz tranquila, respuesta dubitativa o ritmo más rápido, y explicita los turnos. Para dos hablantes, describe quién empieza y de quién muestra la cámara la reacción. Un intercambio breve que quepa en el clip elegido da un objetivo de interpretación más claro que un pasaje largo con hablantes indefinidos.
La voz en off puede dirigirse mediante timbre, emoción, entonación y velocidad. Sirve cuando la voz explica un producto mientras la cámara permanece sobre él o un narrador establece el ambiente sin hablante en pantalla. La guía describe mantener un timbre reconocible al cambiar la interpretación; revisa redacción, pronunciación e interpretación reales junto con la imagen.
Efectos sonoros y música de fondo
Describe efectos como eventos ligados a la acción: pasos cuando entra un personaje, lluvia que aumenta fuera de una ventana o tela que se mueve al ponerse un abrigo. Por defecto, se genera música de fondo acorde con la instrucción. Especifica ambiente, estilo y ritmo cuando importen e indica cuándo empezar o desvanecerse respecto a la escena.
Para una demostración tranquila, pide música discreta y destaca los sonidos de manipulación del producto. Para una animación, describe el momento de acción que debe coincidir con el ritmo musical. La banda sonora generada es mono. El control documentado de audio también permite video silencioso cuando el proyecto necesita una banda sonora preparada por separado.
Transiciones de tomas y dirección de cámara
El modelo admite cambios de toma con tratamiento visual consistente, contraplanos para conversación e instrucciones sobre el momento de transición. Una secuencia útil de diálogo puede presentar a dos hablantes en plano medio, cortar al que responde y volver a la reacción del primero. Indica la identidad de cada persona cuando cambie la toma.
La guía cubre ángulos altos, bajos y a la altura de los ojos; vistas sobre el hombro y subjetivas; y encuadres generales, medios y cercanos. Describe un movimiento mediante composición inicial, dirección, amplitud y composición final. Por ejemplo, un acercamiento lento puede terminar en la expresión de quien habla al finalizar la línea. Conecta el movimiento con la historia en vez de enumerar técnicas de cámara sin propósito.
Modos, salida y vista previa
Los modos documentados de entrada son texto a video, imagen a video con primer fotograma y con primero y último. Una primera imagen preparada establece la composición inicial; una final puede definir el punto de llegada. Las especificaciones 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 en segundos enteros dentro de su intervalo. Las relaciones son 21:9, 16:9, 4:3, 1:1, 3:4 y 9:16, con encuadre adaptativo compatible.
El fabricante documenta un flujo Draft en dos etapas: vista previa de 480p para revisar estructura, tomas, movimiento e intención, seguida de una generación final que reutiliza las entradas creativas. Permite evaluar una interpretación planeada antes de elegir resolución final. La vista previa está limitada a 480p y no permite devolver el último fotograma. El ID de tarea Draft del fabricante conserva validez siete días desde su creación; genera el video final a partir de él dentro de ese plazo.
Para trabajo basado en imagen, prepara la fuente para el encuadre previsto: cambiar la relación de salida puede recortarla. Repetir una semilla produce fotogramas similares, sin garantizar igualdad, y una instrucción de cámara fija no garantiza un bloqueo perfecto. Sobre todo, evalúa el clip de diálogo como una interpretación audiovisual única: hablante correcto, línea audible, reacción facial y énfasis de cámara deben apoyar el mismo evento.
Ailoot Ultra · Video POST /v1/videos bytedance/seedance-1-5-pro
bytedance/seedance-1-5-proInicio
ByteDance Seedance 1.5 Pro genera video junto con diálogo sincronizado, efectos sonoros y música. Dirige hablantes, emociones, cámara y atmósfera sonora para desarrollar dramas cortos, anuncios con voz y escenas de personajes.
- Entradas aceptadas
- Texto · Imágenes
- Resultados
- Video
Disponible en Ailoot · entradas y métodos
Ailoot Ultra · Video POST /v1/videos
- Entrada
text,image- 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. Revisa has_audio en el resultado para saber si se devolvió 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: Arreglo de objetos de fotograma. Cada objeto tiene type=image_url, image_url que contiene 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 puede aparecer como máximo una vez. Claves exactas: type, image_url, frame_type Condiciones: Estas claves describen cada objeto de fotograma; image_url contiene únicamente url. Omite frame_images para una solicitud de solo 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 video · 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 la lista.
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 video · Una instrucción escrita y una imagen del primer fotograma. · Obligatorio: model, prompt, duration, frame_images
frame_images es un arreglo. Cada objeto de fotograma tiene 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 puede aparecer 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 la lista.
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
Tarifas
Cómo se calcula el cargo definitivo
Las tarifas mostradas permiten estimar el costo antes de la generación. El cargo final se calcula a partir del costo registrado para la generación original. La duración medida de la salida y las cantidades estimadas no son 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 fast
- Sin especificar Cuando se selecciona el modo fast
- Modo flex
- Sin especificar Cuando se selecciona el modo flex
- Esfuerzo máximo de razonamiento
- Sin especificar Cuando el esfuerzo máximo de razonamiento usa el ajuste 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 video | Tabla de tarifas— | Cantidad prevista— | Unidad de facturaciónpor 1K tokens de video | Condiciones de facturaciónNo se declara ninguna condición adicional en esta clave de precios. | Cargo Salida · Precio por token de video · Estimación solo para comparar $0.0048 por 1K tokens de video La tarifa por tokens de video es la referencia principal de precio. Las estimaciones destacadas por segundo son referencias independientes, no un cargo adicional. |
| ConfiguraciónPrecio por token de video | Tabla de tarifas— | Cantidad prevista— | Unidad de facturaciónpor 1K tokens de video | Condiciones de facturaciónconfiguración de audio: without_audio | Cargo Salida · Precio por token de video · Estimación solo para comparar $0.0024 por 1K tokens de video La tarifa por tokens de video es la referencia principal de precio. Las estimaciones destacadas por segundo son referencias independientes, no un cargo adicional. |
| ConfiguraciónCosto estimado de generación | Tabla de tarifas— | Cantidad previstaestimación para una generación | Unidad de facturación— | Condiciones de facturación— | Cargo Salida · Costo 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 por la generación completada. |
Ailoot reserva un monto 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 cotizaciones ni los cargos. Los cargos aplicados usan las tarifas del método Ailoot seleccionado.
Referencias de precios por configuración de video
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 video | Condiciones de facturaciónNo se declara ninguna condición adicional en esta clave de precios. | Cargo Salida · Precio por token de video $0.0048 por 1K tokens de video La tarifa por tokens de video es la referencia principal de precio. Las estimaciones destacadas por segundo son referencias independientes, no un cargo adicional. |
| ConfiguraciónPrecio por token de video | Condiciones de facturaciónconfiguración de audio: without_audio | Cargo Salida · Precio por token de video $0.0024 por 1K tokens de video La tarifa por tokens de video es la referencia principal de precio. Las estimaciones destacadas por segundo son referencias independientes, no un cargo adicional. |
Solicitudes de ejemplo
Ailoot Ultra · Video
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 · Video
URL firmadas de contenido que te pertenece
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 videos completados o archivos recibidos; descarga cada URL de archivo que se haya devuelto.
Conserva cada salida real que te pertenezca y los metadatos medidos que se devuelvan con ella.
Si es necesario revisar la respuesta original
503 result_pending_check + id original + X-Should-Retry:false; nunca repitas el envío original
Campos de respuesta
| Campo | Tipo | Significado |
|---|---|---|
Campoindex | Tipointeger | SignificadoPosición de este video en la lista de salidas, con índice que comienza en cero. |
Campocontent_url | Tipostring | SignificadoURL HTTPS firmada de descarga de este video completado. |
Camposha256 | Tipostring | null | SignificadoResumen SHA-256 de los bytes del video original; null si no está disponible. |
Camposize_bytes | Tipointeger | null | SignificadoTamaño del archivo de video original en bytes; null si no está disponible. |
Campoduration_ms | Tipointeger | null | SignificadoDuración medida del video en milisegundos; null si no está disponible. |
Campowidth | Tipointeger | null | SignificadoAncho del video en píxeles; null si no está disponible. |
Campoheight | Tipointeger | null | SignificadoAlto del video en píxeles; null si no está disponible. |
Campovideo_codec | Tipostring | null | SignificadoIdentificador del códec de video; null si no se registró. |
Campohas_audio | Tipoboolean | null | SignificadoIndica si el video contiene una pista de audio; null si no se midió. |
Campoaudio_codec | Tipostring | null | SignificadoIdentificador del códec de audio; null cuando no se registra ningún identificador. |
Errores y siguientes pasos
| Respuesta | Condición | Siguiente paso |
|---|---|---|
Respuesta404 · not_found_error | CondiciónEl acceso al video no está disponible o no se encontró este ID de video. | Siguiente pasoVerifica el acceso al video. Para un video existente, usa su ID público original y la misma clave API. |
Respuesta401 · authentication_error | CondiciónLa clave API no coincide con la cuenta autenticada. | Siguiente pasoRevisa tu clave API y el acceso de tu cuenta antes de enviar. |
Respuesta400 · invalid_request_error | CondiciónNo se pudo 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 cotizar la configuración de video seleccionada. | Siguiente pasoElige una configuración de video compatible y completa sus opciones obligatorias antes de enviar una solicitud corregida. |
Respuesta422 · invalid_request_error | CondiciónUna entrada de video o la tarea original de continuación no es válida. | Siguiente pasoUsa entradas HTTPS válidas. Para una continuación, usa el ID público de tu video original completado con la misma clave API. |
Respuesta402 · billing_error | CondiciónEl saldo disponible o los límites no permiten reservar fondos. | Siguiente pasoRevisa tu saldo disponible y tus límites antes de enviar una solicitud nueva. |
Respuesta503 · server_error | CondiciónLa verificación del video, 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 video, consulta esa tarea original en lugar de crear otra generación. |
Respuesta503 · result_pending_check | CondiciónEl resultado y el cargo del video original requieren verificación. | Siguiente pasoConserva el ID de video devuelto y consulta esa tarea. No envíes una solicitud de generación de reemplazo mientras se verifica. |
Respuesta503 · owned_result_unavailable | CondiciónLa descarga del video existente no está disponible temporalmente. | Siguiente pasoConsulta más tarde la misma tarea de video y descarga su salida existente. Una generación nueva crea una operación independiente. |
Respuesta409 · video_not_ready | CondiciónEl contenido del video no se ha publicado. | Siguiente pasoConsulta el estado de la tarea original. Descarga cuando indique completed; si indica failed, sigue su aviso de verificació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