> ## 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.

# Создание аватарного видео Kling

> Генерируйте видео с аватаром из изображений с помощью Kling Avatar API в CometAPI. Используйте POST /kling/v1/videos/avatar/image2video для быстрого создания аватаров image-to-video.

Используйте этот endpoint, чтобы создавать ролики с говорящим аватаром из одного исходного изображения и одного аудиоисточника.

## Перед вызовом

* Укажите одно аватарное `image` как публичный URL или строку raw base64
* Используйте изображение аватара, соответствующее требованиям Kling к пикселям; маленькие миниатюры отклоняются задачей генерации
* Передавайте ровно одно из `audio_id` или `sound_file`
* Для первого запроса используйте простую конфигурацию: одно изображение лица, один аудиоклип и короткий необязательный prompt
* Включайте `task_id`, когда связанное аудио принадлежит предыдущей задаче, которую необходимо привязать
* Начинайте с `mode: std`, если вам специально не нужен путь с более высоким качеством

## Правила для аудиоисточника

* `audio_id` — самый простой вариант, если вы уже сгенерировали речь через маршрут Kling TTS
* `sound_file` подходит, если у вас уже есть собственный ресурс в формате MP3, WAV, M4A или AAC
* Для аудио аватара в документации указана длительность от 2 до 60 секунд

## Поток задачи

<Steps>
  <Step title="Создайте задачу аватара">
    Отправьте изображение и один аудиоисточник, затем сохраните возвращённый id задачи.
  </Step>

  <Step title="Опрашивайте задачу">
    Продолжайте с [Получение задачи Kling](./individual-queries), пока задача не достигнет терминального состояния.
  </Step>

  <Step title="Сохраните готовый результат">
    Скопируйте финальный ресурс в собственное хранилище, если вам нужно хранение дольше, чем обеспечивает URL доставки провайдера.
  </Step>
</Steps>

<Note>
  Полное описание параметров см. в [официальной документации Kling Avatar](https://kling.ai/document-api/apiReference/model/avatar).
</Note>


## OpenAPI

````yaml api/openapi/video/kling/post-avatar.openapi.json POST /kling/v1/videos/avatar/image2video
openapi: 3.1.0
info:
  title: Avatar API
  version: 1.0.0
  description: >-
    Create a Kling avatar video task from one source image plus one audio
    source.
servers:
  - url: https://api.cometapi.com
security:
  - bearerAuth: []
paths:
  /kling/v1/videos/avatar/image2video:
    post:
      summary: Create a Kling avatar task
      description: >-
        Submit one avatar image and exactly one audio source. Poll the returned
        task id through the generic Kling query route.
      operationId: avatar
      parameters:
        - name: Content-Type
          in: header
          required: false
          description: Optional content type header.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - image
                - prompt
              oneOf:
                - required:
                    - audio_id
                - required:
                    - sound_file
              properties:
                image:
                  type: string
                  description: >-
                    Avatar image URL or base64 image string. Use an image that
                    meets Kling pixel requirements; very small thumbnails are
                    rejected.
                prompt:
                  type: string
                  description: Prompt describing the desired avatar performance.
                audio_id:
                  type: string
                  description: Audio id from a prior Kling audio task.
                sound_file:
                  type: string
                  description: Public audio URL when you provide your own audio.
                task_id:
                  type: string
                  description: >-
                    Optional prior task id associated with the referenced audio
                    asset.
                mode:
                  type: string
                  description: >-
                    Generation mode. Use `std` or `pro`; omitted requests use
                    `std`.
                  enum:
                    - std
                    - pro
              default:
                image: https://your-image-host/avatar.jpg
                prompt: The speaker talks naturally to camera
                sound_file: https://your-audio-host/speech.wav
                mode: std
            examples:
              Default:
                summary: Avatar image-to-video request
                value:
                  image: https://your-image-host/avatar.jpg
                  prompt: The speaker talks naturally to camera
                  sound_file: https://your-audio-host/speech.wav
                  mode: std
      responses:
        '200':
          description: Task accepted.
          content:
            application/json:
              schema:
                type: object
                required:
                  - code
                  - message
                  - data
                properties:
                  code:
                    type: integer
                  message:
                    type: string
                  data:
                    type: object
                    required:
                      - task_id
                      - task_status
                      - created_at
                      - updated_at
                    properties:
                      task_id:
                        type: string
                      task_status:
                        type: string
                      task_info:
                        type: object
                        additionalProperties: true
                      created_at:
                        type: integer
                      updated_at:
                        type: integer
      x-codeSamples:
        - lang: Shell
          label: Default
          source: |
            curl https://api.cometapi.com/kling/v1/videos/avatar/image2video \
              -H "Authorization: Bearer $COMETAPI_KEY" \
              -H "Content-Type: application/json" \
              -d '{
                  "image": "https://your-image-host/avatar.jpg",
                  "prompt": "The speaker talks naturally to camera",
                  "sound_file": "https://your-audio-host/speech.wav",
                  "mode": "std"
                }'
        - lang: Python
          label: Default
          source: |
            import os
            import requests

            response = requests.post(
                "https://api.cometapi.com/kling/v1/videos/avatar/image2video",
                headers={"Authorization": "Bearer " + os.environ["COMETAPI_KEY"]},
                json={
                  "image": "https://your-image-host/avatar.jpg",
                  "prompt": "The speaker talks naturally to camera",
                  "sound_file": "https://your-audio-host/speech.wav",
                  "mode": "std"
                },
            )

            result = response.json()
            print(result.get("code"), result.get("data", {}).get("task_id"))
        - lang: JavaScript
          label: Default
          source: >
            const response = await
            fetch("https://api.cometapi.com/kling/v1/videos/avatar/image2video",
            {
              method: "POST",
              headers: {
                Authorization: `Bearer ${process.env.COMETAPI_KEY}`,
                "Content-Type": "application/json",
              },
              body: JSON.stringify({
                "image": "https://your-image-host/avatar.jpg",
                "prompt": "The speaker talks naturally to camera",
                "sound_file": "https://your-audio-host/speech.wav",
                "mode": "std"
              }),
            });


            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.

````