Nodes/ComfyUI/Kling Lip Sync Video with Text
ComfyUI Node Runs on cloud

Kling Lip Sync Video with Text

Make a video say words it never said, no audio file required

By Comfy-Org·Created 4 years ago·Updated about an hour ago· 129,962
Kling Lip Sync Video with Text
  • video
  • VIDEO
  • video_id
  • duration
text
voiceMelody
voice_speed1.00

Lip sync is the thing that separates "a character talking" from "a character who is actually talking." You've got a video of a person - real or generated - and you want them to deliver a specific line. This node does the whole job from a text string: Kling reads your text, generates the spoken audio from it, and rewrites the mouth movements in the video to match. No audio file to record, no voice cloning setup, no separate TTS step. Type the line, pick a voice, and the clip comes back with the person visibly saying it.

It's an API node like the rest of the built-in partner/video family: ships with ComfyUI core, your video goes up to Kling's lip-sync service through Comfy Org's backend, and it's billed to your Comfy account. The closest open-weight path - chaining an LTX audio stage into WanAnimate - works, but it's a pipeline to assemble; this is one node.

The inputs that matter

  • video - the clip to lip-sync. Constraints matter and they're enforced: no larger than 100MB, between 720px and 1920px on height and width, and between 2 and 10 seconds. A 4K monster will fail validation; downscale first.
  • text - the line the person should say. Max 120 characters. That's short - about two sentences - so write the dialogue before you open the node. The tooltip notes it's required for the text2video mode this node uses.
  • voice - the voice for the synthesized audio, defaulting to "Melody" with a full dropdown of options.
  • voice_speed - speech rate, 0.8 to 2.0 (slider, one decimal place). 1.0 is normal; push toward 2.0 for a fast, upbeat read.

Outputs: VIDEO, plus video_id and duration strings. The video_id is the family handshake - feed it to Kling's extend nodes to keep going.

Where people get burned

  • The video constraints are the whole troubleshooting section. The #1 failure mode is a clip that's too long or too large. If it errors, check duration (2–10s) before anything else.
  • The text is short on purpose. 120 characters is the ceiling, not a suggestion. If you need a longer speech, split it into lines and plan for multiple clips - or look at the audio-input sibling node, which accepts an audio file instead.
  • The input face matters. A clear, front-facing face synced far better than a profile or a tiny head in frame. The model needs to see a mouth worth moving.
  • It's paid and per-use. Fine for a handful of takes, expensive if you're iterating 30 versions of a line. Polish the text once.

Dubbing, voiceover, meme lines, or putting words in a generated character's mouth - this is the fastest built-in path, and it's genuinely one of those "I can't believe this is a stock node" moments. Just keep your clips in the 2–10 second window.

Categorypartner/video/Kling

Inputs (4)

NameTypeDefaultDescription
videoVIDEO
textSTRINGText Content for Lip-Sync Video Generation. Required when mode is text2video. Maximum length is 120 characters.
voiceCOMBOMelody61 options: Melody, Sunny, Sage, Ace, Blossom, Peppy, +55
voice_speedFLOAT1.000.8–2Speech Rate. Valid range: 0.8~2.0, accurate to one decimal place.

Outputs (3)

NameTypeDescription
VIDEOVIDEO
video_idSTRING
durationSTRING