Guía de uso
Veo 3.1 Lite imagen a video: convierte fotos en clips cortos con la API de hiapi
Flujo de trabajo paso a paso de imagen a video, precios reales y un ejemplo de API listo para ejecutar.
Resumen rápido
- Qué es: un flujo de trabajo real, de extremo a extremo, que usa veo-3.1-lite/image-to-video en la API de hiapi para convertir una sola foto estática en un clip vertical corto con audio nativo. Cada imagen, cada prompt y cada llamada a la API de esta página es la salida real de las solicitudes que se muestran.
- Por qué el contenido de formato corto encaja con imagen a video: puedes controlar por completo la composición, la presencia de marca y el encuadre del producto en una imagen estática, y luego dejar que el modelo añada movimiento y sonido ambiente, en lugar de confiar en que un prompt de texto a video genere justo la toma que quieres.
- Datos verificados de la API: la tarea acepta exactamente cinco campos de entrada:
prompt,image_url(una sola URL pública, no un array),duration(4, 6 u 8 segundos),resolution(720po1080p) ygenerate_audio(booleano). El schema es estricto: cualquier otro campo se rechaza. - Coste real: un clip de 4 segundos en 720p con audio nativo cuesta $0.40 ($0.10/segundo); con el audio desactivado baja a $0.24 ($0.06/segundo). Consulta las tarifas actuales en pricing.
- Tiempo real de renderizado: el clip de 4 segundos incrustado abajo tardó aproximadamente 55 segundos desde el envío de la tarea hasta tener un archivo descargable.
Por qué imagen a video encaja con el contenido de formato corto
Los clips al estilo TikTok y Reels se juegan todo en el primer fotograma, la miniatura sobre la que la gente decide si hacer clic. El texto a video es una apuesta en cuanto a composición: describes una escena y confías en que el modelo la encuadre como necesitas. Imagen a video le da la vuelta a esto. Primero fijas la toma exacta con una imagen estática: la colocación del producto, la luz, la relación de aspecto; y luego le entregas al modelo únicamente el movimiento: qué debe flotar, echar vapor, ondear o moverse ligeramente mientras la cámara permanece fija.
Esa división del trabajo es precisamente para lo que sirve veo-3.1-lite/image-to-video: le das una foto y un prompt de movimiento, y devuelve un MP4 con soporte nativo de 9:16 y audio sincronizado, sin que tengas que tocar un editor de video.
Demostración: una foto estática, y luego en movimiento
Para que el contenido sea más concreto, ejecutamos todo el proceso con un sujeto sencillo: un latte de matcha helado, compuesto como lo haría una cuenta de recetas de bebidas o de cafetería para un feed vertical.
Paso 1: la foto de origen

