> ## Documentation Index
> Fetch the complete documentation index at: https://evolink.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Kling Elemento personalizado

> - Kling Custom Element (kling-custom-element) crea elementos de sujeto reutilizables (personajes/objetos) a partir de imágenes o videos de referencia
- Después de una creación exitosa, el `element_id` devuelto puede ser referenciado en la serie Kling O3 y Kling V3 Imagen-a-Video a través del parámetro `element_list`, permitiendo un control consistente de la apariencia del personaje
- Modo de procesamiento asíncrono, usa el ID de tarea devuelto para [consultar estado](/es/api-manual/task-management/get-task-detail)
- Al completarse la tarea, `result_data` contendrá el `element_id` para la generación de video

**Notas importantes:**
- Este modelo se usa para crear sujetos reutilizables (elementos), **no genera videos**, no se necesitan parámetros prompt / duration / quality / aspect_ratio



## OpenAPI

````yaml es/api-manual/video-series/kling/kling-custom-element.json POST /v1/videos/generations
openapi: 3.1.0
info:
  title: kling-custom-element API
  description: >-
    Crear elementos de sujeto reutilizables (personajes/objetos) para una
    apariencia consistente de personajes en la serie Kling O3 y la generación
    Kling V3 Imagen-a-Video
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.evolink.ai
    description: Producción
security:
  - bearerAuth: []
tags:
  - name: Creación de elementos de sujeto
    description: >-
      Crear elementos de sujeto reutilizables para un control consistente de la
      apariencia del personaje en la generación de video
paths:
  /v1/videos/generations:
    post:
      tags:
        - Creación de elementos de sujeto
      summary: kling-custom-element API
      description: >-
        - Kling Custom Element (kling-custom-element) crea elementos de sujeto
        reutilizables (personajes/objetos) a partir de imágenes o videos de
        referencia

        - Después de una creación exitosa, el `element_id` devuelto puede ser
        referenciado en la serie Kling O3 y Kling V3 Imagen-a-Video a través del
        parámetro `element_list`, permitiendo un control consistente de la
        apariencia del personaje

        - Modo de procesamiento asíncrono, usa el ID de tarea devuelto para
        [consultar estado](/es/api-manual/task-management/get-task-detail)

        - Al completarse la tarea, `result_data` contendrá el `element_id` para
        la generación de video


        **Notas importantes:**

        - Este modelo se usa para crear sujetos reutilizables (elementos), **no
        genera videos**, no se necesitan parámetros prompt / duration / quality
        / aspect_ratio
      operationId: createCustomElement
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomElementRequest'
            examples:
              image_refer:
                summary: Crear sujeto a partir de imágenes de referencia
                value:
                  model: kling-custom-element
                  model_params:
                    element_name: Mi personaje
                    element_description: >-
                      Un joven personaje masculino con cabello corto, vistiendo
                      una camiseta blanca
                    reference_type: image_refer
                    element_image_list:
                      frontal_image: https://example.com/front.jpg
                      refer_images:
                        - image_url: https://example.com/side.jpg
              video_refer:
                summary: Crear sujeto a partir de video de referencia
                value:
                  model: kling-custom-element
                  model_params:
                    element_name: Mi personaje
                    element_description: >-
                      Un personaje femenino con cabello largo, vistiendo un
                      vestido rojo
                    reference_type: video_refer
                    element_video_list:
                      video_url: https://example.com/reference.mp4
                    element_voice_id: '829824295735410756'
      responses:
        '200':
          description: Tarea de creación de elemento de sujeto enviada exitosamente
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomElementResponse'
        '400':
          description: Parámetros de solicitud inválidos
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: invalid_request
                  message: Invalid request parameters
                  type: invalid_request_error
        '401':
          description: No autenticado, token inválido o expirado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: Cuota insuficiente, se requiere recarga
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: insufficient_quota
                  message: Insufficient quota. Please top up your account.
                  type: insufficient_quota
        '403':
          description: Acceso denegado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: model_access_denied
                  message: 'Token does not have access to model: kling-custom-element'
                  type: invalid_request_error
        '429':
          description: Límite de solicitudes excedido
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: rate_limit_exceeded
                  message: Too many requests, please try again later
                  type: rate_limit_error
        '500':
          description: Error interno del servidor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: internal_error
                  message: Internal server error
                  type: api_error
        '502':
          description: Error del servicio upstream
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: upstream_error
                  message: Upstream AI service unavailable
                  type: upstream_error
