HiAPI
Blog

Guía de uso

Crear videos cortos con Seedance-2.0-Fast mediante la API de hiapi

Sep 15, 2026
Crear videos cortos con Seedance-2.0-Fast mediante la API de hiapi

TL;DR

  • Qué es esto: un flujo de trabajo completo para crear videos cortos verticales al estilo de TikTok/Reels con seedance-2.0-fast a través de la API de hiapi, desde tu primera llamada a una tarea asíncrona hasta el renderizado de una semana entera de publicaciones con un script por lotes. El video corto incrustado a continuación se generó con la misma solicitud exacta que se muestra en esta guía.
  • Por qué elegir este modelo para videos cortos: salida nativa en 9:16, duración de 4 a 15 segundos y renderizado en 720p a $0.1772 por segundo; un clip vertical de 5 segundos cuesta aproximadamente $0.89 (precios en tiempo real). El nivel de borrador en 480p es de $0.0843 por segundo, lo que te permite iterar el gancho de apertura a bajo costo antes de comprometerte con el render final.
  • Datos de la API verificados: prompt, resolution (480p | 720p) y duration (entero, 4–15) son obligatorios. aspect_ratio acepta 1:1, 4:3, 3:4, 16:9, 9:16, 21:9 y adaptive. La generación de video a partir de imagen se realiza pasando una imagen estática en image_urls. Todo pasa por el endpoint asíncrono unificado /v1/tasks: no hay una API separada y específica para video que aprender.
  • Flujo de trabajo: genera primero un borrador en 480p para fijar el concepto, vuelve a renderizar en 720p las versiones finales que conserves y, como el envío de tareas no bloquea, distribuye varios prompts en paralelo.

Por qué seedance-2.0-fast encaja en el ciclo de contenido corto

El contenido de formato corto es un juego de escala: rara vez publicas un solo clip, sino toda una cola, y conservas los que funcionan. Eso cambia lo que realmente necesitas de un modelo de video: rapidez, bajo costo y salida vertical nativa importan más que la calidad de imagen en bruto. seedance-2.0-fast está construido en torno a ese compromiso:

  • El precio por segundo mantiene controlable la iteración. En 480p, un borrador de 4 segundos cuesta aproximadamente $0.34; un clip de 5 segundos como el de abajo cuesta $0.42 en 480p y $0.89 en 720p. Como el cobro es exactamente duration × rate, duration es tu única palanca de costo: no hay un recargo adicional por «calidad» que debas contemplar en tu presupuesto (verificado contra la página de precios en tiempo real).
  • 9:16 nativo. Renderizas vertical directamente mediante aspect_ratio, en lugar de recortar un clip en 16:9 y perder la composición que describe el prompt.
  • El modo de video de referencia es más barato, no más caro. Pasar un clip en reference_video_urls para guiar estilo/movimiento reduce la tarifa a $0.1072 por segundo en 720p y $0.0486 por segundo en 480p; útil cuando encuentras un estilo que quieres repetir en todo un lote.

Si publicas piezas destacadas en lugar de contenido diario por lotes, el flujo de trabajo de abajo también aplica; para una introducción más amplia al modelo, consulta nuestro artículo complementario seedance-2.0-fast para integración de API.

Preparación

Necesitas una clave de API de hiapi; no se requiere SDK:

export HIAPI_API_KEY="sk-..."

Todos los modelos de video en hiapi usan el mismo endpoint de tareas asíncronas: POST https://api.hiapi.ai/v1/tasks devuelve inmediatamente un taskId y luego consultas GET /v1/tasks/{taskId} hasta que se complete. Consulta la referencia completa en la documentación.

Tu primer clip vertical

La solicitud mínima válida requiere prompt, resolution y duration. Añade aspect_ratio: "9:16" para obtener el formato vertical de video corto:

curl -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.0-fast",
    "input": {
      "prompt": "Plano vertical en primer plano: dos manos colocan un panqueque dorado sobre una alta pila de panqueques, servidos en un plato de cristal sobre una mesa rústica de madera en una cocina campestre bañada por el sol, con vapor elevándose. Una cálida luz matinal entra desde la izquierda. Después, un chorro de miel se vierte lentamente sobre el panqueque superior, brillando bajo la luz mientras el vapor sigue subiendo. Ambiente acogedor, natural, cámara en mano, poca profundidad de campo, tonos cálidos. Sin texto superpuesto.",
      "resolution": "720p",
      "aspect_ratio": "9:16",
      "duration": 5
    }
  }'

