Introducción
Seedance 1.5 Pro imagen a video empieza el clip en una imagen que tú proporcionas y la anima hasta por 12 segundos. Con camera_fixed activado, el encuadre se mantiene exactamente como está compuesto, y por eso este endpoint produce planos utilizables para composición.
ByteDance Seedance 1.5 Pro publica dos endpoints, texto a video e imagen a video. Ambos devuelven clips de 4 a 12 segundos en 480p, 720p o 1080p con audio nativo, y ambos tienen el interruptor camera_fixed.
Elige el modo de Seedance 1.5 Pro según tu material inicial
| Material inicial | Modo |
|---|---|
| Una imagen inicial aprobada | Seedance 1.5 Pro Imagen a video |
| Un guion o la descripción de una escena | Seedance 1.5 Pro Texto a video |
Funciones y aspectos destacados
camera_fixed fija el cuadro
Con false, el valor por defecto, el modelo inventa sus propios movimientos: una deriva, un avance, una órbita lenta. Con true la cámara se detiene mientras el sujeto sigue moviéndose dentro del cuadro. Un cuadro fijo se puede rastrear, recortar con chroma, componer o poner en loop, y ni Seedance 2.0 ni 2.5 tienen este interruptor.
Sonido en la misma pasada
generate_audio viene en true y genera ambiente, efectos de movimiento y voz sincronizados con los fotogramas. Pasa la solicitud a una tarifa más alta, así que apágalo para loops de producto y para planos que se van a musicalizar después.
Un techo claro
Los clips duran de 4 a 12 segundos completos en 480p, 720p o 1080p, en seis relaciones de aspecto fijas con 16:9 por defecto y sin opción adaptable. No hay endpoint de referencias; seed está disponible a 480p y 720p. Los trabajos que necesitan 4K, tomas más largas o un elenco de varias imágenes van en Seedance 2.0 o 2.5; lo que conserva 1.5 Pro es la cámara fija.
Parámetros de la solicitud
| Parámetro | Obligatorio | Descripción |
|---|---|---|
prompt | Sí | Obligatorio, y debería contar qué pasa después del fotograma en vez de repetir lo que ya se ve: la acción, el paso del tiempo, el sonido. mínimo 3 caracteres |
image_url | Sí | Enlace público y de descarga directa al primer fotograma; obligatorio. |
last_image_url | No | Fotograma de cierre opcional: envíalo junto con |
aspect_ratio | No | Encuadre de salida, seis valores fijos, 16:9 por defecto. |
resolution | No | Resolución de salida, 720p por defecto y 1080p como máximo; aquí no se ofrece nada más alto. Fija un escalón de tarifa. |
duration_seconds | No | Duración en segundos enteros, de 4 a 12, con 5 por defecto, y es la cantidad facturada. |
generate_audio | No | Determina si se renderiza una banda sonora nativa sincronizada con la imagen. Valor predeterminado: |
camera_fixed | No | Bloquea la cámara, false por defecto. Valor predeterminado: |
seed | No | Entero de 0 a 2147483647 para el arranque aleatorio; si lo omites, cada ejecución saca el suyo. |
Precios
| Resolución | Generar audio: No | Generar audio: Sí |
|---|---|---|
| $0.0112 / segundo | $0.0223 / segundo |
| $0.0227 / segundo | $0.0454 / segundo |
| $0.0491 / segundo | $0.0982 / segundo |
Casos de uso
Planos base para composición
Envía una imagen que ya aprobaste, activa camera_fixed y la composición se mantiene durante todo el clip mientras solo se mueve el sujeto. El resultado se comporta como material filmado con trípode: un fondo limpio para recortar, una superficie estable para rastrear un título, un plano que un editor puede meter en una secuencia real.
Productos en tornamesa y loops
Un cuadro fijo con un objeto girando es el caso clásico: nada se desvía, el horizonte sigue nivelado y el último fotograma queda lo bastante cerca del primero para hacer loop. Apaga generate_audio, porque un loop de producto casi nunca quiere sonido de ambiente.
Movimiento lento del entorno
El ejemplo publicado suma nieve que cae, vapor que sube y agua sobre una sola imagen, con un avance muy lento para que nada se pierda por la velocidad de la cámara. El clima, el humo y el agua son justo el tipo de movimiento que mejor luce una composición quieta.
Guía de prompts y consejos prácticos
Envía los dos campos obligatorios
Aquí prompt e image_url son obligatorios, y el prompt necesita al menos 3 caracteres. La imagen debe ser un JPEG, PNG o WebP público y descargable directamente, de menos de 10 MB. Los textos, marcas de agua y logotipos pasan al video, así que elimínalos antes.
Ajusta la relación de aspecto a la imagen
No hay opción adaptable y aspect_ratio usa 16:9 por defecto. Si la relación pedida no coincide con la imagen, el cuadro se reencuadra y el sujeto puede perder sus márgenes, así que elige la relación que corresponde a tu imagen.
Adapta el ejemplo incluido
El ejemplo publicado usa aspect_ratio 16:9, duration_seconds 5 y resolution 720p, con el audio en su valor por defecto.
Snow keeps falling through the lantern light and steam pours off the water. She sets the folded towel robe down on the rock and sinks slowly into the spring up to her collarbone, tipping her head back and exhaling a long plume of breath into the cold air. Steam swells across the frame and snow settles on her wet hair. Very slow push-in, warm lantern gold against deep blue snow.
La imagen aporta los faroles y el lugar; el prompt solo la hace hundirse en las aguas termales y exhalar. Mantén esa división cuando uses tu propia imagen.
Mantén el movimiento dentro de un cuadro fijo
Con camera_fixed en true, describe solo movimiento que ocurra dentro del cuadro, porque una instrucción de cámara y una cámara fija se contradicen. Confirma el movimiento en 4 o 5 segundos antes de alargar a 12, ya que una toma más larga se aleja más de su imagen de origen.
Inicio rápido de la API
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "bytedance/seedance-1.5-pro/image-to-video",
"input": {
"aspect_ratio": "16:9",
"duration_seconds": 5,
"generate_audio": true,
"image_url": "https://example.com/reference.png",
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "720p"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
Consulta la referencia de la API para autenticación, el esquema completo, sondeo y gestión de errores.
















