
Kling V2.1 Start/End Frame
by Kling AIKling V2.1 Image To Video(Start/ End Frame) is a generative AI video model that takes as input a static images (and optionally a prompt) and produces a short video where the input image is animated motion, pan, zoom etc.
kling-v2-1-start-end-frameInput
Output
Looking for something different?
Models that trade off differently against the one you are viewing
Better quality
Newer flagship models that generally produce stronger results.
Faster Generation
Built for speed when you are iterating on a prompt.



Lower cost per run
Open-source models we host, unlimited on the $149/month plan.






Related Models
Discover similar models you might be interested in
About Kling V2.1 Start/End Frame
Kling V2.1 Start/End Frame is a video generation AI model by Kling AI, available on ModelsLab through the API and the playground above. API access starts at $21/month, and open-source models are unlimited on the $149/month plan.
Kling V2.1 Start/End Frame facts
- Provider
- Kling AI
- Price
- From $0.056 per generation
- Added to ModelsLab
- November 8, 2025
- Model ID
- kling-v2-1-start-end-frame
Key Features
- AI video generation from text or image input
- Motion control and camera movement parameters
- Adjustable frame rate and video duration
- High-quality cinematic output up to 1080p
- Native audio generation support
Quick Start
Integrate Kling V2.1 Start/End Frame into your application with a single API call. Get your API key from the pricing page to get started.
import requestsimport jsonurl = "https://modelslab.com/api/v7/video-fusion/image-to-video"headers = {"Content-Type": "application/json"}data = {"model_id": "kling-v2-1-start-end-frame","prompt": "Transition from dawn to night as the camera flies forward across the city skyline, lights gradually turning on, colors shifting from orange warmth to neon blues.","key": "YOUR_API_KEY"}try:response = requests.post(url, headers=headers, json=data)response.raise_for_status() # Raises an HTTPError for bad responses (4XX or 5XX)result = response.json()print("API Response:")print(json.dumps(result, indent=2))except requests.exceptions.HTTPError as http_err:print(f"HTTP error occurred: {http_err} - {response.text}")except Exception as err:print(f"Other error occurred: {err}")
const endpointUrl = 'https://modelslab.com/api/v7/video-fusion/image-to-video';const requestBody = {"model_id": "kling-v2-1-start-end-frame","prompt": "Transition from dawn to night as the camera flies forward across the city skyline, lights gradually turning on, colors shifting from orange warmth to neon blues.","key": "YOUR_API_KEY"};async function makeApiRequest() {try {const response = await fetch(endpointUrl, {method: 'POST',headers: {'Content-Type': 'application/json',},body: JSON.stringify(requestBody)});if (!response.ok) {let errorResult;try {errorResult = await response.json();} catch (e) {errorResult = { error: { message: await response.text() } };}throw new Error(`API Error (${response.status}): ${errorResult.error?.message || response.statusText || 'Unknown error'}`);}const result = await response.json();console.log('API Response:', result);return result;} catch (error) {console.error('Error making API request:', error.message);throw error;}}makeApiRequest();
curl -X POST "https://modelslab.com/api/v7/video-fusion/image-to-video" \-H "Content-Type: application/json" \-d '{"model_id": "kling-v2-1-start-end-frame","prompt": "Transition from dawn to night as the camera flies forward across the city skyline, lights gradually turning on, colors shifting from orange warmth to neon blues.","key": "YOUR_API_KEY"}'
<?php$url = 'https://modelslab.com/api/v7/video-fusion/image-to-video';$headers = ['Content-Type: application/json'];$data = ['model_id' => 'kling-v2-1-start-end-frame','prompt' => 'Transition from dawn to night as the camera flies forward across the city skyline, lights gradually turning on, colors shifting from orange warmth to neon blues.','key' => 'YOUR_API_KEY',];$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_TIMEOUT, 30);$response = curl_exec($ch);$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);$curlError = curl_error($ch);if ($curlError) {echo 'Curl error: ' . $curlError;} else {echo "HTTP Status Code: " . $httpCode . "\n";$result = json_decode($response, true);if (json_last_error() !== JSON_ERROR_NONE) {echo "Error decoding JSON: " . json_last_error_msg() . "\n";echo "Raw response: " . $response . "\n";} else {echo "API Response:\n";print_r($result);}}?>
Pricing
Kling V2.1 Start/End Frame API costs $0.056 per generation, scaled by your settings. Plans start at $21/month, and open-source models are unlimited on the $149/month plan. View pricing plans
Use Cases
- Marketing and promotional video creation
- Social media short-form video content
- Product demos and explainer videos
- Creative storytelling and animation












