Kling Omni Video-to-Video Edit (fal)
Edit a video with a text instruction
- 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
Maskless video editing - change what's in a clip just by describing the change - is one of the genuinely hard frontier features. Open models are only starting to manage it, and the ones that can tend to want a rack of GPUs and a lot of patience. KlingOmniVideoToVideoEdit does it through Kling's closed Omni endpoint on fal: feed it a video, write an instruction, and it returns an edited version. No masks, no rotoscoping, no local model.
It's part of gokayfem's ComfyUI-fal-API pack, which means it runs remotely and bills per generation. This is the node for restyling a clip, swapping elements, or altering a scene without hand-masking every frame.
How it works
You supply a source video and a prompt describing the edit; optionally you also supply reference images for specific subjects you want inserted or kept consistent. fal runs the edit on Kling's side and returns URLs to the result. As with the other video nodes, the output is a URL string - save it before the link expires.
The inputs and outputs that matter
prompt(required) - the edit instruction. Describe the change you want, not the whole scene from scratch.video(required,VIDEO) - your source clip.keep_audio(default off) - turn it on to preserve the original soundtrack instead of dropping it.element_1…element_4frontal + reference images - optional. Use these when your edit needs a specific character or object kept consistent (up to four elements), the same reference mechanism as the reference-to-video node.variations(1–10) - number of takes. Edits are unpredictable; generate a few and pick.
There's also a general reference_images input. The output is a list of video_url (STRING)s - one URL per variation.
How to install it
Via ComfyUI Manager: search ComfyUI-fal-API, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/gokayfem/ComfyUI-fal-API.git
pip install -r ComfyUI-fal-API/requirements.txt
No models download. Add a fal API key to config.ini under [API] (from config.ini.example) or export FAL_KEY=your_key, then restart. Find it under FAL/VideoGeneration.
Common issues & troubleshooting
- The
videosocket is empty or missing. NativeVIDEOsupport needs a recent ComfyUI - update it if the input type won't connect. This node requires a video in; there's no text-only path. - Auth error.
FAL_KEYnot set. Fix and restart. - Audio disappeared.
keep_audiodefaults to off. Turn it on to keep the source track. - The result links expired. Each URL in the output list is a fal result link that expires. Save them (the pack's Save-Media-from-URL utility handles lists) promptly.
- A run fails. The pack shows fal's actual error - content policy, quota, or a bad input. Read it.
- Cost. A video edit with several
variationsis several generations, billed accordingly. The result cache helps on identical repeats (force_rerunbypasses); the spend guard caps a session. - Windows Portable. Missing
fal-client?python_embeded\python.exe -m pip install fal-client.
For a small change to an existing clip, this beats regenerating from scratch - you keep the composition you already have and just describe what should be different. Keep instructions focused and let variations cover the misses.
Inputs (13)
| 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 | — | |
| variationsopt | INT | 11–10 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video_url | STRING | — |