Comfyui-Kling-Wrapper Video2Audio
Add sound to a silent Kling clip without leaving ComfyUI
- videos_id
- videos_url
- audio_id
- audio_url_mp3
Here's the honest state of video generation in 2026: the clips look great, and most of them are dead silent. Native audio-in-video is the one capability where the closed models still hold a real edge over open weights, and even then it's gated to specific models and modes. Comfyui-Kling-Wrapper Video2Audio is the patch for that gap. Feed it a Kling video and it generates a matching audio track - sound effects plus an optional music layer - via Kling's /v1/audio/video-to-audio endpoint, and hands back an MP3 you can wire straight into your workflow.
How it works
The node accepts exactly one of two source inputs, and it's strict about it:
- video_id - the ID of a video generated by another node in this pack
- video_url - a public http(s) URL of a video
Give it both and it raises "Please input one of video_id or video_url". Give it neither and it raises "Please input video_id or video_url". There's no guessing, which is honestly refreshing. Three optional inputs tune the result: sound_effect_prompt (what the diegetic audio should be), bgm_prompt (the background music layer), and asmr_mode, a boolean for whisper-quiet, close-mic ambience if that's your vibe.
The task is submitted async and polled like everything else in this pack. When it lands you get four outputs:
- videos_id and videos_url - echoes of what you fed in
- audio_id - the generated audio's ID on Kling
- audio_url_mp3 - the file. This is the one you wire into
Preview Audioor a save node.
Where it fits
The natural pairing is with Text2Video or Image2Video: generate the clip, take its video_id output, drop it into Video2Audio, and describe the sound you want. The pack's example 12_comfyui_kling_wrapper_video_to_audio.json is the minimal version, and 15 shows the more ambitious chain - bind a subject, generate video, then add music on top. If you want dialogue instead of ambience, that's the TTS node's job; Video2Audio is for making a video feel alive with sound design rather than speech.
Installing it
Same pack install as the rest of the wrapper:
cd ComfyUI/custom_nodes
git clone https://github.com/magicwang1111/Comfyui-Kling-Wrapper.git
cd Comfyui-Kling-Wrapper
pip install -r requirements.txt
Or via ComfyUI Manager, searching "Comfyui-Kling-Wrapper". Create config.local.json in the repo root with your Kling credentials and restart ComfyUI. This is a paid cloud generation - each audio render costs credits - so expect it to behave like a paid service, not a local model.
Common issues
- Both inputs filled, or neither - the node refuses both cases with a clear message. Pick one source.
- Vapeur provider - explicitly unsupported here. The node rejects video-to-audio on the
vapeurprovider, so stick withprovider_default: "official"inconfig.local.json. - Dead silence after running - if the response comes back without a usable
url_mp3, the task failed on Kling's side. Check your credit balance and re-run; this endpoint is newer and still shows some flakiness.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| video_id | STRING | — | |
| video_url | STRING | — | |
| sound_effect_promptopt | STRING | — | |
| bgm_promptopt | STRING | — | |
| asmr_modeopt | BOOLEAN | false | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| videos_id | STRING | — |
| videos_url | STRING | — |
| audio_id | STRING | — |
| audio_url_mp3 | STRING | — |