Saltar al contenido principal
Este documento presentará una guía sobre la integración de la API de generación de videos Kling, que permite generar videos oficiales de Kling mediante la entrada de parámetros personalizados.

Proceso de solicitud

Para utilizar la API, primero debe ir a la página correspondiente de Kling Videos Generation API para solicitar el servicio correspondiente. Una vez en la página, haga clic en el botón “Acquire”, como se muestra en la imagen: Si aún no ha iniciado sesión o registrado, será redirigido automáticamente a la página de inicio de sesión que lo invita a registrarse e iniciar sesión. Después de iniciar sesión o registrarse, será redirigido automáticamente a la página actual. En la primera solicitud, se otorgará un crédito gratuito que le permitirá utilizar la API de forma gratuita.

Uso básico

Primero, debe comprender la forma básica de uso, que consiste en ingresar la palabra clave prompt, la acción action, la imagen de referencia del primer fotograma start_image_url y el modelo model, para obtener el resultado procesado. Primero, necesita pasar un campo action, cuyo valor es text2video. Este campo incluye tres acciones principales: video a partir de texto (text2video), video a partir de imagen (image2video), y video extendido (extend). Luego, también necesitamos ingresar el modelo model, que actualmente incluye los modelos kling-v1, kling-v1-6, kling-v2-master, kling-v2-1-master, kling-v2-5-turbo, kling-video-o1, con los siguientes detalles:

Aquí podemos ver que hemos configurado los Request Headers, que incluyen:
  • accept: el formato de respuesta que desea recibir, aquí se establece como application/json, es decir, en formato JSON.
  • authorization: la clave para llamar a la API, que puede seleccionarse directamente después de la solicitud.
Además, se ha configurado el Request Body, que incluye:
  • model: el modelo para generar el video, que incluye kling-v1, kling-v1-6, kling-v2-master, kling-v2-1-master, kling-v2-5-turbo, kling-video-o1.
  • mode: el modo de generación de video, que incluye el modo estándar std y el modo rápido pro.
  • action: la acción de la tarea de generación de video, que incluye tres acciones: video a partir de texto (text2video), video a partir de imagen (image2video), y video extendido (extend).
  • start_image_url: cuando se elige la acción de video a partir de imagen (image2video), es necesario subir el enlace de la imagen de referencia del primer fotograma.
  • end_image_url: opcional al generar video a partir de imagen, especifica el fotograma final.
  • aspect_ratio: la relación de aspecto del video, opcional, soporta 16:9, 9:16, 1:1, por defecto 16:9.
  • cfg_scale: intensidad de correlación, rango [0,1], cuanto mayor sea, más se ajustará a la palabra clave.
  • camera_control: opcional, parámetros para controlar el movimiento de la cámara, soporta preajustes type/simple y configuraciones como horizontal, vertical, pan, tilt, roll, zoom, etc.
  • negative_prompt: opcional, palabras clave inversas que no desea que aparezcan, hasta 200 caracteres.
  • element_list: lista de referencias de sujeto, aplicable solo al modelo kling-video-o1, consulte la documentación oficial para el uso específico de este parámetro.
  • video_list: videos de referencia, obtenidos a través de URL, aplicable solo al modelo kling-video-o1, consulte la documentación oficial para el uso específico de este parámetro.
  • prompt: palabra clave.
  • callback_url: URL para recibir el resultado de la llamada.
Después de seleccionar, puede ver que también se ha generado el código correspondiente a la derecha, como se muestra en la imagen:

Haga clic en el botón “Try” para realizar una prueba, como se muestra en la imagen anterior, y obtendremos el siguiente resultado:
{
  "success": true,
  "video_id": "af9a1af0-9aa0-4638-81c1-d41d6143c508",
  "video_url": "https://cdn.klingai.com/bs2/upload-kling-api/7485378259/text2video/Cjil4mfBfs0AAAAAAKbMQQ-0_raw_video_1.mp4",
  "duration": "5.1",
  "state": "succeed",
  "task_id": "e3a575aa-a4bd-49c8-9b12-cde38d5462e0"
}
El resultado devuelto tiene varios campos, que se describen a continuación:
  • success: el estado de la tarea de generación de video en ese momento.
  • task_id: el ID de la tarea de generación de video en ese momento.
  • video_id: el ID del video generado en ese momento.
  • video_url: el enlace del video generado en ese momento.
  • duration: la duración del video generado en ese momento.
  • state: el estado de la tarea de generación de video en ese momento.
Podemos ver que hemos obtenido la información del video deseado, y solo necesitamos acceder al enlace del video en data para obtener el video generado de Kling. Además, si desea generar el código de integración correspondiente, puede copiarlo directamente, por ejemplo, el código de CURL es el siguiente:
curl -X POST 'https://api.acedata.cloud/kling/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "text2video",
  "model": "kling-v1",
  "prompt": "Taza de café de cerámica blanca sobre una encimera de mármol brillante con luz de ventana de la mañana. La cámara rota lentamente 360 grados alrededor de la taza, deteniéndose brevemente en el asa."
}'

Función de video extendido

Si desea continuar generando un video Kling que ya ha sido creado, puede establecer el parámetro action como extend e ingresar el ID del video que desea continuar generando. El ID del video se obtiene según el uso básico, como se muestra en la imagen a continuación:

