Kling 4.0 Reference to Video API: Image-to-Video

Generate Kling 4.0 videos from reference images, videos, elements and voices. 3-30s, 720p/1080p, native audio. Pay per generation, no subscription. Kling 4.0 Reference-to-Video generates 3-30 second clips at 720p/1080p with native audio from reference images, reference videos, named elements and voices, all addressable in the prompt with @tags.

Interactive model controls

Kling 4.0 Reference-to-Video generates 3-30 second clips at 720p/1080p with native audio from reference images, reference videos, named elements and voices, all addressable in the prompt with @tags.

📝

Overview

About this model

Kling 4.0 Reference-to-Video generates 3-30 second clips at 720p or 1080p with native audio from your own materials: up to 10 reference images, 5 reference videos, 7 named elements (2-4 images or a 3-8 second character video each) and 3 voices, with at most 15 materials in total. Mention each material in the prompt with @image_1, @video_1 or @name. With no materials it behaves as plain text-to-video. To direct a clip from still frames, use Kling 4.0 Keyframe to Video.

1Characters: Keep a named character consistent across scenes with image or video elements.
2Voice: Bind a reference voice to a character and have them speak in the clip.
3Video-guided shots: Reuse the motion and setting of a reference video, with or without its original sound.
4Ads: Combine product, model and background references into one shot.
💰

Pricing & Value

Cost analysis

muapiapp$0.157 per second at 720p ($0.785 per 5s clip)

$0.157/s at 720p, $0.235/s at 1080p. With reference videos or video elements: $0.094/s at 720p, $0.141/s at 1080p, billed on reference plus output seconds (minimum 2x the output length).

** Competitor pricing is estimated based on similar model architectures and usage tiers.

⚙️

Technical Details

Configuration schema

Promptstring

Video description (max 8000 chars). Reference materials with @image_1, @video_1 or @name for elements/voices.

Default Value@Hero sits at the desk in @video_1, picks up the doll from @image_1, and greets using @Narrator
Reference Image URLsarray

Up to 10 reference images. Mention as @image_1, @image_2, ... in array order.

Default Valueundefined
Reference Video URLsarray

Up to 5 reference videos (2-30s each, 30s combined). Mention as @video_1, @video_2, ...

Default Valueundefined
Keep Original Soundboolean

Keep the original audio of the reference videos (only applies when video_urls is set).

Default Valuefalse
Elementsarray

Up to 7 named subjects, each {name, image_urls (2-4) or video_url (3-8s), tag?, description?, voice_url?}. Mention as @name.

Default Value-
Voicesarray

Up to 3 named voices, each {name, audio_url}. Mention as @name.

Default Value-
Durationint

Video length in seconds (3-30).

Default Value5
ResolutionEnum (2 options)

Output resolution.

Default Value720p
Aspect RatioEnum (5 options)

Output aspect ratio. Defaults to auto when reference media is provided, otherwise 16:9.

Default Value-
📖

Implementation Guide

Developer documentation

How to Use Kling 4.0 Reference to Video

  1. Collect materials: Provide any of image_urls (up to 10), video_urls (up to 5, 2-30s each, 30s combined), elements (up to 7) and voices (up to 3).

  2. Mention them in the prompt: @image_1, @video_1 follow array order; @Hero or @Narrator use the name of an element or voice. Every mention must match a material in the request.

  3. Configure output: duration (3-30s), resolution (720p or 1080p), aspect_ratio (auto, 16:9, 9:16, 1:1, 21:9) and keep_original_sound.

  4. Submit and collect the result: The endpoint is async — poll /api/v1/predictions/{request_id}/result or pass a webhook_url.

curl -X POST https://api.muapi.ai/api/v1/kling-4.0-reference-to-video \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{"prompt": "@Hero sits at the desk, picks up the doll from @image_1, and greets using @Narrator", "image_urls": ["https://example.com/doll.png"], "elements": [{"name": "Hero", "image_urls": ["https://example.com/hero-front.jpg", "https://example.com/hero-side.jpg"], "tag": "character"}], "voices": [{"name": "Narrator", "audio_url": "https://example.com/narrator.mp3"}], "duration": 10, "resolution": "1080p"}'
❓

Common Questions

Frequently asked

What are the duration and resolution limits?

3 to 30 seconds per clip at 720p or 1080p.

How many references can I use?

Up to 10 images, 5 videos (2-30s each, 30s combined), 7 elements (at most 3 video elements) and 3 voices, with at most 15 materials in total.

How do I reference materials in the prompt?

Use @image_1, @video_1 in array order, or @name for elements and voices. A mention with no matching material is rejected.

Does it generate audio?

Yes, native audio is generated. When you pass reference videos, set keep_original_sound to true to keep their original audio instead.

How is pricing calculated?

Per second of output video: $0.157/s at 720p and $0.235/s at 1080p. With reference videos or video elements the rate is $0.094/s (720p) or $0.141/s (1080p), billed on the reference-video seconds plus the output seconds, with a minimum of 2x the output length.

How do I get the result?

The endpoint is asynchronous. Poll /api/v1/predictions/{request_id}/result or pass a webhook_url to be notified when the video is ready.