Introducción
Wan 3.0 Pro Prime Imagen a video anima un fotograma inicial con el render Prime y lo entrega en 1080p, 2K o 4K durante 2 a 30 segundos. image_url es obligatorio y se convierte exactamente en el primer fotograma; el prompt es opcional y debería describir movimiento y cámara; last_image_url fija de forma opcional el último fotograma. Los campos coinciden exactamente con los de Wan 3.0 Pro Imagen a video, así que una solicitud armada para ese endpoint funciona aquí cambiando solo el nombre del modelo.
Elige el modo según el material inicial
| Material inicial | Modo |
|---|---|
| Un brief escrito define escena, acción, cámara y, cuando corresponde, sonido. | Wan 3.0 Pro Prime Texto a video |
| Una imagen inicial aprobada fija sujeto y composición; la instrucción dirige el movimiento posterior. | Wan 3.0 Pro Prime Imagen a video |
| Referencias separadas pueden guiar identidad, lugar, movimiento o sonido con una función clara para cada una. | Wan 3.0 Pro Prime Referencias a video |
Funciones y aspectos destacados
Instrucciones de dos fotogramas, como un cambio de foco
Un cambio de foco es, por naturaleza, cosa de dos fotogramas, y para eso existe last_image_url. El ejemplo del capullo empieza nítido en un capullo de flor y termina en un fotograma enviado que está nítido en una camisa desabotonada detrás, 6 segundos en 4k; el prompt solo dice cuándo ocurre el paso. Una profundidad de campo muy reducida deja al render poco margen para caer en el plano correcto si el final no está fijado.
El techo lo pone la fuente, no el nivel
La resolución rige el render, no la entrada. Los niveles 2k y 4k se amplían a partir de un render nativo en 1080p, así que envía la imagen más nítida que tengas: JPEG, PNG sin transparencia, BMP o WEBP, de 240 a 8000 píxeles por lado, hasta 20 MB y no más ancha que 8:1.
Planos fijos para ediciones con música aparte
El ejemplo de la luz del callejón es un plano fijo de 4 segundos en 2k con el audio y la expansión del prompt desactivados: "Nobody moves. Only the neon tube above her stutters and the rain keeps falling, dragging its reflection across the wet plastic. Locked camera." Es la forma de solicitud para un plano que se musicalizará en la edición en lugar de traer su propio sonido.
Parámetros de la solicitud
| Parámetro | Obligatorio | Descripción |
|---|---|---|
prompt | No | Aquí es opcional. Úsalo para el movimiento y la cámara; repetir lo que ya se ve en el fotograma invita al modelo a redibujarlo. mínimo 1 caracteres · máximo 20000 caracteres |
image_url | Sí | El fotograma de apertura, que se usa tal cual como primer fotograma, y el verdadero techo de calidad del plano. mínimo 1 caracteres |
last_image_url | No | Opcional, y solo junto con |
resolution | No | 1080p, 2k o 4k, 1080p por defecto. |
aspect_ratio | No | adaptive sigue al fotograma de apertura. Fija una proporción solo cuando el formato de entrega lo exija. |
duration_seconds | No | Cualquier número entero de 2 a 30, 5 por defecto, o -1 para la duración inteligente, en la que el modelo elige la longitud: se reservan de entrada los 30 segundos máximos y se c… |
generate_audio | No | Activo por defecto. El sonido se genera con la imagen y llega dentro del mismo archivo. Valor predeterminado: |
enable_prompt_expansion | No | Activa por defecto en esta familia. Rellena briefs flojos y reescribe los detallados, así que desactívala en cuanto tu prompt sea una descripción de plano precisa. Valor predeterminado: |
seed | No | De 0 a 2147483647. Déjala fija mientras ajustas resolución o duración; si no, cada repetición cambia dos cosas a la vez. |
Precios
| Especificación | Precio |
|---|---|
| $0.234 / segundo |
| $0.252 / segundo |
| $0.279 / segundo |
Casos de uso
El entorno cambia alrededor de un sujeto quieto
El ejemplo del callejón de neón parte de una placa que ya contiene el callejón, la lluvia y el impermeable transparente, así que el prompt dice solo lo que cambia: la lluvia que arrecia, un tubo de neón que parpadea una vez, el vapor que sale de una rejilla y el sujeto que sostiene la mirada a la lente todo el tiempo. Su línea de audio nombra cada fuente: lluvia sobre acero, un tubo que zumba, una rejilla que silba.
Detalle cercano con el final fijado
El ejemplo de la camisa reutiliza los mismos dos fotogramas que el del capullo, en 1080p durante 4 segundos: una mano aparta despacio una camisa abierta bajo una luz dorada rasante y la deja caer, mientras el capullo entre los pliegues se abre un poco. Fijar ambos extremos hace que una profundidad de campo muy reducida caiga en el plano buscado.
Guía de prompts y consejos prácticos
Deja fuera del prompt lo que ya se ve
Volver a describir lo que ya está en el cuadro invita al modelo a redibujarlo. Usa el prompt solo para movimiento y cámara, y deja aspect_ratio en adaptive para que el clip siga la forma del fotograma; fija una proporción solo cuando el formato de entrega lo exija.
Aprueba en 1080p y entrega en 2K o 4K
Define el movimiento a 5 segundos y 1080p con seed fijo y después reenvía el cuerpo en 2k o 4k. Cada repetición que cambia a la vez resolución y semilla cambia dos cosas de golpe, así que una debe quedarse fija mientras juzgas la otra.
Apaga la expansión para un movimiento exacto
En esta familia enable_prompt_expansion es true por defecto. Ayuda a una idea de dos palabras y reescribe un brief de movimiento preciso; el ejemplo de la luz del callejón la desactiva para que sus tres frases cortas se ejecuten tal como están. Se acepta cualquier duración entera de 2 a 30 segundos, y -1 deja la elección de la longitud al modelo.
Inicio rápido de la API
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "alibaba/wan-3.0-pro-prime/image-to-video",
"input": {
"aspect_ratio": "adaptive",
"duration_seconds": 5,
"image_url": "https://example.com/reference.png",
"resolution": "1080p"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
Consulta la referencia de la API para autenticación, el esquema completo, sondeo y gestión de errores.



























