Kling 2.6 Image-to-Video
Sound is on by default, and that doubles the bill
- image
- end_image
- client
- video_url
Kling 2.6 sits a generation above 2.5 Turbo, and its headline trick is joint audio-video generation - the model produces synchronized sound with the footage. That's why the very first thing to know about this node is in the default settings: sound is true out of the box, and the tooltip is blunt about what that means - it doubles the cost. Read that again before you queue your first clip.
It's part of the ERPK Collection, the community pack wrapping the WaveSpeed AI API. No local model, cloud-rendered, billed per clip.
How it works
You connect a starting image (or a URL), describe the motion, camera moves, and audio, and the node uploads the frame to api.wavespeed.ai. It polls every 10 seconds up to a 15-minute timeout, then returns a video_url STRING. Wire that into the pack's Preview Anything node to preview and download. As with the other Kling nodes, the seed widget is cache control - no real seed parameter on this endpoint, so fixed seed = cached clip, randomize = fresh billed run.
The inputs that matter
model- Kling 2.6 or Kling 2.6 Pro. Everything interesting is gated on Pro:cfg_scale,end_image, andsound.image- your start frame as an IMAGE tensor; preferred overimage_url(URL fallback, max 10MB, min 300px per side, aspect 1:2.5 to 2.5:1).prompt- scene motion, camera moves, and audio all in one box. Since the model generates audio too, writing "wind, birdsong" style cues actually lands.sound- defaults to true and doubles cost. Flip it off when you're iterating on visuals only. Also: it cannot be combined withend_image- the API refuses the combination, so you pick one.end_image- Pro only, an end frame for guided transitions. If you want sound, this is off the table.cfg_scale- Pro only, 0.3–0.8, default 0.5. Higher follows the prompt more closely. Same idea asguidance_scaleon 2.5 Turbo, different name.negative_prompt- what to exclude, from both visuals and audio. "No watermark", "no sirens" - it works.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/eRepublik-Labs/comfyui-nodes-erpk.git erpk
cd erpk
pip install -r requirements.txt
Or ComfyUI Manager → search erpk → ERPK Custom Nodes. No model files to fetch. You need a WaveSpeed API key with credits, set under right-click canvas > ERPK Settings (Settings > ERPK > API Keys).
Common issues
- "Cannot be combined with sound" errors - you connected
end_image(orend_image_url) whilesoundis on. They're mutually exclusive on this API; disable one. - Unexpectedly big bills - sound defaults on, and it doubles the per-clip cost. If you didn't intend it, flip
soundto false. - Fixed seed clip never changes - cache control, as on the other Kling endpoints. Randomize for a new generation.
- Clip ignored your audio cues - the model treats audio as a prompt-conditioned element, not a guarantee. Keep cues short and physical.
The play: leave sound on for the shots that will actually be heard, turn it off for the rest, and remember 2.6's sound is the differentiator over the 2.5 Turbo nodes - which is also why they're the cheap option.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | Kling 2.6 | Model variant: Kling 2.6 (Std) or Kling 2.6 Pro (cfg_scale, end_image, sound) |
| prompt | STRING | Text description of scene motion, camera moves, and audio | |
| image_url | STRING | Starting image URL (JPG/JPEG/PNG, max 10MB, min 300px each side, aspect 1:2.5-2.5:1). Fallback when the IMAGE input is not connected. | |
| imageopt | IMAGE | Starting image as a ComfyUI IMAGE tensor. Preferred — takes precedence over `image_url` when connected. | |
| end_imageopt | IMAGE | Pro only: end-frame image as a ComfyUI IMAGE tensor. Preferred — takes precedence over `end_image_url` when connected. Cannot be combined with sound. | |
| clientopt | WAVESPEED_AI_API_CLIENT | WaveSpeed API client (optional if API key is configured in Settings) | |
| negative_promptopt | STRING | Elements to exclude from visuals and audio | |
| durationopt | COMBO | 5 | Video duration in seconds (5 or 10) |
| end_image_urlopt | STRING | Pro only: end-frame URL; cannot be combined with sound. Fallback when the end_image IMAGE input is not connected. | |
| cfg_scaleopt | FLOAT | 0.500.3–0.8 | Pro only: guidance strength (0.3-0.8); higher follows the prompt more closely |
| soundopt | BOOLEAN | true | Pro only: enable joint audio-video generation (doubles cost); cannot be combined with end_image |
| seedopt | INT | -1-1–2147483647 | Cache control: randomize re-runs generation each queue; a fixed value reuses the cached video. This endpoint has no seed parameter, so it is not sent to the API. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video_url | STRING | — |