Esta imagen estática se generó con gpt-image-2/text-to-image con una relación de aspecto 9:16, usando este prompt exacto:
A vertical 9:16 studio product photograph of an iced matcha latte in a clear glass
on a white marble countertop, visible ice cubes and vivid green matcha layered against
milk, soft warm morning sunlight streaming in from the left casting a long soft shadow,
a small bamboo matcha whisk and a light wooden scoop with loose matcha powder resting
beside the glass, fine condensation droplets on the glass exterior, a blurred
cream-and-beige kitchen background with shallow depth of field, warm natural color
grade, high-resolution commercial beverage photography, no text, no watermark,
no hands, no logos
Cualquier imagen estática sirve, siempre que sea una URL pública: una foto real de producto, una captura de pantalla o, como aquí, una imagen estática generada por IA.
Paso 2: darle movimiento
Esta es la salida real: un MP4 de 4 segundos, 720p y 9:16, con audio sincronizado, generado a partir de la imagen estática anterior y el siguiente prompt de movimiento:
Camera holds a slow, steady static shot with no camera movement or zoom. Gentle
wisps of steam rise from the iced matcha latte, fine condensation droplets slowly
trickle down the glass, and the ice cubes shift subtly with a soft clink. Warm
morning sunlight flickers gently as if from a light breeze outside a nearby window.
Soft ambient cafe background sound with a faint ceramic clink and quiet room tone.
Observa que este prompt apenas describe el sujeto en sí: la foto ya lo define. Solo describe qué debe moverse y qué debe oírse, que es justamente el sentido de usar imagen a video en lugar de texto a video para una toma ya compuesta.
Realizar la llamada a la API
En el fondo, todos los modelos de hiapi, de imagen o de video, siguen el mismo patrón de tarea asíncrona: enviar, consultar, descargar. Para veo-3.1-lite/image-to-video, la solicitud tiene este aspecto:
curl -s -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1-lite/image-to-video",
"input": {
"prompt": "Camera holds a slow, steady static shot with no camera movement or zoom. Gentle wisps of steam rise from the iced matcha latte...",
"image_url": "https://your-cdn.example.com/still.jpg",
"duration": 4,
"resolution": "720p",
"generate_audio": true
}
}'
Esto devuelve inmediatamente un taskId. Consúltalo hasta que el estado cambie a success y luego obtén el archivo desde output[0].url: el enlace caduca, así que descárgalo de inmediato en lugar de enlazarlo directamente:
import subprocess, json, time
def animate_still(token, image_url, prompt, duration=4, resolution="720p", audio=True):
def curl(args):
r = subprocess.run(
["curl", "-s", "--max-time", "60", *args,
"-H", f"Authorization: Bearer {token}"],
capture_output=True, check=True,
)
return json.loads(r.stdout)
payload = {
"model": "veo-3.1-lite/image-to-video",
"input": {
"prompt": prompt,
"image_url": image_url,
"duration": duration,
"resolution": resolution,
"generate_audio": audio,
},
}
task = curl(["-X", "POST", "https://api.hiapi.ai/v1/tasks",
"-H", "Content-Type: application/json",
"-d", json.dumps(payload)])
task_id = task["data"]["taskId"]
while True:
status = curl([f"https://api.hiapi.ai/v1/tasks/{task_id}"])["data"]
if status["status"] in ("success", "fail"):
break
time.sleep(5)
if status["status"] != "success":
raise RuntimeError(status.get("error"))
return status["output"][0]["url"] # download immediately — this link expires
Este es el mismo patrón documentado para cualquier modelo basado en tareas de hiapi, y es el que usamos para renderizar el clip anterior.
Qué acepta realmente el schema
Lo verificamos manualmente contra el endpoint en vivo, así que tómalo como un hecho y no como una suposición:
prompt: una cadena que describe el movimiento (y el sonido, sigenerate_audioestá activado).image_url: una sola URL pública. No es un array como el que usan otros modelos i2v de la plataforma: pasar una lista aquí falla.duration: entero, solo4,6u8segundos. No se acepta ningún otro valor.resolution:"720p"o"1080p".generate_audio: booleano. Activa o desactiva el audio nativo sincronizado.- El schema es estricto: si envías un campo no reconocido, la solicitud se rechaza de inmediato en lugar de ignorarse en silencio.
Cuánto cuesta realmente un clip
El precio se calcula por segundos de salida y depende de la resolución y de si el audio está activado (a fecha de septiembre de 2026; antes de hacer un presupuesto a gran escala, consulta la página de precios en vivo):
720pcon audio: $0.10/segundo; un clip de 4 segundos cuesta $0.40.720psin audio: $0.06/segundo; el mismo clip baja a $0.24.1080pcon audio: $0.14/segundo.1080psin audio: $0.10/segundo.
Para un calendario de contenido de formato corto, ahí está la verdadera palanca: un lote de diez clips de 4 segundos en 720p con audio cuesta unos $4.00; el mismo lote sin audio cuesta $2.40. Si el diseño sonoro importa para la publicación (ruido ambiente de cafetería, el chasquido táctil del producto, pasos), deja el audio activado: esa es la diferencia entre un clip de demostración y una pieza que parece grabada en el lugar.
Si necesitas más de 8 segundos por clip, o quieres controlar el movimiento de cámara de forma independiente con duraciones más largas, hiapi también ofrece veo-3.1-fast (mayor fidelidad, desde $0.25/segundo) y el nivel insignia veo-3.1 (desde $0.57/segundo); ambos admiten texto a video e imagen a video. Sin embargo, para la mayoría de los cortes sociales de formato corto, lite es la opción predeterminada correcta: cuesta una fracción y la salida ya está ajustada para clips verticales de menos de 10 segundos.
Para otro enfoque del mismo problema de video corto —clips más largos, más control manual sobre el primer y el último fotograma— también calculamos el coste de montar un flujo de trabajo de video corto con seedance-2.0-mini, que cambia la generación de audio nativo a partir de una foto por duraciones de hasta 15 segundos y una tarifa por segundo más baja.
Preguntas frecuentes
¿veo-3.1-lite/image-to-video acepta varias imágenes de referencia?
No. image_url solo acepta una URL pública. Si necesitas un modelo que combine varias imágenes de referencia, esa es otra llamada: antes de asumir que es igual a esta, consulta la página propia de ese modelo para conocer su schema de entrada exacto.
¿Se puede obtener un clip de más de 8 segundos en una sola llamada?
Con lite, no. El campo duration solo acepta 4, 6 u 8. Para videos individuales más largos, consulta otros modelos de video en la colección de API de video de la plataforma, varios de los cuales admiten duraciones de más de 15 segundos.
¿La salida ya incluye audio nativo, o tengo que añadir sonido en posproducción?
Si generate_audio es true, el MP4 devuelto ya incluye una pista de audio AAC sincronizada, sin necesidad de un paso separado de diseño de audio. Si vas a musicalizar el clip tú mismo o no necesitas sonido ambiente, ponlo en false.
¿Realmente necesito un modelo de video, o la salida de gpt-image-2 ya se puede publicar tal cual?
Muchos feeds de formato corto mezclan contenido estático y en movimiento, así que una imagen estática generada con gpt-image-2/text-to-image ya es una publicación decente por sí misma. Imagen a video sirve para cuando la plataforma (o la escena actual) necesita movimiento —detalles de producto, comparaciones sutiles de antes y después, bucles— sin volver a rodar.
¿Qué pasa si envío un duration no válido (por ejemplo, 5)?
La solicitud se rechaza antes de crear ninguna tarea: recibes un error de schema de inmediato en lugar de desperdiciar un renderizado.
¿Listo para probarlo? La página del modelo veo-3.1-lite/image-to-video tiene un playground en vivo donde puedes poner tu propia foto y tu prompt antes de escribir una sola línea de código.
Artículos relacionados
Ver todos los artículos →-
Guía de uso
seedream-5.0-pro/image-to-image: guía de introducción — capacidades, precios y puntos clave de integración
Límites de capacidad, modelo de facturación y prácticas de integración técnica del modelo de edición de imágenes de ByteDance
-
Guía de uso
Guía de inicio de seedream-5.0-pro texto a imagen: límites de capacidad, integración de API y control de costes
Perspectiva práctica para desarrolladores: desde los puntos clave de los parámetros hasta la estimación de coste de $0.05 por imagen
-
Guía de uso
Guía de inicio de Hailuo 2.3 Fast de imagen a video: límites de capacidad, precios e integración práctica
Claves de selección e integración del modelo MiniMax de imagen a video para desarrolladores