Guía de uso
Ray 3.2 图生视频:convierte imágenes estáticas en clips verticales cortos
Convierte las fotos de producto y los retratos que ya tienes en clips de vídeo 9:16, más un truco de bucle sin cortes con end_image_url que hemos validado
TL;DR
- Qué es: un flujo de trabajo repetible que usa ray-3.2/image-to-video sobre la API de tareas asíncronas de hiapi para convertir imágenes estáticas que ya tienes (por ejemplo, fotos de producto o retratos) en clips verticales cortos.
- El hecho clave que lo determina todo: ray-3.2 i2v no tiene el campo
aspect_rationi el campoduration. La forma del clip proviene de la imagen de entrada y la duración es siempre de unos 5 segundos. Para obtener un vertical 9:16, introduce una imagen estática 9:16. Ahí está todo el truco. - Novedades respecto a nuestro tutorial anterior: el schema ahora acepta el campo opcional
end_image_url(último fotograma). Si usas la misma imagen como primer y último fotograma, obtienes un clip que termina donde empezó, que es justo lo que hace falta para un bucle sin cortes. - Validación: cada clip de abajo se generó para este artículo en un único lote fan-out. Tres clips a 540p, $0.2145 cada uno ($0.6435 en total), con un tiempo de servidor de 41–58 segundos por clip. Los tres se devolvieron como MP4 de 540×960, 24fps, 5,04 s, sin audio.
A la mayoría de los equipos de vídeo corto no les faltan ideas. Tienen montones de fotos de producto, estáticos publicitarios y retratos de creadores, pero nunca los ponen en movimiento. La generación de vídeo a partir de imagen resuelve eso: tu imagen sigue siendo el ancla y el modelo se encarga de añadir el movimiento. Esta guía cubre ese trabajo de principio a fin con Ray 3.2: preparar la imagen estática, escribir el prompt de movimiento, procesar por lotes, el truco del bucle y qué corregir en la edición.
¿Imagen a vídeo o texto a vídeo? ¿Cuál necesitas?
Ray 3.2 tiene dos endpoints independientes en hiapi, pensados para tareas distintas de vídeo corto:
- Imagen a vídeo (esta página): ya tienes la imagen. El modelo debe conservar tu producto, tu modelo y tu iluminación, y solo añadirle animación. Sirve para exhibiciones de producto, catálogos para Reels, estáticos de creadores y cualquier clip donde la fidelidad a la marca importe más que la novedad.
- Texto a vídeo: tienes la idea pero no el material. El modelo compone el plano entero. Si es tu caso, nuestro flujo de trabajo de vídeo corto con texto a vídeo de Ray 3.2 cubre cómo generar conceptos solo con prompts y por lotes.
Los dos flujos de trabajo son realmente distintos. En texto a vídeo eliges el formato vertical pasando aspect_ratio: "9:16". En imagen a vídeo ese campo no existe, así que la composición se decide antes de la llamada a la API, al preparar la imagen estática.
La petición: tres campos obligatorios o habituales y uno nuevo opcional
Revisamos el schema campo por campo contra la API en vivo el 2026-11-01. Es cerrado, así que las claves desconocidas devuelven un 400:
| Campo | Obligatorio | Valores | Descripción |
|---|---|---|---|
prompt |
Sí | Texto | Describe el movimiento, no la escena. La escena ya está en tu imagen |
image_url |
Sí | URL pública | Primer fotograma. Determina la relación de aspecto de la salida |
resolution |
No | 540p, 720p, 1080p |
Lo único que pagas (ver más abajo) |
end_image_url |
No | URL pública | Último fotograma opcional. Añadido desde que se escribió nuestra guía práctica |
duration y aspect_ratio se siguen rechazando directamente (additional properties 'duration' not allowed). Otros nombres de último fotograma que podrías suponer, como last_frame_url, tail_image_url o end_frame_url, también se rechazan de la misma forma. El campo es end_image_url y no otro.
Un único clip vertical:
curl -s https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "ray-3.2/image-to-video",
"input": {
"prompt": "Slow cinematic push-in toward the serum bottle, a single water droplet slides down the amber glass...",
"image_url": "https://your-cdn.example.com/serum-9x16.jpg",
"resolution": "540p"
}
}'
Obtienes data.taskId. Consulta GET /v1/tasks/{taskId} hasta que data.status sea success (o fail), y luego descarga output[0].url de inmediato, porque es un enlace temporal con expireAt. La guía práctica tiene el script completo de Python para enviar, consultar y descargar, además de las cargas de error, y el inicio rápido cubre las claves y los fundamentos de la API de tareas.
Precios: la resolución es la única palanca
Precios en vivo de ray-3.2/image-to-video (tomados de los precios de hiapi en el momento de escribir; compruébalos siempre de nuevo allí):
| Resolución | Precio por clip |
|---|---|
| 540p | $0.2145 |
| 720p | $0.429 |
| 1080p | $1.7145 |
La duración del clip es fija y la relación de aspecto viene de tu imagen, así que nunca pagas un extra por el vertical ni tienes una opción de «clip más largo» con la que subirte de categoría. Un clip a 1080p cuesta lo mismo que ocho a 540p. Por eso el patrón para vídeo corto es el mismo que con cualquier modelo de vídeo que cobra por clip: prueba el movimiento a 540p y luego vuelve a renderizar solo el prompt + imagen estática ganadores a 720p o 1080p para la versión que vayas a publicar. Para el panorama completo de costes de Ray 3.2 en ambos endpoints, consulta el desglose de precios de la API de Ray 3.2.
Paso 1: prepara una imagen estática 9:16 (de aquí sale el vertical)
El modelo no puede recomponer tu plano, así que la imagen estática debe estar bien antes de enviarla:
- Hazla 9:16. Usamos imágenes estáticas de 720×1280. A
540pse devolvieron como 540×960, vertical nativo, sin necesidad de recortar después. Una foto de producto horizontal te dará un clip horizontal, así que recórtala o extiéndela primero a 9:16. - Deja margen para el movimiento. El movimiento de cámara empuja hacia dentro del encuadre. Nuestra imagen estática del serum tenía mucho fondo vacío sobre el frasco, y el push-in aprovechó ese espacio sin recortar el tapón.
- Pon el gancho en la propia imagen. El primer fotograma del clip es tu imagen, así que cualquier cosa que frene el deslizamiento (producto, rostro, luz) tiene que estar ya en la imagen estática.
Las dos imágenes estáticas de este artículo se generaron con gpt-image-2 como imágenes 9:16 nativas. En el uso real, pondrás tus propias fotos de producto o retratos:

