{"title":"Kling | v3 | Pro | Image to Video","slug":"kling-v3-pro-image-to-video","version":"0.0.1","output_type":"video","request_schema":{"additionalProperties":false,"properties":{"cfg_scale":{"maximum":1,"minimum":0,"title":"CFG Scale","type":["number","null"]},"duration":{"default":"5","description":"Video duration in seconds (3-15s).","enum":["3","4","5","6","7","8","9","10","11","12","13","14","15"],"title":"Duration","type":"string"},"element_list":{"description":"Pre-created Kling element IDs to reuse. Reference in prompt as @Element1, @Element2.","items":{"properties":{"element_id":{"description":"Pre-created Kling element ID (from kling-create-element).","type":"string"}},"required":["element_id"],"type":"object"},"maxItems":3,"title":"Element List","type":["array","null"]},"elements":{"description":"Character/object elements. Each element has a frontal image and optional reference images from different angles. Reference in prompt as @Element1, @Element2.","items":{"properties":{"frontal_image_url":{"description":"URL of the frontal/main reference image for this element.","format":"uri","type":"string"},"reference_image_urls":{"description":"Optional additional reference images from different angles (max 3).","items":{"format":"uri","type":"string"},"maxItems":3,"type":["array","null"]},"video_url":{"description":"Optional video reference URL for this element. When provided, the element uses video_refer instead of image_refer.","format":"uri","type":["string","null"]}},"type":"object"},"maxItems":3,"title":"Elements","type":["array","null"]},"end_image_url":{"description":"URL of the end frame image (optional). Note: This field is not used when multi-prompt is selected.","format":"uri","title":"End Image Url","type":["string","null"]},"generate_audio":{"default":false,"description":"Whether to generate native audio for the video.","title":"Generate Audio","type":["boolean","null"]},"multi_prompt":{"description":"List of prompts for multi-shot video generation. If provided, divides the video into multiple shots.","items":{"properties":{"duration":{"default":"5","description":"Video duration in seconds (3-15s).","enum":["3","4","5","6","7","8","9","10","11","12","13","14","15"],"title":"Duration","type":"string"},"prompt":{"description":"Prompt for this storyboard. Max 512 characters.","maxLength":512,"type":"string"}},"required":["prompt","duration"],"type":"object"},"maxItems":5,"title":"Multi Prompt","type":["array","null"]},"negative_prompt":{"title":"Negative Prompt","type":["string","null"]},"prompt":{"description":"Text prompt for video generation. Use @Element1, @Element2 to reference elements. Either prompt or multi_prompt must be provided, but not both.","title":"Prompt","type":["string","null"]},"shot_type":{"default":"customize","description":"The type of multi-shot video generation.","enum":["customize"],"title":"Shot Type","type":["string","null"]},"start_image_url":{"description":"URL of the start frame image.","format":"uri","title":"Start Image Url","type":"string"},"voice_ids":{"items":{"type":"string"},"title":"Voice IDs","type":["array","null"]}},"required":["start_image_url"],"type":"object"},"openapi_schema":{"components":{"schemas":{"Error":{"properties":{"details":{"description":"Optional validation or request details for client errors.","nullable":true},"error":{"description":"Safe user-facing error message.","type":"string"},"status":{"description":"HTTP status code, when returned by the shared error handler.","type":"integer"}},"required":["error"],"type":"object"},"KlingV3ProImageToVideoInput":{"additionalProperties":false,"properties":{"cfg_scale":{"maximum":1,"minimum":0,"nullable":true,"title":"CFG Scale","type":"number"},"duration":{"default":"5","description":"Video duration in seconds (3-15s).","enum":["3","4","5","6","7","8","9","10","11","12","13","14","15"],"title":"Duration","type":"string"},"element_list":{"description":"Pre-created Kling element IDs to reuse. Reference in prompt as @Element1, @Element2.","items":{"properties":{"element_id":{"description":"Pre-created Kling element ID (from kling-create-element).","type":"string"}},"required":["element_id"],"type":"object"},"maxItems":3,"nullable":true,"title":"Element List","type":"array"},"elements":{"description":"Character/object elements. Each element has a frontal image and optional reference images from different angles. Reference in prompt as @Element1, @Element2.","items":{"properties":{"frontal_image_url":{"description":"URL of the frontal/main reference image for this element.","format":"uri","type":"string"},"reference_image_urls":{"description":"Optional additional reference images from different angles (max 3).","items":{"format":"uri","type":"string"},"maxItems":3,"nullable":true,"type":"array"},"video_url":{"description":"Optional video reference URL for this element. When provided, the element uses video_refer instead of image_refer.","format":"uri","nullable":true,"type":"string"}},"type":"object"},"maxItems":3,"nullable":true,"title":"Elements","type":"array"},"end_image_url":{"description":"URL of the end frame image (optional). Note: This field is not used when multi-prompt is selected.","format":"uri","nullable":true,"title":"End Image Url","type":"string"},"generate_audio":{"default":false,"description":"Whether to generate native audio for the video.","nullable":true,"title":"Generate Audio","type":"boolean"},"multi_prompt":{"description":"List of prompts for multi-shot video generation. If provided, divides the video into multiple shots.","items":{"properties":{"duration":{"default":"5","description":"Video duration in seconds (3-15s).","enum":["3","4","5","6","7","8","9","10","11","12","13","14","15"],"title":"Duration","type":"string"},"prompt":{"description":"Prompt for this storyboard. Max 512 characters.","maxLength":512,"type":"string"}},"required":["prompt","duration"],"type":"object","x-eachlabs-order-properties":["duration","prompt"]},"maxItems":5,"nullable":true,"title":"Multi Prompt","type":"array"},"negative_prompt":{"nullable":true,"title":"Negative Prompt","type":"string"},"prompt":{"description":"Text prompt for video generation. Use @Element1, @Element2 to reference elements. Either prompt or multi_prompt must be provided, but not both.","nullable":true,"title":"Prompt","type":"string"},"shot_type":{"default":"customize","description":"The type of multi-shot video generation.","enum":["customize"],"nullable":true,"title":"Shot Type","type":"string"},"start_image_url":{"description":"URL of the start frame image.","format":"uri","title":"Start Image Url","type":"string"},"voice_ids":{"items":{"type":"string"},"nullable":true,"title":"Voice IDs","type":"array"}},"required":["start_image_url"],"type":"object","x-eachlabs-order-properties":["prompt","start_image_url","end_image_url","duration","generate_audio","multi_prompt","elements","shot_type","negative_prompt","cfg_scale","voice_ids","element_list"]}},"securitySchemes":{"bearerAuth":{"description":"API key passed as `Authorization: Bearer \u003capi_key\u003e`","scheme":"bearer","type":"http"}}},"info":{"description":"Generates a video by smoothly animating the transition between a start frame and an end frame, guided by text-based style and scene instructions.","title":"Kling | v3 | Pro | Image to Video","version":"1.0.0","x-eachlabs-model-slug":"kling-v3-pro-image-to-video","x-eachlabs-output-type":"video"},"openapi":"3.0.4","paths":{"/v1/prediction":{"post":{"description":"Creates a new prediction for Kling | v3 | Pro | Image to Video.","operationId":"createPrediction","requestBody":{"content":{"application/json":{"schema":{"properties":{"input":{"$ref":"#/components/schemas/KlingV3ProImageToVideoInput"},"model":{"description":"Model slug or identifier.","enum":["kling-v3-pro-image-to-video"],"type":"string"},"webhook_secret":{"description":"Optional secret used to sign webhook requests.","type":"string"},"webhook_url":{"description":"Optional webhook URL to receive the prediction result asynchronously.","format":"uri","type":"string"}},"required":["model","input"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"message":{"description":"Human-readable message about the prediction creation.","type":"string"},"predictionID":{"description":"Unique prediction identifier.","type":"string"},"status":{"description":"Status of the prediction creation request.","example":"success","type":"string"}},"type":"object"}}},"description":"Prediction created successfully."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid request."},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error."}},"summary":"Create a prediction"}},"/v1/prediction/{id}":{"get":{"description":"Retrieves the status and results of a prediction by its ID.","operationId":"getPrediction","parameters":[{"description":"Prediction ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"fallback":{"description":"Present when the request selected a fallback config. Status stays non-terminal until the requested model or a fallback model ends the request.","properties":{"requested_model":{"description":"Model the request named.","nullable":true,"type":"string"},"resolved":{"description":"False while a model in the chain is still running.","type":"boolean"},"selector":{"description":"Fallback config the request selected.","type":"string"},"served_by":{"description":"Model whose result this prediction returns; null until resolved.","nullable":true,"type":"string"},"used":{"description":"True once a fallback model ran because the requested model failed.","type":"boolean"}},"type":"object"},"id":{"description":"Unique prediction identifier.","type":"string"},"input":{"additionalProperties":true,"description":"Input parameters used for the prediction.","type":"object"},"logs":{"description":"Execution logs from the prediction.","nullable":true,"type":"string"},"metrics":{"description":"Performance and cost metrics.","properties":{"cost":{"description":"Cost of the prediction in USD.","type":"number"},"predict_time":{"description":"Time taken for prediction in seconds.","type":"number"}},"type":"object"},"output":{"description":"Prediction output (output_type: video).","nullable":true,"oneOf":[{"type":"string"},{"items":{},"type":"array"},{"type":"object"}]},"status":{"description":"Current status of the prediction.","enum":["created","starting","processing","success","error","cancelled"],"type":"string"},"urls":{"description":"Related API endpoints.","properties":{"cancel":{"description":"URL to cancel the prediction.","format":"uri","type":"string"},"get":{"description":"URL to get the prediction.","format":"uri","type":"string"}},"type":"object"}},"type":"object"}}},"description":"Prediction retrieved successfully."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Prediction not found."},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error."}},"summary":"Get a prediction"}},"/v1/prediction/{id}/cancel":{"post":{"description":"Cancels a running prediction by ID. Cancellation is record-only: the execution record is set to cancelled and no upstream cancellation is attempted — in-flight provider work runs to completion and its result is discarded.","operationId":"cancelPrediction","parameters":[{"description":"Prediction ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"message":{"description":"Human-readable cancellation message.","type":"string"},"predictionID":{"description":"Unique prediction identifier.","type":"string"},"status":{"description":"Cancellation status returned when the request succeeds.","enum":["success"],"type":"string"}},"type":"object"}}},"description":"Prediction cancelled."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Prediction not found."},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error."}},"summary":"Cancel a prediction"}}},"security":[{"bearerAuth":[]}],"servers":[{"url":"https://api.eachlabs.ai"}]},"cost":{"currency":"USD","type":"usage_based","amount":null,"unit":"second","estimate":"$0.112–$0.196 per second, depending on audio","description":"Pricing is an estimate and may change as rates are updated.","min":0.112,"max":0.196,"depends_on":["audio"],"rows":[]}}
