Comfyui-Kling-Wrapper Motion Control
Steal the motion from one video, keep the look of another
- reference_image
- reference_video_input
- reference_video_frames
- reference_video_info
- element_list
- url
- video_id
Motion Control is the Kling API's version of a reference-video transfer: you give it a still image of a subject and a video of someone (or something) moving, and it makes the subject perform that motion. Think of it as the video-motion cousin of ControlNet - instead of conditioning on edges or pose, Kling conditions on the motion of an entire reference clip.
It's the node to reach for when a text prompt can't express the choreography. "Dance like this," "walk with this gait," "turn exactly like this" - describe that in words and you'll get something vaguely adjacent. Feed it a reference clip and you get the actual motion, transferred onto your subject's appearance.
The inputs
Two required inputs:
model_name-kling-v2-6(default) orkling-v3. Both handle motion control; v3 is the newer quality tier.reference_image- anIMAGEof the subject whose look you're keeping.
Then the reference video, via one of three paths:
reference_video_input- aVIDEOconnectionreference_video_frames+reference_video_info- decoded frames plus timing metadata (theVHS_LoadVideopattern, or any loader that outputs both)reference_video- a plain public http(s) URL
The node requires one of these - no reference video, no run. Local video gets uploaded through the pack's media relay (OSS if configured, otherwise public temporary hosts like tmpfiles.org / catbox.moe).
The two settings worth caring about
duration-auto(default) or 3/5/10/15/30 seconds. Withauto, the node tries to match the reference video's own duration using the connected metadata orVIDEOobject. This is usually what you want - a 6-second reference should give you a 6-second result.character_orientation-video(default) orimage.videofollows both motion and orientation from the reference clip.imagekeeps your subject's orientation from the reference image while only borrowing the motion. If your subject's photo faces left but the dancer faces right,imagekeeps your subject facing left throughout - often the less uncanny choice.
Also available: prompt/negative_prompt, mode (std/pro), keep_original_sound (defaults to true - keep the reference clip's audio if it has any), an element_list input for binding registered characters, and the usual extra_payload_json escape hatch.
Outputs: url and video_id, standard for the pack - url into Preview Video to download.
Install and gotchas
Same pack, same install: 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, key in config.local.json.
The recurring gotcha is media reachability. Kling has to be able to fetch your reference image and video before generation starts, so a local file path or a VIDEO object in ComfyUI's memory isn't enough on its own - the pack uploads them for you, but if you're using a direct URL and it's behind a login or a dead link, you'll get a submission failure. Keep your reference media public or let the pack's upload relay handle it.
Motion control is one of the features the README calls out as "new-system" - the API surface moved, and this node tracks the current shape. It's fiddly to set up the first time, but once the reference paths are right, it's the closest thing in this pack to directing a performance.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | kling-v2-6 | 2 options: kling-v2-6, kling-v3 |
| reference_image | IMAGE | — | |
| reference_videoopt | STRING | — | |
| reference_video_inputopt | VIDEO | — | |
| reference_video_framesopt | IMAGE | — | |
| reference_video_infoopt | VHS_VIDEOINFO | — | |
| promptopt | STRING | — | |
| negative_promptopt | STRING | — | |
| modeopt | COMBO | 2 options: std, pro | |
| durationopt | COMBO | auto | 6 options: auto, 3, 5, 10, 15, 30 |
| character_orientationopt | COMBO | video | 2 options: video, image |
| keep_original_soundopt | BOOLEAN | true | — |
| element_listopt | COMFYUI_KLING_WRAPPER_ELEMENT_LIST | — | |
| extra_payload_jsonopt | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| url | STRING | — |
| video_id | STRING | — |