## Basic tool info Model name: xai/grok-imagine-video Model description: Grok Imagine Video by xAI generates short MP4 videos with synced audio from a text prompt, with an optional first-frame image. Choose duration, aspect, and 480p or 720p. Model cover: https://cdn.wiro.ai/uploads/models/xai-grok-imagine-video-cover.mp4 Model categories: - tool - partner - xai - text-to-video - image-to-video - nogpu-pipeline Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/xai/grok-imagine-video Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Model Inputs: - name: inputImage label: Image (Image-to-Video) help: Optional. First frame image for image-to-video generation. Max 20MiB. Supported: jpg, jpeg, png. Only 1 image allowed. type: combinefileinput default: xai-grok-image-video-input-1.jpg - name: prompt label: Prompt help: Required. Text description of the desired video. type: textarea default: Cinematic, slow tracking shot following an older man with white hair in light beige clothing as he walks away down a sunlit Italian sidewalk during golden hour. To the right is a vibrant, weathered yellow building featuring a vintage 'FOTOAUTOMATICA' photo booth with a gently swaying red curtain. A cluster of complex directional street signs, including 'Porta Romana', remains perfectly rigid and legible without morphing or hallucinating. Street art, including a sketched cherub and a butterfly, stays structurally fixed to the textured wall. The camera captures deep, realistic cast shadows. In the softly blurred background, other pedestrians stroll naturally along a narrow street lined with parked cars. Flawless spatial consistency, accurate human gait mechanics, and precise architectural geometry - name: duration label: Duration help: Required. Video duration in seconds. type: select default: 5 options: - value: "5" label: 5 seconds - value: "10" label: 10 seconds - value: "15" label: 15 seconds - name: aspectRatio label: Aspect Ratio help: Required. Auto matches image aspect ratio when image is provided, defaults to 16:9 otherwise. type: select default: auto options: - value: "auto" label: Auto - value: "16:9" label: 16:9 (Landscape) - value: "9:16" label: 9:16 (Portrait) - value: "1:1" label: 1:1 (Square) - value: "4:3" label: 4:3 - value: "3:4" label: 3:4 - value: "3:2" label: 3:2 - value: "2:3" label: 2:3 - name: resolution label: Resolution help: Required. type: select default: 480p options: - value: "480p" label: 480p - value: "720p" label: 720p ## Model Parameter Inspires: - prompt: Cinematic macro shot, 120fps slow-motion. A thick, dark espresso is poured from above into a heavy, intricately cut crystal glass filled with irregular, clear ice cubes. The camera is locked on the side of the glass. The amber liquid swirls dynamically and realistically around the ice. The background is completely dark, but a sharp, warm spotlight hits the glass directly from behind. This creates complex, physically accurate light refractions and glowing caustic reflections through the moving liquid and the thick crystal. The solid geometry of the glass and ice remains perfectly rigid and distinct from the fluid. - inputImage: - prompt: Extreme macro probe lens shot inside the open casing of an antique, brass skeleton pocket watch. Tiny, intricately engraved brass and silver cogs, mainsprings, and escapement wheels are ticking and rotating with flawless, rigid mechanical precision. No parts blend, morph, or melt into one another. The camera slowly pushes in through the complex layers of moving gears. A single, distinct, dusty sunbeam cuts through the dark metallic environment, illuminating floating dust motes and creating a highly realistic, smooth bokeh effect in the background. - inputImage: - prompt: Cinematic, slow tracking shot following an older man with white hair in light beige clothing as he walks away down a sunlit Italian sidewalk during golden hour. To the right is a vibrant, weathered yellow building featuring a vintage 'FOTOAUTOMATICA' photo booth with a gently swaying red curtain. A cluster of complex directional street signs, including 'Porta Romana', remains perfectly rigid and legible without morphing or hallucinating. Street art, including a sketched cherub and a butterfly, stays structurally fixed to the textured wall. The camera captures deep, realistic cast shadows. In the softly blurred background, other pedestrians stroll naturally along a narrow street lined with parked cars. Flawless spatial consistency, accurate human gait mechanics, and precise architectural geometry - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/xai-grok-image-video-input-1.jpg - prompt: Cinematic, low-angle tracking shot following a small, fluffy golden-brown dog briskly trotting from right to left across a wet asphalt forest path. The dog's long fur and curled tail bounce dynamically and naturally with every step, showcasing complex hair physics. The dog pants slightly with its mouth open, looking ahead. It is lightly raining, with visible rain streaks falling. The wet road creates soft, realistic reflections of the dog's paws, which kick up tiny, physically accurate droplets of water upon impact. The background remains a deeply blurred, atmospheric autumn forest fading into mist, maintaining consistent depth of field. Flawless anatomical geometry of the dog's legs and gait. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/xai-grok-image-video-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/xai/grok-imagine-video" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "inputImage": "xai-grok-image-video-input-1.jpg", "prompt": "Cinematic, slow tracking shot following an older man with white hair in light beige clothing as he walks away down a sunlit Italian sidewalk during golden hour. To the right is a vibrant, weathered yellow building featuring a vintage 'FOTOAUTOMATICA' photo booth with a gently swaying red curtain. A cluster of complex directional street signs, including 'Porta Romana', remains perfectly rigid and legible without morphing or hallucinating. Street art, including a sketched cherub and a butterfly, stays structurally fixed to the textured wall. The camera captures deep, realistic cast shadows. In the softly blurred background, other pedestrians stroll naturally along a narrow street lined with parked cars. Flawless spatial consistency, accurate human gait mechanics, and precise architectural geometry", "duration": "5", "aspectRatio": "auto", "resolution": "480p", "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.