FAL Kling O3 4K Reference To Video (Soze)
Kling O3 in native 4K, with first-frame, last-frame, and audio all in one node
- start_image
- end_image
- image_1
- image_2
- image_3
- image_4
- image_5
- image_6
- image_7
- image_batch
- video
- video_url
- status
Kling O3 is where Kuaishou's video line gets serious about resolution - the 4K tier isn't an upscale of a smaller render, it's generated at that size. This node wraps it for FAL and adds two things the plain Kling nodes don't give you: explicit first-frame and last-frame anchors, and an audio track. It's the node you reach for when a shot needs a definite start, a definite end, and a locked resolution.
The inputs that make it different
Most Kling reference nodes are just "images in, prompt, video out." O3 4K has more shape to it:
start_imageandend_image- connect a start frame and an end frame and the model animates between them. This is the closest thing to a proper in-between: point A, point B, and Kling fills the motion. If you don't want a locked endpoint, leaveend_imageempty.shot_type-customize(you're in control) orintelligent(the model picks the camera work). Intelligent is worth a try if you're happy to surrender direction; customize is the default for a reason.generate_audio- default off; flip it on and the clip comes back with sound. Audio makes the render slower and pricier, so leave it off for drafts.
On top of that you get the usual @Image1 citation system for up to seven reference images (or image_batch, capped at 7), a duration dropdown that runs 3–15 seconds, and aspect_ratio limited to 16:9, 9:16, 1:1. There's no resolution picker - 4K is the point.
How it works
Standard FAL machinery under the hood: reference images upload to FAL's CDN, the node POSTs to fal-ai/kling-video/o3/4k/reference-to-video, waits synchronously, then downloads the mp4 to your output folder as a VIDEO object. Outputs are video, video_url, and status. The start_image/end_image frames ride along as extra URL arguments in the same request.
One honest warning: native 4K generation is slow and it is not cheap. A single 4K clip with audio can take several minutes and a real chunk of your FAL balance. Do your iterating at a lower tier and treat this node as the final-render pass.
Install and key
From the Soze pack ("Quality of Life Nodes for ComfyUI"). ComfyUI Manager → search "Soze", or:
cd ComfyUI/custom_nodes
git clone https://github.com/SozeInc/ComfyUI_Soze.git
pip install -r ComfyUI_Soze/requirements.txt
Restart, then set FAL_KEY as an environment variable or in ComfyUI_Soze/config.ini:
[API]
FAL_KEY=your_key_here
Key at fal.ai/dashboard/keys; never commit config.ini.
Common issues
- The start/end frames look ignored. Check the prompt cites the references - the first/last frame anchors are positional, but subject description still drives what Kling actually animates.
- Way slower than other Kling nodes. 4K plus audio is a heavy synchronous job. That's the tier, not a hang.
- Balance drains fast. Watch it on this node specifically - it's the most expensive wrapper in the FAL family here.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Cite references as @Image1.. | |
| duration | COMBO | 5 | 13 options: 3, 4, 5, 6, 7, 8, +7 |
| aspect_ratio | COMBO | 16:9 | 3 options: 16:9, 9:16, 1:1 |
| shot_type | COMBO | customize | 2 options: customize, intelligent |
| generate_audio | BOOLEAN | false | — |
| start_imageopt | IMAGE | Optional first-frame image. | |
| end_imageopt | IMAGE | Optional last-frame image. | |
| image_1opt | IMAGE | Reference image 1 (cite as @Image1 in the prompt). | |
| image_2opt | IMAGE | Reference image 2 (cite as @Image2 in the prompt). | |
| image_3opt | IMAGE | Reference image 3 (cite as @Image3 in the prompt). | |
| image_4opt | IMAGE | Reference image 4 (cite as @Image4 in the prompt). | |
| image_5opt | IMAGE | Reference image 5 (cite as @Image5 in the prompt). | |
| image_6opt | IMAGE | Reference image 6 (cite as @Image6 in the prompt). | |
| image_7opt | IMAGE | Reference image 7 (cite as @Image7 in the prompt). | |
| image_batchopt | IMAGE | Optional IMAGE batch (capped at 7). Ignored if any image_N slot is connected. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| video_url | STRING | — |
| status | STRING | — |