HiAPI
Blog

Guía de uso

Veo 3.1 imagen a vídeo: convierte una imagen fija en un anuncio de vídeo corto a través de la API

De una imagen fija de producto de $0.03 a un anuncio vertical 9:16 con audio nativo en solo 115 segundos: ejecuta el flujo de trabajo completo de veo-3.1/image-to-video en la API de tareas de hiapi, con salidas reales, un bucle de borradores en el nivel rápido y una canalización de procesamiento por lotes.

Jul 13, 2026
Veo 3.1 imagen a vídeo: convierte una imagen fija en un anuncio de vídeo corto a través de la API

El vídeo corto tiene un problema aritmético de producción cruel: TikTok y Reels ganan por volumen de publicación, pero un solo anuncio de producto pulido puede consumir una tarde entera de rodaje, edición y diseño de sonido. El modelo de imagen a vídeo Veo 3.1 de Google (veo-3.1/image-to-video) comprime esta cadena de producción en dos llamadas a la API: una imagen fija barata, una tarea de vídeo, y devuelve un anuncio vertical con el audio nativo ya mezclado.

A continuación, la salida completa que esta canalización generó para este artículo. Una imagen de origen de $0.03, una llamada a la API, 115 segundos de espera:

Sube el volumen: el golpe sordo del aterrizaje, el pulso grave ambiental y el siseo de la niebla los genera todos el modelo. Aquí nada ha pasado por edición manual, corrección de color ni diseño de sonido. En esta guía construiremos este anuncio de principio a fin a través de la API de tareas de hiapi, y luego escalaremos el mismo flujo de trabajo a una canalización de procesamiento por lotes para producir variantes de formato corto.

Por qué imagen a vídeo es la herramienta correcta para el formato corto

Texto a vídeo es perfecto para explorar, pero el contenido comercial de formato corto normalmente parte de material que ya controlas: fotos de producto, imágenes de envase, fotogramas de cartel. Imagen a vídeo añade movimiento manteniendo intacta esa identidad visual. Para el formato TikTok/Reels, tres características de veo-3.1/image-to-video importan especialmente:

  1. La salida respeta el formato de la imagen que introduces. No hay parámetro aspect_ratio: el modelo hereda la composición de la imagen que le das. Dale una imagen fija vertical 9:16 y obtendrás un vídeo vertical 9:16. Los dos anuncios de este artículo se generaron exactamente a 1080×1920 y 720×1280 porque las imágenes fijas de origen son 9:16. Tu decisión de composición se toma una sola vez, en la fase de imagen.
  2. Audio nativo.Cada anuncio incluye una pista AAC de 48 kHz generada a partir de tu prompt: foley, ambiente y textura musical. Para el formato corto, el contenido silencioso en reproducción automática convierte peor que el que tiene sonido, y esto elimina todo un paso de edición.
  3. Resolución adaptada a la plataforma.720p para borradores, 1080p para el vertical con calidad de feed, 4k cuando el anuncio también sirve como máster para otras ubicaciones.

Estructura de los parámetros de entrada (validada contra la API en vivo)

Antes de escribir esta guía, sondeamos el endpoint en vivo. La estructura de parámetros es estricta: los campos desconocidos se rechazan con un 400, así que no adivines:

Campo Obligatorio Tipo Valor
prompt Recomendado string Indicaciones de movimiento, cámara y audio
image_url Sí string Una URL de imagen accesible públicamente
resolution Sí string 720p, 1080p, 4k
duration Sí integer 4, 6 u 8 (segundos)

Dos cuestiones que conviene saber de antemano: image_url es singular (es un modelo de una sola referencia, no un mezclador de varias imágenes) y la URL debe poder capturarse públicamente (alojada en tu propio CDN o almacenamiento de objetos; los enlaces firmados de localhost no sirven).

Paso 1: generar la imagen fija de origen

Cualquier imagen 9:16 sirve, incluidas fotos de producto reales. Generamos nuestra imagen de origen con gpt-image-2 por $0.03 para mantener toda la canalización dentro de una sola API:

curl -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2/text-to-image",
    "input": {
      "prompt": "Vertical product hero shot of a chunky retro basketball sneaker in wolf-gray suede with volt yellow laces, floating at a slight tilt above a wet concrete pedestal, dramatic teal-to-amber gradient backdrop, fine mist and dust particles suspended in hard rim light, ultra-sharp commercial product photography, no text, no logos",
      "aspect_ratio": "9:16",
      "resolution": "1K"
    }
  }'

