Tutorial
¿Cómo usar la API de texto a video de LTX 2.5 Fast? Tu primer video en 5 minutos
Convierte texto en videos con audio de 2–20 segundos: ejemplos en curl/Python, tabla de parámetros y advertencias.
TL;DR
- LTX 2.5 Fast Text to Video (
ltx-2.5-fast/text-to-video) convierte un texto en un video de 2–20 segundos, con 720p / 1080p, horizontal o vertical y audio nativo incluido. Abre la página del modelo para probarlo; los usuarios nuevos reciben 200 créditos al registrarse. - El precio se calcula por segundo: 720p a $0.043 por segundo ($0.258 por un video de 6 segundos), 1080p a $0.086 por segundo; el interruptor
generate_audiono afecta el precio. - Se llama a través de la interfaz
/v1/tasksde HiAPI: envía la tarea y obtén eltaskId, luego consulta el resultado; cuando termine correctamente, toma la URL del video desdeoutput(es una URL temporal, guárdala a tiempo).
Qué puede hacer
- Una toma con audio a partir de una frase: describe escena, movimiento, cámara y sonido en un mismo prompt; el audio se genera junto con la imagen.
- 2–20 segundos, 12 duraciones disponibles:
durationacepta 2, 3, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20; por defecto 6 segundos. - Horizontal/vertical y dos resoluciones: 16:9 / 9:16, 720p / 1080p; frecuencia de fotogramas fija a 25 fps en MP4.
- La misma familia también tiene imagen a video:
ltx-2.5-fast/image-to-videopermite subir un primer fotograma (y opcionalmente un último fotograma) para animar una imagen estática, con las mismas reglas de precio; consulta la página del modelo de imagen a video.
Cómo elegir entre las dos interfaces:
ltx-2.5-fast/text-to-video (esta página) |
ltx-2.5-fast/image-to-video |
|
|---|---|---|
| Entrada | Un texto | 1–2 imágenes + una frase que describe el movimiento |
| Ideal para | Explorar tomas desde cero, creatividad publicitaria, storyboards | Tienes una imagen de producto/foto y quieres animarla |
| Puntos controlables | Prompt, resolución, duración, relación de aspecto | Primer fotograma (+ último), prompt, resolución, duración |
En una frase: si el contenido visual aún no está definido, usa texto a video; si ya tienes la imagen, usa imagen a video; ambas interfaces se pueden encadenar: genera con texto a video el primer fotograma definitivo y luego pásalo a imagen a video para añadir movimiento de cámara.
Aquí tienes un resultado real (720p · 6 segundos, con audio nativo):
A barista pours steamed milk into a latte, creating a leaf pattern, close-up, soft morning light through a café window, gentle clinking cups and café ambience
(Significado en chino: una barista vierte leche vaporizada en un latte y crea un patrón de hoja, primer plano, luz suave de mañana a través de la ventana de una cafetería, tintineo suave de tazas y ambiente de cafetería. Parámetros por defecto: 720p, 6 segundos, 16:9, audio activado).

