## Basic tool info Model name: google/veo3.1 Model description: Google's veo3.1 model Model cover: https://cdn.wiro.ai/uploads/models/google-veo3.1-cover.mp4 Model categories: - tool - partner - google - text-to-video - hero-showcase - price-list Model tags: - google Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/google/veo3-1 Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Model Inputs: - name: inputImage label: Input Image help: Optional. Input image for the first frame of the video. type: combinefileinput default: - name: prompt label: prompt help: The prompt to generate the video. type: textarea default: A tight, gritty close-up on a detective\'s face in a smoke-filled, neon-drenched office at midnight; he is leaning forward, eyes narrowed with tension, as the camera slowly zooms in, while his low, gravelly voice states, \"Where\'s the evidence?\"; this is set against the backdrop of a slow, repetitive ticking clock and the distant wail of a police siren. - name: generateAudio label: Generate Audio help: Generate audio for the video type: select default: true options: - value: "true" label: True - value: "false" label: False - name: aspectRatio label: Aspect Ratio help: Aspect ratio of the generated video type: select default: 16:9 options: - value: "16:9" label: 16:9 - value: "9:16" label: 9:16 - name: resolution label: Resolution help: Resolution of the generated video type: select default: 720p options: - value: "720p" label: 720p - value: "1080p" label: 1080p - name: negativePrompt label: Negative Prompt help: A text string that describes anything you want to discourage the model from generating type: textarea default: - name: enhancePrompt label: Enhance Prompt help: Use Gemini to enhance your prompts for better quality videos. type: select default: true options: - value: "true" label: True - value: "false" label: False - name: personGeneration label: Person Generation help: The safety setting that controls whether people or face generation is allowed. allow_adult: Allow generation of adults only. dont_allow: Disallow the inclusion of people or faces in videos. type: select default: allow_adult options: - value: "allow_adult" label: Allow Adults - value: "dont_allow" label: Don't Allow - name: seed label: seed help: A number to make generated videos deterministic. For random result do not send. type: number default: 0 - name: durationSeconds label: Duration Seconds help: Duration of the generated video in seconds. When using reference images duration is set to 8 by default. type: select default: 8 options: - value: "4" label: 4 - value: "6" label: 6 - value: "8" label: 8 ## Model Parameter Inspires: - prompt: An eye-level, static shot through a rain-streaked window looking out at a dimly lit, cozy cafe interior where a person with a book sits in a soft armchair, sipping from a steaming mug; the warm, inviting scene is defined by a low-volume, continuous Lo-Fi Hip Hop track with a gentle beat, all layered beneath the persistent, gentle patter of rain on the glass - inputImage: - prompt: A cheerful koala sits comfortably on a eucalyptus branch in a sun-dappled forest clearing. The koala wears a vibrant teal-green hoodie (specifically, close to RGB(4,147,107)), with bold “WIRO” lettering across the front. The camera slowly dollies in as the koala looks directly at the camera and says with excitement in a friendly male voice: \'Wooooowww Veo 3.1, as always, on Wiro\!\' The entire scene is bathed in natural greens and soft grey tones, creating a cozy, natural, and upbeat mood, with the ambient soundscape defined by rustling leaves and distant birds. (No subtitles. - inputImage: - prompt: A breathtaking, high-angle drone shot of a lone figure standing on a moss-covered cliff edge, overlooking a vast, mist-filled valley at sunrise; the camera slowly pans out and rises higher to reveal the immense scale, while a sweeping, epic orchestral score swells, accompanied by the natural sound of a strong, cool wind gusting and the distant cry of an eagle. - inputImage: - prompt: A tight, gritty close-up on a detective\'s face in a smoke-filled, neon-drenched office at midnight; he is leaning forward, eyes narrowed with tension, as the camera slowly zooms in, while his low, gravelly voice states, \"Where\'s the evidence?\"; this is set against the backdrop of a slow, repetitive ticking clock and the distant wail of a police siren. - inputImage: - prompt: A soft, static close-up shot of a young woman in a dark coat gently sipping from a white teacup on an outdoor patio, her gaze fixed thoughtfully off-camera; the scene is bathed in warm, diffused autumn light, highlighting the changing leaves behind her, while a gentle, introspective female voiceover muses, \"Some mornings are just meant for stillness...\", complemented by the distant, soothing sound of crisp autumn leaves rustling and a barely audible, cozy café chatter from indoors. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/google-veo31-input-1.jpg - prompt: A slow, cinematic dolly-in shows the woman and her dog standing at the intersection, the deep red awning on the adjacent building creating a striking color contrast; the wind gently blows the woman’s hair as she shifts her weight and looks to her left; the video has a warm, film-grain aesthetic with a soft piano jazz track playing in the background, accompanied by the low, constant rumble of city traffic and a brief, gentle dog whimper. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/google-veo31-input-2.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/google/veo3-1" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "inputImage": "", "prompt": "A tight, gritty close-up on a detective\\'s face in a smoke-filled, neon-drenched office at midnight; he is leaning forward, eyes narrowed with tension, as the camera slowly zooms in, while his low, gravelly voice states, \\\"Where\\'s the evidence?\\\"; this is set against the backdrop of a slow, repetitive ticking clock and the distant wail of a police siren.", "generateAudio": "true", "aspectRatio": "16:9", "resolution": "720p", "negativePrompt": "", "enhancePrompt": "true", "personGeneration": "allow_adult", "seed": 0, "durationSeconds": "8", "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.