Skip to content
DashboardGet API Key

Generate lip sync from uploaded media

lipsync.generate_with_media(LipsyncGenerateWithMediaParams**kwargs) -> LipsyncGenerate
POST/v1/lipsync/generate-with-media

Starts a lip sync job by uploading one video file and one audio file as multipart form-data.

ParametersExpand Collapse
audio: FileTypes

Target audio file.

video: FileTypes

Source video file.

disable_active_speaker_detection: Optional[bool]

Disable active speaker detection and use max-face lipsync preprocessing.

model: Optional[Literal["lipsync-2"]]

Optional model selector.

reference_id: Optional[str]

Optional client-provided identifier for later retrieval.

ReturnsExpand Collapse
class LipsyncGenerate:
request_id: str

Identifier of the created lip sync request.

formatuuid
status: Literal["success"]

Current state of the newly created request.

Generate lip sync from uploaded media

import os
from chamelaion import Chamelaion

client = Chamelaion(
    api_key=os.environ.get("CHAMELAION_API_KEY"),  # This is the default and can be omitted
)
lipsync_generate = client.lipsync.generate_with_media(
    audio=b"(binary)",
    video=b"(binary)",
    disable_active_speaker_detection=False,
    model="lipsync-2",
    reference_id="upload-demo-01",
)
print(lipsync_generate.request_id)
{
  "status": "success",
  "request_id": "3b7df3e8-f578-44de-b4f5-5f58dd6b89e0"
}
{
  "error": "content-type must be multipart/form-data"
}
{
  "error": "video file is required"
}
{
  "error": "audio file is required"
}
{
  "error": "model must be \"lipsync-2\""
}
{
  "error": "missing authorization header"
}
{
  "error": "invalid authorization format"
}
{
  "error": "missing token"
}
{
  "error": "invalid token"
}
{
  "error": "unauthorized"
}
{
  "error": "token limit reached"
}
{
  "error": "rate limit exceeded"
}
{
  "error": "internal error"
}
Returns Examples
{
  "status": "success",
  "request_id": "3b7df3e8-f578-44de-b4f5-5f58dd6b89e0"
}
{
  "error": "content-type must be multipart/form-data"
}
{
  "error": "video file is required"
}
{
  "error": "audio file is required"
}
{
  "error": "model must be \"lipsync-2\""
}
{
  "error": "missing authorization header"
}
{
  "error": "invalid authorization format"
}
{
  "error": "missing token"
}
{
  "error": "invalid token"
}
{
  "error": "unauthorized"
}
{
  "error": "token limit reached"
}
{
  "error": "rate limit exceeded"
}
{
  "error": "internal error"
}