Las reglas de composición para una buena imagen de origen para i2v son las mismas que le darías a un fotógrafo de bodegón, más una: deja margen para el movimiento. Nuestra zapatilla flota sobre el pedestal precisamente para que el modelo de vídeo tenga una acción física clara que ejecutar: hacer que la zapatilla caiga sobre la piedra. Un sujeto congelado a mitad de una acción le da a Veo una historia que completar; una imagen de envase estática y centrada no le da nada, y solo obtendrás relleno de cámara a la deriva.

Paso 2: enviar la tarea de vídeo

El mismo endpoint /v1/tasks, un modelo distinto. El prompt debe guiar tres canales a la vez: movimiento del sujeto, cámara y audio.

curl -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo-3.1/image-to-video",
    "input": {
      "prompt": "The sneaker slowly rotates about 90 degrees as the camera pushes in from a low angle. Dust particles drift through the rim light. The shoe settles onto the wet stone pedestal with a deep, satisfying thud, sending a soft ring of mist rolling off the edges. A warm light sweep travels across the suede texture. Subtle bass-heavy electronic pulse builds in the background with a low whoosh on the landing. Cinematic product commercial, smooth stabilized motion, no text overlays.",
      "image_url": "https://your-cdn.example.com/stills/sneaker-916.jpg",
      "resolution": "1080p",
      "duration": 6
    }
  }'

La respuesta devuelve inmediatamente un ID de tarea:

{"code": 200, "data": {"taskId": "tk-hiapi-01KXCTHP6F6VXQ9XZCSCCEEEMM"}, "message": "success"}

Fíjate en que el prompt está escrito en el orden de reproducción del anuncio: rotación → acercamiento → aterrizaje → barrido de luz, con las indicaciones de audio adjuntas al momento al que pertenecen (el "golpe sordo" al aterrizar, con el pulso debajo). Veo sigue el orden de eventos del prompt de forma muy literal, y eso es precisamente lo que lo hace scriptable.

Paso 3: sondear y descargar

La tarea de vídeo es asíncrona. Sondea la tarea hasta que status cambie a success y luego descarga la salida de inmediato: esa URL es un enlace temporal con marca de tiempo expireAt, no almacenamiento permanente:

import os, time, requests

API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"}

def wait_and_download(task_id: str, out_path: str, timeout_s: int = 900):
    deadline = time.time() + timeout_s
    while time.time() < deadline:
        task = requests.get(f"{API}/{task_id}", headers=HEADERS, timeout=30).json()["data"]
        if task["status"] == "success":
            url = task["output"][0]["url"]          # temp link — expires!
            clip = requests.get(url, timeout=120).content
            with open(out_path, "wb") as f:
                f.write(clip)                        # persist to your own storage now
            return out_path
        if task["status"] == "fail":
            raise RuntimeError(task.get("error"))
        time.sleep(10)
    raise TimeoutError(task_id)

En nuestra ejecución, el anuncio de 6 segundos en 1080p tardó 115 segundos desde el envío hasta la finalización. Es lo bastante rápido como para integrarlo en una canalización de contenido sin necesidad de ponerle una cola delante.

Borradores baratos, acabado refinado: flujo de trabajo de dos niveles

Veo 3.1 tiene un nivel rápido, veo-3.1-fast/image-to-video, con exactamente la misma estructura de entrada y a menos de la mitad del precio por segundo. Esto habilita un flujo de trabajo tomado de la fotografía: hacer una polaroid antes de quemar carrete. Itera tu prompt de movimiento en el nivel rápido a 720p y vuelve a renderizar solo el prompt ganador en el nivel estándar.

Aquí está el borrador rápido con el prompt y la imagen fija de origen idénticos (6 segundos, 720p, $1.50, completado en 58 segundos):

El borrador captura los mismos tiempos: rotación, aterrizaje, niebla, pero con un detalle de textura claramente más simple y una mezcla de audio más plana. Para iterar prompts, eso es todo lo que necesitas: lo que estás revisando es la coreografía, no el acabado final. Los dos anuncios de este artículo se rodaron a la primera; el nivel rápido es tu forma de asegurarte de que la toma del nivel estándar sea la única que pagas.

Escalar a producción por lotes

