Nodes/Comfyui-Kling-Wrapper/Comfyui-Kling-Wrapper Avatar
ComfyUI Node

Comfyui-Kling-Wrapper Avatar

One image, one audio track

By magicwang1111·Created 5 months ago·Updated 18 days ago· 1
Comfyui-Kling-Wrapper Avatar
  • image
  • audio
  • url
  • video_id
modestd
audio_id
audio_file
audio_url
prompt

The Avatar node is Kling's dedicated talking-head pipeline: one portrait image plus one audio track in, a video of that face speaking the audio out. If you've ever reached for a lip-sync tool and thought "this is overkill, I just want a face to say this line," this is the node. It's the API's /v1/videos/avatar/image2video endpoint, exposed as a two-wire node.

It's also the cheapest possible path to a believable presenter video - you don't need a source video of the person moving, just a photo. That's the entire trick: a static portrait plus audio becomes a speaking avatar, which is why it's one of the most practical nodes in the pack for things like training videos, product demos, or character narration.

What you feed it

Two required inputs:

  • image - one ComfyUI IMAGE. A clean frontal portrait works best; the model has to animate this face, so a good headshot with even lighting gets you a far better result than a moody three-quarter profile.
  • mode - std or pro. pro costs more and generally buys more natural motion. For a first test, std is fine.

Then exactly one audio source (the node validates this - you can't feed it two):

  • audio - a ComfyUI AUDIO connection
  • audio_id - a Kling audio ID
  • audio_file - a local file path
  • audio_url - a public http(s) URL

Local ComfyUI audio is validated to be between 2 and 300 seconds before submission. Keep the clip in that window and you're fine.

There's an optional prompt too, for nudging the performance ("speak calmly," "slight smile") - the README examples use it to steer expression.

Outputs

Standard pack outputs: url (the rendered avatar video) and video_id (Kling's task reference). Wire url into Preview Video to save it locally, or video_id into the video extender to keep the talking head talking.

Install and gotchas

Same pack install as everything else: ComfyUI Manager (search "Comfyui-Kling-Wrapper") or clone into custom_nodes + pip install -r requirements.txt + restart, with your Kling API key in config.local.json. It's an API node - no local model, metered credits.

The two traps that get people:

  1. "Exactly one audio source" is enforced. Connect audio and also fill in audio_url and the node will reject the run. Pick your input method and stick with it.
  2. Audio length. Too short (<2s) or too long (>300s) gets bounced. If you're feeding a 45-minute podcast clip, trim it first - which is a genuine reason to keep a local audio-trimming node in your graph.

This node and Lip Sync overlap at the edges, but they're different tools: Lip Sync edits the mouth on an existing video; Avatar builds the talking head from a still. If you have a photo and a line of dialogue, Avatar is the one you want - it's nearly as easy as typing a prompt.

CategoryComfyui-Kling-Wrapper

Inputs (7)

NameTypeDefaultDescription
imageIMAGE
modeCOMBOstd2 options: std, pro
audiooptAUDIO
audio_idoptSTRING
audio_fileoptSTRING
audio_urloptSTRING
promptoptSTRING

Outputs (2)

NameTypeDescription
urlSTRING
video_idSTRING