Zhenzhen_kling_multi_image2video
Up to Four Reference Shots in One Clip
- image1
- image2
- image3
- image4
- video
- video_url
- task_id
- video_id
- response
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 -
stdorpro. Pro is the higher-quality tier and costs more;stdis the sensible default. - duration -
5or10seconds. Billed per tier. - aspect_ratio -
16:9,9:16, or1: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_timeoutdefaults 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.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| model_name | COMBO | kling-v1-6 | 1 options: kling-v1-6 |
| mode | COMBO | std | 2 options: std, pro |
| duration | COMBO | 5 | 2 options: 5, 10 |
| aspect_ratio | COMBO | 16:9 | 3 options: 16:9, 9:16, 1:1 |
| negative_prompt | STRING | — | |
| image1opt | IMAGE | — | |
| image2opt | IMAGE | — | |
| image3opt | IMAGE | — | |
| image4opt | IMAGE | — | |
| api_keyopt | STRING | — | |
| max_retriesopt | INT | 101–30 | — |
| initial_timeoutopt | INT | 60030–900 | — |
| seedopt | INT | 00–2147483647 | — |
| skip_erroropt | BOOLEAN | false | 开启后,节点失败时不报错、按旧行为返回默认空结果;关闭时(默认)失败直接抛出错误。 |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| video_url | STRING | — |
| task_id | STRING | — |
| video_id | STRING | — |
| response | STRING | — |