Comfyui-Kling-Wrapper Image2Video
The workhorse Kling node — still image to moving footage
- image
- image_tail
- custom_voice_list
- image_list
- element_list
- url
- video_id
This is the node most people install this pack for. Image2Video is the middle of Kling's lineup and the most flexible: one still image in, a motion-filled clip out. Community consensus has treated Kling's image-to-video as the closed-source quality bar for years - even the local Wan crowd benchmarked against "Kling 2.0 master" - and this node is how you reach that bar from inside ComfyUI.
It's an API node, not a local generation node. Nothing renders on your GPU. You send the image to Kling, it renders in their cloud, and you get back a URL. That means no VRAM math, but also no free rides - every run is metered against your Kling API credits.
What you feed it
The image input is a plain ComfyUI IMAGE connection, so anything upstream that produces an image works: a KSampler, an image loader, or this pack's own Image Generator. There's also an image_tail input if you want to specify the ending frame, which is a neat trick for controlled loops - the video starts from image and resolves to image_tail.
The model dropdown is the big decision, and it's well stocked: kling-v1 through kling-v2-6, plus kling-v3, kling-v3-omni, and kling-v3-turbo. Start with kling-v3 for quality; grab kling-v3-turbo when you want cheaper, faster iterations. mode goes std/pro/4k, but 4k only works on models that support it - the node rejects the combo locally if the model can't do it, so you won't waste a submission.
The controls worth knowing
cfg_scale- defaults to 0.5, range 0–1. This tunes how literally the model follows your prompt. Kling's default 0.5 is a fine starting point; nudge up if the prompt keeps getting ignored.camera_control_type+camera_control_config+camera_control_value- the trio for camera moves.camera_control_typepicks the move family (simple, down_back, forward_up, right/left_turn_forward),camera_control_configpicks pan/tilt/roll/zoom etc., and the value sets how strong the move is. Leave type atNoneif you'd rather the model find its own camera.shot_type-singleorintelligence.intelligencelets the model break your prompt into a multi-shot sequence, which is where Kling's cinematic feel comes from.
Sound and voice
This node is also the pack's voice showcase. sound on/off, a voice_preset dropdown with dozens of preset voices (built for kling-v2-6's native audio), and the custom_voice_id / custom_voice_list inputs for cloned voices. The README's recipe for a cloned voice: select kling-v2-6, set mode=pro, sound=on, a 5- or 10-second duration, and reference the voice in the prompt as <<<voice_1>>>. voice_preset, custom_voice_id, and custom_voice_list are mutually exclusive, so pick one path.
You can also attach an element_list here (from the Element List Builder) for subject consistency, and a reference_video URL.
Outputs and install
Outputs are url and video_id - wire url into the pack's Preview Video node to download and view. Install via ComfyUI Manager (search "Comfyui-Kling-Wrapper") or git clone https://github.com/magicwang1111/Comfyui-Kling-Wrapper.git into custom_nodes, pip install -r requirements.txt, restart, and put your Kling API key in config.local.json. No model files, no VRAM - just credits.
Where people get burned: expecting 4k from a model that doesn't support it (the node catches this), and expecting custom voices to work on kling-v3 (the API rejects them; v2.6 is the reliable voice model). Match your model to what you're actually asking for and this node is remarkably painless.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | 11 options: kling-v1, kling-v1-5, kling-v1-6, kling-v2-master, kling-v2-1, kling-v2-1-master, +5 | |
| imageopt | IMAGE | — | |
| image_tailopt | IMAGE | — | |
| promptopt | STRING | — | |
| negative_promptopt | STRING | — | |
| cfg_scaleopt | FLOAT | 0.50–1 | — |
| modeopt | COMBO | 3 options: std, pro, 4k | |
| durationopt | COMBO | 13 options: 3, 4, 5, 6, 7, 8, +7 | |
| camera_control_typeopt | COMBO | 6 options: None, simple, down_back, forward_up, right_turn_forward, left_turn_forward | |
| camera_control_configopt | COMBO | 6 options: horizontal, vertical, pan, tilt, roll, zoom | |
| camera_control_valueopt | FLOAT | 1-10–10 | — |
| soundopt | COMBO | 2 options: off, on | |
| voice_presetopt | COMBO | None | 47 options: None, Sunny | genshin_vindi2, Sage | zhinen_xuesheng, 运动少年 | tiyuxi_xuedi, Blossom | ai_shatang, Peppy | genshin_klee2, +41 |
| custom_voice_idopt | STRING | — | |
| custom_voice_listopt | COMFYUI_KLING_WRAPPER_CUSTOM_VOICE_LIST | — | |
| shot_typeopt | COMBO | 2 options: single, intelligence | |
| image_listopt | IMAGE | — | |
| element_listopt | COMFYUI_KLING_WRAPPER_ELEMENT_LIST | — | |
| reference_videoopt | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| url | STRING | — |
| video_id | STRING | — |