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

# Kling 4K I2V - Generate video from image

> Generate AI video in 4K resolution from an image using Kling 4K Image-to-Video.

**Features:**
- **Image-to-video**: Use a reference image to guide 4K video generation
- **End frame control**: Optionally specify an end frame image
- **Motion brush**: Use static and dynamic masks for precise motion control

**Duration:** 3-15 seconds
**Resolution:** 4K output quality.




## OpenAPI

````yaml post /v1/ai/video/kling-4k-i2v
openapi: 3.0.0
info:
  description: >-
    The Magnific API is your gateway to a vast collection of high-quality
    digital resources for your applications and projects. As a leading platform,
    it offers a wide range of graphics, including vectors, photos,
    illustrations, icons, PSD templates, and more, all curated by talented
    designers from around the world.
  title: Magnific API
  version: 1.0.0
servers:
  - description: B2B API Production V1
    url: https://api.magnific.com
security:
  - magnificApiKey: []
paths:
  /v1/ai/video/kling-4k-i2v:
    post:
      tags:
        - video
        - kling-4k-i2v
        - background_tasks
      summary: Kling 4K I2V - Generate video from image
      description: >
        Generate AI video in 4K resolution from an image using Kling 4K
        Image-to-Video.


        **Features:**

        - **Image-to-video**: Use a reference image to guide 4K video generation

        - **End frame control**: Optionally specify an end frame image

        - **Motion brush**: Use static and dynamic masks for precise motion
        control


        **Duration:** 3-15 seconds

        **Resolution:** 4K output quality.
      operationId: postAiVideoKling4kI2v
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/kling-4k-i2v-request'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/task-detail-200-default-response'
          description: OK - Task created successfully
        '400':
          content:
            application/json:
              examples:
                invalid_page:
                  summary: Parameter 'page' is not valid
                  value:
                    message: Parameter 'page' must be greater than 0
                invalid_query:
                  summary: Parameter 'query' is not valid
                  value:
                    message: Parameter 'query' must not be empty
                invalid_filter:
                  summary: Parameter 'filter' is not valid
                  value:
                    message: Parameter 'filter' is not valid
                generic_bad_request:
                  summary: Bad Request
                  value:
                    message: Parameter ':attribute' is not valid
              schema:
                $ref: '#/components/schemas/get_all_style_transfer_tasks_400_response'
            application/problem+json:
              examples:
                invalid_page:
                  summary: Parameter 'page' is not valid
                  value:
                    message: Validation error
                    invalid_params:
                      - field: page
                        reason: Parameter 'page' must be greater than 0
                      - field: per_page
                        reason: Parameter 'per_page' must be greater than 0
              schema:
                $ref: >-
                  #/components/schemas/get_all_style_transfer_tasks_400_response_1
          description: >-
            Bad Request - The server could not understand the request due to
            invalid syntax.
        '401':
          content:
            application/json:
              examples:
                invalid_api_key:
                  summary: API key is not valid
                  value:
                    message: Invalid API key
                missing_api_key:
                  summary: API key is not provided
                  value:
                    message: Missing API key
              schema:
                $ref: '#/components/schemas/get_all_style_transfer_tasks_400_response'
          description: >-
            Unauthorized - The client must authenticate itself to get the
            requested response.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/get_all_style_transfer_tasks_500_response'
          description: >-
            Internal Server Error - The server has encountered a situation it
            doesn't know how to handle.
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/get_all_style_transfer_tasks_503_response'
          description: Service Unavailable
