Kling Omni Video-to-Video Reference (fal)
Restyle a video and inject your own characters
- video
- reference_images
- element_1_frontal_image
- element_1_reference_images
- element_2_frontal_image
- element_2_reference_images
- element_3_frontal_image
- element_3_reference_images
- element_4_frontal_image
- element_4_reference_images
- video_url
This is the most powerful - and most fiddly - of the Kling nodes in this pack. Instead of generating from a still, it takes an existing video plus a prompt and reference imagery, and re-generates the clip guided by both. The headline feature is the "reference element" system: you can supply up to four distinct elements (a character, an object, whatever) each with a frontal image and extra reference images, and have Kling carry them into the output video. Think character replacement, consistent subjects across a restyle, or dropping specific people into an existing motion.
What it actually does
Nothing runs locally. Your driving video, prompt, and reference images go to fal.ai, fal runs Kling's Omni video-to-video endpoint, and you get a new clip back - no VRAM, no downloads, billed per generation. Because you're uploading a whole video and multiple images, and video jobs are pricey, this is a deliberate, per-shot tool rather than something to spam.
The inputs that matter
- video (required): the source clip that provides the motion and structure.
- prompt (required): describe what you want the output to look like - the restyle, the scene, the action.
- reference_images (optional): general reference imagery for the look and subjects.
- element_1…4 frontal_image / reference_images (optional): the structured part. Each "element" is a subject you want the model to hold consistent - give it a clean frontal image plus supporting references. The pack's typed builder nodes (added in 2.5) are meant to make assembling these configs less painful than hand-typing JSON.
Rounding it out: keep_audio (carry the source video's audio through, off by default), aspect_ratio (auto/16:9/9:16/1:1), duration (5 or 10), and variations (1–10, each billed). The output is a STRING list - video URLs, named video_url. Feed it into the pack's Fal Save Media from URL node to download the file.
Installing it
Easiest: ComfyUI Manager → search ComfyUI-fal-API → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/gokayfem/ComfyUI-fal-API.git
cd ComfyUI-fal-API
pip install -r requirements.txt
Restart ComfyUI. No model file needed; the dependencies are fal-client and a fal API key (via config.ini under [API], or the FAL_KEY env var). Note that a VIDEO input and output require a reasonably recent ComfyUI - if the video socket is missing or reads None, update ComfyUI first.
Where people get burned
Two node-specific traps. First, the elements only help if the frontal images are clean and unambiguous - a cluttered or low-res frontal gives the model a weak anchor and consistency suffers. Feed it good references. Second, this is the most expensive shape of call in the pack: a full video plus multiple images plus variations can rack up cost quickly, so keep variations at 1 while you're finding the right prompt and element set.
The rest are the usual API realities: content-policy refusals on people come through as readable fal errors (read them), and on ComfyUI Windows Portable an import error is fixed with .\python_embeded\python.exe -m pip install fal-client.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| video | VIDEO | — | |
| keep_audioopt | BOOLEAN | false | — |
| reference_imagesopt | IMAGE | — | |
| element_1_frontal_imageopt | IMAGE | — | |
| element_1_reference_imagesopt | IMAGE | — | |
| element_2_frontal_imageopt | IMAGE | — | |
| element_2_reference_imagesopt | IMAGE | — | |
| element_3_frontal_imageopt | IMAGE | — | |
| element_3_reference_imagesopt | IMAGE | — | |
| element_4_frontal_imageopt | IMAGE | — | |
| element_4_reference_imagesopt | IMAGE | — | |
| aspect_ratioopt | COMBO | auto | 4 options: auto, 16:9, 9:16, 1:1 |
| durationopt | COMBO | 5 | 2 options: 5, 10 |
| variationsopt | INT | 11–10 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video_url | STRING | — |