Kling 2.6 Image to Video
Three inputs, and one of them is sound
- image_urls
- video
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
Four fields, and three of them are required - this is one of the tidier nodes in the pack. Kling is one of the closed video services with no local option at any VRAM, and this is its 2.6 image-to-video generation, audio included. Wire a still in, get a clip out.
Where it fits: you have a keyframe (from any local pipeline) and you want it animated with sound attached, in one call, without touching a hosted web UI. Kling's reputation in the community is as the paid video service people compare local Wan output against, and in that comparison the honest local-first position is that you pay for motion quality and audio you can't produce locally.
The inputs
prompt (required) - and mind the cap, because it's the tightest in this pack's video nodes: 1000 characters. KIE's own example prompt is worth studying, because it shows the notation this family expects:
In a bright rehearsal room… [Campus band female lead singer] stands in front of the microphone with her eyes closed… [Campus band female lead singer, singing loudly] Lead vocal: "I will do my best to heal you, with all my heart and soul…"
Square brackets name and re-describe a subject mid-shot, and quoted text is spoken dialogue. For multi-character clips that bracket tagging is how you keep the model from swapping who's who between beats - and how you tell it what a character is doing in a given moment.
image_urls (required) is the IMAGE socket: the frame you're animating. KIE accepts image/jpeg and image/png for this endpoint, max 10MB, and the pack uploads your tensor as PNG. It's documented as an array of URLs; in practice you're animating one image, so don't hand it a batch and expect a storyboard.
sound (required, false by default) is the flag this node exists for. Set it true and the model generates audio alongside the picture - dialogue, ambience, effects. It's extra generation, not just a packaging choice, so expect both a different render and a bigger bill than a silent version of the same prompt. Put spoken lines in quotes if you want them as speech.
duration (required) is a dropdown: 5 or 10 seconds, default 5. That's the length ceiling - no 3-to-15 slider here.
timeout_seconds (default 1200) and callback_url are the only optional fields, and neither changes your output.
There's no seed and no resolution control. Whatever Kling 2.6 outputs at is what you get.
Outputs
video is the native ComfyUI result, audio track included when sound was on - send it to a save or combine node to keep the sound intact. Then url, all_urls_json, task_id, raw_json, and credits_consumed / credits_left as floats. The node prints a credits receipt when it finishes, and results are archived to ComfyUI/output/KIE-Results/videos/.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
cd ComfyUI-KIE-Nodes-Next
pip install -r requirements.txt
Restart ComfyUI. requests, Pillow, numpy, PyYAML - no weights, no VRAM, nothing in models/. Windows users can run the installer from dist/. ComfyUI Manager may or may not carry the pack; the README still describes the registry route as forthcoming.
Key once: Settings → KIE.ai Nodes Next → Connection. It's validated against KIE before it replaces an existing key, only a masked fingerprint is displayed afterwards, and the key never lands in workflow JSON. Headless installs use KIE_API_KEY, which takes priority over the saved key.
Watch out for
Prompt over 1000 characters is the most common rejection here - it's a fraction of what the Hailuo nodes allow, so prompts copied from elsewhere need cutting.
Sound changes the shot, not just the file. With sound=true the model is allocating capacity to audio; if you only wanted a silent take, you paid for something you're not using.
Timeout errors are spent credits. If the node reports "Timed out waiting for KIE task …", the job is still running server-side. Use the task_id from the message with the Task Status node rather than re-queueing.
The free rerun. Identical inputs → ComfyUI serves the cached output, no new submission, no new charge. Nudge the prompt to actually generate.
No seed means no reproductions. Save the clip you like; you can't ask for it again.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | In a bright rehearsal room, sunlight streams through the windows, and a standing microphone is placed in the center of the room. [Campus band female lead singer] stands in front of the microphone with her eyes closed, and other members stand around her. [Campus band female lead singer, singing loudly] Lead vocal: "I will do my best to heal you, with all my heart and soul..." The background is a cappella harmonies, and the camera slowly pans around the band members. | Text prompt for video generation (maximum length: 1000 characters) |
| image_urls | IMAGE | — | |
| sound | BOOLEAN | false | This parameter specifies whether the generated video contains sound (boolean: true/false) |
| duration | COMBO | 5 | Video duration (unit: seconds) |
| timeout_secondsopt | INT | 120030–7200 | — |
| callback_urlopt | STRING | Optional KIE callback URL. Leave empty for normal ComfyUI use. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| url | STRING | — |
| all_urls_json | STRING | — |
| task_id | STRING | — |
| raw_json | STRING | — |
| credits_consumed | FLOAT | — |
| credits_left | FLOAT | — |