Tutorial
¿Cómo usar la API de texto a video de Seedance 2.5? Ejecútala directamente con curl y Python
Un prompt genera un video de 4–30 segundos con sonido; parámetros, costos y advertencias antes de producción, todo en una sola explicación.
TL;DR
seedance-2.5/text-to-videogenera un video con solo un prompt, de 4–30 segundos por clip y con sonido incluido. Abre la página del modelo para generarlo en línea; los nuevos usuarios reciben 200 créditos al registrarse.- Cobro por segundo: 720p cuesta $0.204 por segundo y 1080p, $0.516 por segundo. 5 segundos en 720p cuestan $1.02.
- La API se usa en dos pasos:
POST /v1/taskspara enviar la tarea y obtener eltaskIdpara consultar el resultado. Los ejemplos de curl y Python de abajo se pueden ejecutar tal cual.
Primero, un resultado real
El siguiente video de 8 segundos en 720p se generó con un prompt y una sola solicitud; el sonido del vapor de la leche, el choque de las tazas y las voces del local los generó el propio modelo:
A barista in a small morning cafe pours steamed milk into a cup, drawing a latte art leaf.
The camera starts on her hands and slowly pulls back to reveal the counter and a sign on the wall that reads 'OPEN'.
Warm window light, realistic, smooth motion. Sound: milk steaming, cups clinking, quiet cafe chatter.
Generar con este prompt → (8 segundos, 720p)
seedance-2.5/text-to-video, 720p, 8 segundos, con sonido, $1.632.
Dos formas de empezar
Prueba en línea (sin escribir código)
- Abre la página del modelo Seedance 2.5 texto a video, regístrate o inicia sesión.
- Pega el prompt y elige la duración, la resolución y la relación de aspecto.
- Haz clic en generar y descarga el video 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
Primero ejecuta un video de 5 segundos en 720p, $1.02:
curl -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5/text-to-video",
"input": {
"prompt": "一架纸飞机滑过洒满阳光的办公室,灰尘在光里漂浮,镜头跟着纸飞机缓慢移动",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
}
}'
Respuesta:
{"code": 200, "data": {"taskId": "tk-hiapi-..."}, "message": "success"}
Consulta el resultado:
curl https://api.hiapi.ai/v1/tasks/tk-hiapi-... \
-H "Authorization: Bearer $HIAPI_KEY"
Mientras se genera, status es handling; al terminar pasa a success y la URL del video está en output[0].url.
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(prompt, model="seedance-2.5/text-to-video", timeout_s=900, **params):
body = {"model": model, "input": {"prompt": prompt, **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(
"一架纸飞机滑过洒满阳光的办公室,灰尘在光里漂浮,镜头跟着纸飞机缓慢移动",
duration=5, resolution="720p", aspect_ratio="16:9",
)
with open("clip.mp4", "wb") as f:
f.write(requests.get(url).content)
Resumen de parámetros
| Parámetro | Valores | Descripción |
|---|---|---|
prompt |
Cadena, obligatorio | Se puede escribir en chino o en inglés |
duration |
Entero de 4–30, por defecto 5 | En segundos; el cobro es por segundo |
resolution |
720p / 1080p, por defecto 720p |
El precio de 1080p es aproximadamente 2.5 veces el de 720p |
aspect_ratio |
16:9 4:3 1:1 3:4 9:16 21:9 adaptive, por defecto adaptive |
Para videos verticales cortos usa 9:16 |
generate_audio |
Por defecto true |
El sonido se genera junto con la imagen |
output_format |
mp4 / mov |
El texto a video no acepta URL de imágenes ni de videos. Para partir de una imagen, usa Seedance 2.5 imagen a video; para tomar como referencia el movimiento y la cámara de un video existente, usa Seedance 2.5 referencia a video.
Calculemos el costo
| Duración | 720p ($0.204/s) | 1080p ($0.516/s) |
|---|---|---|
| 5 s | $1.02 | $2.58 |
| 10 s | $2.04 | $5.16 |
| 15 s | $3.06 | $7.74 |
| 30 s | $6.12 | $15.48 |
Con $10 se pueden generar aproximadamente 49 segundos en 720p. Se recomienda ajustar primero el prompt con 720p y duraciones cortas, y luego generar la versión final en 1080p. Para un desglose más detallado, consulta Precios de la API de Seedance 2.5.
Atención antes de salir a producción
- Usa callbacks en lugar de polling: en el nivel superior de la solicitud (al mismo nivel que
input) agrega"callback": {"url": "https://tu-dominio/hiapi/callback"}; HiAPI notificará activamente al terminar la tarea. Deduplica portaskId. - Guarda los archivos a tiempo:
output[0].urles un enlace temporal (se conserva aproximadamente 7 días por defecto); en cuanto lo obtengas, guárdalo en tu propio almacenamiento. - Reintenta con una clave de idempotencia: agrega
Idempotency-Keyen la cabecera de la solicitud; reintentar con la misma clave solo crea la tarea una vez y no cobra dos veces. - Especifica todos los parámetros: indica explícitamente
duration,resolutionyaspect_ratiopara que el costo y la relación de aspecto coincidan con tu presupuesto. - Reembolso automático en caso de fallo: solo se cobra por los videos generados correctamente.
Preguntas frecuentes
¿Se puede escribir el prompt en chino?
Sí. Para obtener resultados más estables, describe en oraciones separadas cómo se mueve la cámara, cómo se mueve el sujeto y qué sonidos hay.
¿Cuál es la duración máxima?
De 4–30 segundos por clip. Es el doble del límite de 15 segundos de Seedance 2.0, ideal para planos secuencia largos.
¿Se puede ahorrar desactivando el sonido?
Puedes desactivar el sonido con generate_audio en false, pero el precio se calcula por resolución y segundos, así que no se abarata por eso.
¿Cómo elegir entre Seedance 2.0 y 2.5?
Si necesitas clips individuales más largos y más material de referencia, elige 2.5; si priorizas el presupuesto o necesitas 4K, elige la ruta ext de 2.0 ($0.134 por segundo en 720p). Para una comparación detallada, consulta Diferencias entre Seedance 2.5 y 2.0.
Para más formas de escribir prompts, consulta el Manual de uso de Seedance 2.5; también puedes copiar el prompt del latte art de arriba y generarlo en la página del modelo.
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