Reasoning-enhanced model for highest quality video generation
Async processing mode, returns task ID for subsequent queries
Unified text-to-video and image-to-video interface
Supports <<<image_N>>> syntax to reference images in prompts
Supports standard mode (720P) and professional mode (1080P)
Duration options: 5 or 10 seconds
Important Change: For better performance and cost control, we no longer support passing base64 image data directly in image_urls. Please use the Upload Image API first to upload images and get URLs, then call this endpoint.
Text prompt describing the video contentUse <<<image_N>>> syntax to reference images in image_urls. N starts from 1.Example: "Make the person in <<<image_1>>> wave at the camera"
If you pass images but the prompt has no <<<image_N>>> reference, the system will automatically prepend <<<image_1>>> to the prompt.
The Video O1 model uses <<<image_N>>> syntax in prompts to reference images:
Syntax
Description
<<<image_1>>>
References the 1st image in image_urls
<<<image_2>>>
References the 2nd image in image_urls
Auto-reference: If you pass image_urls but the prompt has no <<<image_N>>> reference, the system will automatically prepend <<<image_1>>> to the prompt.
{ "model": "kling-video-o1", "prompt": "Make the person in <<<image_1>>> wave at the camera", "image_urls": ["https://example.com/portrait.jpg"], "mode": "pro", "duration": 5}
{ "model": "kling-video-o1", "prompt": "The character in <<<image_1>>> walks toward the scene in <<<image_2>>>", "image_urls": [ "https://example.com/character.jpg", "https://example.com/scene.jpg" ], "mode": "pro", "duration": 5}
Case 4: Images Without Explicit Reference (Auto-add)
Copy
{ "model": "kling-video-o1", "prompt": "Person slowly turns head and smiles", "image_urls": ["https://example.com/portrait.jpg"], "mode": "std", "duration": 5}
The system will automatically prepend <<<image_1>>> to the prompt, equivalent to "<<<image_1>>> Person slowly turns head and smiles".
Query Task ResultsVideo generation is an async task that returns a task ID upon submission. Use the Get Task Status endpoint to query generation progress and results.
Copy
curl --request POST \ --url https://toapis.com/v1/videos/generations \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "model": "kling-video-o1", "prompt": "Make the person in <<<image_1>>> wave at the camera", "image_urls": ["https://example.com/portrait.jpg"], "mode": "std", "duration": 5, "aspect_ratio": "16:9" }'