components:
  schemas:
    CustomElementRequest:
      type: object
      required:
        - model
        - model_params
      properties:
        model:
          type: string
          description: Nombre del modelo
          enum:
            - kling-custom-element
          default: kling-custom-element
          example: kling-custom-element
        model_params:
          type: object
          description: Parámetros del modelo
          required:
            - element_name
            - element_description
            - reference_type
          properties:
            element_name:
              type: string
              description: |-
                Nombre del elemento de sujeto

                **Nota:**
                - Máximo `20` caracteres
              maxLength: 20
              example: Mi personaje
            element_description:
              type: string
              description: >-
                Descripción del elemento de sujeto, ayuda al modelo a comprender
                las características de apariencia del sujeto


                **Nota:**

                - Máximo `100` caracteres
              maxLength: 100
              example: >-
                Un joven personaje masculino con cabello corto, vistiendo una
                camiseta blanca
            reference_type:
              type: string
              description: |-
                Tipo de material de referencia

                | Valor | Descripción |
                |---|---|
                | `image_refer` | Crear sujeto usando imágenes de referencia |
                | `video_refer` | Crear sujeto usando video de referencia |
              enum:
                - image_refer
                - video_refer
              example: image_refer
            element_image_list:
              type: object
              description: >-
                Lista de imágenes de referencia para crear elementos de sujeto.
                Obligatorio cuando `reference_type = image_refer`


                **Nota:**

                - Se recomienda usar imágenes claras, bien iluminadas, con el
                sujeto bien visible

                - Dimensiones de imagen: ancho y alto ≥ `300px`, relación de
                aspecto entre `1:2.5` y `2.5:1`

                - `frontal_image` (recomendado): URL de imagen de referencia
                frontal

                - `refer_images`: Lista de imágenes de referencia adicionales,
                cada elemento contiene un campo `image_url`
              properties:
                frontal_image:
                  type: string
                  format: uri
                  description: >-
                    URL de imagen de referencia frontal (recomendado), debe ser
                    accesible directamente por el servidor o activar una
                    descarga directa al acceder
                refer_images:
                  type: array
                  description: >-
                    Lista de imágenes de referencia adicionales, las URL de las
                    imágenes deben ser accesibles directamente por el servidor o
                    activar una descarga directa al acceder
                  items:
                    type: object
                    properties:
                      image_url:
                        type: string
                        format: uri
                        description: >-
                          URL de imagen de referencia, debe ser accesible
                          directamente por el servidor o activar una descarga
                          directa al acceder
                    required:
                      - image_url
              example:
                frontal_image: https://example.com/front.jpg
                refer_images:
                  - image_url: https://example.com/side.jpg
            element_video_list:
              type: object
              description: >-
                Video de referencia para crear elementos de sujeto. Obligatorio
                cuando `reference_type = video_refer`


                **Nota:**

                - `video_url`: URL del video de referencia
              properties:
                video_url:
                  type: string
                  format: uri
                  description: >-
                    URL del video de referencia, debe ser accesible directamente
                    por el servidor
              required:
                - video_url
              example:
                video_url: https://example.com/reference.mp4
            element_voice_id:
              type: string
              description: >-
                ID de voz asignado al elemento. La voz se usará cuando el
                elemento hable en los videos generados


                **Nota:**

                - Solo se admite cuando `reference_type = video_refer`

                - No está disponible para `image_refer`
              example: '829824295735410756'
        callback_url:
          type: string
          description: >-
            URL de callback HTTPS para completación de tarea


            **Momento del Callback:**

            - Se activa cuando la tarea se completa, falla o se cancela

            - Se envía después de la confirmación de facturación


            **Restricciones de Seguridad:**

            - Solo protocolo HTTPS

            - Direcciones IP internas están prohibidas (127.0.0.1, 10.x.x.x,
            172.16-31.x.x, 192.168.x.x, etc.)

            - La longitud de la URL no debe exceder `2048` caracteres


            **Mecanismo de Callback:**

            - Tiempo de espera: `10` segundos

            - Máximo `3` reintentos después del fallo (a `1`/`2`/`4` segundos
            después del fallo)

            - El formato de respuesta del callback es consistente con la API de
            consulta de tareas

            - El código de estado 2xx se considera exitoso, otros códigos
            activan reintento
          format: uri
          example: https://your-domain.com/webhooks/video-task-completed
    CustomElementResponse:
      type: object
      properties:
        created:
          type: integer
          description: Marca de tiempo de creación de la tarea
          example: 1757169743
        id:
          type: string
          description: ID de tarea
          example: task-unified-1757169743-8dxnm6yz
        model:
          type: string
          description: Nombre del modelo real utilizado
          example: kling-custom-element
        object:
          type: string
          enum:
            - video.generation.task
          description: Tipo de tarea
        progress:
          type: integer
          description: Porcentaje de progreso de la tarea (0-100)
          minimum: 0
          maximum: 100
          example: 0
        status:
          type: string
          description: Estado de la tarea
          enum:
            - pending
            - processing
            - completed
            - failed
          example: pending
        task_info:
          type: object
          description: Detalles de la tarea
          properties:
            can_cancel:
              type: boolean
              description: Si la tarea puede ser cancelada
              example: true
            estimated_time:
              type: integer
              description: Tiempo estimado de finalización (segundos)
              minimum: 0
              example: 600
        type:
          type: string
          enum:
            - video
          description: Tipo de salida de la tarea
          example: video
        usage:
          type: object
          description: Información de uso y facturación
          properties:
            billing_rule:
              type: string
              description: Regla de facturación
              enum:
                - per_call
              example: per_call
            credits_reserved:
              type: number
              description: Créditos estimados consumidos
              minimum: 0
              example: 1
            user_group:
              type: string
              description: Categoría de grupo de usuario
              example: default
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Identificador del código de error
            message:
              type: string
              description: Descripción del error
            type:
              type: string
              description: Tipo de error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ## Todas las APIs requieren autenticación Bearer Token ##


        **Obtener API Key:**


        Visita la [Página de gestión de API
        Key](https://evolink.ai/dashboard/keys) para obtener tu API Key


        **Agregar al encabezado de la solicitud:**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````