La respuesta devuelve inmediatamente un ID de tarea:

{"code": 200, "data": {"taskId": "tk-hiapi-..."}, "message": "success"}

Consulta hasta que status sea success y luego descarga output[0].url de inmediato: esa URL tiene caducidad. Abajo está el clip que esa solicitud generó realmente:

Ese render es de 720×1280 (9:16 limpio), dura poco más de 5 segundos y se facturó en $0.886, exactamente 5 × $0.1772, lo que confirma en la práctica el cobro por segundo y no solo lo que afirma la página de precios.

Esquema de entrada verificado contra la API en vivo

El esquema de seedance-2.0-fast es estricto: enviar campos no admitidos devuelve un 400, en lugar de ignorar silenciosamente parámetros:

Campo Tipo Obligatorio Valores
prompt string ✅ La descripción de tu plano
resolution string ✅ 480p, 720p
duration integer ✅ 4–15 (segundos)
aspect_ratio string opcional 1:1, 4:3, 3:4, 16:9, 9:16, 21:9, adaptive
image_urls array opcional Imagen estática de origen para generar video a partir de imagen

Si omites un campo obligatorio, la tarea se rechaza antes de crear nada: las solicitudes mal formadas no se cobran. Coincide estrictamente con los nombres de campo de esta tabla; los scripts de video corto escritos para otros modelos de video (con motion_strength, seed, first_frame_url) aquí obtendrán un 400 en lugar de ser ignorados.

Función Python reutilizable

Enviar, consultar, descargar: unas 30 líneas cubren un ciclo de producción:

import os, time, requests

API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"}

def submit(prompt: str, duration: int = 5, resolution: str = "720p",
           aspect_ratio: str = "9:16", **extra) -> str:
    r = requests.post(API, headers=HEADERS, json={
        "model": "seedance-2.0-fast",
        "input": {"prompt": prompt, "duration": duration,
                  "resolution": resolution, "aspect_ratio": aspect_ratio, **extra},
    }, timeout=60)
    data = r.json()
    task_id = (data.get("data") or {}).get("taskId")
    if not task_id:
        raise RuntimeError(f"submit failed: {data}")
    return task_id

def wait(task_id: str, timeout_s: int = 900) -> dict:
    deadline = time.time() + timeout_s
    while time.time() < deadline:
        task = requests.get(f"{API}/{task_id}", headers=HEADERS, timeout=30).json()["data"]
        if task["status"] == "success":
            return task
        if task["status"] == "fail":
            raise RuntimeError(f"task failed: {task.get('error')}")
        time.sleep(8)
    raise TimeoutError(task_id)

def make_clip(prompt: str, out_path: str, **kw):
    task = wait(submit(prompt, **kw))
    url = task["output"][0]["url"]          # tiene caducidad: descárgala de inmediato
    with open(out_path, "wb") as f:
        f.write(requests.get(url, timeout=120).content)

Un render de 5 segundos en 720p suele completarse en uno o dos minutos; bajo carga alta, deja hasta unos 10 minutos antes de considerarlo un tiempo de espera agotado.

Video a partir de imagen: empezar con un fotograma fijo

En clips dominados por un producto o una marca, la deriva del prompt es el riesgo real: quieres que el producto o el plato que aparece sea el tuyo, no la interpretación que hace el modelo. image_urls resuelve esto: genera o fotografíe una imagen estática y luego haz que se mueva.

task_id = submit(
    "La pila de panqueques se asienta suavemente, el vapor sigue elevándose hacia arriba y luego la miel empieza a verterse desde fuera del encuadre, con las primeras gotas cayendo sobre el panqueque superior. Movimiento lento y estable, cámara en mano, cálida luz matinal.",
    duration=5, resolution="720p", aspect_ratio="9:16",
    image_urls=["https://your-cdn.example/pancake-still.jpg"],
)

La composición, la iluminación y la posición del sujeto quedan fijadas en tu imagen estática de referencia; el prompt solo describe el movimiento que ocurre después. Esto es ideal para cualquier clip en el que el fotograma inicial importa más que la intuición del propio modelo (un plato, una imagen de producto, un decorado de marca).

Generar por lotes el contenido de un día

Como /v1/tasks es asíncrono, la producción por lotes consiste en: enviar todo y luego recoger los resultados.

briefs = [
    ("hook-pancakes", "Plano vertical en primer plano: dos manos apilan un panqueque dorado…"),
    ("hook-latte",    "Plano vertical: el vapor sube de un café con leche recién hecho mientras se vierte la leche…"),
    ("hook-citrus",   "Plano macro vertical: un cuchillo corta un cítrico…"),
]

