HiAPI
Blog

Guía de uso

Crear videos cortos con la API de Kling AI: flujo de trabajo integral de texto a video con kling-3.0-omni

Envía, consulta y descarga clips verticales 9:16 con audio sincronizado nativo: cada video incrustado en el artículo es una toma real de primera generación, con su prompt exacto y su coste.

Jul 8, 2026
Crear videos cortos con la API de Kling AI: flujo de trabajo integral de texto a video con kling-3.0-omni

El video corto es un juego de volumen: el feed premia a las cuentas que publican a diario, y nadie puede rodar, montar y diseñar el sonido de un clip a mano todos los días. kling-3.0-omni/text-to-video es uno de los pocos modelos que cubre la lista completa de requisitos del video corto en una sola llamada a la API —salida vertical 9:16, movimiento cinematográfico, secuencias de múltiples planos y audio sincronizado nativo—, así que todo el pipeline se reduce a "escribir un prompt, consultar una tarea, descargar un .mp4 listo para publicar".

Esta guía recorre el flujo de trabajo completo de extremo a extremo sobre la API de hiapi: enviar una tarea asíncrona, diseñar prompts que retengan al espectador durante el deslizamiento del feed, activar el audio nativo, escalar a narrativas de múltiples planos y generar variantes en lote. Cada clip incrustado a continuación es una salida real, sin editar y de primera generación, procedente de la API en producción —generada para este artículo, con el prompt y los ajustes exactos mostrados al lado.

Las herramientas que usarás

kling-3.0-omni/text-to-video (Kling 3.0 Omni de Kuaishou, endpoint de texto a video) se ejecuta sobre la interfaz de tareas asíncronas de hiapi. La facturación se calcula por segundos de salida y depende de la resolución y de si el audio nativo está activado. Las siguientes tarifas provienen de la página de precios de hiapi en el momento de escribir este artículo:

Nivel Precio por segundo Clip de 5 segundos Clip de 10 segundos
720p $0.10 $0.50 $1.00
720p + audio $0.143 $0.72 $1.43
1080p $0.129 $0.65 $1.29
1080p + audio $0.193 $0.97 $1.93
4K $0.479 $2.40 $4.79

Para videos verticales orientados al feed, 720p es la elección honesta: TikTok y Reels recomprimen todo de todos modos, y es la forma más barata de iterar prompts. Reserva 1080p/4K para clips que además vayas a editar en otros formatos.

El esquema de entrada que verificamos realmente en este artículo: prompt (string), duration (segundos enteros —probamos 5 y 10 segundos), resolution (720p / 1080p / 4K), aspect_ratio (9:16 para vertical) y sound (booleano, desactivado por defecto). Un comportamiento que conviene conocer antes de construir sobre ello: cuando omites sound, el .mp4 devuelto no tiene ninguna pista de audio —no es una pista muda, es que no hay pista. Si tu pipeline de edición posterior espera que todos los archivos tengan un flujo de audio, o bien configura siempre sound: true, o bien gestiona explícitamente los archivos sin pista.

Enviar → consultar → descargar: el ciclo de vida de la tarea

Todo pasa por POST /v1/tasks. Envía la tarea, recibe un ID de tarea de inmediato, consulta hasta que se complete y luego descarga la salida. Un clip de 5 segundos en 720p suele renderizarse en pocos minutos.

Envío con curl:

curl -s -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling-3.0-omni/text-to-video",
    "input": {
      "prompt": "Vertical short-form video. A barista in a sunlit specialty coffee bar pours a perfect rosetta latte art in one smooth motion, steam rising, morning light through the window, shallow depth of field, crisp photoreal detail, subtle slow push-in.",
      "duration": 5,
      "resolution": "720p",
      "aspect_ratio": "9:16"
    }
  }'

La respuesta vuelve de inmediato:

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

Luego consulta GET /v1/tasks/{taskId} hasta que status sea success (o fail) y descarga output[0].url. A continuación, un script auxiliar completo en Python —este es el patrón real que usamos para generar cada clip de esta guía:

import json, subprocess, time, os

API = "https://api.hiapi.ai/v1/tasks"
TOKEN = os.environ["HIAPI_API_KEY"]

def submit(input_fields: dict) -> str:
    payload = {"model": "kling-3.0-omni/text-to-video", "input": input_fields}
    out = subprocess.run(
        ["curl", "-s", "-X", "POST", API,
         "-H", f"Authorization: Bearer {TOKEN}",
         "-H", "Content-Type: application/json",
         "-d", json.dumps(payload)],
        capture_output=True, text=True, timeout=70).stdout
    return json.loads(out)["data"]["taskId"]

