## Basic tool info Model name: wiro/Supernatural Presence Effect Model description: Analog horror, ghost and paranormal cinematic short videos from a single portrait. 67 scenarios across uncanny domestic, found-footage and liminal spaces. Model cover: https://cdn.wiro.ai/uploads/models/wiro-supernatural-presence-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/supernatural-presence-effect Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Model Inputs: - name: inputImage label: Input Image help: Required: see selected effect for image details type: combinefileinput default: ai-portrait-daily-asian-woman.webp - name: effectType label: Effect Type help: Required type: selectwithcover default: ghost+apparition-old+photograph+reveal options: - value: "ghost+apparition-old+photograph+reveal" label: Old Photograph Reveal cover: seffect/ghost%2Bapparition-old%2Bphotograph%2Breveal.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-wedding+video+ghost" label: Wedding Video Ghost cover: seffect/ghost%2Bapparition-wedding%2Bvideo%2Bghost.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-cctv+3am+hallway" label: CCTV 3AM Hallway Figure cover: seffect/ghost%2Bapparition-cctv%2B3am%2Bhallway.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-cemetery+translucent" label: Cemetery Translucent Victorian cover: seffect/ghost%2Bapparition-cemetery%2Btranslucent.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-mirror+past+self" label: Antique Mirror Past Self cover: seffect/ghost%2Bapparition-mirror%2Bpast%2Bself.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-baby+monitor+rocking" label: Baby Monitor Rocking Chair cover: seffect/ghost%2Bapparition-baby%2Bmonitor%2Brocking.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-attic+trunk+emerge" label: Attic Trunk Mist Figure cover: seffect/ghost%2Bapparition-attic%2Btrunk%2Bemerge.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-wedding+dance+extra+guest" label: Wedding Dance Extra Guest cover: seffect/ghost%2Bapparition-wedding%2Bdance%2Bextra%2Bguest.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-window+reflection+watched" label: Window Reflection Watched cover: seffect/ghost%2Bapparition-window%2Breflection%2Bwatched.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-hotel+room+prior+occupant" label: Hotel Room Prior Occupant cover: seffect/ghost%2Bapparition-hotel%2Broom%2Bprior%2Boccupant.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "doppelganger+horror-front+door+visitor" label: Front Door Visitor cover: seffect/doppelganger%2Bhorror-front%2Bdoor%2Bvisitor.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "doppelganger+horror-kitchen+window+watch" label: Kitchen Window Watcher cover: seffect/doppelganger%2Bhorror-kitchen%2Bwindow%2Bwatch.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "doppelganger+horror-phone+call+own+voice" label: Phone Call From Myself cover: seffect/doppelganger%2Bhorror-phone%2Bcall%2Bown%2Bvoice.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "doppelganger+horror-bed+partner+two" label: Three In The Bed cover: seffect/doppelganger%2Bhorror-bed%2Bpartner%2Btwo.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "doppelganger+horror-photo+crowd+extra" label: Extra In Every Photo cover: seffect/doppelganger%2Bhorror-photo%2Bcrowd%2Bextra.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "doppelganger+horror-elevator+doors+reveal" label: Elevator Doors Reveal cover: seffect/doppelganger%2Bhorror-elevator%2Bdoors%2Breveal.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "doppelganger+horror-apartment+couch+double" label: Apartment Couch Doppelganger cover: seffect/doppelganger%2Bhorror-apartment%2Bcouch%2Bdouble.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "doppelganger+horror-smile+too+wide" label: Video Call Smile Widens cover: seffect/doppelganger%2Bhorror-smile%2Btoo%2Bwide.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "doppelganger+horror-mirror+step+out" label: Mirror Step Out Pull cover: seffect/doppelganger%2Bhorror-mirror%2Bstep%2Bout.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "mirror+glitch-bathroom+smirk" label: Bathroom Mirror Smirk cover: seffect/mirror%2Bglitch-bathroom%2Bsmirk.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "mirror+glitch-elevator+doppelganger" label: Elevator Mirror Doppelganger cover: seffect/mirror%2Bglitch-elevator%2Bdoppelganger.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "mirror+glitch-dressing+room" label: Dressing Room Mannequin cover: seffect/mirror%2Bglitch-dressing%2Broom.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "mirror+glitch-gym+wrong+pose" label: Gym Mirror Wrong Pose cover: seffect/mirror%2Bglitch-gym%2Bwrong%2Bpose.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "mirror+glitch-car+side+mirror" label: Car Side Mirror Entity cover: seffect/mirror%2Bglitch-car%2Bside%2Bmirror.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "mirror+glitch-painting+watches" label: Painting Watches You cover: seffect/mirror%2Bglitch-painting%2Bwatches.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "mirror+glitch-subway+window" label: Subway Window Reflection cover: seffect/mirror%2Bglitch-subway%2Bwindow.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "mirror+glitch-phone+selfie" label: Phone Selfie Reflection Horror cover: seffect/mirror%2Bglitch-phone%2Bselfie.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "liminal+horror-hospital+chase" label: Abandoned Hospital Chase cover: seffect/liminal%2Bhorror-hospital%2Bchase.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "liminal+horror-yellow+maze" label: Endless Yellow Hallway Maze cover: seffect/liminal%2Bhorror-yellow%2Bmaze.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "liminal+horror-motel+hallway" label: Motel Hallway Loop cover: seffect/liminal%2Bhorror-motel%2Bhallway.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "liminal+horror-empty+mall" label: Empty Mall After Hours cover: seffect/liminal%2Bhorror-empty%2Bmall.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "liminal+horror-school+gym" label: Empty School Gym Night cover: seffect/liminal%2Bhorror-school%2Bgym.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "liminal+horror-parking+garage" label: Basement Parking Garage cover: seffect/liminal%2Bhorror-parking%2Bgarage.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "liminal+horror-furniture+showroom" label: Flatpack Furniture Showroom After Closing cover: seffect/liminal%2Bhorror-furniture%2Bshowroom.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "liminal+horror-pool+drained" label: Swimming Pool Drained cover: seffect/liminal%2Bhorror-pool%2Bdrained.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "liminal+horror-vhs+news" label: VHS News Broadcast Phantom Anchor cover: seffect/liminal%2Bhorror-vhs%2Bnews.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "liminal+horror-art+gallery" label: Art Gallery Mannequin cover: seffect/liminal%2Bhorror-art%2Bgallery.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "liminal+horror-amusement+park" label: Abandoned Amusement Park cover: seffect/liminal%2Bhorror-amusement%2Bpark.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "liminal+horror-endless+library" label: Endless Library Labyrinth cover: seffect/liminal%2Bhorror-endless%2Blibrary.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-poster+entity+subway" label: Subway Station Poster Entity Apparition cover: seffect/ghost%2Bapparition-poster%2Bentity%2Bsubway.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "doppelganger+horror-rocking+horse+multiplies" label: Rocking Horse Multiplies Doppelganger Horror cover: seffect/doppelganger%2Bhorror-rocking%2Bhorse%2Bmultiplies.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "mirror+glitch-surveillance+face+rec" label: Surveillance Face Recognition Mirror Glitch cover: seffect/mirror%2Bglitch-surveillance%2Bface%2Brec.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-conductor+light+musicians" label: Ghost Conductor Light Restoration Musicians cover: seffect/ghost%2Bapparition-conductor%2Blight%2Bmusicians.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-pianist+time+reversal" label: Pianist Time Reversal Bombed Cathedral Ghost cover: seffect/ghost%2Bapparition-pianist%2Btime%2Breversal.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-classic+slasher+under+bed" label: Classic Slasher Under-Bed Bedroom Apparition cover: seffect/ghost%2Bapparition-classic%2Bslasher%2Bunder%2Bbed.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "doppelganger+horror-biomech+parasite+cyborg" label: Biomechanical Parasite Cyborg Horror cover: seffect/doppelganger%2Bhorror-biomech%2Bparasite%2Bcyborg.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "liminal+horror-sealed+tunnel+reunion" label: Sealed Tunnel Impossible Reunion Liminal cover: seffect/liminal%2Bhorror-sealed%2Btunnel%2Breunion.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-dark+fairy+witch+hunter" label: Dark Fairytale Forest Witch vs Iron Hunter cover: seffect/ghost%2Bapparition-dark%2Bfairy%2Bwitch%2Bhunter.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-silent+retreat+guru+mosquito" label: Silent Retreat Guru Mosquito Comedic Disaster cover: seffect/ghost%2Bapparition-silent%2Bretreat%2Bguru%2Bmosquito.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "liminal+horror-forest+flashlight+beam" label: Dark Foggy Forest Flashlight Beam Horror cover: seffect/liminal%2Bhorror-forest%2Bflashlight%2Bbeam.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-moving+chair+paranormal" label: Paranormal Moving Chair Room Apparition cover: seffect/ghost%2Bapparition-moving%2Bchair%2Bparanormal.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-gothic+vampire+lord" label: Gothic Vampire Lord Silver Hair Apparition cover: seffect/ghost%2Bapparition-gothic%2Bvampire%2Blord.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-art+gallery+portrait+comes+alive" label: Art Gallery Portrait Comes to Life Silences Guard cover: seffect/ghost%2Bapparition-art%2Bgallery%2Bportrait%2Bcomes%2Balive.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-flower+goddess+descent" label: Eastern Flower Goddess Descent Ethereal Cold Beauty cover: seffect/ghost%2Bapparition-flower%2Bgoddess%2Bdescent.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "liminal+horror-giant+insect+1950s+rural+desert" label: Giant Insect Attack 1950s Rural Desert B-Movie cover: seffect/liminal%2Bhorror-giant%2Binsect%2B1950s%2Brural%2Bdesert.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-glitch+in+mirror+reflection" label: Glitch in the Mirror Reflection Independent Unsettling cover: seffect/ghost%2Bapparition-glitch%2Bin%2Bmirror%2Breflection.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "liminal+horror-rainy+underground+alley+neon+steam" label: Rainy Underground Service Alley Neon Steam Surreal Horror cover: seffect/liminal%2Bhorror-rainy%2Bunderground%2Balley%2Bneon%2Bsteam.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "liminal+horror-j+horror+subway+empty+corridors" label: J-Horror Inspired Empty Subway Corridors Lurking Presence cover: seffect/liminal%2Bhorror-j%2Bhorror%2Bsubway%2Bempty%2Bcorridors.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "liminal+horror-victorian+haunted+house+dolly+in" label: Hyper-Realistic Cinematic Horror Abandoned Victorian House cover: seffect/liminal%2Bhorror-victorian%2Bhaunted%2Bhouse%2Bdolly%2Bin.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-gothic+staircase+portrait+candles" label: Gothic Mystery Staircase Portrait Reveal Candles cover: seffect/ghost%2Bapparition-gothic%2Bstaircase%2Bportrait%2Bcandles.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "mirror+glitch-emotional+breakdown+scream" label: Mirror Emotional Breakdown Collapse Close-up cover: seffect/mirror%2Bglitch-emotional%2Bbreakdown%2Bscream.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-sky+burial+titan+feathers" label: Sky Burial Titan Feathers Bells cover: seffect/ghost%2Bapparition-sky%2Bburial%2Btitan%2Bfeathers.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-commuter+platform+poster+chase" label: Commuter Platform Poster Apparition Chase cover: seffect/ghost%2Bapparition-commuter%2Bplatform%2Bposter%2Bchase.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ghost+apparition-midnight+livestream+underbed+monitor" label: Midnight Livestream Under-Bed Apparition cover: seffect/ghost%2Bapparition-midnight%2Blivestream%2Bunderbed%2Bmonitor.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "liminal+horror-corridor+sidedoor+entity+jolt" label: Corridor Side-Doorway Entity Jolt cover: seffect/liminal%2Bhorror-corridor%2Bsidedoor%2Bentity%2Bjolt.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "liminal+horror-antarctic+ice+shelf+entity" label: Antarctic Station Ice Shelf Entity cover: seffect/liminal%2Bhorror-antarctic%2Bice%2Bshelf%2Bentity.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "creature+lurking-shark+photobomb" label: Shark Photobomb cover: seffect/creature%2Blurking-shark%2Bphotobomb.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - 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/supernatural-presence-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": "ghost+apparition-old+photograph+reveal", "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.