ComfyUI Node

Video2Audio

Generate sound effects or a soundtrack for a video you already have

By KlingAIResearch·Created 2 years ago·Updated 10 months ago· 174
Video2Audio
  • client
  • videos_id
  • videos_url
  • audio_id
  • audio_url_mp3
video_id
video_url
sound_effect_prompt
bgm_prompt
asmr_modfalse

Most video models are silent - you get picture, not sound, and you go find music and foley separately. Google's Veo 3 got attention specifically for generating audio natively alongside video; most other models, KLing included, don't do that at the point of generation. Video2Audio is KLing's way of closing that gap after the fact: hand it a video you already have, and it generates a matching soundtrack - sound effects, background music, or both - for it.

How it works

You point the node at an existing video (either one KLing already generated, or an external one via URL), describe the kind of sound and/or music you want, and KLing's servers analyze the video and generate audio meant to fit it, returning both the (echoed) video reference and the new audio as separate results. It's a genuinely different capability from Text2Audio in this same pack - that node generates audio from a text prompt alone with no visual context; this one is scoring an actual video.

The inputs and outputs that matter

Required:

  • video_id and video_url - the video to score. Use video_id for a clip generated elsewhere in this pack (Text2Video, Image2Video, Effects) to chain cleanly without re-uploading; video_url for an external clip.

Optional:

  • sound_effect_prompt - describe foley/sound effects specifically (footsteps, ambient room tone, impacts).
  • bgm_prompt - describe background music separately from sound effects, so you can ask for both at once without one prompt trying to do double duty.
  • asmr_mod (boolean, default false) - a dedicated toggle that biases the generated audio toward close, intimate, ASMR-style sound design rather than a normal mix. A fun one to know exists if that's the aesthetic you're after, easy to forget if you're not.

Outputs are four strings: videos_id / videos_url (echoing the source video reference back) and audio_id / audio_url_mp3 (the generated audio result, as an MP3 download link).

Installing it

ComfyUI Manager: search ComfyUI-KLingAI-API, install, restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/KwaiVGI/ComfyUI-KLingAI-API
cd ComfyUI-KLingAI-API && pip install -r requirements.txt

No local model download - you need a Client node with a valid KLing AI API key wired in upstream, region-matched via area.

Common issues

Leaving both sound_effect_prompt and bgm_prompt blank is a valid but usually unhelpful call - you'll want at least one filled in to steer the result meaningfully, since the node has no visual-only default beyond whatever KLing infers on its own. If you're chaining from a video generated earlier in the same pack, prefer video_id over grabbing the url output and feeding it back as video_url - the id points at KLing's own persistent copy rather than relying on a download link that may not stay live indefinitely. And since the output is only a url (audio_url_mp3), you'll want a download step afterward if you need the file on disk - nothing here writes it locally on its own. As always, an auth failure or empty balance on the upstream Client node is the first thing to rule out if nothing comes back at all.

CategoryKLingAI

Inputs (6)

NameTypeDefaultDescription
clientKLING_AI_API_CLIENT
video_idSTRING
video_urlSTRING
sound_effect_promptoptSTRING
bgm_promptoptSTRING
asmr_modoptBOOLEANfalse

Outputs (4)

NameTypeDescription
videos_idSTRING
videos_urlSTRING
audio_idSTRING
audio_url_mp3STRING