HiAPI
Blog

Guía de uso

Crear videos cortos con Kling 3.0 de imagen a video mediante la API de HiAPI

Oct 8, 2026
Crear videos cortos con Kling 3.0 de imagen a video mediante la API de HiAPI

Los videos cortos son el formato que toda cadena de producción de contenido acaba teniendo que soportar, y la forma más económica de producirlos de forma fiable y por lotes es imagen a video: tomas un fotograma fijo que ya controlas —una foto de producto, un diseño de personaje, un fotograma clave generado— y dejas que un modelo de video lo anime. El endpoint de imagen a video de Kling 3.0 en HiAPI destaca en esto, y además tiene una función que la mayoría de los modelos i2v omiten: puedes proporcionar el primer fotograma y el último a la vez, de modo que el modelo anima entre ambos estados en lugar de limitarse a extrapolar movimiento a partir de un único fotograma.

Este tutorial construye un flujo de trabajo completo y scriptable: generar el primer fotograma, enviarlo a la API de tareas asíncronas de Kling 3.0, consultar su estado hasta que se complete y descargar un clip terminado con audio sincronizado nativo, todo mediante llamadas HTTP simples que puedes incorporar directamente a tareas por lotes.

Por qué imagen a video en lugar de texto a video

Texto a video te da una sorpresa cada vez. Imagen a video te da un punto de partida que ya has aprobado, algo importante cuando ese fotograma es una foto de producto, un personaje de marca o cualquier cosa que deba verse de una forma concreta antes de moverse. El modelo de imagen a video de Kling 3.0 lleva esto más lejos con el control de primer fotograma + último fotograma: con una imagen de referencia, el modelo la trata solo como punto de partida; con dos, la segunda se convierte en el estado final objetivo y el modelo interpola el movimiento entre ambas. En la práctica, es animación de fotogramas clave programable mediante una única llamada a la API, sin necesidad de ningún editor de líneas de tiempo.

Estructura de la solicitud

Kling 3.0 de imagen a video se ejecuta en el endpoint unificado de tareas asíncronas de HiAPI: POST /v1/tasks y luego consultas GET /v1/tasks/{id} hasta que finalice. El esquema de entrada del modelo se mantiene deliberadamente ajustado:

{
  "model": "kling-3.0/image-to-video",
  "input": {
    "prompt": "a lantern slowly lighting up as the camera pushes in, warm cinematic glow",
    "image_urls": ["https://static.hiapi.ai/blog/kling-3-0-image-to-video-short-form-workflow/first-frame-v2.jpg"],
    "duration": 3,
    "resolution": "720p",
    "sound": true
  }
}

Antes de construir algo en torno a esto, hay varios detalles que conviene conocer:

  • image_urls acepta 1 o 2 elementos. Una imagen significa «anima a partir de este fotograma». Dos imágenes significan «anima desde la primera hacia la segunda»: ese es el control de primer fotograma + último fotograma mencionado arriba. No hay un campo tail_image_url independiente; todo se expresa mediante la posición en el array.
  • duration es un entero de 3 a 15 segundos. Las plataformas de video corto suelen preferir clips de entre 3 y 8 segundos, así que para una escena individual normalmente querrás quedarte en la parte baja de ese rango.
  • resolution llega hasta 4K, por encima de su modelo hermano kling-3.0-turbo (limitado a 1080p). El coste es el precio a pagar —consulta los precios más abajo—, así que 720p o 1080p cubren la mayoría de los casos de video corto sin pagar por una resolución que nadie notará en la pantalla de un móvil.
  • sound es un booleano, y activa una generación de audio realmente sincronizada, no un clip mudo al que se le añade música a posteriori. Actívalo cuando el movimiento de tu escena produzca sonidos de forma verosímil (una puerta que se cierra, el viento, pasos); el resultado será claramente más creíble que un render mudo.
  • No hay campo aspect_ratio: la imagen de salida conserva la relación de aspecto de la imagen que introduzcas.

Script de extremo a extremo

Este es el flujo completo en Python: crear la tarea, consultar hasta que se complete y descargar el resultado.

import requests
import time

API_KEY = "YOUR_HIAPI_KEY"
BASE = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}

def submit_i2v(image_url, prompt, duration=3, resolution="720p", sound=True):
    payload = {
        "model": "kling-3.0/image-to-video",
        "input": {
            "prompt": prompt,
            "image_urls": [image_url],
            "duration": duration,
            "resolution": resolution,
            "sound": sound,
        },
    }
    resp = requests.post(BASE, headers=HEADERS, json=payload, timeout=60)
    resp.raise_for_status()
    return resp.json()["data"]["taskId"]

