## Basic tool info Model name: klingai/kling-v3-omni Model description: Generate high-quality videos from text prompts and images with Kling V3 Omni. Supports 720p and 1080p modes, image references, and customizable video editing. Model cover: https://cdn.wiro.ai/uploads/models/klingai-kling-v3-omni-cover.mp4 Model categories: - tool - klingai - partner - text-to-video - image-to-video - reference-to-video - nogpu-pipeline Model tags: - video generator - klingai Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/klingai/kling-v3-omni 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. 4K is not available when a reference video is provided (mode will fall back to pro automatically). type: select default: std options: - value: "std" label: std (720p) - value: "pro" label: pro (1080p) - value: "4k" label: 4k (4K) - name: inputImage label: First Frame help: Optional. Ignored when a video is provided with refer type base (video editing does not support first/last frames). type: combinefileinput default: kling-v3-omni-input-2.jpg - name: prompt label: prompt help: The prompt to generate the video. Max 3072 characters, truncated if longer type: textarea default: Mid-shot, tracking profile. The silver vintage convertible from @image drives smoothly along the road from right to left. The wheels spin realistically, and a subtle motion blur applies to the road surface. The sunlight reflects dynamically across the car\'s polished silver hood and windshield. The man in the driver\'s seat keeps his hands steady on the wheel, his hair catching a slight breeze. The \"GIORNALE DI BRESCIA\" building in the background passes smoothly behind the car. Audio: The low, classic purr of a vintage combustion engine and the sound of tires rolling on asphalt. - name: inputImage2 label: Last Frame help: Optional. When end frame provided sound will be off. Only end frame is not supported. Ignored when a video is provided with refer type base (video editing does not support first/last frames). type: combinefileinput default: - name: inputImage3 label: Reference Images help: Optional. Max 7 images without a video, 4 with a reference video. First and last frame images count toward that total. type: combinefileinput default: - name: inputVideo label: Video help: Optional. Reference video is not supported in 4K mode (mode will fall back to pro). type: combinefileinput default: - name: referType label: Video Refer Type help: Required if video is provided. If feature is selected it will be used as reference video, if base is selected then video will be edited. type: select default: feature options: - value: "feature" label: feature - value: "base" label: base - name: originalSound label: Video Original Sound help: Required if video is provided. If refer type is feature then it will be no by default. type: select default: no options: - value: "no" label: no - value: "yes" label: yes - name: duration label: Duration help: Required. Total duration of the generated video (in seconds) type: number default: 5 - name: ratio label: Ratio help: Required 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: Required. Default off. If there is last image then sound will be off. Sound is also off when a video is provided — use Video Original Sound to keep a base video's own audio. type: select default: off options: - value: "on" label: On - value: "off" label: Off - name: multiShot label: Multi Shot help: Enable multi-shot video generation. Not available when a video is provided with refer type base (video editing) — multi-shot will be turned off automatically. 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. Up to 6 shots, each at least 1 second. Each shot prompt is limited to 512 characters and will be truncated if longer. Video duration cannot exceed 15 seconds and total duration will be calculated from this object. Example: [{"index": 1, "prompt": "Prompt 1", "duration": "2"}, {"index": 2, "prompt": "Prompt 2", "duration": "3" }] type: textarea default: ## Model Parameter Inspires: - mode: std - prompt: Wide tracking shot from behind. The blonde woman with the dark backpack from @image carefully hikes down the steep, rugged rocky mountain trail. As she steps down, loose gravel shifts slightly under her shoes. The intense, golden sunset light bathes the entire sweeping valley in a warm, hazy glow, casting long dynamic shadows across the rocks. The camera smoothly follows her descent. In the far background, the distant coastal town and ocean remain softly illuminated by the setting sun. Audio: The crisp crunching of hiking shoes on loose rocks, mixed with a gentle, sweeping mountain breeze. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/kling-v3-omni-input-1.jpg - inputImage2: - inputImage3: - inputVideo: - referType: feature - originalSound: no - negativePrompt: - duration: 5 - ratio: 9:16 - sound: on - 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\" }] - scale: 0.5 - prompt: Mid-shot, tracking profile. The silver vintage convertible from @image drives smoothly along the road from right to left. The wheels spin realistically, and a subtle motion blur applies to the road surface. The sunlight reflects dynamically across the car\'s polished silver hood and windshield. The man in the driver\'s seat keeps his hands steady on the wheel, his hair catching a slight breeze. The \"GIORNALE DI BRESCIA\" building in the background passes smoothly behind the car. Audio: The low, classic purr of a vintage combustion engine and the sound of tires rolling on asphalt. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/kling-v3-omni-input-2.jpg - mode: std - prompt: Mid-shot, tracking profile. The silver vintage convertible from @image drives smoothly along the road from right to left. The wheels spin realistically, and a subtle motion blur applies to the road surface. The sunlight reflects dynamically across the car\'s polished silver hood and windshield. The man in the driver\'s seat keeps his hands steady on the wheel, his hair catching a slight breeze. The \"GIORNALE DI BRESCIA\" building in the background passes smoothly behind the car. Audio: The low, classic purr of a vintage combustion engine and the sound of tires rolling on asphalt. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/kling-v3-omni-input-3.jpg - inputImage2: - inputImage3: - inputVideo: - referType: feature - originalSound: no - negativePrompt: - duration: 5 - ratio: 9:16 - sound: on - 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\" }] - scale: 0.5 - mode: std - prompt: 10-second continuous long take. Golden hour lighting. The camera starts on a close-up of a vintage acoustic guitar resting on golden wheat. Audio: The wind rustling through the wheat field. The camera smoothly pans up and slowly circles around a young man with curly hair and a denim jacket who is picking up the guitar. He sits on an old wooden fence, looks directly into the lens, smiles warmly, and says, \"Let\'s try that one more time.\" He begins strumming a lively, upbeat chord progression. Cinematic, handheld documentary feel. - inputImage: - inputImage2: - inputImage3: - inputVideo: - referType: feature - originalSound: no - negativePrompt: - duration: 10 - ratio: 16:9 - sound: on - 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\" }] - scale: 0.5 ## 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-omni" -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-omni-input-2.jpg", "prompt": "Mid-shot, tracking profile. The silver vintage convertible from @image drives smoothly along the road from right to left. The wheels spin realistically, and a subtle motion blur applies to the road surface. The sunlight reflects dynamically across the car\\'s polished silver hood and windshield. The man in the driver\\'s seat keeps his hands steady on the wheel, his hair catching a slight breeze. The \\\"GIORNALE DI BRESCIA\\\" building in the background passes smoothly behind the car. Audio: The low, classic purr of a vintage combustion engine and the sound of tires rolling on asphalt.", "inputImage2": [], "inputImage3": "", "inputVideo": "", "referType": "feature", "originalSound": "no", "duration": 5, "ratio": "16:9", "sound": "off", "multiShot": "false", "shotType": "", "multiPrompt": "", "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.