La estrategia de formato corto es un juego de volumen: quieres de 5 a 10 variantes por producto para probar ganchos. Como todo pasa por un único endpoint asíncrono, el procesamiento por lotes es solo un bucle: envía todas las tareas primero y luego recógelas.

STILLS = [
    ("sneaker-916.jpg",  "rotates and lands on the pedestal with a deep thud..."),
    ("bottle-916.jpg",   "condensation beads race down the glass as camera orbits..."),
    ("headphones-916.jpg","earcup unfolds in slow motion, soft click, synth swell..."),
]

task_ids = []
for still, motion in STILLS:
    r = requests.post(API, headers=HEADERS, json={
        "model": "veo-3.1-fast/image-to-video",   # draft tier for the first sweep
        "input": {
            "prompt": motion,
            "image_url": f"https://your-cdn.example.com/stills/{still}",
            "resolution": "720p",
            "duration": 6,
        },
    }, timeout=60).json()
    task_ids.append(r["data"]["taskId"])

for i, tid in enumerate(task_ids):
    wait_and_download(tid, f"draft-{i}.mp4")

Enviar primero y recoger después importa: los anuncios se generan de forma concurrente en el lado de la plataforma, así que diez borradores tardan aproximadamente lo que uno, no diez veces más.

Cuánto cuesta

Según los precios de hiapi, ambos niveles facturan por segundo de vídeo de salida:

Modelo Precio Anuncio de 4 s Anuncio de 6 s Anuncio de 8 s
veo-3.1/image-to-video $0.57/s $2.28 $3.42 $4.56
veo-3.1-fast/image-to-video $0.25/s $1.00 $1.50 $2.00

Todo lo que se muestra en este artículo (una imagen fija de origen, una imagen de portada, un borrador rápido y una versión final en 1080p) costó $4.98 en API. Un flujo de trabajo con tres borradores rápidos más una versión final estándar cuesta unos $8 por vertical terminado, un orden de magnitud completamente distinto al de un día de rodaje.

Preguntas frecuentes

¿Cómo controlo la relación de aspecto? No puedes: la salida hereda el formato de la imagen de entrada. Para TikTok/Reels, genera o recorta la imagen fija de origen en 9:16 antes de enviarla. Nuestra imagen fija 9:16 generó exactamente una salida de 1080×1920.

¿El audio es realmente generado? Sí. Los dos anuncios anteriores incluyen una pista AAC de 48 kHz generada por el modelo: foley (el golpe sordo al aterrizar), ambiente y textura musical, todo guiado por el prompt. En el prompt, describe los sonidos en el momento en que deben ocurrir.

¿Cuánto tarda la generación? En nuestras ejecuciones medidas: 58 segundos para un anuncio rápido de 6 s/720p y 115 segundos para un anuncio estándar de 6 s/1080p. Presupuesta unos minutos por anuncio y usa el patrón de enviar todo primero y recoger después para el procesamiento por lotes.

¿Puedo usar fotos de producto reales en lugar de imágenes fijas generadas? Por supuesto: es el caso de uso principal. La imagen solo tiene que poder capturarse públicamente mediante una URL. Mantén el sujeto nítido, deja margen para el movimiento y describe en el prompt el movimiento que quieres.

¿Cuándo merece la pena pagar por 4k? Cuando el vertical también sirve como activo máster: recorta la fuente 4k para ubicaciones de feed, imagen principal de la web y unidades de pago. Para entrega solo en feed, 1080p es la resolución a la que la plataforma transcodifica finalmente.

Publica tu primer anuncio

Toda la canalización son dos POST más un sondeo: entra una imagen fija, sale un anuncio vertical con sonido, en unos dos minutos. Consigue tu API key, apunta los fragmentos de código de arriba a tu mejor foto de producto y ejecuta un borrador rápido en 720p: $1.50 por seis segundos, la prueba de cámara más barata que puedes encargar. Los parámetros completos y ejemplos en vivo están en la página del modelo veo-3.1/image-to-video, y si estás comparando motores i2v, nuestras recetas de prompts de imagen a vídeo de Hailuo 2.3 son ideales para una comparación lado a lado.

Artículos relacionados

Ver todos los artículos →

Empieza a crear con artefactos de IA persistentes

Consigue tu API key y llama a modelos de imagen, vídeo y audio a través de una única API basada en tasks.

Leer la documentación de la API