def wait_for_result(task_id, poll_interval=5, timeout_s=600):
    deadline = time.time() + timeout_s
    while time.time() < deadline:
        resp = requests.get(f"{BASE}/{task_id}", headers=HEADERS, timeout=30)
        resp.raise_for_status()
        task = resp.json()["data"]
        if task["status"] == "success":
            return task["output"][0]["url"]
        if task["status"] == "fail":
            raise RuntimeError(task.get("error"))
        time.sleep(poll_interval)
    raise TimeoutError(f"task {task_id} did not finish in {timeout_s}s")

task_id = submit_i2v(
    image_url="https://static.hiapi.ai/blog/kling-3-0-image-to-video-short-form-workflow/first-frame-v2.jpg",
    prompt="a lantern slowly lighting up as the camera pushes in, warm cinematic glow",
)
video_url = wait_for_result(task_id)
print(video_url)  # temporary signed URL — download immediately, don't store it as a permanent link

Hay un detalle que suele pillar a la gente al integrar esto en una cadena real: el output[0].url que recibes es un enlace temporal que caduca. Descarga los bytes de inmediato y muévelos a tu propio almacenamiento, en lugar de guardar en algún sitio la URL de salida de la tarea como enlace permanente.

Este es el primer fotograma usado en este ejemplo, y el clip que Kling 3.0 generó a partir de él con sound: true:

Un clip de 3 segundos en 720p con audio como el anterior cuesta algo más de $0.40, lo bastante barato como para iterar el prompt varias veces antes de fijar la versión que quieres entregar.

Precios: la resolución y el audio afectan al coste

Kling 3.0 de imagen a video cobra por segundo de duración de salida, y tanto la resolución como el interruptor de audio afectan a la tarifa:

Resolución Sin audio Con audio
720p $0.10/s $0.143/s
1080p $0.129/s $0.193/s
4K $0.479/s —

Ejemplos de cálculo: un clip de 3 segundos en 720p con sonido cuesta unos $0.43. Un clip de 5 segundos en 1080p sin audio cuesta $0.645; el mismo clip con audio cuesta $0.965. Para contenido de video corto, donde la mayoría de los clips finales caen en el rango de 3 a 8 segundos, 720p o 1080p son casi siempre la elección correcta: el precio de 4K solo tiene sentido si vas a componer el resultado en algo que realmente se beneficie de la resolución adicional en etapas posteriores. Antes de lanzar cualquier cosa a gran escala, consulta los precios actuales, porque detalles como las tarifas por segundo merecen confirmarse contra la página en vivo en lugar de darse por sentado de memoria.

Convertirlo en un flujo de trabajo real por lotes

Para contenido de video corto a cualquier escala, no querrás enviar una tarea y quedarte mirándola: querrás lanzar un lote de tareas de una vez y recoger los resultados a medida que lleguen. Como cada tarea es independiente y se identifica por su propio taskId, el patrón es sencillo: envía primero todas las solicitudes de imagen a video, guarda los ID de tarea devueltos y luego recórrelos consultando su estado, actuando solo cuando cada tarea pase a success o fail. Así tu cadena avanza al ritmo real de la plataforma en lugar de serializarse en la generación individual más lenta.

Algunos hábitos que conviene adoptar desde el principio:

  • Verifica que la imagen de origen es accesible antes de enviar. La API de tareas aceptará encantada una URL y luego la tarea fallará más tarde si la imagen no se puede obtener; comprobarlo antes con una petición HEAD evita una generación desperdiciada.
  • Trata el estado fail como un resultado normal, no como una excepción. De vez en cuando la salida del modelo rechaza una combinación concreta de prompt e imagen; registra el fallo y pasa al siguiente elemento en lugar de abortar todo el lote.
  • Reutiliza el clip entre variantes siempre que puedas. Si estás probando varios subtítulos o pistas musicales sobre la misma animación generada, no hace falta volver a generar el video: eso es puramente un paso de edición posterior.

Si es la primera vez que configuras una clave de API y la autenticación, la guía de inicio rápido de HiAPI cubre lo básico para obtener una clave y hacer tu primera llamada autenticada; después podrás construir sobre ello tu cadena de procesamiento por lotes completa.

Resumen

El modelo de imagen a video de Kling 3.0 convierte un único fotograma fijo —o dos, si quieres control de primer fotograma + último fotograma— en un clip de video corto con audio sincronizado mediante una llamada HTTP, con un precio que escala de forma predecible según la duración, la resolución y si necesitas sonido. Para las cadenas de video corto, la combinación de este control, el bajo coste por clip en 720p/1080p y una API de tareas asíncronas directa te permite pasar fácilmente de «una imagen fija» a «un lote de clips terminados» sin tocar un editor de 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