## Basic tool info Model name: wiro/Reality Warp Effect Model description: Portals, dimensional rifts and reality-warp videos generated from a single portrait. 43 scenarios across sci-fi, surreal and fantasy. Model cover: https://cdn.wiro.ai/uploads/models/wiro-reality-warp-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/reality-warp-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: portal+effect-door+worlds options: - value: "portal+effect-door+worlds" label: Door Worlds Transition cover: seffect/portal%2Beffect-door%2Bworlds.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-quantum+rift" label: Quantum Reality Rift cover: seffect/portal%2Beffect-quantum%2Brift.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-mirror+world" label: Mirror World Step-Through cover: seffect/portal%2Beffect-mirror%2Bworld.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-book+page+dive" label: Book Page Dive Portal cover: seffect/portal%2Beffect-book%2Bpage%2Bdive.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-subway+tunnel" label: Subway Tunnel Dimension cover: seffect/portal%2Beffect-subway%2Btunnel.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "inception+fold-cathedral+gothic+pocket" label: Gothic Cathedral Inside-Out Fold cover: seffect/inception%2Bfold-cathedral%2Bgothic%2Bpocket.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-card+flip+transition" label: Card Flip Portal Transition cover: seffect/portal%2Beffect-card%2Bflip%2Btransition.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-sketch+to+3d+room" label: Hand-Drawn Sketch to 3D Room Dive cover: seffect/portal%2Beffect-sketch%2Bto%2B3d%2Broom.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-airplane+window+surreal" label: Airplane Window Surreal Portal cover: seffect/portal%2Beffect-airplane%2Bwindow%2Bsurreal.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-digital+tunnel+fantasy" label: Digital Tunnel Fantasy Fall Portal cover: seffect/portal%2Beffect-digital%2Btunnel%2Bfantasy.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-quantum+computer+world" label: Planet-Sized Quantum Computer World Portal cover: seffect/portal%2Beffect-quantum%2Bcomputer%2Bworld.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-surreal+dream+collapse" label: Surreal Dream Architecture Collapse Portal cover: seffect/portal%2Beffect-surreal%2Bdream%2Bcollapse.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-time+travel+flooded+city" label: Flooded City to Ancient Market Time-Travel Portal cover: seffect/portal%2Beffect-time%2Btravel%2Bflooded%2Bcity.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-dive+into+eye" label: Cinematic Drone Dive Into Eye Portal cover: seffect/portal%2Beffect-dive%2Binto%2Beye.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-morning+routine+highspeed" label: Morning Routine High-Speed Portal Transitions cover: seffect/portal%2Beffect-morning%2Broutine%2Bhighspeed.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-glass+ocean+universe+beneath" label: Glass Ocean Universe Beneath Traveler Surreal cover: seffect/portal%2Beffect-glass%2Bocean%2Buniverse%2Bbeneath.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-argument+apartment+whip+drama" label: Apartment Argument Whip-Pan Drama Split-Reality cover: seffect/portal%2Beffect-argument%2Bapartment%2Bwhip%2Bdrama.mp4 inputImageCount: 2 inputImageNote: Upload 2 human portrait photos (BOTH REQUIRED): one for the lead resident and one for the domestic partner. Both portraits must be provided — this preset is strict multi-reference with no single-image fallback. - value: "portal+effect-skybridge+phone+fall+time" label: Skybridge Phone-Fall Time-Travel Drama cover: seffect/portal%2Beffect-skybridge%2Bphone%2Bfall%2Btime.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-convenience+store+moon+surreal" label: Convenience Store Night-Shift on Moon Surreal cover: seffect/portal%2Beffect-convenience%2Bstore%2Bmoon%2Bsurreal.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-painting+steals+drink+comedy" label: Painting Character Steals Drink Absurd Comedy cover: seffect/portal%2Beffect-painting%2Bsteals%2Bdrink%2Bcomedy.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-hand+drawn+interior+to+3d" label: Hand-Drawn Interior Sketch Transforming to 3D Space cover: seffect/portal%2Beffect-hand%2Bdrawn%2Binterior%2Bto%2B3d.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-abstract+painter+canvas+becomes+landscape" label: Abstract Painter Canvas Becomes Real Landscape cover: seffect/portal%2Beffect-abstract%2Bpainter%2Bcanvas%2Bbecomes%2Blandscape.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-school+supplies+to+robot" label: School Supplies Transform Into Tiny Bipedal Robot cover: seffect/portal%2Beffect-school%2Bsupplies%2Bto%2Brobot.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-four+layers+reality+continuous+fall" label: Continuous Fall Through Four Layers of Reality cover: seffect/portal%2Beffect-four%2Blayers%2Breality%2Bcontinuous%2Bfall.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-infinite+fall+white+void+surreal" label: Infinite Fall White Void Beer-Catch Surreal cover: seffect/portal%2Beffect-infinite%2Bfall%2Bwhite%2Bvoid%2Bsurreal.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-cyberpunk+time+travel+disaster+ancient" label: Cyberpunk Time Travel Flooded City to Ancient Market cover: seffect/portal%2Beffect-cyberpunk%2Btime%2Btravel%2Bdisaster%2Bancient.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-monster+from+poster+subway+chase" label: Monster Emerging From 2D Poster Subway Chase cover: seffect/portal%2Beffect-monster%2Bfrom%2Bposter%2Bsubway%2Bchase.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-sky+unzipped+megalophobia" label: Sky Unzipped Surreal Megalophobia Reveal cover: seffect/portal%2Beffect-sky%2Bunzipped%2Bmegalophobia.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-vr+glasses+multiverse" label: VR Glasses Digital Multiverse Journey Portal cover: seffect/portal%2Beffect-vr%2Bglasses%2Bmultiverse.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-airplane+window+dream+sweet" label: Airplane Window Sweet Cloud-Candy Dream Portal cover: seffect/portal%2Beffect-airplane%2Bwindow%2Bdream%2Bsweet.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "impossible+camera-corridor+chase+orbit+pan" label: Corridor Chase Impossible Camera Orbit Pan cover: seffect/impossible%2Bcamera-corridor%2Bchase%2Borbit%2Bpan.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "inception+fold-tablet+data+space+morph" label: Tablet Data-Space Environment Inception Fold cover: seffect/inception%2Bfold-tablet%2Bdata%2Bspace%2Bmorph.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-ornate+eggs+miniature+worlds+dreamspace" label: Ornate Eggs Miniature Worlds Dreamspace Portal cover: seffect/portal%2Beffect-ornate%2Beggs%2Bminiature%2Bworlds%2Bdreamspace.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-floating+overgrown+ruins+space+refuge" label: Floating Overgrown Ruins Space Refuge Portal cover: seffect/portal%2Beffect-floating%2Bovergrown%2Bruins%2Bspace%2Brefuge.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-airship+sky+to+wasteland+morph" label: Gothic Airship Sky-to-Wasteland Background Morph cover: seffect/portal%2Beffect-airship%2Bsky%2Bto%2Bwasteland%2Bmorph.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "inception+fold-urban+highrise+cross+section" label: Highrise Apartment Cross-Section Lateral Reveal cover: seffect/inception%2Bfold-urban%2Bhighrise%2Bcross%2Bsection.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-rainy+avenue+tearing+open" label: Rainy Urban Avenue Portal Tearing Reality cover: seffect/portal%2Beffect-rainy%2Bavenue%2Btearing%2Bopen.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-textbook+knowledge+erupt+cosmos" label: Textbook Knowledge Erupts Holographic Cosmos cover: seffect/portal%2Beffect-textbook%2Bknowledge%2Berupt%2Bcosmos.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "camera+thread-storm+galleon+cabin" label: Storm Galleon Window Thread cover: seffect/camera%2Bthread-storm%2Bgalleon%2Bcabin.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-pink+stars+cosmic+reveal" label: Pink Stars Cosmic Romance Reveal Portal cover: seffect/portal%2Beffect-pink%2Bstars%2Bcosmic%2Breveal.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-astronaut+hopper" label: Astronaut Location Hopper Portal cover: seffect/portal%2Beffect-astronaut%2Bhopper.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-ancient+door+underground+megacity" label: Ancient Door Hidden Underground Megacity Reveal cover: seffect/portal%2Beffect-ancient%2Bdoor%2Bunderground%2Bmegacity.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "portal+effect-rooftop+fall+dreamscape" label: Rooftop Fall Dreamscape Portal cover: seffect/portal%2Beffect-rooftop%2Bfall%2Bdreamscape.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 ## Model Parameter Inspires: - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/11.png - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/ai-portrait-daily-asian-woman.webp - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/ai-portrait-daily-white-man.webp - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/ai-portrait-daily-white-woman.webp - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/ai-portrait-professional-black-woman.webp ## 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/reality-warp-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": "portal+effect-door+worlds", "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.