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

# Generate images with Kling

> Generate images with Kling via CometAPI: POST /kling/v1/images/generations supports prompt-driven image creation and image-reference generation.

## Image generation

<Note>For the complete parameter reference, see the [official Kling documentation](https://kling.ai/document-api/api/image/3-0-omni/image-generation).</Note>

Use this endpoint to create still images through Kling's image generation API. It supports text-only requests and image-reference requests through the same async task flow.

## First request

Start with `model_name: kling-v3`, `prompt`, `n`, and `aspect_ratio`. Add reference images, fidelity controls, or advanced fields only after the first request returns a usable task. Omitting `model_name` uses a legacy compatibility default, so send `kling-v3` explicitly for new integrations.

## Read the response

Save the returned `task_id`, then poll the matching Kling image query route until `task_status` reaches a terminal state. If your workflow needs durable storage, copy the final asset into your own storage layer after generation completes.


## OpenAPI

````yaml api/openapi/image/kling/post-image-generation.openapi.json POST /kling/v1/images/generations
openapi: 3.1.0
info:
  title: Kling Image Generation API
  version: 1.0.0
servers:
  - url: https://api.cometapi.com
security:
  - bearerAuth: []
paths:
  /kling/v1/images/generations:
    post:
      summary: Generate images with Kling
      operationId: kling_image_generation
      parameters:
        - name: Content-Type
          in: header
          required: false
          description: Must be `application/json`.
          schema:
            type: string
            default: application/json
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - prompt
              properties:
                model_name:
                  type: string
                  description: >-
                    Kling image model variant. Use `kling-v3` for new requests.
                    Omitting `model_name` uses the legacy CometAPI route
                    default.
                  enum:
                    - kling-v1
                    - kling-v1-5
                    - kling-v2
                    - kling-v2-1
                    - kling-v3
                  default: kling-v1
                prompt:
                  type: string
                  description: >-
                    Text prompt describing the image to generate. Maximum 2500
                    characters.
                negative_prompt:
                  type: string
                  description: >-
                    Elements to exclude from the image. Maximum 2500 characters.
                    Not supported when `image` is provided.
                image:
                  type: string
                  description: >-
                    Reference image as a raw Base64 string without a `data:`
                    prefix, or a public URL. Accepted formats: JPG, JPEG, PNG.
                    Maximum 10 MB, minimum 300x300 px, aspect ratio between
                    1:2.5 and 2.5:1.
                image_reference:
                  type: string
                  description: >-
                    Reference mode for legacy image-to-image requests when
                    `image` is provided.
                  enum:
                    - subject
                    - face
                image_fidelity:
                  type: number
                  description: >-
                    How closely the output follows the reference image. Range:
                    0-1. Used by legacy image-reference models.
                  default: 0.5
                  minimum: 0
                  maximum: 1
                human_fidelity:
                  type: number
                  description: >-
                    Human-subject fidelity control. Range: 0-1. Used only by
                    legacy subject-reference requests.
                  default: 0.45
                  minimum: 0
                  maximum: 1
                element_list:
                  type: array
                  description: >-
                    Optional Kling element references. The total count of
                    element references and input images must not exceed 10.
                  items:
                    type: object
                    required:
                      - element_id
                    properties:
                      element_id:
                        type: integer
                        description: Kling element ID.
                resolution:
                  type: string
                  description: Output resolution. Defaults to `1k`.
                  enum:
                    - 1k
                    - 2k
                  default: 1k
                'n':
                  type: integer
                  description: 'Number of images to generate. Range: 1-9.'
                  minimum: 1
                  maximum: 9
                  default: 1
                aspect_ratio:
                  type: string
                  description: Output aspect ratio (width:height).
                  enum:
                    - '16:9'
                    - '9:16'
                    - '1:1'
                    - '4:3'
                    - '3:4'
                    - '3:2'
                    - '2:3'
                    - '21:9'
                  default: '16:9'
                watermark_info:
                  type: object
                  description: Watermark options.
                  properties:
                    enabled:
                      type: boolean
                      description: Whether to add the official watermark.
                callback_url:
                  type: string
                  description: >-
                    Webhook URL to receive task status updates when the task
                    completes.
                external_task_id:
                  type: string
                  description: >-
                    Optional user-defined task ID for your own tracking. Must be
                    unique per account.
              default:
                model_name: kling-v3
                prompt: A paper boat floating on calm water at sunrise
                'n': 1
                aspect_ratio: '1:1'
            examples:
              Default:
                summary: Text-to-image request
                value:
                  model_name: kling-v3
                  prompt: A paper boat floating on calm water at sunrise
                  'n': 1
                  aspect_ratio: '1:1'
      responses:
        '200':
          description: Task request accepted or an error response returned by the API.
          content:
            application/json:
              schema:
                type: object
                required:
                  - code
                  - message
                  - data
                properties:
                  code:
                    oneOf:
                      - type: integer
                      - type: string
                    description: Response code. `0` means the task request was accepted.
                  message:
                    type: string
                    description: Response message.
                  request_id:
                    type: string
                    description: Request identifier returned when present.
                  data:
                    type: object
                    required:
                      - task_id
                      - task_status
                      - created_at
                      - updated_at
                    properties:
                      task_id:
                        type: string
                        description: System-generated task ID.
                      task_status:
                        type: string
                        description: Task status.
                        enum:
                          - submitted
                          - processing
                          - succeed
                          - failed
                      task_status_msg:
                        oneOf:
                          - type: string
                          - type: 'null'
                        description: Task status detail when present.
                      task_info:
                        type: object
                        properties:
                          external_task_id:
                            oneOf:
                              - type: string
                              - type: 'null'
                            description: Caller-provided external task ID when supplied.
                        additionalProperties: true
                      task_result:
                        oneOf:
                          - type: object
                            additionalProperties: true
                          - type: 'null'
                        description: Task result payload after the task completes.
                      created_at:
                        type: integer
                        description: >-
                          Task creation time as a Unix timestamp in
                          milliseconds.
                      updated_at:
                        type: integer
                        description: Task update time as a Unix timestamp in milliseconds.
                    additionalProperties: true
                additionalProperties: true
      x-codeSamples:
        - lang: Shell
          label: Default
          source: |
            curl https://api.cometapi.com/kling/v1/images/generations \
              -H "Authorization: Bearer $COMETAPI_KEY" \
              -H "Content-Type: application/json" \
              -d '{
              "model_name": "kling-v3",
              "prompt": "A paper boat floating on calm water at sunrise",
              "n": 1,
              "aspect_ratio": "1:1"
            }'
        - lang: Python
          label: Default
          source: |
            import os
            import requests

            response = requests.post(
                "https://api.cometapi.com/kling/v1/images/generations",
                headers={"Authorization": "Bearer " + os.environ["COMETAPI_KEY"]},
                json={
                "model_name": "kling-v3",
                "prompt": "A paper boat floating on calm water at sunrise",
                "n": 1,
                "aspect_ratio": "1:1"
            },
            )

            result = response.json()
            print(result["code"], result.get("data", {}).get("task_id"))
        - lang: JavaScript
          label: Default
          source: >
            const response = await
            fetch("https://api.cometapi.com/kling/v1/images/generations", {
              method: "POST",
              headers: {
                Authorization: `Bearer ${process.env.COMETAPI_KEY}`,
                "Content-Type": "application/json",
              },
              body: JSON.stringify({
                "model_name": "kling-v3",
                "prompt": "A paper boat floating on calm water at sunrise",
                "n": 1,
                "aspect_ratio": "1:1"
            }),

            });


            const result = await response.json();

            console.log(result.code, result.data?.task_id);
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token authentication. Use your CometAPI key.

````