Nodes/Comfyui-Kling-Wrapper/Comfyui-Kling-Wrapper Lip Sync Text Input
ComfyUI Node

Comfyui-Kling-Wrapper Lip Sync Text Input

Type a line, get a video of someone saying it

By magicwang1111·Created 5 months ago·Updated 18 days ago· 1
Comfyui-Kling-Wrapper Lip Sync Text Input
    • input
    text
    voice_id
    voice_languagezh
    voice_speed1.0

    This is the laziest possible way to make a Kling video talk: you don't record audio, you don't find a file - you just type the line. Lip Sync Text Input takes your text and a voice choice, runs it through Kling's TTS, and packages the resulting audio for the Lip Sync node. Type "this is the future of video," pick a voice, and a video of someone saying it comes out the other end.

    It's the sibling of Lip Sync Audio Input: where that node takes your audio, this one makes the audio for you. Same output, same downstream chain, but the input surface is text instead of media.

    The inputs

    Four fields, and honestly only two of them need your attention:

    • text - the dialogue. Multiline, so whole paragraphs are fine. This is the thing the video will say.
    • voice_id - a dropdown with 61 preset voices, named in Chinese with personality labels (sunshine boy, gentle older sister, energetic girl, that kind of thing). The names tell you the vibe; there's no English menu of "voice 1..61" to decode. Pick the one that fits the character.
    • voice_language - zh (default) or en. Match it to your text; a Chinese text with English language selected will sound wrong.
    • voice_speed - 0.8 to 2.0, default 1.0. Nudge up for a fast-talking character, down for a slower, more deliberate read.

    That's the whole input surface. There's no audio upload here because the node is the audio generation.

    How it works

    Under the hood, the node calls /v1/audio/tts with your text and voice, grabs the returned audio, and hands the downstream Lip Sync node a COMFYUI_KLING_WRAPPER_LIPSYNC_INPUT object that already carries the audio ID and its duration. So you get the same input output as Lip Sync Audio Input, but with zero media handling on your side. The chain is:

    Lip Sync Text Input → Lip Sync → (talking video out)
              VHS_LoadVideo ────────┘
    

    The Lip Sync node detects this came from the text path (it carries a text2video mode marker) and knows the audio is TTS-generated rather than a manual upload.

    The honest limits

    Preset voices only. Per the README, Kling's TTS endpoint rejects custom cloned voice IDs with "Voice id not found" - so if you want a specific person's voice, you can't type your way there. Clone the voice, then... well, the reliable route per the docs is to run the TTS/TTS-adjacent path or generate the audio and feed it through Lip Sync Audio Input instead. For everything a preset voice can cover, this node is the fastest path from idea to talking video.

    Install

    Same pack drill: ComfyUI Manager (search "Comfyui-Kling-Wrapper") or git clone https://github.com/magicwang1111/Comfyui-Kling-Wrapper.git into custom_nodes, pip install -r requirements.txt, restart, key in config.local.json. The TTS call is metered like every generation here.

    Is it production tooling? For anything where the voice has to be a specific real person, no. For quickly animating dialogue in a character video with a decent synthetic voice, it's the node that turns a script into a first draft with one typed paragraph and a voice pick.

    CategoryComfyui-Kling-Wrapper

    Inputs (4)

    NameTypeDefaultDescription
    textSTRING
    voice_idCOMBO61 options: 阳光少年, 懂事小弟, 运动少年, 青春少女, 温柔小妹, 元气少女, +55
    voice_languageCOMBOzh2 options: zh, en
    voice_speedFLOAT1.00.8–2

    Outputs (1)

    NameTypeDescription
    inputCOMFYUI_KLING_WRAPPER_LIPSYNC_INPUT