Tutorial
¿Cómo usar la API de imagen a vídeo de Grok Imagine 1.5 Lite? Haz que tus fotos cobren vida
Convierte una imagen en un vídeo de 1–15 s con sonido: precio con costo de imagen de entrada incluido, la relación de aspecto sigue a la imagen y ejemplos en curl/Python.
TL;DR
- Grok Imagine 1.5 Lite Image to Video (
grok-imagine-1.5-lite/image-to-video) sube 1 imagen y la hace moverse: 1–15 segundos, con sonido propio y la relación de aspecto sigue a la imagen de entrada. Abre la página del modelo, sube una imagen y pruébalo; los usuarios nuevos reciben 200 créditos al registrarse. - Precio = precio por segundo × segundos + $0.015 por imagen de entrada: 720P 6 segundos cuesta $0.273; 480P $0.189; 1080P $1.215.
- La llamada se hace a través de la interfaz
/v1/tasksde HiAPI:image_urles una cadena (no un array), exactamente 1 dirección pública.
Qué puede hacer
- Convierte una foto en una toma con sonido: el movimiento, el movimiento de cámara y los efectos de sonido se describen en el prompt, mientras el sujeto de la imagen se mantiene igual al original.
- La relación de aspecto sigue a la imagen de entrada: imagen horizontal da 16:9 (1264×720), imagen vertical da 9:16 (720×1264), imagen cuadrada da 1:1 (960×960), 4:3 da 1104×816; los píxeles se redondean a los tamaños admitidos y la proporción no cambia.
- Cualquier número entero de segundos entre 1 y 15, con tres niveles de resolución.
- Texto a vídeo de la misma serie: para generar desde cero, consulta la guía de integración de texto a vídeo; ambas interfaces tienen el mismo precio (la de imagen añade $0.015 por imagen de entrada) y usan el mismo /v1/tasks; el código solo cambia en model y image_url.
Cómo leer la tabla de precios:
- «Precio por segundo × segundos» es el costo del vídeo en sí, exactamente igual que en texto a vídeo;
- $0.015 es el cargo adicional por la imagen de entrada, una cantidad fija por cada vídeo, independientemente de la resolución y la duración;
- Por eso, con los mismos parámetros, imagen a vídeo cuesta $0.015 más que texto a vídeo: 720P 6 segundos $0.258 + $0.015 = $0.273. Para un lote de mil vídeos, esa diferencia es de $15, así que hay que preverla en el presupuesto.
Aquí tienes un resultado real (foto de surf → toma de seguimiento de 6 segundos, con sonido de olas incluido):
The wave curls and breaks behind the surfer as he carves down its face, white spray bursts and sparkles in the golden backlight, water rushes past. Smooth tracking camera following the surfer. Loud ocean surf and rushing water. Keep the photo realistic. No text, no logos.
(Significado en chino: la ola se curva y rompe detrás del surfista mientras él desciende por su cara, el rocío blanco estalla y brilla en la contraluz dorada. Cámara de seguimiento suave siguiendo al surfista. Sonido fuerte de oleaje y agua corriendo. Mantén el aspecto realista de la foto. Sin texto, sin logotipos).
· 
grok-imagine-1.5-lite/image-to-video, 720P, 6 segundos, 16:9, 1264×720, con sonido propio, $0.273 (incluye $0.015 de imagen de entrada).Ver el vídeo completo →
Precio: precio por segundo + costo de imagen de entrada
| Nivel | Por segundo | 6 segundos por vídeo (incluye $0.015 de imagen de entrada) |
|---|---|---|
| 480P | $0.029 | $0.189 |
| 720P (predeterminado) | $0.043 | $0.273 |
| 1080P | $0.20 | $1.215 |
Precio actual de HiAPI, verificado el 23 de octubre de 2026. image_url es obligatorio, así que cada vídeo incluye esos $0.015; 1080P cuesta $0.2 por segundo (unas 4.65 veces 720P); para exploración por lotes usa 480P. Los fallos no se cobran.
Dos rutas para empezar
3 pasos en el navegador: abre la página del modelo → sube la imagen y escribe la descripción del movimiento → pulsa generar.
3 pasos por API: POST /v1/tasks para enviar → obtén taskId → consulta GET /v1/tasks/<taskId> hasta que aparezca 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": "grok-imagine-1.5-lite/image-to-video",
"input": {
"prompt": "The wave curls and breaks behind the surfer as he carves down its face, white spray bursts and sparkles in the golden backlight, water rushes past. Smooth tracking camera following the surfer. Loud ocean surf and rushing water. Keep the photo realistic. No text, no logos.",
"image_url": "https://static.hiapi.ai/gallery/2026/10/3f75ff28db9e0070.png",
"duration": 6,
"resolution": "720p"
}
}'
Ten en cuenta que image_url es una cadena y solo se pasa una imagen; si pasas un array, devuelve 400.
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": "grok-imagine-1.5-lite/image-to-video",
"input": {
"prompt": "The wave curls and breaks behind the surfer as he carves down its face, white spray bursts and sparkles in the golden backlight, water rushes past. Smooth tracking camera following the surfer. Loud ocean surf and rushing water. Keep the photo realistic. No text, no logos.",
"image_url": "https://example.com/your-image.png",
"duration": 6,
"resolution": "720p",
},
}
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")
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 |
|---|---|---|---|
image_url |
Sí | Cadena, exactamente 1 dirección pública | La proporción de salida sigue a esta imagen |
prompt |
Sí | 1–4096 caracteres | Describe el movimiento o cambio deseado, incluidos los efectos de sonido |
duration |
No | Cualquier número entero de 1 a 15, predeterminado 6 | |
resolution |
No | 480p / 720p / 1080p, predeterminado 720p |
Si el cuerpo de la solicitud contiene campos fuera de la tabla, devuelve 400 directamente.
Errores que encontrarás
| Código de estado | Significado | Cómo resolverlo |
|---|---|---|
| 400 INVALID_REQUEST | Cuerpo de solicitud no válido (falta image_url, se pasa image_url como array o se pasa un campo fuera de la tabla) |
Usa image_url como cadena |
| 402 INSUFFICIENT_QUOTA | Saldo insuficiente (no se cobra) | Recarga y vuelve a intentarlo |
| 429 RATE_LIMITED | Se activó el límite de frecuencia | Reduce la frecuencia de envío |
| 409 / 422 IDEMPOTENCY_KEY_* | Envío duplicado con la misma clave de idempotencia | Cambia a una nueva Idempotency-Key |
También hay fallos en el estado final de la tarea como CONTENT_POLICY_VIOLATION, TASK_FAILED, TASK_TIMEOUT, etc.; los fallos no se cobran.
Antes de lanzar
- Callback: las tareas de vídeo tardan mucho; pasa
"callback": {"url": "https://..."}en el nivel superior para ahorrarte el sondeo. - Guarda cuanto antes: la dirección del vídeo en
outputes temporal; descárgala en cuanto la recibas y guárdala en tu propio almacenamiento; no uses enlaces temporales como biblioteca de material. - La misma imagen puede reutilizarse: cambiar el prompt genera un nuevo vídeo (nuevo cobro), ideal para producir rápidamente con la misma imagen de producto un conjunto completo de material de presentación con movimientos de cámara desde varios ángulos.
- No olvides los $0.015 al calcular: para presupuestos por lotes usa «precio por segundo × segundos + $0.015 × número de vídeos».
- El sonido no se puede desactivar: si quieres material sin sonido, edítalo en posproducción; el precio no cambia.
Preguntas frecuentes
- Sí, cada vídeo tiene sonido propio: si escribes efectos de sonido en el prompt (olas, pisadas en la nieve) se generan con el vídeo, y no hay opción para desactivarlos.
- Sí, la relación de aspecto sigue a la imagen de entrada: una imagen 16:9 da 1264×720, una cuadrada da 960×960; los píxeles se redondean y la proporción no cambia.
- Sí,
image_urles una cadena, solo 1 imagen; pasar un array o varias imágenes devuelve 400. - Sí, la duración es cualquier número entero de 1 a 15 segundos: 5–6 segundos para una acción, más de 10 segundos para una acción continua.
- Sí, la calidad de la imagen de entrada marca el límite del resultado: una imagen pequeña y borrosa no se vuelve nítida al moverse; da siempre que puedas una imagen original nítida de 720p o más.
- Sí, hay fórmula para calcular por lotes: precio por segundo × segundos + $0.015 × número de vídeos; 720P 6 segundos, cien vídeos cuestan $27.30; mil vídeos, $273.00.
Siguiente paso: toma una foto tuya y haz que cobre vida en la página del modelo; para ver cuatro escenarios, consulta la guía completa de prompts de imagen a vídeo.
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