Nodes/ComfyUI-fal-API/Kling Omni Reference-to-Video (fal)
ComfyUI Node

Kling Omni Reference-to-Video (fal)

Keep the same characters across a video

By gokayfem·Created 2 years ago·Updated a day ago· 203
Kling Omni Reference-to-Video (fal)
  • 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
  • element_5_frontal_image
  • element_5_reference_images
  • element_6_frontal_image
  • element_6_reference_images
  • element_7_frontal_image
  • element_7_reference_images
  • STRING
prompt
duration5
aspect_ratio16:9
variations1

The hard part of AI video isn't making motion - it's making the same character show up looking like themselves. Reference-to-video is the feature that fixes that, and for a long time it was the thing local models couldn't do and closed ones could. KlingOmniReferenceToVideo brings Kling's "Omni" reference mode into ComfyUI: you hand it reference images of the people or objects you want in the shot, describe the scene, and it generates a video that keeps those subjects consistent.

It's part of gokayfem's ComfyUI-fal-API pack, so it runs on fal's servers - no local model, pay per generation. This is the node for a recurring character, a specific product, or a cast that needs to stay recognizable from clip to clip.

How it works

You give it a prompt plus reference imagery for up to seven distinct "elements" (think: characters or props). Each element slot takes a frontal image and additional reference images, so the model gets a clear read on what that subject looks like from more than one angle. fal runs the generation and returns URLs to the results - as strings, so save them before the links expire.

The inputs and outputs that matter

  • prompt (required) - describe the scene and action; refer to your elements naturally.
  • reference_images - general reference imagery for the overall generation.
  • element_1_frontal_imageelement_7_frontal_image (plus matching element_N_reference_images) - the core of the node. Each element is one subject you want kept consistent; the frontal image is the clean reference, the extra reference images reinforce it. You don't have to fill all seven - use as many as you have subjects.
  • variations (1–10) - how many takes to generate. Reference-to-video is somewhat hit-or-miss, so asking for a few and picking the best is the sane workflow.

There's also duration (5 / 10) and aspect_ratio (16:9 / 9:16 / 1:1). The output is a list of STRINGs - 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, restart, and look under FAL/VideoGeneration.

Common issues & troubleshooting

  • Auth error. FAL_KEY not set. Fix and restart.
  • The character drifts anyway. Give it better references - a clean, well-lit frontal image plus a couple of angles per element beats one blurry photo. And generate a few variations; consistency isn't guaranteed on a single roll.
  • The links expire. Each URL in the output list is a fal result link with a shelf life. Save them (the pack's Save-Media-from-URL utility handles a list) before they go stale.
  • A run fails. The pack raises fal's real error text - content policy, quota, or a malformed input. Read it.
  • Cost. Reference-to-video with multiple variations multiplies the bill - each variation is a generation. The result cache helps on identical repeats (force_rerun bypasses), and the spend guard caps a session.
  • Windows Portable. Missing fal-client? python_embeded\python.exe -m pip install fal-client.

If your project needs a consistent cast - a mascot, a spokesperson, a set of recurring props - this is the node that makes it possible without training anything. Feed it good references and let variations do the rest.

CategoryFAL/VideoGeneration

Inputs (19)

NameTypeDefaultDescription
promptSTRING
reference_imagesoptIMAGE
element_1_frontal_imageoptIMAGE
element_1_reference_imagesoptIMAGE
element_2_frontal_imageoptIMAGE
element_2_reference_imagesoptIMAGE
element_3_frontal_imageoptIMAGE
element_3_reference_imagesoptIMAGE
element_4_frontal_imageoptIMAGE
element_4_reference_imagesoptIMAGE
element_5_frontal_imageoptIMAGE
element_5_reference_imagesoptIMAGE
element_6_frontal_imageoptIMAGE
element_6_reference_imagesoptIMAGE
element_7_frontal_imageoptIMAGE
element_7_reference_imagesoptIMAGE
durationoptCOMBO52 options: 5, 10
aspect_ratiooptCOMBO16:93 options: 16:9, 9:16, 1:1
variationsoptINT11–10

Outputs (1)

NameTypeDescription
STRINGSTRING