Haz dos planos a partir de un retrato aprobado: un empuje lento y tranquilo, después un movimiento lateral lento de cámara que muestre el entorno. Empieza ambos en MiniMax H3 imagen a vídeo con 768p, cinco segundos, $0.185 por clip. Pasa a Seedance 2.5 si necesitas apagar la pista de sonido o generar clips más largos, o a LTX 2.5 si la entrega tiene que ser en 4K. Cada plano lleva una acción sutil, un movimiento de cámara contenido y una lista de lo que no debe cambiar.
Elige la ruta
| Necesidad | Ruta | Ajustes iniciales | Cinco segundos |
|---|---|---|---|
| Borrador utilizable más barato | MiniMax H3 | resolution: "768p"; 4–15 s | $0.185 |
| Pista de sonido que puedes apagar, o clips de hasta 30 s | Seedance 2.5 | resolution: "720p", generate_audio: false; 4–30 s | $1.3865 |
| Entrega en 4K de hasta 20 s | LTX 2.5 | resolution: "4k"; 5–20 s | $1.50 |
Todos los precios son por clip de cinco segundos. LTX en 720p cuesta $0.45, así que paga el 4K solo cuando la entrega lo necesite. Seedance cuesta lo mismo con sonido activado o desactivado.
Tres cosas que la tabla no muestra:
- Sonido. H3 y LTX siempre devuelven una pista de sonido generada y no tienen ningún campo para apagarla. Seedance es la única ruta con un interruptor
generate_audio. - Forma del fotograma. Ninguno de los tres permite elegir una relación de aspecto para imagen a vídeo. La salida adopta la forma de tu imagen de origen, así que recorta o amplía el retrato hasta tu formato de entrega antes de subirlo.
- Proyectos con contenido adulto. Los tres aceptan una imagen de origen ficticia de personas adultas. La comprobación de entrada de Seedance puede rechazar fotos de personas reales identificables (no se cobra nada), así que usa allí imágenes de origen ficticias o con permiso. Para trabajos con contenido para adultos más intenso hay rutas dedicadas MiniMax H3 Spicy y Seedance 2.5 Spicy.
Elige una fuente que deje margen para moverse
Los dos planos parten de la misma imagen fija aprobada, así que el rostro, la ropa y la luz empiezan idénticos; contrasta después los fotogramas con ella. Elige una con ambos ojos visibles, el pelo dentro del encuadre y los hombros despejados del fondo. Deja espacio vacío en el lado hacia el que mira la persona: ahí es donde aterriza la mirada en el plano uno y donde la cámara revela el entorno en el plano dos.
Nuestro ejemplo es una mujer adulta ficticia con blazer negro sobre una blusa de satén, las manos en los bolsillos, en una terraza sobre una ciudad ribereña iluminada al anochecer. La luz cálida cae sobre su rostro desde la izquierda, y ella mira hacia la derecha hacia el espacio abierto. La imagen ya contiene todo lo que el vídeo necesita. Pedirle al modelo que añada lluvia, cambie el abrigo, gire la cabeza e invente un lugar nuevo en el mismo clip convierte la animación en un rediseño.
El desenfoque, las joyas duplicadas o una mano fundida con la barandilla en la imagen fija serán peores en movimiento. Arregla primero la imagen fija. Mantén las manos fuera de la acción; en esta fuente están en los bolsillos, así que nunca necesitan moverse.

Plano uno: el empuje tranquilo
Para un primer plano real, recorta antes de subir una versión del torso de la misma imagen fija aprobada con tu proporción de entrega; el empuje por sí mismo apenas estrecha un encuadre de cintura para arriba. Describe solo el movimiento; la imagen fija ya establece quién aparece y dónde. Cada prompt nombra una acción de la persona, un movimiento de cámara, qué se mantiene fijo y qué excluir. Usa este prompt en MiniMax H3 con la imagen fija aprobada:
A restrained cinematic portrait of the adult woman in the supplied image. She remains in place, breathes naturally and blinks slowly, then makes one small eye movement toward the open space on screen right, followed by a subtle closed-mouth smile. Very slow camera push-in. Preserve her face, black blazer, hairstyle and the warm terrace light. No head turn, no walking, no new objects or text. No speech.
Pruébalo en el Playground
- Abre MiniMax H3 imagen a vídeo con el prompt ya rellenado (o abre la página y pega el prompt en Prompt). Quédate en la pestaña Playground, vista Form, e inicia sesión con una cuenta con saldo para ejecutar.
- Añade tu imagen fija aprobada en Input image.
- Pon Resolution en 768p y Duration en 5.
- Ejecútalo y repite con el prompt del plano dos sobre la misma imagen fija.
El empuje añade movimiento sin mostrar un nuevo lado del rostro. Si los ojos o la mandíbula aún cambian, quítalo: pide cámara bloqueada, respiración y un parpadeo.
Plano dos: el barrido lento que muestra el entorno
El segundo plano tiene otra función. El rostro se mantiene tranquilo y la cámara revela el horizonte urbano. Una barandilla en primer plano, la mujer en el centro y la ciudad iluminada detrás dan tres capas que se desplazan unas contra otras durante un movimiento lateral, y eso es lo que hace que se lea como movimiento de cámara y no como zoom.

