## Basic tool info Model name: klingai/kling-v3 Model description: Generate high-quality videos from text prompts using Kling V3. Supports custom frames, duration, and aspect ratios. Model cover: https://cdn.wiro.ai/uploads/models/klingai-kling-v3-cover.mp4 Model categories: - tool - klingai - partner - text-to-video - image-to-video - nogpu-pipeline Model tags: - video generator - klingai Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/klingai/kling-v3 Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Model Inputs: - name: mode label: Mode help: Video mode. Std 720p, Pro 1080p, 4K native 4K resolution (PRO-level expressiveness). type: select default: std options: - value: "std" label: std - value: "pro" label: pro - value: "4k" label: 4k - name: inputImage label: First Frame help: Optional. type: combinefileinput default: kling_v3_input_sample_1.jpeg - name: inputImage2 label: Last Frame help: Optional. Sound will be off. type: combinefileinput default: - name: prompt label: prompt help: The prompt to generate the video. type: textarea default: A heart-pounding GoPro-style POV shot from the helmet of a kayaker plunging over a massive 30-foot waterfall. The screen is engulfed in chaotic white foam and turquoise water as the kayak hits the bottom. The camera shakes violently, then stabilizes as the paddler clears their eyes and begins a frantic, high-speed paddle through a narrow, rocky canyon. 8k resolution, realistic water physics, and immersive sound-focused visuals. - name: duration label: Duration help: Required. Total duration of the generated video (in seconds) type: select default: 5 options: - value: "5" label: 5 seconds - value: "10" label: 10 seconds - value: "15" label: 15 seconds - name: ratio label: Ratio help: Ratio settings only apply to text-to-video; they are not supported in image-to-video mode. type: select default: 16:9 options: - value: "16:9" label: 16:9 - value: "9:16" label: 9:16 - value: "1:1" label: 1:1 - name: sound label: Sound help: Optional. Default off. If there is last image then sound will be off. type: select default: off options: - value: "on" label: On - value: "off" label: Off - name: multiShot label: Multi Shot help: Enable multi-shot video generation. type: select default: false options: - value: "true" label: True - value: "false" label: False - name: shotType label: Shot Type help: Required when multiShot is true. Customize uses multiPrompt, intelligence uses prompt. type: select default: options: - value: "customize" label: Customize - value: "intelligence" label: Intelligence - name: multiPrompt label: Multi Prompt help: Multi prompt JSON string. Required when shot type is customize. Must be an array of objects. Each object must have index(integer), prompt(string) and duration(string) fields. Video duration cannot exceed 15 seconds and total duration will be calculated from this object. type: textarea default: [{"index": 1, "prompt": "Two friends talking under a streetlight at night. Warm glow, casual poses, no dialogue.", "duration": "2"}, {"index": 2, "prompt": "A runner sprinting through a forest, leaves flying. Low-angle shot, focus on movement.", "duration": "3" }] ## Model Parameter Inspires: - prompt: An intense, low-angle tracking shot of a mountain biker racing down a steep, rocky forest trail. Dirt and pine needles fly toward the camera as the bike jumps over a fallen log. Sunlight flickers through the dense canopy of pine trees, creating a 'strobe' effect on the rider. GoPro-style point-of-view, high-speed motion, hyper-realistic textures, and shaky-cam for a sense of speed. - inputImage: - prompt: A single continuous 5-second shot following a weary astronaut walking through a bioluminescent alien jungle at night. The camera tracks from behind at shoulder height, then slowly orbits around to the front to reveal their face reflecting the glowing blue plants. The astronaut stops, wipes their visor, and looks up in awe. Cinematic lighting, 8k resolution, highly detailed texture on the space suit, atmospheric fog. - inputImage: - prompt: A clear glass pitcher pouring fresh orange juice into a crystal glass on a wooden table in morning sunlight. The juice splashes realistically against the ice cubes, creating bubbles and foam. A hand reaches in to take the glass. Focus on the refraction of light through the liquid and the sticky texture of the juice. 4k, macro cinematography. - inputImage: - prompt: A chef in a busy professional kitchen places a raw steak onto a scorching hot cast iron skillet. We see the smoke rise immediately and the fat rendering. The chef shouts \'Order up\!\' to a waiter in the background. (Audio: Loud sizzling sound of meat hitting the pan, ambient kitchen clatter, and the chef\'s voice clear and directional). - inputImage: - prompt: A heart-pounding GoPro-style POV shot from the helmet of a kayaker plunging over a massive 30-foot waterfall. The screen is engulfed in chaotic white foam and turquoise water as the kayak hits the bottom. The camera shakes violently, then stabilizes as the paddler clears their eyes and begins a frantic, high-speed paddle through a narrow, rocky canyon. 8k resolution, realistic water physics, and immersive sound-focused visuals. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/kling_v3_input_sample_1.jpeg - prompt: A high-angle slow tracking shot drifting forward over the canal. The gondoliers in the foreground row rhythmically, their oars dipping into the dark water and breaking the golden light reflections. The large water bus on the right cruises past, leaving a distinct wake that interacts with the ripples from the gondolas. The warm streetlights on the building cast shimmering, dancing paths of light on the water surface. 4k, photorealistic, cinematic lighting. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/klingai-kling-v3-input-2.jpg - prompt: A slow, cinematic push-in shot moving between the rustic wooden structures. Focus on the wooden log fountain in the foreground; water flows steadily from the spout, splashing gently into the trough below. In the background, the lake surface ripples softly, distorting the reflection of the golden autumn forest and snow-capped mountains. A few yellow larch needles fall through the air. 4k, highly detailed textures, peaceful autumn atmosphere. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/klingai-kling-v3-input-1.jpg - prompt: A high-speed FPV drone shot. The camera flies swiftly just above the water surface, passing under the arches of the stone bridge. It then pulls up sharply, ascending rapidly to orbit around the massive dome of St. Peter\'s Basilica. Dynamic motion blur on the edges, cinematic golden hour lighting, 4k. The water ripples violently from the drone\'s downdraft as it passes close. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/klingai-kling-v3-input-3.jpg - prompt: A cinematic, static shot from inside the room looking out. The cat on the circular window sill stretches elegantly, arching its back, and then sits down to gaze at the horizon. The bright sunlight creates a rim-light effect on the cat\'s fur, highlighting individual strands. Outside, the sea waves roll gently and the distant ship moves slowly to the right. Inside, subtle dust motes dance in the shaft of light. 4k, high contrast, photorealistic texture. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/klingai-kling-v3-input-4.jpg ## Integration Header Prepare ```bash # Sign up Wiro dashboard and create project export YOUR_API_KEY="{{useSelectedProjectAPIKey}}"; export YOUR_API_SECRET="XXXXXXXXX"; # unix time or any random integer value export NONCE=$(date +%s); # hmac-SHA256 (YOUR_API_SECRET+Nonce) with YOUR_API_KEY export SIGNATURE="$(echo -n "${YOUR_API_SECRET}${NONCE}" | openssl dgst -sha256 -hmac "${YOUR_API_KEY}")"; ``` ## Run Command - Make HTTP Post Request ```bash curl -X POST "https://api.wiro.ai/v1/Run/klingai/kling-v3" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "mode": "std", "inputImage": "kling_v3_input_sample_1.jpeg", "inputImage2": [], "prompt": "A heart-pounding GoPro-style POV shot from the helmet of a kayaker plunging over a massive 30-foot waterfall. The screen is engulfed in chaotic white foam and turquoise water as the kayak hits the bottom. The camera shakes violently, then stabilizes as the paddler clears their eyes and begins a frantic, high-speed paddle through a narrow, rocky canyon. 8k resolution, realistic water physics, and immersive sound-focused visuals.", "duration": "5", "ratio": "16:9", "sound": "off", "multiShot": "false", "shotType": "", "multiPrompt": "[{\"index\": 1, \"prompt\": \"Two friends talking under a streetlight at night. Warm glow, casual poses, no dialogue.\", \"duration\": \"2\"}, {\"index\": 2, \"prompt\": \"A runner sprinting through a forest, leaves flying. Low-angle shot, focus on movement.\", \"duration\": \"3\" }]", "callbackUrl": "You can provide a callback URL; Wiro will send a POST request to it when the task is completed." }'; ``` ## Run Command - Response ```json { "errors": [], "taskid": "2221", "socketaccesstoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt", "result": true } ``` ## Get Task Detail - Make HTTP Post Request with Task ID ```bash curl -X POST "https://api.wiro.ai/v1/Task/Detail" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "taskid": "2221" }'; ``` ## Get Task Detail - Make HTTP Post Request with Socket Access Token ```bash curl -X POST "https://api.wiro.ai/v1/Task/Detail" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "tasktoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt" }'; ``` ## Get Task Detail - Response ```json { "total": "1", "errors": [], "tasklist": [ { "id": "2221", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "socketaccesstoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt", "parameters": {}, "debugoutput": "", "debugerror": "", "starttime": "1734513809", "endtime": "1734513813", "elapsedseconds": "6.0000", "status": "task_postprocess_end", "createtime": "1734513807", "canceltime": "0", "assigntime": "1734513807", "accepttime": "1734513807", "preprocessstarttime": "1734513807", "preprocessendtime": "1734513807", "postprocessstarttime": "1734513813", "postprocessendtime": "1734513814", "outputs": [ { "id": "6bc392c93856dfce3a7d1b4261e15af3", "name": "0.png", "contenttype": "image/png", "parentid": "6c1833f39da71e6175bf292b18779baf", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "size": "202472", "addedtime": "1734513812", "modifiedtime": "1734513812", "accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK", "url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png" } ], "size": "202472" } ], "result": true } ``` ## Kill Task - Make HTTP Post Request with Task ID ```bash curl -X POST "https://api.wiro.ai/v1/Task/Kill" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "taskid": "534574" }'; ``` ## Kill Task - Make HTTP Post Request with Socket Access Token ```bash curl -X POST "https://api.wiro.ai/v1/Task/Kill" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "socketaccesstoken": "ZpYote30on42O4jjHXNiKmrWAZqbRE" }'; ``` ## Kill Task - Response ```json { "errors": [], "tasklist": [ { "id": "534574", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "name": "", "socketaccesstoken": "ZpYote30on42O4jjHXNiKmrWAZqbRE", "parameters": { "inputImage": "https://api.wiro.ai/v1/File/mCmUXgZLG1FNjjjwmbtPFr2LVJA112/inputImage-6060136.png" }, "debugoutput": "", "debugerror": "", "starttime": "1734513809", "endtime": "1734513813", "elapsedseconds": "6.0000", "status": "task_cancel", "cps": "0.000585000000", "totalcost": "0.003510000000", "guestid": null, "projectid": "699", "modelid": "598", "description": "", "basemodelid": "0", "runtype": "model", "modelfolderid": "", "modelfileid": "", "callbackurl": "", "marketplaceid": null, "createtime": "1734513807", "canceltime": "0", "assigntime": "1734513807", "accepttime": "1734513807", "preprocessstarttime": "1734513807", "preprocessendtime": "1734513807", "postprocessstarttime": "1734513813", "postprocessendtime": "1734513814", "pexit": "0", "categories": "["tool","image-to-image","quick-showcase","compare-landscape"]", "outputs": [ { "id": "6bc392c93856dfce3a7d1b4261e15af3", "name": "0.png", "contenttype": "image/png", "parentid": "6c1833f39da71e6175bf292b18779baf", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "size": "202472", "addedtime": "1734513812", "modifiedtime": "1734513812", "accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK", "foldercount": "0", "filecount": "0", "ispublic": 0, "expiretime": null, "url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png" } ], "size": "202472" } ], "result": true } ``` ## Cancel Task - Make HTTP Post Request (For tasks on queue) ```bash curl -X POST "https://api.wiro.ai/v1/Task/Cancel" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "taskid": "634574" }'; ``` ## Cancel Task - Response ```json { "errors": [], "tasklist": [ { "id": "634574", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "name": "", "socketaccesstoken": "ZpYote30on42O4jjHXNiKmrWAZqbRE", "parameters": { "inputImage": "https://api.wiro.ai/v1/File/mCmUXgZLG1FNjjjwmbtPFr2LVJA112/inputImage-6060136.png" }, "debugoutput": "", "debugerror": "", "starttime": "1734513809", "endtime": "1734513813", "elapsedseconds": "6.0000", "status": "task_cancel", "cps": "0.000585000000", "totalcost": "0.003510000000", "guestid": null, "projectid": "699", "modelid": "598", "description": "", "basemodelid": "0", "runtype": "model", "modelfolderid": "", "modelfileid": "", "callbackurl": "", "marketplaceid": null, "createtime": "1734513807", "canceltime": "0", "assigntime": "1734513807", "accepttime": "1734513807", "preprocessstarttime": "1734513807", "preprocessendtime": "1734513807", "postprocessstarttime": "1734513813", "postprocessendtime": "1734513814", "pexit": "0", "categories": "["tool","image-to-image","quick-showcase","compare-landscape"]", "outputs": [ { "id": "6bc392c93856dfce3a7d1b4261e15af3", "name": "0.png", "contenttype": "image/png", "parentid": "6c1833f39da71e6175bf292b18779baf", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "size": "202472", "addedtime": "1734513812", "modifiedtime": "1734513812", "accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK", "foldercount": "0", "filecount": "0", "ispublic": 0, "expiretime": null, "url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png" } ], "size": "202472" } ], "result": true } ``` ## Task Status Information This section defines the possible task status values returned by the API when polling for task completion. ### Completed Task Statuses (Polling can stop) These indicate that the task has reached a terminal state — either success or failure. Once any of these is received, polling should stop. - task_postprocess_end : Task completed successfully and post-processing is done. - task_cancel : Task was cancelled by the user or system. ### Running Task Statuses (Continue polling) These statuses indicate that the task is still in progress. Polling should continue if one of these is returned. - task_queue : Task is waiting in the queue. - task_accept : Task has been accepted for processing. - task_assign : Task is being assigned to a worker. - task_preprocess_start : Preprocessing is starting. - task_preprocess_end : Preprocessing is complete. - task_start : Task execution has started. - task_output : Output is being generated.