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

# Kling-O3 Image vers Vidéo

> - Kling-O3 Image to Video (kling-o3-image-to-video) génère des vidéos basées sur des images d'entrée, propulsé par le modèle Kling AI kling-v3-omni
- Prend en charge la première image, la dernière image, les images de référence, le contrôle des éléments, le multi-plan et les effets sonores
- Mode de traitement asynchrone, utilisez l'ID de tâche retourné pour [interroger le statut](/fr/api-manual/task-management/get-task-detail)
- Les liens vidéo générés sont valides pendant 24 heures, veuillez les enregistrer rapidement



## OpenAPI

````yaml fr/api-manual/video-series/kling/kling-o3-image-to-video.json POST /v1/videos/generations
openapi: 3.1.0
info:
  title: API kling-o3-image-to-video
  description: >-
    Générer des vidéos à partir d'images d'entrée. Prend en charge la première
    image, la dernière image, les images de référence, le contrôle des éléments,
    les plans multiples et les effets sonores. Basé sur le modèle Kling AI
    kling-v3-omni.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.evolink.ai
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Génération vidéo
    description: APIs de génération de vidéos IA
paths:
  /v1/videos/generations:
    post:
      tags:
        - Génération vidéo
      summary: API kling-o3-image-to-video
      description: >-
        - Kling-O3 Image to Video (kling-o3-image-to-video) génère des vidéos
        basées sur des images d'entrée, propulsé par le modèle Kling AI
        kling-v3-omni

        - Prend en charge la première image, la dernière image, les images de
        référence, le contrôle des éléments, le multi-plan et les effets sonores

        - Mode de traitement asynchrone, utilisez l'ID de tâche retourné pour
        [interroger le statut](/fr/api-manual/task-management/get-task-detail)

        - Les liens vidéo générés sont valides pendant 24 heures, veuillez les
        enregistrer rapidement
      operationId: createVideoGeneration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VideoGenerationRequest'
            examples:
              first_frame:
                summary: Première Image Unique (Minimal)
                value:
                  model: kling-o3-image-to-video
                  prompt: The person in the image slowly turns their head and smiles
                  image_start: https://example.com/portrait.jpg
                  duration: 5
                  quality: 720p
              first_last_frame:
                summary: Première image + Dernière image
                value:
                  model: kling-o3-image-to-video
                  prompt: Transition from daytime to nighttime
                  image_start: https://example.com/day.jpg
                  image_end: https://example.com/night.jpg
                  duration: 10
                  quality: 1080p
                  sound: 'on'
              with_reference_and_element:
                summary: Image de référence + Contrôle d'éléments
                value:
                  model: kling-o3-image-to-video
                  prompt: <<<element_1>>> dancing in the scene of <<<image_1>>>
                  image_urls:
                    - https://example.com/scene.jpg
                  duration: 8
                  aspect_ratio: '16:9'
                  quality: 1080p
                  model_params:
                    element_list:
                      - element_id: '123456'
              multi_shot:
                summary: Image vers vidéo multi-plans
                value:
                  model: kling-o3-image-to-video
                  image_start: https://example.com/portrait.jpg
                  image_urls:
                    - https://example.com/bg.jpg
                  duration: 10
                  aspect_ratio: '16:9'
                  quality: 1080p
                  model_params:
                    multi_shot: true
                    shot_type: customize
                    multi_prompt:
                      - index: 1
                        prompt: <<<image_1>>> person sitting in a park
                        duration: '5'
                      - index: 2
                        prompt: Camera switches to <<<image_2>>> street view
                        duration: '5'
      responses:
        '200':
          description: Tâche de génération vidéo créée avec succès
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VideoGenerationResponse'
        '400':
          description: Paramètres de requête invalides
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: invalid_request
                  message: Invalid request parameters
                  type: invalid_request_error
        '401':
          description: Non authentifié, jeton invalide ou expiré
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: Quota insuffisant, recharge requise
          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: Accès refusé
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: model_access_denied
                  message: 'Token does not have access to model: kling-o3-image-to-video'
                  type: invalid_request_error
        '429':
          description: Limite de débit dépassée
          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: Erreur interne du serveur
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: internal_error
                  message: Internal server error
                  type: api_error
