Nodes/TrentNodes/FAL Kling V2V (O3 Pro)
ComfyUI Node

FAL Kling V2V (O3 Pro)

Kling Runs in Your Workflow — at $0.336 a Second

By TrentHunter82·Created 9 months ago·Updated 4 days ago· 36
FAL Kling V2V (O3 Pro)
  • video
  • ref_image_1
  • ref_image_2
  • element_1_face
  • element_1_ref
  • element_2_face
  • element_2_ref
  • audio
  • frames
  • video_url
  • info
api_key
prompt
fps24
aspect_ratioauto
duration5
keep_audiotrue
nth_frame1

Kling is a closed model. There is no local checkpoint to download, no VRAM footprint to budget - the only way to run it is to call an API. FAL Kling V2V (O3 Pro) is the node that puts that API inside your graph: you feed it frames and a prompt, it hands the job to FAL AI's Kling O3 Pro video-to-video endpoint, and the generated video comes back as an IMAGE batch as if a local sampler had made it.

This is the API-wrapper pattern in its cleanest form, and before you wire it in, understand what that means. Your video and prompt leave the machine and go to FAL's servers. It costs real money - the README quotes $0.336 per second of generated video, and the node itself is honest about it. And the result is subject to whatever Kling's moderation decides. None of that makes it bad; it makes it a tool for a specific job - quality closed-model V2V without a 5090.

How it works

The flow, in order:

  1. Encode. Your video (an IMAGE batch) is encoded to an MP4 at the fps you set (8–60). Images are auto-compressed to JPEG and downscaled if needed to stay under FAL's 10 MB upload limit.
  2. Upload. The clip goes to FAL's CDN. If you wire an audio input, it's muxed into the uploaded video via ffmpeg - and with keep_audio on (default), the original audio survives in the output.
  3. Generate. FAL runs Kling O3 Pro V2V with your prompt and returns the video.
  4. Return. Frames come back as frames (an IMAGE batch), plus video_url (the file on FAL's CDN, for saving or sharing) and info (status/diagnostics).

The reference system is where Kling's real power lives, and the node makes it convenient. ref_image_1/ref_image_2 are style/appearance references; element_1_face + element_1_ref (and element 2's pair) inject a character - a frontal face image plus a reference of the full appearance. Here's the good part: when an input is connected, its tag (like @Image1 or @Element1) is auto-appended to the prompt, and the prompt widget even has an @ autocomplete dropdown. So you write natural language, drop references in, and the tagging is handled for you.

The fields a beginner actually touches: api_key, prompt, video, fps. Then duration (5 or 10 seconds), aspect_ratio (auto/16:9/9:16/1:1), and nth_frame if you want every Nth output frame rather than all of them.

Install and key

Install the pack, which pulls in fal-client and requests:

cd ComfyUI/custom_nodes
git clone https://github.com/TrentHunter82/TrentNodes.git
cd TrentNodes
pip install -r requirements.txt

You also need a FAL AI account and API key (console.fal.ai), pasted into the api_key widget. Keep that key private - it's a billing credential, and this node is exactly the shape of thing (a node that holds a key and calls the network) worth treating with respect. Restart ComfyUI after installing; Manager can be flaky on this pack per the author's early-rename note, so manual clone if it is.

Common issues

  • "It's expensive." Yes. It's metered video generation. A 5-second clip is ~$1.68, 10 seconds ~$3.36, and every re-run bills again. Count the cost before you hit Queue, not after.
  • Upload fails. Your clip exceeded the 10 MB limit and auto-compression couldn't get it under. Lower resolution or frame count upstream.
  • Character injection didn't work. element_1_face requires element_1_ref (and vice versa) - the pair is mandatory, and the face should be reasonably frontal.
  • No audio in the result. Check keep_audio and that you actually wired an audio input; the muxing only happens when audio is connected.
  • The API refused your prompt. Kling's moderation is Kling's moderation - the node can't bypass it, and nothing about a third-party key changes that.

For anyone doing character-consistent or stylized V2V and willing to pay per second, this node puts a top-tier closed model behind a clean interface. For everyone else, it's worth knowing the cost before you're surprised by the bill.

CategoryTrent/API

Inputs (15)

NameTypeDefaultDescription
api_keySTRINGFAL AI API key
promptSTRINGText prompt for generation. @tags are auto-appended for connected inputs, or place them manually: @Video1, @Image1, @Element1, etc.
videoIMAGEInput video as an IMAGE batch [B, H, W, C]. Will be encoded to mp4 at the specified fps.
fpsINT248–60Frame rate for encoding the input video
ref_image_1optIMAGEStyle/appearance reference image (@Image1 in prompt)
ref_image_2optIMAGEStyle/appearance reference image (@Image2 in prompt)
element_1_faceoptIMAGEFrontal face image for Element 1 (@Element1 in prompt). Requires element_1_ref too.
element_1_refoptIMAGEReference image for Element 1 appearance. Required with element_1_face.
element_2_faceoptIMAGEFrontal face image for Element 2 (@Element2 in prompt). Requires element_2_ref too.
element_2_refoptIMAGEReference image for Element 2 appearance. Required with element_2_face.
audiooptAUDIOOptional audio to embed in the uploaded video. Works with keep_audio to preserve it in the generated output.
aspect_ratiooptCOMBOautoOutput video aspect ratio
durationoptCOMBO5Output video duration in seconds
keep_audiooptBOOLEANtruePreserve original audio from the reference video
nth_frameoptINT11–8Extract every Nth frame from the result (1 = all frames)

Outputs (3)

NameTypeDescription
framesIMAGEGenerated video frames as IMAGE batch
video_urlSTRINGURL of the generated video on FAL CDN
infoSTRINGStatus and diagnostic info