🐾 Patitas Felices · juguetes para perro tienda ficticia
Hueso de goma «Mordisco» naranja
$9.90 · envío gratis desde $25
Goma natural extra resistente, con textura para limpiar dientes y encías. Tamaño M (16 cm).
MiniMax H3 Max · imagen a video · fal.ai · todo lo que se mueve en esta página lo generó H3
Una línea de script en la ficha de producto. El visitante escribe qué imagina y la propia foto se convierte, en segundos y en su sitio, en ese video. Escríbelo aquí y míralo pasar en esta misma foto.
Por qué importa
Una ficha de producto es una foto quieta y una promesa. Hasta hoy, animarla costaba un rodaje. Con MiniMax H3 un video de cinco segundos cuesta diez centavos y tarda menos de tres segundos de GPU.
El widget hace una sola pregunta —«¿qué tipo de perro tienes?», «¿con qué te comerías estas galletas?»— y devuelve el video que el visitante imaginó, con el producto idéntico: misma forma, mismo color, mismo sitio.
Todo pasa dentro de la foto que ya estaba. Sin recuadros, sin «generando…», sin cortes: la foto respira y el video se funde encima. Hasta el fondo de esta sección lo generó H3 a partir de un texto.
Ficha de producto con el widget instalado
🐾 Patitas Felices · juguetes para perro tienda ficticia
$9.90 · envío gratis desde $25
Goma natural extra resistente, con textura para limpiar dientes y encías. Tamaño M (16 cm).
Prueba con tu propio producto
Funciona con cualquier producto
Tres fotos de producto más, tres respuestas de visitante, tres videos generados por H3 con el mismo widget. Cuando la tarjeta entra en pantalla, la foto cobra vida.

¿Qué quieres que pase con este producto?
«una mano ajusta los cordones»

¿Qué quieres que pase con este producto?
«una mano lo abre y se lo pone en el cuello»

¿Qué quieres que pase con este producto?
«alguien la riega con una regadera»
Cada video empieza y termina en la foto: por eso hace bucle sin corte. Hazlo con el tuyo ↑
Cómo funciona, de verdad · cada paso ilustrado con un clip H3 texto-a-video
Lista blanca: letras, dígitos, espacio y puntuación básica. Máximo 60 caracteres. «Con un Café!!» y «cafe» comparten clave de caché.
sanear("Con un Café con Leche!!")
→ "Con un Café con Leche!!"
normalizar → "cafe con leche"
El texto va entre comillas dentro de una frase fija. Delante, la orden de cámara fija y producto fiel; detrás, el cierre fotorrealista.
A dog of exactly this kind appears: "un labrador dorado". It comes in, sniffs the toy, grabs it in its mouth, chews it playfully, then drops it back exactly where it was…
minimax/h3-max/image-to-video: 5 s, 768P. La foto va como image_url y como end_image_url: el video tiene que terminar en la foto.
inferencia GPU 2,9 s cola 0,3 s envío→resultado 5,8 s (media) costo $0,10 (768P·5 s)
ffmpeg en el servidor: H.264, 1152 px, CRF 27, moov al inicio. De 3,5 MB a 0,32 MB en 0,7 s, sin diferencia visible.
3 503 174 B → 324 227 B (10,8× menos) caché: 103,6 MB → 9,0 MB
Clave = tienda · producto · versión de plantilla · resolución · duración · respuesta normalizada. La segunda persona que escribe lo mismo lo ve en 0,3 s.
sha1("perros|hueso|3.3|768P|5|
bucle|labrador dorado")
→ 167f8d4836ca96b4.mp4
El widget descarga el video entero, comprueba que decodifica y solo entonces lo funde sobre la foto. Si algo falla, la foto se queda.
fetch → blob → loadeddata → fundido 0,7 s → bucle limpio (termina en la foto)




Lo que salió mal y cómo se arregló
Puerta de entrada: tres videos con las fotos reales. Forma y color intactos en los tres, pero con un labrador el modelo se alejaba para que cupiera el perro y el hueso se encogía. Endurecer el texto («no reframing, the camera never pulls back») no cambió nada.
El endpoint admite end_image_url. Con la misma foto como último fotograma, el video no puede terminar alejado ni desplazado. Dos de dos aciertos donde el texto fallaba cero de dos. De regalo, bucle limpio.
Un perro sentado junto al hueso era correcto y aburrido. La plantilla actual pide interacción real —morder, masticar, levantar— y confía la vuelta al sitio al fotograma final. Seis de seis tiras verificadas a dos fotogramas por segundo.
El primer widget reproducía con el archivo a medias: iba a saltos. Ahora descarga el video entero (ya recomprimido a 0,3 MB) antes de tocar la foto. Si falla, la foto se queda.
Lo último que H3 generó en este servidor
Cargando la galería…
Números en vivo del servidor
| # | Tienda | Respuesta | Navegador | Servidor | fal |
|---|---|---|---|---|---|
| 1 | perros | «un beagle tricolor» | 6,4 s | 5,8 s | 5,5 s |
| 2 | perros | «un caniche blanco» | 7,1 s | 6,4 s | 6,1 s |
| 3 | perros | «un corgi» | 7,6 s | 7,0 s | 6,4 s |
| 4 | galletas | «con un té chai» | 7,6 s | 7,0 s | 6,4 s |
| 5 | galletas | «con un batido de fresa» | 7,1 s | 6,5 s | 6,0 s |
Tarifa leída en la página del modelo el 2026-09-05: $0,02 por segundo a 768P hasta el 7 de septiembre; después $0,08. Panel completo en /metricas.
Instálalo en tu tienda, con tu clave
La herramienta es tuya: levantas tu propia copia con un comando, pones tu clave de fal.ai y cada video se genera y se cobra en tu cuenta. Nadie pasa por nuestro servidor.
<script src="https://TU-SERVIDOR/widget.js"
data-tienda="mi-tienda" data-producto="mi-producto"
data-imagen="#foto-producto"></script>
cp .env.example .env, escribe tu FAL_KEY, y docker compose up -d --build. Un solo servicio, Docker + Caddy, sin bases de datos. Tu dominio, tu HTTPS..env (por IP y día, totales, resolución, duración).