Tutorial
¿Cómo usar la API de video Wan 2.7? Tutorial en español de texto a video e imagen a video
Ejemplos con curl y Python, cómo pasar el array media, primer y último fotograma y audio de conducción, además de trampas comunes como la resolución en mayúsculas.
TL;DR
- Wan 2.7 es el modelo de video de Alibaba; en HiAPI está disponible como texto a video
wan2.7-video/text-to-videoe imagen a videowan2.7-video/image-to-video, con clips de 2 a 15 segundos.Abre la página del modelo para generarlos en línea; los usuarios nuevos reciben 200 créditos al registrarse. - Cobro por segundo, con el mismo precio para texto e imagen: 720P a $0.10 por segundo, 1080P a $0.167 por segundo. 5 segundos en 720P cuestan $0.50.
- Dos trampas comunes: la resolución debe escribirse en mayúsculas
720P/1080P, y el valor por defecto es 1080P; en texto a video el parámetro de relación de aspecto se llamaratio, noaspect_ratio.
Veamos el resultado primero
Texto a video, ejemplo de la página del modelo, con un prompt en chino:
一位穿着白色毛衣的年轻女子坐在咖啡馆窗边,窗外是雨天的街道,她轻轻端起咖啡杯,目光望向窗外,暖黄色灯光映照在她的脸上,雨滴顺着玻璃缓缓流下,电影级浅景深,35mm胶片质感,温暖色调,慢镜头特写
Generar con este prompt → (1080P, 16:9)
Ejemplo de la página del modelo wan2.7-video/text-to-video, 1080P, unos 8 segundos, aproximadamente $1.336 al precio actual.
Imagen a video, usando una imagen de granja estilo plastilina como primer fotograma:

