Concurrent Submit | Zhenzhen_kling_multi_image2video
Kling video from up to four reference images, all at once
- image1
- image2
- image3
- image4
- task
Single-reference Kling gives you one image to hold onto. This node gives you up to four. It wraps Zhenzhen_kling_multi_image2video, the multi-reference variant of the pack's Kling node, and it's the one you reach for when one still isn't enough to describe the look - a character and a location, a product and its environment, style plus subject.
It's a concurrent submit node too, so ten of these multi-reference jobs run at once in the shared video pool. That's the pattern this pack is built around: define several reference sets, submit them all, collect the clips, pick keepers. Where single-image Kling is for animating a specific frame, this is for when the scene needs to draw on a small mood board.
How the wrapper works
Underneath, the plain Comfly_kling_multi_image2video node uploads your reference images and posts to Kling's multi-image endpoint through Zhenzhen's proxy, then polls for the clip - with retry logic built in (max_retries and initial_timeout exist precisely because multi-ref Kling is slower and flakier than plain i2v). The Submit wrapper keeps every input but returns a single task (COMFLY_VIDEO_FUTURE), deferring the call to the video pool (default 10, COMFLY_VIDEO_CONCURRENCY env var).
The task output must flow into ComflyConcurrent_Video_Await, which waits for all connected tasks and returns video_1 … video_10 in submission order plus a status JSON. failure_mode (fail_fast / placeholder) decides whether one failure aborts the batch or blanks a slot.
Inputs that matter
prompt is required and describes the motion and composition. model_name is fixed at kling-v1-6 - the only model this multi-ref endpoint supports, which is worth knowing before you hunt for a dropdown that isn't there. mode (std/pro), duration (5/10), aspect_ratio (16:9/9:16/1:1), and negative_prompt round out the core.
image1–image4 are the reference inputs - four IMAGE tensors, and the whole point of the node. max_retries (default 10) and initial_timeout (default 600s) tune how hard it retries before declaring failure; if you're on a flaky network, raising initial_timeout beats raising retries. api_key is optional once API Settings is configured.
Install and gotchas
Pack install as always: ComfyUI Manager → search Comfyui-zhenzhen, or git clone https://github.com/T8mars/Comfyui-zhenzhen into ComfyUI/custom_nodes, restart. No local models.
Multi-ref Kling is heavier than single-image: more references means more upload cost and longer renders, and the retry defaults exist because the backend is genuinely slower here - don't read one timeout as a broken node. There's no camera control on this variant, so don't go looking for the camera dropdown from the single-ref node; it's not part of this endpoint. A 500 is usually upstream Kling load; re-run. And if the Await node flags a failed slot after a long render, the clip is likely done - check the site's task page before burning another attempt.
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 (1)
| Name | Type | Description |
|---|---|---|
| task | COMFLY_VIDEO_FUTURE | — |