Skip to content

Kling Lip Sync

Make characters in videos synchronize their lip movements with audio for audio-visual matching effects.

Workflow

The lip sync feature requires two steps:

  1. Face Recognition - Identify faces in the video and get session_id
  2. Create Lip Sync Task - Create a lip sync task using session_id and audio

1. Face Recognition

Endpoint: POST /kling/v1/videos/identify-face

Description: Identify faces in the video and return face information and session ID for lip sync.

Authentication: Bearer Token

http
Authorization: Bearer YOUR_API_TOKEN

Request Parameters (Body)

FieldTypeRequiredDefaultDescription
video_idstringOptional-Video ID generated by Kling AI. Choose either this or video_url, cannot be both empty or both provided.
video_urlstringOptional-Video URL. Choose either this or video_id, cannot be both empty or both provided.

Response Parameters

FieldTypeDescription
codeintegerError code (0 indicates success)
messagestringError message
request_idstringRequest ID
dataobjectData object
data.session_idstringSession ID, valid for 24 hours, used for creating lip sync tasks
data.face_dataarrayFace data list
data.face_data[].face_idstringFace ID
data.face_data[].face_imagestringFace preview image URL
data.face_data[].start_timeintegerLip sync available interval start time (ms)
data.face_data[].end_timeintegerLip sync available interval end time (ms)

Request Example

json
{
  "video_url": "https://example.com/video.mp4"
}

Response Example

json
{
  "code": 0,
  "message": "success",
  "request_id": "req_123456",
  "data": {
    "session_id": "session_abc123",
    "face_data": [
      {
        "face_id": "face_001",
        "face_image": "https://example.com/face_preview.jpg",
        "start_time": 0,
        "end_time": 5000
      }
    ]
  }
}

2. Create Lip Sync Task

Endpoint: POST /kling/v1/videos/advanced-lip-sync

Description: Create a lip sync video generation task.

Authentication: Bearer Token

http
Authorization: Bearer YOUR_API_TOKEN

Request Parameters (Body)

FieldTypeRequiredDefaultDescription
session_idstringRequired-Session ID returned by face recognition endpoint
face_choosearrayRequired-Face lip sync configuration, currently only supports single person
face_choose[].face_idstringRequired-Face ID returned by face recognition endpoint
face_choose[].audio_idstringOptional-Audio ID from preview endpoint. Choose either this or sound_file.
face_choose[].sound_filestringOptional-Audio file (Base64 or URL). Choose either this or audio_id.
face_choose[].sound_start_timeintegerRequired-Audio clip start time (ms)
face_choose[].sound_end_timeintegerRequired-Audio clip end time (ms)
face_choose[].sound_insert_timeintegerRequired-Insert time for clipped audio (ms)
face_choose[].sound_volumenumberOptional1Audio volume, range [0, 2]
face_choose[].original_audio_volumenumberOptional1Original video volume, range [0, 2]
external_task_idstringOptional-Custom task ID, must be unique per user
callback_urlstringOptional-Callback URL for task result notification

Response Parameters

FieldTypeDescription
codeintegerError code (0 indicates success)
messagestringError message
request_idstringRequest ID
dataobjectData object
data.task_idstringTask ID
data.task_statusstringTask status: submitted, processing, succeed, failed

Request Example

json
{
  "session_id": "session_abc123",
  "face_choose": [
    {
      "face_id": "face_001",
      "sound_file": "https://example.com/audio.mp3",
      "sound_start_time": 0,
      "sound_end_time": 5000,
      "sound_insert_time": 0,
      "sound_volume": 1.0,
      "original_audio_volume": 0.5
    }
  ]
}

3. Query Task

Endpoint: GET /kling/v1/videos/advanced-lip-sync/:task_id

Description: Query the status and result of a lip sync task by task ID.

Authentication: Bearer Token

http
Authorization: Bearer YOUR_API_TOKEN

Path Parameters

FieldTypeRequiredDescription
task_idstringRequiredTask ID returned by create task endpoint

Response Parameters

FieldTypeDescription
codeintegerError code (0 indicates success)
messagestringError message
request_idstringRequest ID
dataobjectData object
data.task_idstringTask ID
data.task_statusstringTask status
data.task_status_msgstringTask status message
data.task_resultobjectTask result (only returned on success)
data.task_result.videosarrayGenerated video list
data.task_result.videos[].idstringGenerated video ID
data.task_result.videos[].urlstringGenerated video URL
data.task_result.videos[].durationstringVideo duration (seconds)
data.created_atintegerTask creation time (ms)
data.updated_atintegerTask update time (ms)

Response Example

json
{
  "code": 0,
  "message": "success",
  "request_id": "req_123456",
  "data": {
    "task_id": "task_123456",
    "task_status": "succeed",
    "task_status_msg": "success",
    "task_result": {
      "videos": [
        {
          "id": "vid_lipsync_123",
          "url": "https://example.com/lipsync_video.mp4",
          "duration": "5"
        }
      ]
    },
    "created_at": 1722769557708,
    "updated_at": 1722769557708
  }
}

企业合作联系:service@ezmodel.cloud