def wait(task_id: str, timeout_s: int = 900) -> dict:
    deadline = time.time() + timeout_s
    while time.time() < deadline:
        out = subprocess.run(
            ["curl", "-s", f"{API}/{task_id}",
             "-H", f"Authorization: Bearer {TOKEN}"],
            capture_output=True, text=True, timeout=40).stdout
        task = json.loads(out)["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)

task_id = submit({
    "prompt": "...",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "9:16",
})
task = wait(task_id)
video_url = task["output"][0]["url"]
subprocess.run(["curl", "-s", "-o", "clip.mp4", video_url], timeout=120)

Un detalle operativo importante en producción: el output[0].url que recibes es un enlace firmado con caducidad (lleva una hora de expiración). Descarga los bytes inmediatamente después de que la tarea tenga éxito y guárdalos en tu propio bucket o CDN; nunca guardes la URL original de la tarea en una base de datos ni en un CMS.

Diseñar prompts para el gancho de 3 segundos

El video corto se decide por lo que ocurre en el primer segundo en pantalla. El patrón de prompt que funciona de forma consistente para ganchos verticales: un sujeto, una acción continua y satisfactoria, la luz descrita explícitamente y el movimiento de cámara expresado en lenguaje cinematográfico. Este es el prompt exacto del ejemplo curl anterior y el clip que produjo:

Vertical short-form video. A barista in a sunlit specialty coffee bar pours a
perfect rosetta latte art in one smooth motion, steam rising, morning light
through the window, shallow depth of field, crisp photoreal detail, subtle
slow push-in.

Salida real — kling-3.0-omni/text-to-video, 5 s @ 720p, 9:16, sin audio. Primera generación, sin editar.

La función de cada elemento:

  • "Vertical short-form video" (video corto vertical) al principio ancla las decisiones de composición, no solo la proporción de píxeles: el modelo compone para la pantalla del móvil.
  • Una única acción continua ("pours ... in one smooth motion", es decir, "vierte… en un solo movimiento fluido") da al modelo un único arco que renderizar, en lugar de introducir cortes aleatorios.
  • "Subtle slow push-in" (acercamiento lento y sutil) es una verdadera instrucción de cámara. Las palabras de ambiente vagas ("dynamic", "engaging") hacen que el modelo improvise; el vocabulario de cámara lo mantiene encauzado.
  • La luz merece una frase propia ("morning light through the window", es decir, "luz de la mañana a través de la ventana"): la luz es la diferencia entre un "clip de IA" y una "grabación real en plató".

Audio nativo: configura sound: true y describe el paisaje sonoro

La función estrella de Kling 3.0 Omni es el audio sincronizado nativo: el modelo renderiza una pista sonora que encaja con la imagen, y para contenido gastronómico, ASMR y de calle eso supone la mayor parte de la retención. Hay que hacer dos cosas a la vez: configurar "sound": true en la entrada (se factura a la tarifa + audio, $0.143/s en 720p) y describir el audio en el prompt igual que describes la imagen:

Vertical short-form video. Close-up of a street food vendor's wok at night:
diced garlic and chili hit sizzling oil with a burst of steam, flames lick up
the wok's edge as the vendor tosses noodles in rhythmic flips, neon signs
glowing bokeh in the background. Handheld feel, appetizing, high energy.
Native audio: loud sizzle, wok clangs, distant street chatter.

Salida real — kling-3.0-omni/text-to-video, 5 s @ 720p, 9:16, sound: true. Sube el volumen: el chisporroteo y el choque de la espátula los genera el modelo y están sincronizados con el salteado.

El patrón del sufijo "Native audio:" —una lista breve de dos o tres sonidos clave separados por comas— supera de forma fiable a descripciones en prosa como "with realistic sound effects" (con efectos de sonido realistas). Nombra los sonidos y el modelo los sincronizará con los eventos visuales correspondientes.

Verificamos el límite de facturación en salidas reales con ffprobe: un clip enviado sin sound contiene solo un flujo de video H.264, mientras que un clip con sound: true incluye una pista de audio AAC adicional. Solo pagas el suplemento de audio por los clips que lo solicitan.

Narrativa de múltiples planos en un solo prompt

Otra función diferencial de Omni son las secuencias de múltiples planos: puedes escribir cortes explícitos dentro de una sola generación en lugar de empalmar tres clips independientes. Numera los planos en el prompt y dale a toda la secuencia un etalonaje compartido para que parezca un montaje y no un accidente:

Vertical short-form video, three-shot sequence. Shot 1: a young woman in a
yellow rain jacket steps out of a subway exit into light rain, opens a clear
umbrella. Shot 2: close-up of her boots splashing through a neon-reflecting
puddle in slow motion. Shot 3: she stops at a food cart, smiles as warm steam
drifts past, city lights bokeh behind. Cohesive teal-and-amber grade,
cinematic handheld energy. Native audio: soft rain, city ambience, distant
traffic hum.

Salida real — kling-3.0-omni/text-to-video, 10 s @ 720p, 9:16, sound: true. Tres planos guionizados, una sola generación: $1.43.

Calcula aproximadamente tres segundos por plano: una duración de 10 segundos encaja bien con una historia de tres tiempos. El ancla recurrente (la chaqueta amarilla) es la clave para mantener la identidad coherente entre cortes; dale a cada prompt de múltiples planos una constante visual llamativa, o el sujeto derivará entre planos.

Producción en lote: una plantilla, muchas variantes

A escala es donde la economía se vuelve interesante. Un mes de publicaciones diarias es una plantilla de prompt con huecos variables, enviada en paralelo: las tareas se renderizan en paralelo, así que un lote termina aproximadamente en el tiempo de un solo clip. Tomamos la plantilla del gancho del latte y sustituimos el sujeto:

Vertical short-form video. A ceramic bowl of matcha being whisked into a vivid
green froth with a bamboo whisk, in a sunlit specialty tea bar, steam rising,
morning light through the window, shallow depth of field, crisp photoreal
detail, subtle slow push-in.

Salida real — la misma plantilla que el clip del latte, con una sola variable cambiada. 5 s @ 720p, 9:16: $0.50.

El acercamiento, la luz de la ventana y la profundidad de campo reducida se mantienen intactos: justo la consistencia visual que quieres para tu cuenta. En código, el lote consiste en enviar antes de esperar:

TEMPLATE = ("Vertical short-form video. {subject}, in a sunlit specialty {venue}, "
            "steam rising, morning light through the window, shallow depth of field, "
            "crisp photoreal detail, subtle slow push-in.")

VARIANTS = [
    {"subject": "A barista pouring a perfect rosetta latte art in one smooth motion", "venue": "coffee bar"},
    {"subject": "A ceramic bowl of matcha being whisked into a vivid green froth with a bamboo whisk", "venue": "tea bar"},
    {"subject": "A croissant being pulled apart to reveal steaming, glossy layers", "venue": "bakery"},
]

task_ids = [submit({
    "prompt": TEMPLATE.format(**v),
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "9:16",
}) for v in VARIANTS]          # all rendering in parallel

clips = [wait(tid) for tid in task_ids]

Planificación de costes en 720p: 30 clips de gancho de 5 segundos sin audio al mes cuestan $15; ese mismo mes con audio nativo cuesta $21.45. Incluso con un calendario agresivo —clips diarios de 10 segundos con audio— son solo $42.90/mes, más barato que una hora del tiempo de un editor de video. Consulta las tareas a medida que devuelven resultados y trata un estado fail de una tarea como un reintento solo de esa variante, no de todo el lote.

Todo el contenido de este artículo costó $3.15 en generación de video: cuatro clips, 25 segundos de material, todos de primera generación.

Siguientes pasos

Ya tienes el ciclo completo: envía una tarea 9:16, consúltala, descarga el .mp4 y escala con plantillas. Algunas ideas para lo siguiente:

  • Consigue tu clave de API y la referencia completa de endpoints en la documentación de hiapi: el ciclo de vida de las tareas descrito arriba es idéntico para todos los modelos de video de la plataforma.
  • Antes de presupuestar lotes grandes, consulta las tarifas por segundo vigentes de todos los niveles en la página de precios.
  • Si para este caso de uso estás eligiendo entre modelos, en Short-Form Video with seedance-2.0-mini ejecutamos el mismo flujo de trabajo de video corto con un modelo económico; sirve como línea base de precio/calidad frente a Kling.

Empieza con un clip de prueba de $0.50 con tu propio sujeto, conserva los elementos del prompt que han resistido la prueba del feed y luego convierte la plantilla en tareas en lote en la página del modelo kling-3.0-omni/text-to-video.

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