Introducción
LTX 2.3 Spicy imagen a video anima un fotograma inicial sin censura, con indicaciones de movimiento opcionales y sin campo de audio.
LTX 2.3 Spicy es una versión LoRA sin censura basada en LTX 2.3 de Lightricks, publicada como endpoints de imagen a video y de video-extend; esta página trata el de imagen a video. El fotograma inicial que envías lleva el contenido, el prompt es opcional y una solicitud devuelve de 3 a 20 segundos completos en 480p, 720p o 1080p.
Funciones y aspectos destacados
Veinte segundos son una escena, no un loop
La mayoría de los endpoints de video sin censura se quedan en unos cinco o seis segundos, y eso obliga a convertirlo todo en loop. Veinte segundos en una sola generación alcanzan para un momento con inicio, giro y final, y la continuidad se resuelve dentro de la toma y no en una unión que tengas que esconder. Para pasar de veinte segundos, continúa el clip con el endpoint de extensión de video.
La imagen decide el contenido
No hay entrada solo de texto, y esa es la idea: lo que está en el cuadro, es decir, vestuario, cuerpo, pose y encuadre, es lo que se anima, así que tu material llega tal como lo enviaste en lugar de pasar por la reinterpretación de un codificador de texto. Resuelve primero la imagen en una pasada barata y la solicitud de video se vuelve una cuestión de movimiento.
Puedes enviar solo la imagen
El prompt es opcional. Un fotograma por sí solo produce un movimiento pequeño y creíble, que a menudo es todo lo que necesita un loop y hace trivial procesar en lote un set de fotos existente. Agrega texto solo cuando importa un momento concreto, y limítalo a lo que cambia en lugar de describir otra vez la imagen.
Parámetros de la solicitud
| Parámetro | Obligatorio | Descripción |
|---|---|---|
preset | No | Tuned es la combinación general que se mantiene al día. Original apenas aplica estilo: elígelo cuando el preajuste choca con el resultado que buscas. |
image_url | Sí | Obligatorio. La imagen que se anima: decide el contenido y la forma de salida. |
prompt | No | Opcional. Describe el momento, la cámara y el ritmo; no vuelvas a describir el cuadro. |
duration_seconds | No | Segundos enteros, de 3 a 20. Veinte es una generación, no una secuencia cosida. |
resolution | No | 480p, 720p o 1080p. Viene en 480p: súbelo para cualquier cosa que entregues. |
seed | No | Vuelve comparables dos corridas cuando cambias una variable. No es garantía de cuadro idéntico. |
Precios
| Especificación | Precio |
|---|---|
| $0.019 / segundo |
| $0.038 / segundo |
| $0.057 / segundo |
Casos de uso
Escenas que otras API rechazan
Los fotogramas se aceptan y se animan tal como llegan, así que el material que en otros lados rechaza el filtro de prompts funciona aquí. Como el contenido vive en la imagen y no en el texto, el clip coincide con el fotograma que aprobaste y no con una lectura suavizada de tus palabras.
Escenas de compañía de veinte segundos
Una sola generación cubre un acercamiento, una pausa y una mirada que se aparta: la forma que necesita un clip de compañía o de rol para sentirse como un momento y no como un loop de dos segundos repetido. Un fotograma, un prompt, una solicitud.
Movimiento en lote para un set existente
Como el prompt es opcional, un archivo de imágenes puede procesarse sin indicaciones por imagen: cada fotograma se convierte en un clip de tres segundos en 480p, y solo los que valen la pena reciben una pasada más larga en 1080p.
Guía de prompts y consejos prácticos
Primero haz el fotograma
Vestuario, cuerpo, pose y encuadre se resuelven en la pasada de imagen, porque la de video no los cambia. Exporta la imagen con la forma que quieres entregar: no hay campo de relación de aspecto para corregirla después.
Prueba en 480p, entrega una vez
Tres segundos en 480p cuestan poco para comprobar si un fotograma se anima bien. Cuando funcione, genera la duración completa en 720p o 1080p con el mismo seed y agrega el sonido en la edición, porque la pista que devuelve este endpoint suele venir muda o muy baja. Si el preset tuned por defecto choca con el estilo que escribiste, cambia preset a original, que casi no aplica estilo.
Adapta el ejemplo incluido
El ejemplo publicado usa duration_seconds 5 y resolution 720p, con una sola imagen como image_url.
She turns further toward the driver's seat, wet shirt clinging as she moves, pushes a soaked strand of hair back and mouths something with a tired smile. Rain streams down the windscreen, neon reflections crawl across the glass, wipers sweep once.
Una imagen más una nota de movimiento: el giro, el cabello y los limpiaparabrisas están escritos, mientras que la camisa mojada y el encuadre vienen del fotograma.
Revisa el resultado antes de iterar
El fotograma inicial se sigue de cerca y las imágenes llegan tal como se enviaron. Si usas prompt, limítalo al movimiento, porque un texto que contradice el fotograma obliga al clip a negociar entre ambos. Veinte segundos son una generación, no un recorte: un borrador de tres segundos y una versión final de veinte son pasadas distintas. La resolución viene en 480p por defecto, así que pide 720p o 1080p cuando vayas a entregar.
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": "lightricks/ltx-2.3-spicy/image-to-video",
"input": {
"duration_seconds": 5,
"image_url": "https://example.com/reference.png",
"preset": "tuned",
"resolution": "480p"
}
}'
# 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.












