Kling O3 native 4K video-to-video reference via Fal.AI. Generates a new 4K shot that follows a reference video (cited as @Video1) — its camera motion, pacing, and framing — while integrating characters/objects from element images (@Element1) and style images (@Image1). Outputs 4K directly with no upscaling pass, 3-15 seconds.
Test this model instantly in the Console Playground — no code required
Copy usage instructions for Claude, ChatGPT, or other AI
curl -X POST "https://api.core.today/v1/predictions" \
-H "Content-Type: application/json" \
-H "X-API-Key: cdt_your_api_key" \
-d '{
"model": "fal-ai/kling-video/o3/4k/video-to-video/reference",
"input": {
"prompt": "Integrate @Element1 in the scene. Style video should be following watercolor style of @Image1",
"video_url": "https://storage.googleapis.com/falserverless/example_inputs/kling-o3/pro-v2v-reference/video_reference.mp4",
"elements": [
{
"frontal_image_url": "https://storage.googleapis.com/falserverless/example_inputs/kling-o3/pro-v2v-reference/element1_front.png",
"reference_image_urls": [
"https://storage.googleapis.com/falserverless/example_inputs/kling-o3/pro-v2v-reference/element1_reference1.png"
]
}
],
"image_urls": [
"https://storage.googleapis.com/falserverless/example_inputs/kling-o3/pro-v2v-reference/image_url1.jpg"
],
"duration": "5",
"aspect_ratio": "auto"
}
}'| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prompt | string | Yes | - | Text prompt. Refer to the reference video as @Video1, element images as @Element1, and style images as @Image1. Max 2500 characters |
video_url | string | Yes | - | Reference video. .mp4/.mov, 3-15 seconds, 720-3840px, 23-60 fps, max 200MB |
duration | string | No | 5 | Output video duration in seconds (3-15). Billed per second 3456789101112131415 |
aspect_ratio | string | No | auto | Aspect ratio of the generated video auto16:99:161:1 |
elements | array | No | - | Characters/objects to include, each with a frontal_image_url and 1-3 reference_image_urls; cited as @Element1, @Element2. Elements plus image_urls total at most 4 |
image_urls | array | No | - | Style/appearance reference images, cited as @Image1, @Image2. Elements plus image_urls total at most 4 |
keep_audio | boolean | No | true | Keep the original audio from the input video |
enable_safety_checker | boolean | No | true | Enable the safety checker |
There are 3 ways to provide files for the video_urlimage_urls parameters:
Pass a publicly accessible URL directly. With the Storage API (POST /v1/files/upload-url) the file uploads straight to S3 (50MB per file) and you pass the returned file_url.
{
"model": "fal-ai/kling-video/o3/4k/video-to-video/reference",
"input": {
"prompt": "your prompt here",
"video_url": "https://example.com/image.jpg"
}
}Attach files directly to POST /v1/predictions/upload. No separate upload step, but the bytes pass through the API server so the whole request is capped at 10MB.
curl -X POST "https://api.core.today/v1/predictions/upload" \
-H "X-API-Key: cdt_your_api_key" \
-F "model=fal-ai/kling-video/o3/4k/video-to-video/reference" \
-F 'input={"prompt":"your prompt here"}' \
-F "file:video_url=@your_file.png"Common parameters used when calling POST /v1/predictions.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
model | string | Yes | - | Model identifier |
input | object | Yes | - | Object containing the model-specific parameters from the table above |
output_folder | string | No | - | Folder path for output files (max 256 chars, '..' not allowed) |
webhook_url | string | No | - | Webhook URL to call on completion |
is_public | boolean | No | false | If true, output files are also available via permanent public URLs |
Follow the reference video, add an element, and apply a watercolor style
curl -X POST "https://api.core.today/v1/predictions" \
-H "Content-Type: application/json" \
-H "X-API-Key: cdt_your_api_key" \
-d '{
"model": "fal-ai/kling-video/o3/4k/video-to-video/reference",
"input": {
"prompt": "Integrate @Element1 in the scene. Style video should be following watercolor style of @Image1",
"video_url": "https://storage.googleapis.com/falserverless/example_inputs/kling-o3/pro-v2v-reference/video_reference.mp4",
"elements": [
{
"frontal_image_url": "https://storage.googleapis.com/falserverless/example_inputs/kling-o3/pro-v2v-reference/element1_front.png",
"reference_image_urls": [
"https://storage.googleapis.com/falserverless/example_inputs/kling-o3/pro-v2v-reference/element1_reference1.png"
]
}
],
"image_urls": [
"https://storage.googleapis.com/falserverless/example_inputs/kling-o3/pro-v2v-reference/image_url1.jpg"
],
"duration": "5",
"aspect_ratio": "auto"
}
}'POST /v1/predictions