
Kling v2.5 Turbo Pro Image-to-Video API by Kuaishou
Transforms stills into lifelike video clips at 2× faster speed while preserving fine texture and lighting consistency.
INPUT
OUTPUT
IdleYour request will cost $0.06 per run. For $10 you can run this model approximately 166 times.
Here's what you can do next:
Code Example
import requests
import time
# Step 1: Start video generation
generate_url = "https://api.atlascloud.ai/api/v1/model/generateVideo"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer $ATLASCLOUD_API_KEY"
}
data = {
"model": "kwaivgi/kling-v2.5-turbo-pro/image-to-video",
"prompt": "A beautiful sunset over the ocean with gentle waves",
"width": 512,
"height": 512,
"duration": 3,
"fps": 24,
}
generate_response = requests.post(generate_url, headers=headers, json=data)
generate_result = generate_response.json()
prediction_id = generate_result["data"]["id"]
# Step 2: Poll for result
poll_url = f"https://api.atlascloud.ai/api/v1/model/prediction/{prediction_id}"
def check_status():
while True:
response = requests.get(poll_url, headers={"Authorization": "Bearer $ATLASCLOUD_API_KEY"})
result = response.json()
if result["data"]["status"] in ["completed", "succeeded"]:
print("Generated video:", result["data"]["outputs"][0])
return result["data"]["outputs"][0]
elif result["data"]["status"] == "failed":
raise Exception(result["data"]["error"] or "Generation failed")
else:
# Still processing, wait 2 seconds
time.sleep(2)
video_url = check_status()Install
Install the required package for your language.
pip install requestsAuthentication
All API requests require authentication via an API key. You can get your API key from the Atlas Cloud dashboard.
export ATLASCLOUD_API_KEY="your-api-key-here"HTTP Headers
import os
API_KEY = os.environ.get("ATLASCLOUD_API_KEY")
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}"
}Never expose your API key in client-side code or public repositories. Use environment variables or a backend proxy instead.
Submit a request
import requests
url = "https://api.atlascloud.ai/api/v1/model/generateVideo"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer $ATLASCLOUD_API_KEY"
}
data = {
"model": "your-model",
"prompt": "A beautiful landscape"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())Submit a Request
Submit an asynchronous generation request. The API returns a prediction ID that you can use to check the status and retrieve the result.
/api/v1/model/generateVideoRequest Body
import requests
url = "https://api.atlascloud.ai/api/v1/model/generateVideo"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer $ATLASCLOUD_API_KEY"
}
data = {
"model": "kwaivgi/kling-v2.5-turbo-pro/image-to-video",
"input": {
"prompt": "A beautiful sunset over the ocean with gentle waves"
}
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
print(f"Prediction ID: {result['id']}")
print(f"Status: {result['status']}")Response
{
"id": "pred_abc123",
"status": "processing",
"model": "model-name",
"created_at": "2025-01-01T00:00:00Z"
}Check Status
Poll the prediction endpoint to check the current status of your request.
/api/v1/model/prediction/{prediction_id}Polling Example
import requests
import time
prediction_id = "pred_abc123"
url = f"https://api.atlascloud.ai/api/v1/model/prediction/{prediction_id}"
headers = { "Authorization": "Bearer $ATLASCLOUD_API_KEY" }
while True:
response = requests.get(url, headers=headers)
result = response.json()
status = result["data"]["status"]
print(f"Status: {status}")
if status in ["completed", "succeeded"]:
output_url = result["data"]["outputs"][0]
print(f"Output URL: {output_url}")
break
elif status == "failed":
print(f"Error: {result['data'].get('error', 'Unknown')}")
break
time.sleep(3)Status Values
processingThe request is still being processed.completedGeneration is complete. Outputs are available.succeededGeneration succeeded. Outputs are available.failedGeneration failed. Check the error field.Completed Response
{
"data": {
"id": "pred_abc123",
"status": "completed",
"outputs": [
"https://storage.atlascloud.ai/outputs/result.mp4"
],
"metrics": {
"predict_time": 45.2
},
"created_at": "2025-01-01T00:00:00Z",
"completed_at": "2025-01-01T00:00:10Z"
}
}Upload Files
Upload files to Atlas Cloud storage and get a URL you can use in your API requests. Use multipart/form-data to upload.
/api/v1/model/uploadMediaUpload Example
import requests
url = "https://api.atlascloud.ai/api/v1/model/uploadMedia"
headers = { "Authorization": "Bearer $ATLASCLOUD_API_KEY" }
with open("image.png", "rb") as f:
files = {"file": ("image.png", f, "image/png")}
response = requests.post(url, headers=headers, files=files)
result = response.json()
download_url = result["data"]["download_url"]
print(f"File URL: {download_url}")Response
{
"data": {
"download_url": "https://storage.atlascloud.ai/uploads/abc123/image.png",
"file_name": "image.png",
"content_type": "image/png",
"size": 1024000
}
}Input Schema
The following parameters are accepted in the request body.
No parameters available.
Example Request Body
{
"model": "kwaivgi/kling-v2.5-turbo-pro/image-to-video"
}Output Schema
The API returns a prediction response with the generated output URLs.
Example Response
{
"id": "pred_abc123",
"status": "completed",
"model": "model-name",
"outputs": [
"https://storage.atlascloud.ai/outputs/result.mp4"
],
"metrics": {
"predict_time": 45.2
},
"created_at": "2025-01-01T00:00:00Z",
"completed_at": "2025-01-01T00:00:10Z"
}Atlas Cloud Skills
Atlas Cloud Skills integrates 300+ AI models directly into your AI coding assistant. One command to install, then use natural language to generate images, videos, and chat with LLMs.
Supported Clients
Install
npx skills add AtlasCloudAI/atlas-cloud-skillsSetup API Key
Get your API key from the Atlas Cloud dashboard and set it as an environment variable.
export ATLASCLOUD_API_KEY="your-api-key-here"Capabilities
Once installed, you can use natural language in your AI assistant to access all Atlas Cloud models.
MCP Server
Atlas Cloud MCP Server connects your IDE with 300+ AI models via the Model Context Protocol. Works with any MCP-compatible client.
Supported Clients
Install
npx -y atlascloud-mcpConfiguration
Add the following configuration to your IDE's MCP settings file.
{
"mcpServers": {
"atlascloud": {
"command": "npx",
"args": [
"-y",
"atlascloud-mcp"
],
"env": {
"ATLASCLOUD_API_KEY": "your-api-key-here"
}
}
}
}Available Tools
API Schema
Schema not availableNo examples available
Please log in to view request history
You need to be logged in to access your model request history.
Log InKling 2.5 Turbo Pro (Image-to-Video)
Kling 2.5 Turbo Pro turns a single image and a text prompt into cinematic video with fluid motion and accurate intent. A new text-timing engine, improved dynamics, and faster inference enable high-speed action and complex camera moves with stable frames, while refined conditioning preserves palette, lighting, and mood.
This version additionally supports first–last frame control: you can specify both a starting image and an ending image, and the model will animate a smooth transformation between them.
What makes it stand out?
-
Better prompt understanding Precisely parses multi-step, causal instructions and turns a single image and prompt into coherent, well-paced shots that stay true to your creative idea.
-
More realistic look and greater stability Improved dynamics and balanced training data closely mimic real-world motion, even at high speeds and with complex camera moves. Playback is smooth with fewer jitters, tears, and dropped details.
-
Detail and style consistency Refined image conditioning maintains color, lighting, brushwork, and mood, keeping frames visually unified even during aggressive motion or transitions.
-
First–last frame animation When you provide both an initial image and a
last_image, Kling 2.5 Turbo Pro treats them as keyframes and generates a video that naturally evolves from the first to the last frame.
Inputs
-
image(required) The starting frame of your video. Composition, style, and subject are primarily taken from this image. -
last_image(optional) An optional target frame. If provided, the model interpolates betweenimageandlast_image, creating a smooth visual evolution from start to end. -
prompt(required) Text description of the scene, actions, camera movement, and style. -
negative_prompt(optional) Things you want the model to avoid (for example, blur, text overlays, distortions). -
guidance_scaleControls how strongly the model follows the prompt versus being more free-form.- Lower values = more creative variation.
- Higher values = stricter adherence to the prompt.
-
durationLength of the generated video:- 5 seconds
- 10 seconds
Output
A single video clip of the chosen duration, animated from the initial image (and optionally toward the last_image) according to your prompt.
Designed For
- Marketing and brand teams – Consistent, on-brand motion spots, feature demos, and campaign assets.
- Creators / YouTubers / Shorts teams – Strong narrative motion that boosts watch-through and engagement.
- Film / animation studios – Previz, style tests, and technique exploration with reliable dynamics.
- Education and training – Turn static diagrams or slides into clear, animated explainers.
How to Use
- Upload or paste the URL of your
imageas the starting frame. - (Optional) Upload a
last_imageif you want the video to end on a specific frame or design. - Write your
prompt, specifying subject, scene, motion, and style. - (Optional) Add a
negative_promptto filter out unwanted artifacts or styles. - Adjust
guidance_scaleto balance between strict prompt following and looser creativity. - Choose the
duration(5 s or 10 s). - Run the model, preview the result, then iterate by tweaking the prompt, images, or
guidance_scaleuntil you reach the desired look.
Notes
Pricing Information
| Duration | Price |
|---|---|
| 5 s | $0.2800 |
| 10 s | $0.5600 |