En este momento, puede ver que el ID del video es:
"video_id": "030bb06d-98d4-4044-9042-0aa0822e8c8c"
Nota: aquí el video_id en el video es el ID del video generado. Si no sabe cómo generar un video, puede consultar el uso básico mencionado anteriormente para generar un video.
A continuación, debemos completar la siguiente palabra clave que necesitamos para personalizar la generación del video, y podemos especificar el siguiente contenido:
  • model:Modelo para generar videos, principalmente hay modelos kling-v1, kling-v1-5 y kling-v1-6.
  • mode:Modo de generación de video, principalmente hay dos tipos: modo estándar std y modo rápido pro.
  • duration:La duración del video en esta tarea de generación de video, que incluye principalmente 5s y 10s.
  • start_image_url:Cuando se elige la acción de generar video a partir de imagen image2video, es necesario subir el enlace de la imagen de referencia del primer fotograma.
  • prompt:Palabra clave.
Ejemplo de llenado a continuación:

Una vez completado, se generó automáticamente el siguiente código:

Código Python correspondiente:
import requests

url = "https://api.acedata.cloud/kling/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "action": "extend",
    "model": "kling-v1",
    "video_id": "030bb06d-98d4-4044-9042-0aa0822e8c8c",
    "prompt": "Taza de café de cerámica blanca sobre una encimera de mármol brillante con luz de ventana de la mañana. La cámara rota lentamente 360 grados alrededor de la taza, deteniéndose brevemente en el asa.",
    "duration": 10
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Al hacer clic en ejecutar, se puede observar que se obtiene un resultado como el siguiente:
{
  "success": true,
  "video_id": "bbc3b105-ac72-4de2-8390-0cb37dc7d41e",
  "video_url": "https://cdn.klingai.com/bs2/upload-kling-api/7822108635/extendVideo/Cjil4mfBfs0AAAAAAKhr6A-0_raw_video_1.mp4",
  "duration": "9.6",
  "state": "succeed",
  "task_id": "3ece87e6-3ee3-4f5e-bd70-5ae5eca89a23"
}
Se puede ver que el contenido del resultado es consistente con el anterior, lo que también logra la función de extensión de video.

Callback asíncrono

Dado que el tiempo de generación de la API de Kling Videos es relativamente largo, aproximadamente de 1 a 2 minutos, si la API no responde durante mucho tiempo, la solicitud HTTP mantendrá la conexión, lo que provocará un consumo adicional de recursos del sistema. Por lo tanto, esta API también ofrece soporte para callbacks asíncronos. El flujo general es: cuando el cliente inicia la solicitud, se especifica un campo adicional callback_url. Después de que el cliente inicia la solicitud a la API, la API devolverá inmediatamente un resultado que incluye un campo task_id, que representa el ID de la tarea actual. Cuando la tarea se completa, el resultado del video generado se enviará al callback_url especificado por el cliente en formato JSON POST, que también incluye el campo task_id, de modo que el resultado de la tarea se pueda asociar mediante el ID. A continuación, entenderemos cómo operar específicamente a través de un ejemplo. Primero, el callback de Webhook es un servicio que puede recibir solicitudes HTTP, los desarrolladores deben reemplazarlo con la URL de su propio servidor HTTP. Para facilitar la demostración, se utiliza un sitio web de muestra de Webhook público https://webhook.site/, al abrir este sitio se obtiene una URL de Webhook, como se muestra en la imagen: Copie esta URL y podrá usarla como Webhook, el ejemplo aquí es https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3. A continuación, podemos establecer el campo callback_url como la URL de Webhook anterior, al mismo tiempo que llenamos los parámetros correspondientes, el contenido específico se muestra en la imagen:

Al hacer clic en ejecutar, se puede observar que se obtiene inmediatamente un resultado como el siguiente:
{
  "task_id": "20068983-0cc9-4c6a-aeb6-9c6a3c668be0"
}
Después de un momento, podemos observar el resultado del video generado en https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3, como se muestra en la imagen: El contenido es el siguiente:
{
    "success": true,
    "video_id": "030bb06d-98d4-4044-9042-0aa0822e8c8c",
    "video_url": "https://cdn.klingai.com/bs2/upload-kling-api/7822108635/text2video/CjJzzGfBfqcAAAAAAKdVMQ-0_raw_video_1.mp4",
    "duration": "5.1",
    "state": "succeed",
    "task_id": "20068983-0cc9-4c6a-aeb6-9c6a3c668be0"
}
Se puede ver que en el resultado hay un campo task_id, los otros campos son similares a los anteriores, y a través de este campo se puede lograr la asociación de tareas.

Manejo de errores

Al llamar a la API, si se encuentra con un error, la API devolverá el código de error y la información correspondiente. Por ejemplo:
  • 400 token_mismatched:Solicitud incorrecta, posiblemente debido a parámetros faltantes o inválidos.
  • 400 api_not_implemented:Solicitud incorrecta, posiblemente debido a parámetros faltantes o inválidos.
  • 401 invalid_token:No autorizado, token de autorización inválido o faltante.
  • 429 too_many_requests:Demasiadas solicitudes, ha superado el límite de tasa.
  • 500 api_error:Error interno del servidor, algo salió mal en el servidor.

Ejemplo de respuesta de error

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Conclusión

A través de este documento, ha aprendido cómo usar la API de generación de videos de Kling, que permite generar videos mediante la entrada de palabras clave y una imagen de referencia del primer fotograma. Esperamos que este documento le ayude a integrar y utilizar mejor esta API. Si tiene alguna pregunta, no dude en ponerse en contacto con nuestro equipo de soporte técnico.