components:
  schemas:
    kling-4k-i2v-request:
      properties:
        webhook_url:
          description: >
            Optional callback URL that receives asynchronous notifications when
            the task changes status.

            The payload includes the task status and result URL when completed.
          format: uri
          type: string
        image:
          description: >
            Reference image for video generation. Supports Base64 encoding or
            URL (ensure accessibility).

            For URL, must be publicly accessible.


            **Image requirements:**

            - Minimum: 300x300 pixels

            - Maximum: 10MB file size

            - Aspect ratio: 1:2.5 to 2.5:1

            - Formats: JPG, JPEG, PNG
          type: string
        image_tail:
          description: >
            Optional end frame control image. Supports Base64 encoding or URL.

            For URL, must be publicly accessible. Must follow the same format
            requirements as the `image` field.


            **Image requirements:**

            - Same as `image` field
          type: string
        prompt:
          description: >
            Text prompt describing the desired video content. Maximum 2500
            characters.


            **Tips for better results:**

            - Be specific about motion, camera angles, and actions

            - Describe the scene, characters, and atmosphere
          maxLength: 2500
          type: string
        negative_prompt:
          default: blur, distort, and low quality
          description: >-
            Undesired elements to avoid in the generated video. Maximum 2500
            characters.
          maxLength: 2500
          type: string
        cfg_scale:
          default: 0.5
          description: >
            Guidance scale controlling prompt adherence versus creative freedom.
            Range: 0 to 1.


            - **0**: Maximum creative freedom, loosest interpretation of the
            prompt

            - **0.5** (default): Balanced between prompt adherence and
            creativity

            - **1**: Strongest adherence to the prompt, least creative variation
          format: float
          maximum: 1
          minimum: 0
          type: number
        duration:
          default: 5
          description: |
            Duration of the generated video in seconds.

            **Range:** 3-15 seconds
          enum:
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
            - 13
            - 14
            - 15
          type: integer
        static_mask:
          description: >-
            Static mask image for defining motion brush application areas.


            ● Supports both Base64 encoding and image URLs (ensure URLs are
            publicly accessible and follow the same format requirements as the
            `image` field).

            ● Supported image formats include .jpg / .jpeg / .png.

            ● The aspect ratio of the mask image MUST match the input image
            (`image` field); otherwise, the task will fail.

            ● The resolutions of the `static_mask` image and the
            `dynamic_masks.mask` images must be identical; otherwise, the task
            will fail.

            ● The static brush feature allows you to define areas where motion
            will be applied in the generated video.
          type: string
        dynamic_masks:
          items:
            $ref: '#/components/schemas/itvkp_request_content_dynamic_masks_inner'
          type: array
      required:
        - image
      type: object
    task-detail-200-default-response:
      description: OK - The task exists and the status is returned
    get_all_style_transfer_tasks_400_response:
      example:
        message: message
      properties:
        message:
          type: string
      type: object
    get_all_style_transfer_tasks_400_response_1:
      properties:
        problem:
          $ref: >-
            #/components/schemas/get_all_style_transfer_tasks_400_response_1_problem
      type: object
    get_all_style_transfer_tasks_500_response:
      example:
        message: Internal Server Error
      properties:
        message:
          example: Internal Server Error
          type: string
      type: object
    get_all_style_transfer_tasks_503_response:
      example:
        message: Service Unavailable. Please try again later.
      properties:
        message:
          example: Service Unavailable. Please try again later.
          type: string
      type: object
    itvkp_request_content_dynamic_masks_inner:
      properties:
        mask:
          description: >-
            Dynamic mask image for defining motion brush application areas with
            trajectories.


            ● Support inputting image Base64 encoding or image URL (ensure the
            URL is accessible and follows the same format requirements as the
            image field).

            ● Supported image formats include .jpg / .jpeg / .png

            ● The aspect ratio of the mask image must match the input image
            (image field); otherwise, the task will fail (failed).

            ● The resolutions of the static_mask image and the
            dynamic_masks.mask image must be identical; otherwise, the task will
            fail (failed).
          type: string
        trajectories:
          description: Motion Trajectory Coordinate Sequence
          items:
            $ref: >-
              #/components/schemas/itvkp_request_content_dynamic_masks_inner_trajectories_inner
          type: array
      required:
        - mask
        - trajectories
      type: object
    get_all_style_transfer_tasks_400_response_1_problem:
      properties:
        message:
          example: Validation error
          type: string
        invalid_params:
          items:
            $ref: >-
              #/components/schemas/get_all_style_transfer_tasks_400_response_1_problem_invalid_params_inner
          type: array
      required:
        - invalid_params
        - message
      type: object
    itvkp_request_content_dynamic_masks_inner_trajectories_inner:
      properties:
        x:
          description: Horizontal coordinate (X-coordinate) in 2D pixel system.
          type: integer
        'y':
          description: Vertical coordinate (Y-coordinate) in 2D pixel system.
          type: integer
      required:
        - x
        - 'y'
      type: object
    get_all_style_transfer_tasks_400_response_1_problem_invalid_params_inner:
      properties:
        name:
          description: Name of the invalid parameter.
          example: page
          type: string
        field:
          description: Field of the invalid parameter. Mirrors `name`.
          example: page
          type: string
        reason:
          example: Parameter 'page' must be greater than 0
          type: string
      required:
        - field
        - name
        - reason
      type: object
  securitySchemes:
    magnificApiKey:
      description: >
        Your Magnific API key. Required for authentication. [Learn how to obtain
        an API key](https://docs.magnific.com/quickstart)
      in: header
      name: x-magnific-api-key
      type: apiKey

````