Nodes/Comfyui-zhenzhen/Zhenzhen_kling_multi_image2video
ComfyUI Node

Zhenzhen_kling_multi_image2video

Up to Four Reference Shots in One Clip

By T8mars·Created 12 months ago·Updated 4 days ago· 724
Zhenzhen_kling_multi_image2video
  • image1
  • image2
  • image3
  • image4
  • video
  • video_url
  • task_id
  • video_id
  • response
prompt
model_namekling-v1-6
modestd
duration5
aspect_ratio16:9
negative_prompt
api_key
max_retries10
initial_timeout600
seed0
skip_errorfalse

Kling's party trick is taking reference imagery and turning it into a moving scene that respects what you gave it. The multi-image variant is the one you want when a single reference isn't enough - a character sheet, a product from two angles, a location plus a subject. This node feeds up to four images into Kling (the 1.6 model) and gets a video back. It's the difference between "animate this one picture" and "make a video about this thing, which I have documented from several angles."

It's a Kling API call wearing a ComfyUI costume - cloud inference, prepaid credits, no GPU. Kling is not fast; the README budgets five to six minutes per generation, so this is a fire-and-check-later node, not an interactive toy.

How it works

The prompt, negative prompt, and up to four reference images are sent to the Kling endpoint via the proxy. The node polls for status (it has max_retries and initial_timeout dials for exactly this), and when the video's done you get a video output wrapped in the pack's ComflyVideoAdapter - which, since mid-2025, plugs directly into ComfyUI's native Save Video node. You also get the video_url, a task_id, a video_id (that one matters for lip-sync, below), and the raw response.

The inputs that matter

  • prompt - what happens in the video, and how the references should behave.
  • model_name - kling-v1-6, and only that. The multi-image reference feature is 1.6-only in this node; if you need a different model you're in the text2video node's territory.
  • image1–image4 - your reference shots. Four is the max, and they should describe the same subject/thing from different views, or you'll get a clip that can't decide what it's animating.
  • mode - std or pro. Pro is the higher-quality tier and costs more; std is the sensible default.
  • duration - 5 or 10 seconds. Billed per tier.
  • aspect_ratio - 16:9, 9:16, or 1:1.
  • negative_prompt - say what you don't want. Worth filling in for Kling; it does respect it.
  • seed - lock a take; 0 is random.
  • max_retries / initial_timeout - the reliability dials. initial_timeout defaults to 600s, which tracks the README's five-to-six-minute generation estimate; raise it if big jobs keep dying before Kling finishes.

Outputs: video (VIDEO), video_url (STRING), task_id (STRING), video_id (STRING), response (STRING).

Install

Manager → Comfyui_Comfly, or:

cd ComfyUI/custom_nodes
git clone https://github.com/ainewsto/Comfyui_Comfly

Restart. No weights to download; the requirements.txt is the standard aiohttp/requests/Pillow/numpy set. Key from ai.comfly.chat in Comflyapi.json or the node's api_key.

Where people get burned

Feeding four unrelated images is the classic mistake - Kling 1.6 treats them as views of one subject, and four different subjects will come back as mush. Also, hang onto that video_id and task_id outputs: the pack's lip-sync node (Comfly_lip_sync) needs them to animate the mouth on this video, and they're easy to lose if you don't wire them out. And budget for the wait - a five-minute generation that times out isn't a bug, it's Kling being Kling; raise initial_timeout rather than rage-refreshing.

Categoryzhenzhen/Comfly_kling

Inputs (15)

NameTypeDefaultDescription
promptSTRING
model_nameCOMBOkling-v1-61 options: kling-v1-6
modeCOMBOstd2 options: std, pro
durationCOMBO52 options: 5, 10
aspect_ratioCOMBO16:93 options: 16:9, 9:16, 1:1
negative_promptSTRING
image1optIMAGE
image2optIMAGE
image3optIMAGE
image4optIMAGE
api_keyoptSTRING
max_retriesoptINT101–30
initial_timeoutoptINT60030–900
seedoptINT00–2147483647
skip_erroroptBOOLEANfalse开启后,节点失败时不报错、按旧行为返回默认空结果;关闭时(默认)失败直接抛出错误。

Outputs (5)

NameTypeDescription
videoVIDEO
video_urlSTRING
task_idSTRING
video_idSTRING
responseSTRING