tasks = {name: submit(p, duration=5) for name, p in briefs}   # distribuir en paralelo
for name, tid in tasks.items():                                # recoger resultados
    result = wait(tid)
    url = result["output"][0]["url"]
    open(f"{name}.mp4", "wb").write(requests.get(url, timeout=120).content)

El costo se mantiene predecible porque la facturación es estrictamente duration × rate:

Escenario Especificaciones Costo
1 iteración de borrador 4 s · 480p aprox. $0.34
1 clip publicable 5 s · 720p aprox. $0.89
5 clips (un lote diario) 5 × 5 s · 720p aprox. $4.43
Lote con estilo coincidente 5 s · 720p con reference_video_urls aprox. $0.54 por clip

Un flujo de trabajo que resiste la práctica: genera borradores en 480p para cada idea, conserva los que merecen publicarse y vuelve a renderizar solo esos en 720p. Una vez que encuentres un estilo que valga la pena repetir, reference_video_urls fija el estilo con una tarifa por segundo inferior a la de un render nuevo en 720p.

Consejos de prompt orientados al feed

Los factores que realmente moldearon la salida en las pruebas de render, en especial para video corto:

  • Describe la escena como vertical y configura aspect_ratio: "9:16" en consecuencia. Los prompts escritos para escenas en 16:9 se recortan por el centro cuando se fuerzan a 9:16; describir de antemano una composición vertical de primer plano (como el clip de panqueques de arriba) hace que el sujeto llene el encuadre.
  • Empieza por el movimiento, no por la escena. El instante inicial de un clip en el feed necesita que ya esté ocurriendo algo (una mano que ya apila, la miel que ya se vierte), no un lento plano de establecimiento antes de la recompensa.
  • Mantén una acción clara por clip. El render de 5 segundos de arriba hace exactamente dos cosas en secuencia (apilar y luego verter) y se lee con claridad; meter tres acciones no relacionadas en un clip suele hacer que todas se vuelvan borrosas.
  • Especifica la iluminación y los materiales. «Cálida luz matinal», «vapor que se eleva», «brillando»: los detalles sensoriales concretos son lo que distingue un render específico y apetecible de uno genérico.

Preguntas frecuentes

¿seedance-2.0-fast es especialmente adecuado para TikTok y Reels? Sí: la compatibilidad nativa con 9:16 y el cobro por segundo (en lugar de una tarifa fija por clip) lo hacen ideal para un ritmo de publicación en el que renderizas varias opciones cortas y conservas la más fuerte.

¿Cuánto cuesta un clip corto? En 720p, el costo es duración (segundos) × $0.1772. Un clip de 5 segundos cuesta $0.886; uno de 10 segundos, $1.772. En 480p la tarifa baja a $0.0843 por segundo. Antes de presupuestar un lote completo, confirma la tarifa vigente en la página de precios.

¿Puedo animar una imagen estática en lugar de generar solo a partir de texto? Sí, mediante image_urls en la solicitud; consulta la sección de video a partir de imagen de arriba. Es la ruta más fiable cuando un producto, plato o decorado específico debe aparecer exactamente como se fotografió.

¿Cuál es el clip más corto y el más largo que puedo generar? duration acepta enteros de 4 a 15 segundos. No se admiten fracciones de segundo.

¿La resolución afecta algo más que el tamaño en píxeles y el precio? No en el esquema en sí: resolution solo controla el tamaño de salida y la tarifa por segundo. La composición y el movimiento dependen por completo del prompt y de aspect_ratio.

Resumen

Hacer video corto con seedance-2.0-fast se reduce a un endpoint asíncrono, tres campos obligatorios y un cobro por segundo que incentiva iterar antes de comprometerte: genera borradores en 480p para tus conceptos verticales, usa image_urls para fijar el fotograma inicial del ganador si un producto o sujeto específico debe aparecer con exactitud, y vuelve a renderizar en 720p las versiones finales que conserves. Obtén una clave de API y empieza con la solicitud del principio de esta guía: la página del modelo seedance-2.0-fast tiene la referencia completa de parámetros y los precios actuales para que sigas profundizando.

Artículos relacionados

Ver todos los artículos →

Empieza a crear con artefactos de IA persistentes

Consigue tu API key y llama a modelos de imagen, vídeo y audio a través de una única API basada en tasks.

Leer la documentación de la API