ltx-2.5-fast/text-to-video, 720p, 6 segundos, 16:9, 1280×720, con audio, $0.258.Ver el video completo →
Dos rutas para empezar
3 pasos en el navegador: abre la página del modelo → pega el prompt, elige duración y resolución → pulsa generar; un video de 720p y 6 segundos cuesta $0.258 y puedes previsualizarlo en línea en cuanto se genere.
3 pasos con la API: POST /v1/tasks para enviar → obtén el taskId → GET /v1/tasks/<taskId> hasta ver success y descarga.
curl: el primero
curl -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: your-unique-key-001" \
-d '{
"model": "ltx-2.5-fast/text-to-video",
"input": {
"prompt": "A barista pours steamed milk into a latte, creating a leaf pattern, close-up, soft morning light through a café window, gentle clinking cups and café ambience",
"resolution": "720p",
"duration": 6,
"aspect_ratio": "16:9",
"generate_audio": true
}
}'
Este de 720p × 6 segundos cuesta $0.258.
Python: enviar, consultar y descargar
import time, uuid, requests
BASE = "https://api.hiapi.ai/v1/tasks"
HEADERS = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
}
payload = {
"model": "ltx-2.5-fast/text-to-video",
"input": {
"prompt": "A barista pours steamed milk into a latte, creating a leaf pattern, close-up, soft morning light through a café window, gentle clinking cups and café ambience",
"resolution": "720p",
"duration": 6,
"aspect_ratio": "16:9",
"generate_audio": True,
},
}
resp = requests.post(
BASE,
headers={**HEADERS, "Idempotency-Key": str(uuid.uuid4())},
json=payload,
timeout=30,
)
resp.raise_for_status()
task_id = resp.json()["taskId"]
while True:
task = requests.get(f"{BASE}/{task_id}", headers=HEADERS, timeout=30).json()
print(task["status"])
if task["status"] in ("success", "fail"):
break
time.sleep(5)
if task["status"] == "success":
video = next(o for o in task["output"] if o.get("type") == "video")
video_url = video["url"] # URL temporal, descárgala y guárdala lo antes posible
mp4 = requests.get(video_url, timeout=120)
with open("output.mp4", "wb") as f:
f.write(mp4.content)
print("saved output.mp4")
Tabla de parámetros
| Campo | Obligatorio | Valores | Descripción |
|---|---|---|---|
prompt |
Sí | 1–5000 caracteres | Escribe todo en una frase: escena, movimiento, cámara, sonido |
resolution |
No | 720p / 1080p, por defecto 720p | 1080p cuesta aproximadamente el doble por segundo que 720p |
duration |
No | 2/3/4/5/6/8/10/12/14/16/18/20, por defecto 6 | Solo acepta estos valores enumerados (no hay 7 ni 9) |
aspect_ratio |
No | 16:9 / 9:16, por defecto 16:9 | Para videos verticales cortos elige 9:16 |
generate_audio |
No | Por defecto true | Audio nativo; desactivarlo no reduce el precio |
Si el cuerpo de la solicitud incluye un campo fuera de la tabla, devolverá directamente 400.
Errores que encontrarás
| Código de estado | Significado | Cómo resolverlo |
|---|---|---|
| 400 INVALID_REQUEST | Cuerpo de solicitud inválido (falta prompt, duration recibe un valor no enumerado como 7, se envía un campo fuera de la tabla) |
Corrige el cuerpo según la tabla de parámetros |
| 402 INSUFFICIENT_QUOTA | Saldo insuficiente (no se cobra) | Recarga y vuelve a intentarlo |
| 429 RATE_LIMITED | Se activó el límite de solicitudes | Reduce la frecuencia de envío |
| 409 / 422 IDEMPOTENCY_KEY_* | Se reenvió la misma clave de idempotencia | Usa una nueva Idempotency-Key |
Si la tarea falla en estado terminal, también puede devolver CONTENT_POLICY_VIOLATION, TASK_FAILED, TASK_TIMEOUT, etc.; los fallos no se cobran.
Antes de pasar a producción
- Callback: pasa
"callback": {"url": "https://..."}en el nivel superior del cuerpo de la solicitud para recibir una notificación automática al estado terminal; las tareas de video tardan bastante, así que se recomienda usarlo. - Guarda el resultado a tiempo: la URL del video en
outputes temporal; descárgala en cuanto la obtengas. - Especifica duration y resolution explícitamente: estos dos campos determinan la facturación; no dependas de los valores por defecto y registra ambos valores en los logs antes de producción para que la conciliación sea clara.
- Ritmo para lotes: un video de 6 segundos tarda un rato desde el envío hasta la generación; para tareas por lotes se recomienda enviar en cola y recibir los resultados por callback, sin esperar de forma síncrona bloqueando el proceso.
- Para animar una imagen estática: usa la página del modelo de imagen a video de la misma familia; subir el primer fotograma da más control.
Preguntas frecuentes
- Sí, el audio se genera junto con el video:
generate_audioestá activado por defecto; describe el sonido en el prompt (viento, tintineo de tazas) para que el audio encaje mejor con la imagen. - Sí, solo hay 12 duraciones: valores enumerados entre 2 y 20 segundos; si envías 7 segundos, 9 segundos, etc., devolverá 400.
- Sí, el precio = precio por segundo × segundos: 720p 6 segundos $0.258, 1080p 6 segundos $0.516; desactivar el audio no lo abarata.
- Sí, con $10 se generan unas 38 piezas: calculando con 720p 6 segundos cada una.
- Sí, para vertical elige 9:16: genera 720×1280 (720p) o 1080×1920 (1080p), sin necesidad de recortar para publicar en plataformas de video corto.
- Sí, se recomienda empezar con resolución baja y subir después: usa 720p para ajustar el prompt y la composición; cuando esté definido, sube a 1080p y vuelve a ejecutar el mismo prompt; el precio por segundo se duplica, pero solo hay una pieza final.
- Sí, desactivar el audio no ahorra dinero: si quieres doblaje o música en posproducción, envía
generate_audio: falsepara obtener una imagen limpia.
Siguiente paso: usa el prompt de latte art para generar tu primera pieza en la página del modelo; para ver cuatro plantillas de escenas, consulta la guía completa de prompts de texto a video.
Artículos relacionados
Ver todos los artículos →-
Tutorial
Cómo llamar a hailuo-2.3-fast/image-to-video a través de la API de HiAPI: práctica con curl y Python
La primera solicitud ejecutable del nivel rápido y de bajo coste de imagen a vídeo: del ID del modelo a la descarga del MP4
-
Tutorial
Cómo llamar a hailuo-2.3/text-to-video mediante la API de HiAPI: curl, Python y ejemplos de solicitud ejecutables
-
Tutorial
Uso de Kandinsky 6.0 Pro texto a video en HiAPI: tutorial con curl y Python
Demostración práctica centrada en la solicitud: construir la llamada de prompt a clip de video, enviar la solicitud, sondear el estado de finalización y descargar el resultado