Use this file to discover all available pages before exploring further.
Try Kling 2.6 Pro - Image to Video in the Workbench
Run this model interactively, tune parameters, and compare outputs.
Model ID:kling-video-v2-6-pro-image-to-videoKling 2.6 Pro - Image to Video is a Diffusion model designed for generating short video clips from a static input image. It excels in producing motion with visual consistency from the reference image, along with optional synchronized native audio including sound effects and dialogue.Some other noteworthy features of Kling 2.6 Pro - Image to Video include support for 1080p resolution in 16:9, 9:16, or 1:1 aspect ratios, and clip durations of 5 or 10 seconds.
Metric
Value
Parameter Count
Unknown
Mixture of Experts
Unknown
Context Length
Unknown
Multilingual
No
Quantized*
Unknown
*Quantization is specific to the inference provider and the model may be offered with different quantization levels by other providers.
Use the Workbench as a request builder: configure parameters for this model in the UI, then open the API tab to copy the exact cURL or Python call.
Sync
Async
Async with SSE
This blocks until the video is ready (typically 5-15 minutes). Prefer Async or Async with SSE for anything beyond quick experimentation.See the video generation reference for more details.
Minimal
Basic parameters
All parameters
curl -X POST https://hub.oxen.ai/api/ai/videos/generate \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OXEN_API_KEY" \ -d '{ "model": "kling-video-v2-6-pro-image-to-video", "prompt": "A man making it to the summit on top of a mountain. The man raises his arms in victory and exhales a sigh of relief."}'
curl -X POST https://hub.oxen.ai/api/ai/videos/generate \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OXEN_API_KEY" \ -d '{ "model": "kling-video-v2-6-pro-image-to-video", "prompt": "A man making it to the summit on top of a mountain. The man raises his arms in victory and exhales a sigh of relief.", "input_image": "https://hub.oxen.ai/api/repos/ox/Oxen-AI-Assets/file/main/images/man-hiking.png"}'
curl -X POST https://hub.oxen.ai/api/ai/videos/generate \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OXEN_API_KEY" \ -d '{ "model": "kling-video-v2-6-pro-image-to-video", "prompt": "A man making it to the summit on top of a mountain. The man raises his arms in victory and exhales a sigh of relief.", "input_image": "https://hub.oxen.ai/api/repos/ox/Oxen-AI-Assets/file/main/images/man-hiking.png", "negative_prompt": "blur, distort, and low quality", "duration": 5, "generate_audio": false}'
# Enqueue, capture the generation id.GEN_ID=$(curl -s -X POST https://hub.oxen.ai/api/ai/queue \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OXEN_API_KEY" \ -d '{ "model": "kling-video-v2-6-pro-image-to-video", "prompt": "A man making it to the summit on top of a mountain. The man raises his arms in victory and exhales a sigh of relief."}' | jq -r '.generations[0].generation_id')# Poll until the generation reaches a terminal status.while true; do STATUS=$(curl -s -H "Authorization: Bearer $OXEN_API_KEY" \ "https://hub.oxen.ai/api/ai/queue/$GEN_ID" | jq -r '.status') echo "Status: $STATUS" case $STATUS in succeeded|failed|cancelled) break;; esac sleep 5done# Print the result.curl -s -H "Authorization: Bearer $OXEN_API_KEY" \ "https://hub.oxen.ai/api/ai/queue/$GEN_ID" | jq .
# Enqueue, capture the generation id.GEN_ID=$(curl -s -X POST https://hub.oxen.ai/api/ai/queue \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OXEN_API_KEY" \ -d '{ "model": "kling-video-v2-6-pro-image-to-video", "prompt": "A man making it to the summit on top of a mountain. The man raises his arms in victory and exhales a sigh of relief.", "input_image": "https://hub.oxen.ai/api/repos/ox/Oxen-AI-Assets/file/main/images/man-hiking.png"}' | jq -r '.generations[0].generation_id')# Poll until the generation reaches a terminal status.while true; do STATUS=$(curl -s -H "Authorization: Bearer $OXEN_API_KEY" \ "https://hub.oxen.ai/api/ai/queue/$GEN_ID" | jq -r '.status') echo "Status: $STATUS" case $STATUS in succeeded|failed|cancelled) break;; esac sleep 5done# Print the result.curl -s -H "Authorization: Bearer $OXEN_API_KEY" \ "https://hub.oxen.ai/api/ai/queue/$GEN_ID" | jq .
# Enqueue, capture the generation id.GEN_ID=$(curl -s -X POST https://hub.oxen.ai/api/ai/queue \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OXEN_API_KEY" \ -d '{ "model": "kling-video-v2-6-pro-image-to-video", "prompt": "A man making it to the summit on top of a mountain. The man raises his arms in victory and exhales a sigh of relief.", "input_image": "https://hub.oxen.ai/api/repos/ox/Oxen-AI-Assets/file/main/images/man-hiking.png", "negative_prompt": "blur, distort, and low quality", "duration": 5, "generate_audio": false}' | jq -r '.generations[0].generation_id')# Poll until the generation reaches a terminal status.while true; do STATUS=$(curl -s -H "Authorization: Bearer $OXEN_API_KEY" \ "https://hub.oxen.ai/api/ai/queue/$GEN_ID" | jq -r '.status') echo "Status: $STATUS" case $STATUS in succeeded|failed|cancelled) break;; esac sleep 5done# Print the result.curl -s -H "Authorization: Bearer $OXEN_API_KEY" \ "https://hub.oxen.ai/api/ai/queue/$GEN_ID" | jq .
# Enqueue, capture the generation id.GEN_ID=$(curl -s -X POST https://hub.oxen.ai/api/ai/queue \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OXEN_API_KEY" \ -d '{ "model": "kling-video-v2-6-pro-image-to-video", "prompt": "A man making it to the summit on top of a mountain. The man raises his arms in victory and exhales a sigh of relief."}' | jq -r '.generations[0].generation_id')# Stream the SSE channel, grab the data line that follows a# media_generation_completed event for our id, and pretty-print it.curl -sN -H "Authorization: Bearer $OXEN_API_KEY" https://hub.oxen.ai/api/events \ | awk -v id="$GEN_ID" ' /^event: media_generation_completed$/ { expect=1; next } /^data: / && expect { payload = substr($0, 7) if (index(payload, "\"generation_id\":\"" id "\"")) { print payload; exit } expect = 0 } ' | jq .
# Enqueue, capture the generation id.GEN_ID=$(curl -s -X POST https://hub.oxen.ai/api/ai/queue \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OXEN_API_KEY" \ -d '{ "model": "kling-video-v2-6-pro-image-to-video", "prompt": "A man making it to the summit on top of a mountain. The man raises his arms in victory and exhales a sigh of relief.", "input_image": "https://hub.oxen.ai/api/repos/ox/Oxen-AI-Assets/file/main/images/man-hiking.png"}' | jq -r '.generations[0].generation_id')# Stream the SSE channel, grab the data line that follows a# media_generation_completed event for our id, and pretty-print it.curl -sN -H "Authorization: Bearer $OXEN_API_KEY" https://hub.oxen.ai/api/events \ | awk -v id="$GEN_ID" ' /^event: media_generation_completed$/ { expect=1; next } /^data: / && expect { payload = substr($0, 7) if (index(payload, "\"generation_id\":\"" id "\"")) { print payload; exit } expect = 0 } ' | jq .
# Enqueue, capture the generation id.GEN_ID=$(curl -s -X POST https://hub.oxen.ai/api/ai/queue \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OXEN_API_KEY" \ -d '{ "model": "kling-video-v2-6-pro-image-to-video", "prompt": "A man making it to the summit on top of a mountain. The man raises his arms in victory and exhales a sigh of relief.", "input_image": "https://hub.oxen.ai/api/repos/ox/Oxen-AI-Assets/file/main/images/man-hiking.png", "negative_prompt": "blur, distort, and low quality", "duration": 5, "generate_audio": false}' | jq -r '.generations[0].generation_id')# Stream the SSE channel, grab the data line that follows a# media_generation_completed event for our id, and pretty-print it.curl -sN -H "Authorization: Bearer $OXEN_API_KEY" https://hub.oxen.ai/api/events \ | awk -v id="$GEN_ID" ' /^event: media_generation_completed$/ { expect=1; next } /^data: / && expect { payload = substr($0, 7) if (index(payload, "\"generation_id\":\"" id "\"")) { print payload; exit } expect = 0 } ' | jq .