黏土动画风格,欢乐农场场景缓缓活起来。奶牛妈妈慢慢咀嚼嘴里的青草,小牛好奇地歪头张望。身后的母鸡们低头啄食地上的谷粒,小狗摇着尾巴朝镜头方向小跑几步。泥坑里的小猪满足地打了个滚,溅起小小的泥花。远处红色谷仓的风车缓缓转动,绿色山丘上白云悠悠飘过。地面上的小花随微风轻轻摇摆,整个画面充满温暖的午后阳光,定格动画质感,童趣十足。
Generar con este prompt → (sube tu primer fotograma)
Ejemplo de la página del modelo wan2.7-video/image-to-video, 1080P, unos 8 segundos, aproximadamente $1.336 al precio actual.
En imagen a video, escribe el prompt describiendo quién hace qué, uno por uno: la vaca rumia hierba, las gallinas picotean, el perro trota, el cerdito se revuelca. Dale una pequeña acción a cada personaje de la imagen y toda la escena cobra vida.
Dos formas de empezar
Prueba en línea (sin escribir código)
- Abre la página del modelo Wan 2.7 texto a video y regístrate o inicia sesión.
- Pega el prompt y elige duración, resolución y relación de aspecto.
- Haz clic en generar y descarga el video directamente cuando esté listo.
Llamada a la API
- Crea una API Key en la consola.
- Envía la tarea con
POST https://api.hiapi.ai/v1/tasks; devuelve untaskId. - Consulta el estado con
GET /v1/tasks/{taskId}; cuandostatusseasuccess, descarga el video desdeoutput[0].url.
curl: tu primer video
5 segundos en 720P, $0.50:
curl -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2.7-video/text-to-video",
"input": {
"prompt": "一只橘猫趴在洒满阳光的窗台上打哈欠,尾巴轻轻摆动,暖色调,浅景深",
"resolution": "720P",
"ratio": "16:9",
"duration": 5
}
}'
Respuesta:
{"code": 200, "data": {"taskId": "tk-hiapi-..."}, "message": "success"}
Consultar el resultado:
curl https://api.hiapi.ai/v1/tasks/tk-hiapi-... \
-H "Authorization: Bearer $HIAPI_KEY"
Python: enviar, consultar y descargar
# pip install requests;先 export HIAPI_KEY=你的 Key
import os, time, uuid, requests
KEY = os.environ["HIAPI_KEY"]
H = {"Authorization": f"Bearer {KEY}"}
def generate(model, timeout_s=900, **params):
body = {"model": model, "input": params}
# 重试提交同一个任务时带同一个 Idempotency-Key,避免重复扣费
headers = {**H, "Idempotency-Key": str(uuid.uuid4())}
r = requests.post("https://api.hiapi.ai/v1/tasks", json=body, headers=headers, timeout=30)
r.raise_for_status()
res = r.json()
if res.get("code") != 200:
raise RuntimeError(res)
task_id = res["data"]["taskId"]
deadline = time.time() + timeout_s
while time.time() < deadline:
d = requests.get(f"https://api.hiapi.ai/v1/tasks/{task_id}", headers=H, timeout=30).json()["data"]
if d["status"] == "success":
return d["output"][0]["url"]
if d["status"] == "fail":
raise RuntimeError(d)
time.sleep(10)
raise TimeoutError(task_id)
url = generate(
"wan2.7-video/text-to-video",
prompt="一只橘猫趴在洒满阳光的窗台上打哈欠,尾巴轻轻摆动,暖色调,浅景深",
resolution="720P", ratio="9:16", duration=5,
)
with open("clip.mp4", "wb") as f:
f.write(requests.get(url).content)
Imagen a video: pasar material con media
En imagen a video no se usa image_url, sino un array media; cada elemento indica su tipo y su dirección, entre 1 y 3 elementos:
{
"model": "wan2.7-video/image-to-video",
"input": {
"prompt": "镜头缓慢推进,花瓣被风吹起,人物转头微笑",
"media": [
{"type": "first_frame", "url": "https://your-cdn.example.com/start.jpg"},
{"type": "last_frame", "url": "https://your-cdn.example.com/end.jpg"}
],
"resolution": "720P",
"duration": 5
}
}
type tiene cuatro valores:
type |
Función |
|---|---|
first_frame |
Imagen del primer fotograma |
last_frame |
Imagen del último fotograma, para hacer transición junto con el primero |
driving_audio |
Audio de conducción, para que la imagen se mueva al ritmo del sonido |
first_clip |
Primer clip de video, para continuar la generación a partir de él |
Resumen de parámetros
| Parámetro | Valores | Descripción |
|---|---|---|
prompt |
Cadena, obligatorio | Máximo 5000 caracteres; admite chino e inglés |
negative_prompt |
Cadena | Contenido que no quieres que aparezca; máximo 500 caracteres |
resolution |
720P / 1080P, por defecto 1080P |
Mayúsculas; determina directamente el precio |
ratio |
16:9 9:16 1:1 4:3 3:4, por defecto 16:9 |
Solo texto a video |
duration |
Entero de 2 a 15, por defecto 5 | En segundos |
audio_url |
wav/mp3, de 2 a 30 segundos, máximo 15 MB | Solo texto a video, opcional |
prompt_extend |
Por defecto true |
Optimiza el prompt automáticamente; si quieres generar exactamente con el texto original, ponlo en false |
seed |
0–2147483647 | Semilla fija para facilitar la reproducibilidad |
watermark |
Por defecto false |
Si se añade marca de agua de generación con IA |
Calculemos el costo
| Duración | 720P ($0.10/seg) | 1080P ($0.167/seg) |
|---|---|---|
| 2 segundos | $0.20 | $0.334 |
| 5 segundos | $0.50 | $0.835 |
| 10 segundos | $1.00 | $1.67 |
| 15 segundos | $1.50 | $2.505 |
Con $10 se pueden generar 100 segundos en 720P. resolution tiene 1080P por defecto; si escribes 720P mientras ajustas el prompt, ahorras un 40 %.
Antes de pasar a producción
- Usa callback en lugar de polling: añade en el nivel superior de la petición (al mismo nivel que
input)"callback": {"url": "https://tu-dominio/hiapi/callback"}y deduplica portaskId. - Guarda el resultado cuanto antes:
output[0].urles un enlace temporal; en cuanto lo obtengas, guárdalo en tu propio almacenamiento. - Reintentos con clave de idempotencia: añade
Idempotency-Keyen los encabezados; con la misma clave, el reintento solo crea la tarea una vez. - Reembolso automático en caso de fallo: solo se cobran los videos generados correctamente.
Preguntas frecuentes
¿Se puede escribir la resolución en minúsculas 720p?
No. En minúsculas devuelve directamente un 400: resolution: value must be one of '720P', '1080P'.
¿Por qué da error si paso aspect_ratio?
En texto a video de Wan 2.7 el parámetro de relación de aspecto se llama ratio. Si pasas aspect_ratio devuelve un 400: additional properties 'aspect_ratio' not allowed.
¿Cómo se configura la relación de aspecto en imagen a video?
Imagen a video no tiene parámetro de relación de aspecto; sigue la del primer fotograma.
¿Se pueden generar videos de 15 segundos?
Sí, duration admite de 2 a 15 segundos.
¿Cómo elegir entre Wan 2.7 y Wan 3.0?
Wan 3.0 en HiAPI es referencia a video y usa imágenes de referencia para fijar personas y productos; si solo necesitas texto a video o imagen a video, utiliza Wan 2.7.
Para ver más formas de escribir prompts, consulta Casos de prompts para texto a video de Wan 2.7 (en inglés). Si quieres probar uno primero, ve a la página del modelo para generarlo.
Artículos relacionados
Ver todos los artículos →-
Tutorial
Cómo llamar a hailuo-2.3-fast/image-to-video a través de la API de HiAPI: práctica con curl y Python
La primera solicitud ejecutable del nivel rápido y de bajo coste de imagen a vídeo: del ID del modelo a la descarga del MP4
-
Tutorial
Cómo llamar a hailuo-2.3/text-to-video mediante la API de HiAPI: curl, Python y ejemplos de solicitud ejecutables
-
Tutorial
Uso de Kandinsky 6.0 Pro texto a video en HiAPI: tutorial con curl y Python
Demostración práctica centrada en la solicitud: construir la llamada de prompt a clip de video, enviar la solicitud, sondear el estado de finalización y descargar el resultado