Introducción
Wan 3.0 Pro Imagen a video anima un fotograma inicial y entrega el clip en 1080p, 2K o 4K durante 2 a 30 segundos. image_url es el único campo obligatorio y se usa exactamente como primer fotograma, así que vestuario, cuerpo, escenario y luz salen de tu imagen; el prompt es opcional y debería describir solo movimiento y cámara. last_image_url fija de forma opcional el último fotograma exacto y solo funciona junto con image_url. El audio se genera con la imagen a menos que lo desactives.
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 Texto a video |
| Una imagen inicial aprobada fija sujeto y composición; la instrucción dirige el movimiento posterior. | Wan 3.0 Pro Imagen a video |
| Referencias separadas pueden guiar identidad, lugar, movimiento o sonido con una función clara para cada una. | Wan 3.0 Pro Referencias a video |
Funciones y aspectos destacados
Un render 4K no enfoca una imagen suave
El fotograma inicial es el techo de calidad del plano, y los niveles 2k y 4k amplían un render nativo en 1080p en lugar de dibujar detalle nuevo. Una fuente suave o de baja resolución sigue suave en 4K. Envía la imagen más nítida que tengas, en 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.
Ambos extremos fijados para masters listos para edición
El ejemplo de la botella envía el mismo packshot como image_url y last_image_url en 4k, con la expansión del prompt y el audio desactivados y una semilla fija, 5512090. La botella gira un cuarto de vuelta, el brillo recorre todo el largo del vidrio y vuelve a su ángulo inicial: un master cuya etiqueta sigue legible cuando el editor hace un acercamiento digital.
El encuadre sigue a la fuente por defecto
aspect_ratio es adaptive por defecto y sigue al fotograma inicial. Fija 16:9, 4:3, 1:1, 3:4 o 9:16 solo cuando el formato de entrega esté definido. Ninguno de los cuatro ejemplos publicados indica una proporción, así que cada clip conserva la forma de su imagen de origen.
Parámetros de la solicitud
| Parámetro | Obligatorio | Descripción |
|---|---|---|
prompt | No | Aquí es opcional, porque el fotograma ya carga con el aspecto. Úsalo solo para el movimiento y la cámara. 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 16:9, 4:3, 1:1, 3:4 o 9:16 solo cuando el formato de entrega esté cerrado. |
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.144 / segundo |
| $0.16 / segundo |
| $0.184 / segundo |
Casos de uso
Recorridos largos con un final aprobado
El ejemplo de la cumbre envía el pie de la montaña como image_url y la cima como last_image_url, y renderiza 10 segundos en 4K con un prompt que solo cubre la subida entre ambos. Un ascenso largo es justo donde un final sin fijar se desvía; fijar el fotograma de llegada te permite aprobar el desenlace como imagen fija antes de pagar un render 4K.
El vestuario queda en el fotograma
El ejemplo del hombro de seda parte de una imagen que ya contiene el vestuario, así que su prompt dedica todo al movimiento: los hombros giran despacio hacia la cámara, la seda capta la luz, la respiración se calma, un push-in lento con una luz principal dura desde la izquierda y lluvia en la ventana de atrás. Se renderiza a 2k durante 5 segundos.
Guía de prompts y consejos prácticos
Usa el prompt solo para movimiento y cámara
En esta familia la expansión del prompt viene activada y reescribe un brief de movimiento detallado, así que cambia enable_prompt_expansion a false cuando tu redacción esté cerrada, como hace el ejemplo de la botella. Después di quién se mueve, cuánto y a qué velocidad, y qué hace la cámara. El prompt admite hasta 20 000 caracteres, pero una acción clara mueve más el resultado que una lista larga.
Aprueba en 1080p y después renderiza en grande
Define encuadre y movimiento a 5 segundos y 1080p con seed fijo; una repetición que cambia a la vez resolución y semilla cambia dos cosas de golpe. Cuando ambos fotogramas estén aprobados y el movimiento se lea bien, reenvía el mismo cuerpo en 2k o 4k. La duración va de 2 a 30 segundos enteros, o -1 para que el modelo elija.
Revisa el detalle ampliado en el archivo entregado
En un archivo 2K o 4K, revisa primero las zonas que una ampliación estira: el texto de la etiqueta, los brillos especulares duros, la textura del pelo y la piel. El ejemplo del espejo empañado es un caso exigente: vapor que sube y empaña un espejo, la figura apartada de la lente, un push-in lento junto a un aplique de pared, renderizado en 4k entre un primer y un último fotograma fijados.
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/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.



























