Nodes/Comfyui-Kling-Wrapper/Comfyui-Kling-Wrapper Motion Control
ComfyUI Node

Comfyui-Kling-Wrapper Motion Control

Steal the motion from one video, keep the look of another

By magicwang1111·Created 5 months ago·Updated 17 days ago· 1
Comfyui-Kling-Wrapper Motion Control
  • reference_image
  • reference_video_input
  • reference_video_frames
  • reference_video_info
  • element_list
  • url
  • video_id
model_namekling-v2-6
reference_video
prompt
negative_prompt
mode
durationauto
character_orientationvideo
keep_original_soundtrue
extra_payload_json

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) or kling-v3. Both handle motion control; v3 is the newer quality tier.
  • reference_image - an IMAGE of the subject whose look you're keeping.

Then the reference video, via one of three paths:

  • reference_video_input - a VIDEO connection
  • reference_video_frames + reference_video_info - decoded frames plus timing metadata (the VHS_LoadVideo pattern, 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. With auto, the node tries to match the reference video's own duration using the connected metadata or VIDEO object. This is usually what you want - a 6-second reference should give you a 6-second result.
  • character_orientation - video (default) or image. video follows both motion and orientation from the reference clip. image keeps 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, image keeps 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.

CategoryComfyui-Kling-Wrapper

Inputs (14)

NameTypeDefaultDescription
model_nameCOMBOkling-v2-62 options: kling-v2-6, kling-v3
reference_imageIMAGE
reference_videooptSTRING
reference_video_inputoptVIDEO
reference_video_framesoptIMAGE
reference_video_infooptVHS_VIDEOINFO
promptoptSTRING
negative_promptoptSTRING
modeoptCOMBO2 options: std, pro
durationoptCOMBOauto6 options: auto, 3, 5, 10, 15, 30
character_orientationoptCOMBOvideo2 options: video, image
keep_original_soundoptBOOLEANtrue
element_listoptCOMFYUI_KLING_WRAPPER_ELEMENT_LIST
extra_payload_jsonoptSTRING

Outputs (2)

NameTypeDescription
urlSTRING
video_idSTRING