Nodes/Comfyui-Kling-Wrapper/Comfyui-Kling-Wrapper Text2Video
ComfyUI Node

Comfyui-Kling-Wrapper Text2Video

Type a prompt, get a Kling video — no GPU required

By magicwang1111·Created 5 months ago·Updated 18 days ago· 1
Comfyui-Kling-Wrapper Text2Video
  • image_list
  • element_list
  • url
  • video_id
model
prompt
negative_prompt
cfg_scale0.5
mode
aspect_ratio
duration
camera_control_type
camera_control_config
camera_control_value1
sound
voice_presetNone
shot_type
reference_video

The name is a lie, and it's the best part. Comfyui-Kling-Wrapper Text2Video doesn't run Kling on your machine. It doesn't download weights, doesn't touch your VRAM, and doesn't need a single GB of free disk. It's a thin client for the Kling AI cloud API: you type a prompt, it submits an async task to Kling, polls until the clip is done, and hands you back a URL. You reach for this node when the local video stack - Wan, LTX, AnimateDiff - isn't giving you what a paid service can, and you'd rather pay per render than queue for hours.

This is part of a broader pattern that's been creeping into ComfyUI for a while: keep the local graph for conditioning and prep, then hand the final generation step to a cloud video model. People wire Kling, Veo, and Seedance into workflows through a single API key and treat the node graph as the front end for services that cost money per clip. That's exactly what this pack is - a bunch of cloud API calls dressed up as ComfyUI nodes.

How it works

Under the hood this node builds a Text2VideoRequest with everything you set, then runs it through a capability check before it ever spends your credits. That's a genuinely thoughtful touch: the pack keeps a map of which models support which features, and it refuses obviously doomed combinations instead of letting Kling bill you for an error. Then the request goes to whichever provider you configured in config.local.json (official, tencent_vod, or vapeur), the task is submitted asynchronously, and the node polls until the render finishes. Watch your console: it logs final_unit_deduction when the API reports billing, which is how you see the real cost of a generation.

The inputs that matter

  • model - the dropdown spans kling-v1 up through kling-v3, kling-v3-omni, and kling-v3-turbo. The pack intentionally hides models it hasn't confirmed live on real accounts.
  • prompt - the whole ballgame. With shot_type set to intelligence, write the multi-shot structure directly into the text.
  • duration - 3 to 14+ seconds depending on the model. Short clips are cheap; be honest about how much you need.
  • mode - std, pro, or 4k. Only kling-v3 and kling-v3-omni take 4k; anything else gets rejected by the capability check before submission.
  • aspect_ratio - 16:9, 9:16, or 1:1.
  • sound + voice_preset - the native-audio path. Pick a voice preset (47 of them, including some delightfully anime-named ones) and turn sound on. This mainly works on kling-v2-6.
  • camera_control_type / config / value - simple camera moves like pan, tilt, roll, and zoom.
  • negative_prompt, cfg_scale, image_list, element_list, reference_video - all optional and model-gated.

The outputs are url (a playable, downloadable video URL) and video_id (the ID on Kling's side). That video_id is the key to everything downstream: feed it into Video Extender to keep the clip going, Video2Audio to add sound, or the lip-sync nodes to make someone talk.

Installing it

Install through ComfyUI Manager (search for "Comfyui-Kling-Wrapper") or:

cd ComfyUI/custom_nodes
git clone https://github.com/magicwang1111/Comfyui-Kling-Wrapper.git
cd Comfyui-Kling-Wrapper
pip install -r requirements.txt

Then create config.local.json in the repo root with your credentials. The newer flow is a static Kling Bearer token in api_key; the older access_key/secret_key JWT flow still works. Restart ComfyUI and the nodes appear under Comfyui-Kling-Wrapper. There are no model files to download - the "heavy dependency" here is the API key and a credit balance.

Common issues

The number one "failure" is configuration, not generation: no config.local.json and you get an access_key is required error at runtime. Fill in the key, restart, move on.

Where people actually get burned:

  • Picking 4k mode on a model that doesn't support it. The node refuses it upfront - read that error, it's saving you money.
  • Expecting kling-v3-turbo to respect every widget. Turbo uses the newer 3.0 endpoint shape: duration only goes 3–15, std/pro both map to 720p/1080p, and negative_prompt, cfg_scale, sound, voice_list, and element_list are silently ignored.
  • Combining voice and strong subject consistency. The reliable flow is to generate the bound video first, then add speech afterward with Lip Sync, TextToAudio, or Video2Audio. Kling's current endpoint rejects voice_list on kling-v3.
CategoryComfyui-Kling-Wrapper

Inputs (16)

NameTypeDefaultDescription
modelCOMBO9 options: kling-v1, kling-v1-6, kling-v2-master, kling-v2-1-master, kling-v2-5-turbo, kling-v2-6, +3
promptSTRING
negative_promptoptSTRING
cfg_scaleoptFLOAT0.50–1
modeoptCOMBO3 options: std, pro, 4k
aspect_ratiooptCOMBO3 options: 16:9, 9:16, 1:1
durationoptCOMBO13 options: 3, 4, 5, 6, 7, 8, +7
camera_control_typeoptCOMBO6 options: None, simple, down_back, forward_up, right_turn_forward, left_turn_forward
camera_control_configoptCOMBO6 options: horizontal, vertical, pan, tilt, roll, zoom
camera_control_valueoptFLOAT1-10–10
soundoptCOMBO2 options: off, on
voice_presetoptCOMBONone47 options: None, Sunny | genshin_vindi2, Sage | zhinen_xuesheng, 运动少年 | tiyuxi_xuedi, Blossom | ai_shatang, Peppy | genshin_klee2, +41
shot_typeoptCOMBO2 options: single, intelligence
image_listoptIMAGE
element_listoptCOMFYUI_KLING_WRAPPER_ELEMENT_LIST
reference_videooptSTRING

Outputs (2)

NameTypeDescription
urlSTRING
video_idSTRING