## Basic tool info Model name: wiro/Sports Extreme Effect Model description: Cinematic extreme sports videos generated from a single portrait. 27 scenarios across parkour, BMX, surf, ATV, snowboard, MotoGP and lunar skiing. Model cover: https://cdn.wiro.ai/uploads/models/wiro-sports-extreme-effect-cover.mp4 Model categories: - tool - use-agent - wiroEntertainment - fast-inference - image-to-video - wiro-app - beautykit - partner - nogpu-pipeline Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/wiro/sports-extreme-effect Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Model Inputs: - name: inputImage label: Input Image help: Required: 1–2 images depending on selected effect — see scenario note type: combinefileinput default: ai-portrait-daily-asian-woman.webp - name: effectType label: Effect Type help: Required type: selectwithcover default: sports+extreme-parkour+one+take+urban options: - value: "sports+extreme-parkour+one+take+urban" label: Parkour One-Take Urban Multi-Environment Run cover: seffect/sports%2Bextreme-parkour%2Bone%2Btake%2Burban.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "sports+extreme-bmx+favela+wall+ride" label: BMX Favela Brazilian Wall-Ride Extreme cover: seffect/sports%2Bextreme-bmx%2Bfavela%2Bwall%2Bride.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "sports+extreme-skiing+rabbit+avalanche" label: Skiing Rabbit Avalanche Escape Comedy cover: seffect/sports%2Bextreme-skiing%2Brabbit%2Bavalanche.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "sports+extreme-four+season+skate+snowboard" label: Four-Season Skate+Snowboard Seamless Journey cover: seffect/sports%2Bextreme-four%2Bseason%2Bskate%2Bsnowboard.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "sports+extreme-snake+hunting+wildlife+doc" label: Snake Hunting Mouse Wildlife Documentary Close-Up cover: seffect/sports%2Bextreme-snake%2Bhunting%2Bwildlife%2Bdoc.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "sports+extreme-hamster+gym+miniature" label: Miniature Hamster Gym Bro Comedy Sports cover: seffect/sports%2Bextreme-hamster%2Bgym%2Bminiature.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "sports+extreme-high+speed+skateboard+3d+anime" label: High-Speed 3D Anime Skateboard Mountain POV cover: seffect/sports%2Bextreme-high%2Bspeed%2Bskateboard%2B3d%2Banime.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "sports+extreme-atv+desert+sandstorm" label: ATV Desert Sandstorm Racing Extreme cover: seffect/sports%2Bextreme-atv%2Bdesert%2Bsandstorm.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "sports+extreme-championship+snowboard+big+air" label: Championship Snowboard Big Air Competition cover: seffect/sports%2Bextreme-championship%2Bsnowboard%2Bbig%2Bair.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "sports+extreme-surf+tropical+barrel" label: Surf Tropical Storm Barrel-Wave Extreme cover: seffect/sports%2Bextreme-surf%2Btropical%2Bbarrel.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "sports+extreme-kung+fu+soccer+impact+match" label: Kung Fu Soccer Cinematic Impact Match cover: seffect/sports%2Bextreme-kung%2Bfu%2Bsoccer%2Bimpact%2Bmatch.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "sports+extreme-hovercraft+savanna+aerial+orbit" label: Hovercraft Savanna Aerial Orbit cover: seffect/sports%2Bextreme-hovercraft%2Bsavanna%2Baerial%2Borbit.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "sports+extreme-rugby+humans+vs+giant+gorillas" label: Rugby Clones vs. Giant Silverback Gorillas Match cover: seffect/sports%2Bextreme-rugby%2Bhumans%2Bvs%2Bgiant%2Bgorillas.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo — the entire human rugby team (every player on the pitch) will be rendered as identical clones of this uploaded face. - value: "sports+extreme-endurance+night+rain+circuit+race" label: Endurance-Style Night Rain Circuit Duel (Two Drivers) cover: seffect/sports%2Bextreme-endurance%2Bnight%2Brain%2Bcircuit%2Brace.mp4 inputImageCount: 2 inputImageNote: Upload 2 human portrait photos — [Image 1] is the veteran driver in the lead car, [Image 2] is the rival driver in the adjacent car. If only 1 image is uploaded, the rival driver will be AI-generated. - value: "sports+extreme-pro+wrestling+arena+cinematic+twist" label: Pro Wrestling Arena Cinematic Match with Twist cover: seffect/sports%2Bextreme-pro%2Bwrestling%2Barena%2Bcinematic%2Btwist.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "sports+extreme-longboard+shadow+dance" label: Longboard Cliff Shadow Dance cover: seffect/sports%2Bextreme-longboard%2Bshadow%2Bdance.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "sports+extreme-snowmobile+glacier+ramp" label: Snowmobile Glacier Ramp cover: seffect/sports%2Bextreme-snowmobile%2Bglacier%2Bramp.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "sports+extreme-hk+harbor+speedboat+chase" label: Hong Kong Harbor Speedboat Wave-Launch Chase cover: seffect/sports%2Bextreme-hk%2Bharbor%2Bspeedboat%2Bchase.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "sports+extreme-lunar+plain+skiing" label: Lunar Plain Astronaut Skiing cover: seffect/sports%2Bextreme-lunar%2Bplain%2Bskiing.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "sports+extreme-football+strike+macro" label: Football Goal-Strike Macro Bullet-Cam Sequence cover: seffect/sports%2Bextreme-football%2Bstrike%2Bmacro.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "sports+extreme-gridiron+runback+charge" label: Gridiron Running-Back Sideline Charge Action cover: seffect/sports%2Bextreme-gridiron%2Brunback%2Bcharge.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "sports+extreme-endurance+rain+night+race" label: Endurance Rain-Night Race Cockpit Drama cover: seffect/sports%2Bextreme-endurance%2Brain%2Bnight%2Brace.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "sports+extreme-urban+pursuit+collision+chase" label: Urban Pursuit Collision-Physics Chase Run cover: seffect/sports%2Bextreme-urban%2Bpursuit%2Bcollision%2Bchase.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "sports+extreme-biker+desert+freight+train+jump" label: Desert Freight Train Biker Jump cover: seffect/sports%2Bextreme-biker%2Bdesert%2Bfreight%2Btrain%2Bjump.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "street+racing-night+nos+neon+city" label: Neon Night Street Racing NOS Launch cover: seffect/street%2Bracing-night%2Bnos%2Bneon%2Bcity.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "motor+stunt-skybridge+rooftop+spiral+ramp" label: Skybridge Motorbike Rooftop Spiral Ramp Drift cover: seffect/motor%2Bstunt-skybridge%2Brooftop%2Bspiral%2Bramp.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "street+racing-nitrous+launch" label: Nitrous Launch Driver POV cover: seffect/street%2Bracing-nitrous%2Blaunch.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo (the driver). - name: videoMode label: Video Mode help: Required. Default Standard type: select default: std options: - value: "std" label: Standard - value: "pro" label: Pro - name: ratio label: ratio help: Required. Default 9:16 type: select default: 9:16 options: - value: "9:16" label: 9:16 - value: "16:9" label: 16:9 - value: "1:1" label: 1:1 - name: duration label: Duration help: Required. Default 5s type: select default: 5 options: - value: "5" label: 5s - value: "10" label: 10s - value: "15" label: 15s ## 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/wiro/sports-extreme-effect" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "inputImage": "ai-portrait-daily-asian-woman.webp", "effectType": "sports+extreme-parkour+one+take+urban", "videoMode": "std", "ratio": "9:16", "duration": "5", "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.