components:
  schemas:
    VideoGenerationRequest:
      type: object
      required:
        - model
        - prompt
      properties:
        model:
          type: string
          description: Nom du modèle de génération vidéo
          enum:
            - kling-o3-image-to-video
          default: kling-o3-image-to-video
          example: kling-o3-image-to-video
        prompt:
          type: string
          description: >-
            Prompt textuel. Requis lorsque multi_shot=false (par défaut), fourni
            par multi_prompt pour chaque plan lorsque multi_shot=true


            **Remarque :**

            - Maximum `2500` caractères

            - Utilisez `<<<element_1>>>` pour référencer les éléments,
            `<<<image_1>>>` pour référencer les images
          maxLength: 2500
        image_start:
          type: string
          format: uri
          description: >-
            URL de l'image de première trame


            **Exigences de format d'image :**

            - Format : JPG / JPEG / PNG

            - Taille : <= 10 Mo

            - Dimensions : largeur et hauteur >= 300px, rapport d'aspect entre
            1:2.5 et 2.5:1

            - L'URL de l'image doit être directement accessible par le serveur
            ou déclencher un téléchargement direct lors de l'accès
        image_end:
          type: string
          format: uri
          description: >-
            URL de l'image de dernière trame


            **Contraintes :**

            - La dernière trame nécessite une première trame

            - La dernière trame n'est pas prise en charge lorsque le nombre
            total d'images dépasse 2

            - L'URL de l'image doit être directement accessible par le serveur
            ou déclencher un téléchargement direct lors de l'accès
        image_urls:
          type: array
          description: >-
            Tableau d'URL d'images de référence (pas première/dernière trame,
            pour référence de style/scène/élément)


            **Note :**

            - Les URL des images doivent être directement accessibles par le
            serveur ou déclencher un téléchargement direct lors de l'accès
          items:
            type: string
            format: uri
        duration:
          type: integer
          description: Durée de la vidéo (secondes), entier dans la plage 3-15
          minimum: 3
          maximum: 15
          default: 5
        aspect_ratio:
          type: string
          description: Rapport d'aspect de la vidéo
          enum:
            - '16:9'
            - '9:16'
            - '1:1'
        quality:
          type: string
          description: |-
            Niveau de résolution

            **Options :**
            - `720p` : Standard 720P
            - `1080p` : Haute qualité 1080P
            - `4k` : Ultra haute définition 4K
          enum:
            - 720p
            - 1080p
            - 4k
        sound:
          type: string
          description: Contrôle des effets sonores
          enum:
            - 'on'
            - 'off'
          default: 'off'
        model_params:
          type: object
          description: Paramètres d'extension du modèle
          properties:
            multi_shot:
              type: boolean
              description: >-
                Activer ou non le mode multi-plans


                **Remarque :** Lorsque activé, le paramètre `prompt` est ignoré
                et le contenu de chaque plan doit être défini via
                `multi_prompt`. La somme des valeurs `duration` de tous les
                plans doit être égale à la durée totale de la vidéo.
            shot_type:
              type: string
              description: >-
                Méthode de segmentation des plans. Requis lorsque
                multi_shot=true
              enum:
                - customize
            multi_prompt:
              type: array
              description: >-
                Liste d'informations des plans. Requis lorsque multi_shot=true
                && shot_type=customize


                Format : [{"index": int, "prompt": "string", "duration":
                "string"}, ...]

                - Maximum 6 plans

                - Chaque prompt de plan maximum 512 caractères

                - La somme de toutes les durées de plans doit être égale à la
                durée totale
            element_list:
              type: array
              description: >-
                Liste de la bibliothèque d'éléments


                **Contraintes :**

                - Nombre d'éléments <= 3 lorsqu'une première trame est fournie

                - Nombre d'images + nombre d'éléments <= 7 sans vidéo

                - Référencez dans le prompt en utilisant la syntaxe
                `<<<element_1>>>`
              items:
                type: object
                properties:
                  element_id:
                    type: string
                    description: ID de l'élément
            watermark_info:
              type: object
              description: Configuration du filigrane
              properties:
                enabled:
                  type: boolean
                  description: Activer ou non le filigrane
        callback_url:
          type: string
          description: >-
            URL de rappel HTTPS pour l'achèvement de la tâche


            **Moment du rappel :**

            - Déclenché lorsque la tâche est terminée, échouée ou annulée

            - Envoyé après confirmation de la facturation


            **Restrictions de sécurité :**

            - Protocole HTTPS uniquement

            - Les adresses IP internes sont interdites (127.0.0.1, 10.x.x.x,
            172.16-31.x.x, 192.168.x.x, etc.)

            - La longueur de l'URL ne doit pas dépasser `2048` caractères


            **Mécanisme de rappel :**

            - Délai d'expiration : `10` secondes

            - Maximum `3` tentatives après échec (à `1`/`2`/`4` secondes après
            l'échec)

            - Le format de réponse du rappel est cohérent avec l'API de requête
            de tâche

            - Un code de statut 2xx est considéré comme un succès, les autres
            codes déclenchent une nouvelle tentative
          format: uri
          example: https://your-domain.com/webhooks/video-task-completed
    VideoGenerationResponse:
      type: object
      properties:
        created:
          type: integer
          description: Horodatage de création de la tâche
          example: 1757169743
        id:
          type: string
          description: ID de tâche
          example: task-unified-1757169743-7cvnl5zw
        model:
          type: string
          description: Nom du modèle réellement utilisé
          example: kling-o3-image-to-video
        object:
          type: string
          enum:
            - video.generation.task
          description: Type de tâche
        progress:
          type: integer
          description: Pourcentage de progression de la tâche (0-100)
          minimum: 0
          maximum: 100
          example: 0
        status:
          type: string
          description: Statut de la tâche
          enum:
            - pending
            - processing
            - completed
            - failed
          example: pending
        task_info:
          $ref: '#/components/schemas/VideoTaskInfo'
          description: Détails de la tâche vidéo
        type:
          type: string
          enum:
            - text
            - image
            - audio
            - video
          description: Type de sortie de la tâche
          example: video
        usage:
          $ref: '#/components/schemas/VideoUsage'
          description: Informations d'utilisation et de facturation
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Identifiant du code d'erreur
            message:
              type: string
              description: Description de l'erreur
            type:
              type: string
              description: Type d'erreur
    VideoTaskInfo:
      type: object
      properties:
        can_cancel:
          type: boolean
          description: Si la tâche peut être annulée
          example: true
        estimated_time:
          type: integer
          description: Temps d'achèvement estimé (secondes)
          minimum: 0
          example: 300
        video_duration:
          type: integer
          description: Durée de la vidéo (secondes)
          example: 9
    VideoUsage:
      type: object
      description: Informations d'utilisation et de facturation
      properties:
        billing_rule:
          type: string
          description: Règle de facturation
          enum:
            - per_call
            - per_token
            - per_second
          example: per_call
        credits_reserved:
          type: number
          description: Crédits estimés consommés
          minimum: 0
          example: 7
        user_group:
          type: string
          description: Catégorie de groupe d'utilisateurs
          example: default
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ## Toutes les API nécessitent une authentification Bearer Token ##


        **Obtenir une clé API :**


        Visitez la [Page de gestion des clés
        API](https://evolink.ai/dashboard/keys) pour obtenir votre clé API


        **Ajouter à l'en-tête de requête :**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````