Usa la misma fuente y los mismos ajustes:
A medium portrait of the adult woman from the supplied image on the same dusk terrace. The camera slides slowly and steadily a short distance to the right along the railing, revealing more of the lit city on screen right. She stays in frame, holds her pose and shifts her gaze slightly toward the city lights. Keep her face, black blazer and hairstyle unchanged, and the warm light constant. No orbit, no walking, no speech, no text.
Nombra lo que revela el movimiento, no solo su etiqueta. Si la dirección de cámara confunde al modelo, simplifica a "aparece un poco más de ciudad junto a su hombro derecho".
No pidas una órbita de cámara ni un perfil completo desde esta fuente. Muestra una vista de tres cuartos, y un movimiento hacia la mejilla opuesta necesita una segunda imagen fija aprobada.
Llámalo desde el código
Instala el SDK de Python (pip install spicyapi), define SPICY_API_KEY y ejecuta el plano uno desde tu imagen fija aprobada. Cuesta $0.185:
import uuid
from spicyapi import SpicyClient, output_assets
client = SpicyClient()
still = client.upload_file("./approved-still.png") # local file -> spicy:// address
task = client.create_task(
model="minimax/h3/image-to-video",
input_data={
"image_url": still["uri"],
"prompt": (
"A restrained cinematic portrait of the adult woman in the supplied image. "
"She remains in place, breathes naturally and blinks slowly, then makes one small "
"eye movement toward the open space on screen right, followed by a subtle "
"closed-mouth smile. Very slow camera push-in. Preserve her face, black blazer, "
"hairstyle and the warm terrace light. No head turn, no walking, no new objects "
"or text. No speech."
),
"resolution": "768p",
"duration_seconds": 5,
},
idempotency_key=str(uuid.uuid4()), # new key per new request; reuse only to retry the same one
)
final = client.wait_for_terminal(task["taskId"])
print(output_assets(final)[0]["url"])Para el plano dos, cambia el prompt por el del barrido. Cargas, esperas y errores: referencia del SDK de Python.
O deja que un agente lo ejecute
Cuando sea un asistente quien deba generar los clips, las herramientas oficiales muestran el precio y te preguntan antes de una llamada de pago.
- CLI.
spicyapi files upload ./approved-still.png, luegospicyapi tasks create --model minimax/h3/image-to-video --input-file input.json --waitcon la direcciónspicy://devuelta comoimage_urleninput.json.npx @spicyapi/clifunciona sin instalar; consulta la documentación de la CLI. - Servidor MCP. Añade el servidor MCP y pide el empuje sobre tu imagen fija. El asistente sube el archivo con
spicyapi_upload_file, llama aspicyapi_task_create(se detiene para que confirmes el precio) y luego aspicyapi_task_wait. - Skill.
npx skills add spicyapi-ai/spicy-skillinstala el Agent Skill, para que un asistente de programación lea el esquema real del modelo en lugar de adivinar campos.
Une los dos clips
Pon el empuje primero y el barrido después. Termina el plano uno en la mirada hacia la derecha de la pantalla y empieza el plano dos con ella ya mirando hacia allí, así el corte cae sobre la misma línea de mirada. Usa los dos o tres segundos más limpios de cada uno en lugar de los cinco completos.
Mantén una sola pista de sonido. Si usaste H3 o LTX, silencia el audio propio de los clips y coloca debajo una cama musical o una ambientación. En Seedance, desactiva el audio generado y haz lo mismo. Si quieres ambientación distinta por plano, usa Seedance con el audio generado activado y una frase como "quiet distant street ambience, no speech".
Las tres rutas aceptan además un fotograma de cierre opcional. Ayuda cuando un clip tiene que terminar en una imagen concreta aprobada, pero los clips largos se desvían más de ella, así que déjalo fuera en los primeros borradores.
Repara solo lo que falló
| Fallo visible | Próxima acción |
|---|---|
| Los ojos o la mandíbula cambian durante el empuje | Vuelve a la imagen fija original; sustituye el empuje por cámara bloqueada y un solo parpadeo. |
| La sonrisa muestra dientes inestables | Pide una sonrisa sutil con la boca cerrada y quita el habla. |
| El pelo se arrastra por la mejilla | Quita el viento y el movimiento de cabeza; deja solo la respiración. |
| El rostro sale del encuadre | Añade espacio en la fuente antes de generar; el modelo no tiene campo de relación de aspecto con el que corregirlo. |
| La barandilla o los carteles se deforman durante el barrido | Ralentiza y acorta el movimiento, o recorta el cartel fuera de la fuente; la rotulación no se conserva de forma fiable. |
| Los dos clips difieren en luz o color | Regenera el más débil desde la misma imagen fija; no la sustituyas por una fuente nueva. |
| Un segundo es excelente y el resto se desvía | Recorta alrededor del tramo estable y úsalo como inserción corta. |
Cuatro borradores de H3 de cinco segundos cuestan $0.74, así que dos planos con cuatro borradores cada uno son $1.48. Dos segundos estables de un solo borrador ya pueden servir para el corte. En Seedance 2.5 y LTX 2.5, fija el seed y cambia solo el prompt, así ves qué cambió la edición; no garantiza un clip idéntico. H3 no tiene ajuste de seed: conserva el prompt ganador tal como está y vuelve a lanzar.








