Skip to main content
Core.Today
|
KuaishouSlowUltra

Kling O3 4K Video to Video Reference

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.

4400 credits
per 5s 4K video — billed per second of output, 977/s
Follows a reference video's camera motion, pacing, and framing
Integrates characters/objects from element images (@Element1)
Style transfer from reference images (@Image1)
Native 4K output in one step — no upscaling pass
3-15 second output, keeps the reference audio optionally

Run it right now

Test this model instantly in the Console Playground — no code required

Sign in to try

Use with AI Assistant

Copy usage instructions for Claude, ChatGPT, or other AI

Quick Start

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"
  }
}'

Parameters

ParameterTypeRequiredDefaultDescription
promptstringYes-Text prompt. Refer to the reference video as @Video1, element images as @Element1, and style images as @Image1. Max 2500 characters
video_urlstringYes-Reference video. .mp4/.mov, 3-15 seconds, 720-3840px, 23-60 fps, max 200MB
durationstringNo5Output video duration in seconds (3-15). Billed per second
3456789101112131415
aspect_ratiostringNoautoAspect ratio of the generated video
auto16:99:161:1
elementsarrayNo-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_urlsarrayNo-Style/appearance reference images, cited as @Image1, @Image2. Elements plus image_urls total at most 4
keep_audiobooleanNotrueKeep the original audio from the input video
enable_safety_checkerbooleanNotrueEnable the safety checker

How to Provide File Input

There are 3 ways to provide files for the video_urlimage_urls parameters:

Recommended

Image URL

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"
  }
}

Direct Upload (Multipart)

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"
See the File Upload docs for more upload methods including Presigned URLs.

Common Parameters

Common parameters used when calling POST /v1/predictions.

ParameterTypeRequiredDefaultDescription
modelstringYes-Model identifier
inputobjectYes-Object containing the model-specific parameters from the table above
output_folderstringNo-Folder path for output files (max 256 chars, '..' not allowed)
webhook_urlstringNo-Webhook URL to call on completion
is_publicbooleanNofalseIf true, output files are also available via permanent public URLs

Examples

Watercolor Scene with an Element

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"
  }
}'

Tips & Best Practices

14K is billed at 977 credits per second — iterate on shorter durations first
2Reference clips must be 3-15 seconds, at least 720px per side, and 23-60 fps
3Elements plus image_urls may total at most 4 references
4duration is a string enum ("3"-"15"); it defaults to "5" when omitted

Use Cases

Re-shooting a reference shot with a new character or product
Matching camera moves across a series of 4K ad shots
Turning live-action reference footage into a stylized 4K scene
Previs-to-final: block a move on cheap footage, render it in 4K