Paso 2: describe el movimiento, no la escena
La imagen ya dice qué hay en el plano. El prompt solo tiene que decir cómo se mueve. Tres cosas que funcionaron en este lote:
- Indica un movimiento de cámara (push-in, deriva suave, cámara fija) y aclara qué debe quedarse quieto.
- Dale al sujeto uno o dos golpes físicos, como una gota de agua que resbala, un barrido de luz o el pelo que se levanta con el viento. Esto es lo que hace que un clip de 5 segundos parezca vivo en lugar de un paneo estilo Ken Burns.
- Elige un movimiento adecuado al tipo de material. El producto necesita cambios de luz y sombra lentos y controlados. Los retratos aguantan movimientos más amplios y cálidos.
Clip de producto (el clip de portada de arriba). Prompt:
Slow cinematic push-in toward the serum bottle, a single water droplet slides
down the amber glass, a band of warm light sweeps across the bottle from left
to right and makes the gold cap glint, the background stays dark and still,
premium skincare commercial
El push-in y el barrido de luz funcionaron bien, y la forma del frasco y el tapón dorado se mantuvieron. Un aviso honesto: cuando la luz barrió, la perilla de goma negra del cuentagotas se volvió de un color más claro, casi metálico. En un SKU real, ese es justo el tipo de deriva de detalle que señalaría el equipo de marca. Revisa los detalles del producto fotograma a fotograma antes de publicar; si una pieza concreta se desvía de forma persistente, prueba una instrucción de barrido de luz más débil o mantén el movimiento en el fondo.
Retrato / imagen estática de creador. Prompt:
The wind lifts her curls, she turns her head slightly toward the camera and
her half-smile widens into a warm smile, the golden-hour backlight flickers
through her hair, the camera holds steady with a very gentle drift, natural
lifestyle feel
El rostro, el jersey y la luz de la hora dorada se mantuvieron coherentes, y el giro de cabeza y la sonrisa quedaron bien. Eso sí, el movimiento de cámara de Ray 3.2 fue mayor de lo que sugiere «una deriva muy suave»: al llegar al último fotograma, ella ya se había desplazado al otro lado del encuadre y el horizonte de detrás también se había movido. En planos de personas, cuenta con que el modelo interprete tu prompt de movimiento con cierta libertad. Si necesitas una imagen fija, dilo claramente, como hicimos en el prompt del bucle de abajo.
Paso 3: el truco del bucle con end_image_url
Los bucles funcionan muy bien en los feeds de vídeo corto. Un clip que puede reiniciarse sin cortes se repite solo, y también sirve de fondo para subtítulos o etiquetas de producto. El campo opcional end_image_url de Ray 3.2 lo pone fácil: usa la misma imagen estática como primer y último fotograma y el modelo tendrá que volver al punto de partida.
{
"model": "ray-3.2/image-to-video",
"input": {
"prompt": "Seamless loop: the warm light slowly brightens and dims across the serum bottle, water droplets glisten, a faint wisp of mist drifts past the stone and fades out, the camera stays locked off, the bottle does not move",
"image_url": "https://your-cdn.example.com/serum-9x16.jpg",
"end_image_url": "https://your-cdn.example.com/serum-9x16.jpg",
"resolution": "540p"
}
}
Lo medimos en lugar de juzgarlo a ojo. Extraemos el primer y el último fotograma de cada clip y los comparamos con SSIM (1,0 significa idénticos):
| Clip | end_image_url |
SSIM primer fotograma vs. último |
|---|---|---|
| Bucle (misma imagen estática como último fotograma) | Sí | 0,958 |
| Push-in de producto | No | 0,654 |
| Retrato | No | 0,410 |
Con el último fotograma fijado, el clip termina casi exactamente donde empezó, lo bastante cerca como para que una repetición simple en el editor o en la reproducción automática de la plataforma no muestre un salto visible. Sin fijarlo, el clip termina en una posición nueva, lo cual va bien para un corte pero no para un bucle. Dos cosas que conviene recordar:
- Mantén el movimiento del bucle cíclico. Que la luz suba y baje, que la niebla entre y salga, cámara fija: todo eso vale. Un push-in no puede «volver» de forma creíble en cinco segundos.
- Solo probamos bucles con la misma imagen. Pasar un último fotograma distinto (por ejemplo, la caja cerrada al principio y abierta al final) es justo para lo que está pensado el campo, pero no validamos esos resultados aquí, así que pruébalo antes de basar una campaña en ello.
Paso 4: procesamiento por lotes: primero fan out, luego recoge
La API de tareas es asíncrona, así que no renderices un clip cada vez. Envía primero todos los pares imagen estática + prompt, guarda cada taskId en disco en el momento en que lo recibas y luego consulta:
for each (still, prompt) pair:
taskId = POST /v1/tasks (model=ray-3.2/image-to-video, input={...})
persist taskId immediately # the task is billed at submit
for each saved taskId:
poll GET /v1/tasks/{taskId} until status in ("success", "fail")
on success: download output[0].url now (it expires)
Nuestro lote de tres clips se envió de forma consecutiva y los tiempos de servidor fueron de 44 s (producto), 41 s (bucle) y 58 s (retrato). Como se ejecutan en paralelo, el lote entero tardó más o menos lo que el clip más lento, algo más de un minuto en tiempo real contando el intervalo de consulta de 8 s. Si una consulta falla por un problema de red, reintenta con el mismo id. Volver a enviar la tarea crea y factura un segundo clip.
Paso 5: termina en el editor
La API te da material en bruto, no una publicación terminada:
- Sin audio. Los tres clips tienen solo un flujo de vídeo H.264 y ninguna pista de audio. Añade en el editor un sonido en tendencia, una voz en off o subtítulos.
- 5 segundos son un compás. Apila tres o cuatro clips (por ejemplo, push-in de producto → bucle como fondo de subtítulos → reacción del creador), móntalos en una versión de 15–20 segundos y haz cortes secos al ritmo.
- Escala solo los ganadores. Vuelve a ejecutar la imagen estática + prompt elegidas a 720p o 1080p para la exportación final, en lugar de renderizar todo el lote en alta resolución.
FAQ
¿Cómo se obtiene un clip vertical 9:16 con ray-3.2 imagen a vídeo? Proporciona una imagen de entrada 9:16. No hay parámetro aspect_ratio y la salida adopta la forma de la entrada. Una imagen estática de 720×1280 se devuelve a 540p como un clip de 540×960.
¿Puedo hacer que el clip dure más de 5 segundos? Con este endpoint, no. No hay campo duration y enviarlo devuelve un 400. Todos los clips que generamos duran 5,04 s (121 fotogramas a 24fps). Apila clips en la edición para obtener versiones más largas.
¿Ray 3.2 i2v admite último fotograma? Sí. El campo opcional end_image_url fija el fotograma final. Pasar la misma imagen como image_url da un clip reproducible en bucle (en nuestra prueba, SSIM de 0,958 entre el primer y el último fotograma).
¿Genera sonido? No, el MP4 de salida no tiene audio.
¿Mantiene mi producto exactamente igual? En nuestras pruebas, la forma, el color y la composición general se mantuvieron bien, pero las piezas pequeñas pueden desviarse con movimientos de luz intensos (el color de la perilla de nuestro cuentagotas cambió). Revisa los detalles del producto antes de publicar.
¿Cuánto cuesta un lote? Solo se cobra por resolución y número de clips: $0.2145 a 540p, $0.429 a 720p y $1.7145 a 1080p. Nuestro lote de prueba de tres clips costó $0.6435.
Empieza a dar movimiento a tus imágenes estáticas
Ray 3.2 imagen a vídeo ya está disponible en la API de tareas asíncronas. Abre la página del modelo ray-3.2/image-to-video para ver los parámetros y precios actuales, y luego toma tres imágenes estáticas 9:16 que ya tengas y ejecútalas a 540p. Tendrás un lote de prueba por bastante menos de un dólar. ¿Comparas modelos para la misma tarea? Mira cómo aborda Kling 3.0 el vídeo corto a partir de imagen.
Artículos relacionados
Ver todos los artículos →-
Guía de uso
¿Qué es GPT Image 2.6? Edición con markup y especificaciones conocidas
Toda la información de la especificación de la API de OpenAI sobre GPT Image 2.6, cómo usar el nuevo parámetro de edición markup y qué partes aún no se han anunciado.
-
Guía de uso
¿Cuánto cuesta la API de Vidu Q4 Preview? 540p por segundo $0.0515
Ambos modos tienen el mismo precio: cómo se factura en cinco resoluciones y de 3 a 16 segundos, cuántos clips salen con $10 y una comparativa de precios con otros modelos de video de la plataforma.
-
Guía de uso
Recraft V4.1 Flash 电商产品图:每张 $0.01 批量目录图
在 recraft-v4.1-flash/text-to-image 上的一次真实并行批量:商品列表图与场景图、实测背景白度、耗时以及批量脚本。