## Basic tool info Model name: wiro/Anime Manga Style Effect Model description: Restyle your portrait into anime, manga, watercolor ink and cel-animation short films. 48 scenarios across action, romance, fantasy and stylized art. Model cover: https://cdn.wiro.ai/uploads/models/wiro-anime-manga-style-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/anime-manga-style-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: anime+restyle-rooftop+parkour+chase options: - value: "anime+restyle-rooftop+parkour+chase" label: Rooftop Parkour Chase Anime Restyle cover: seffect/anime%2Brestyle-rooftop%2Bparkour%2Bchase.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-school+hallway+confession" label: School Hallway Confession Shoujo Restyle cover: seffect/anime%2Brestyle-school%2Bhallway%2Bconfession.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-katana+duel+rain" label: Katana Duel Rain Ink Action Restyle cover: seffect/anime%2Brestyle-katana%2Bduel%2Brain.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-motorcycle+highway+night" label: Motorcycle Highway Night Retro Neon Restyle cover: seffect/anime%2Brestyle-motorcycle%2Bhighway%2Bnight.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-magical+girl+transform" label: Rainbow Fairy Park Transformation Restyle cover: seffect/anime%2Brestyle-magical%2Bgirl%2Btransform.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-subway+train+rush" label: Subway Platform Painterly Sky Restyle cover: seffect/anime%2Brestyle-subway%2Btrain%2Brush.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-basketball+winning+shot" label: Basketball Winning Shot Sports Anime Restyle cover: seffect/anime%2Brestyle-basketball%2Bwinning%2Bshot.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-mecha+cockpit+pilot" label: Mecha Cockpit Pilot Launch Restyle cover: seffect/anime%2Brestyle-mecha%2Bcockpit%2Bpilot.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "manga+panel-punch+impact+zudon" label: Zudon Punch Impact Panels cover: seffect/manga%2Bpanel-punch%2Bimpact%2Bzudon.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "manga+panel-confession+rooftop+shoujo" label: Shoujo Rooftop Confession Panels cover: seffect/manga%2Bpanel-confession%2Brooftop%2Bshoujo.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "manga+panel-sword+duel+slash" label: Kakiin Sword Duel Panels cover: seffect/manga%2Bpanel-sword%2Bduel%2Bslash.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "manga+panel-basketball+dunk+slam" label: Dogan Basketball Dunk Panels cover: seffect/manga%2Bpanel-basketball%2Bdunk%2Bslam.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "manga+panel-chase+speed+lines" label: Tokyo Rooftop Chase Speed Lines cover: seffect/manga%2Bpanel-chase%2Bspeed%2Blines.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "manga+panel-chess+checkmate+reveal" label: Ote Kose Checkmate Panels cover: seffect/manga%2Bpanel-chess%2Bcheckmate%2Breveal.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "manga+panel-idol+stage+performance" label: Live Idol Stage Performance Panels cover: seffect/manga%2Bpanel-idol%2Bstage%2Bperformance.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "manga+panel-sports+finale+buzzer" label: Comic Panel Skill Demo Restyle cover: seffect/manga%2Bpanel-sports%2Bfinale%2Bbuzzer.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-paper+puppet+night+horror" label: Paper Puppet Night Horror Anime Restyle cover: seffect/anime%2Brestyle-paper%2Bpuppet%2Bnight%2Bhorror.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-realistic+to+anime+shift" label: Realistic-to-Anime Style Shift Restyle cover: seffect/anime%2Brestyle-realistic%2Bto%2Banime%2Bshift.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-2d+stickman+battle+flash" label: 2D Stickman Battle Retro Flash Animation Restyle cover: seffect/anime%2Brestyle-2d%2Bstickman%2Bbattle%2Bflash.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-calligraphy+ink+dragon+sky" label: Calligraphy Ink Dragon Sunset Sky Restyle cover: seffect/anime%2Brestyle-calligraphy%2Bink%2Bdragon%2Bsky.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-watercolor+meadow+cartoon" label: Watercolor Cartoon Meadow Single-Shot Restyle cover: seffect/anime%2Brestyle-watercolor%2Bmeadow%2Bcartoon.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-street+rabbit+magician+neon" label: Street-Magic Rabbit Magician Neon Card Trick cover: seffect/anime%2Brestyle-street%2Brabbit%2Bmagician%2Bneon.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-qing+dynasty+painting+revival" label: Qing Dynasty Gongbi Painting Dynamic Revival cover: seffect/anime%2Brestyle-qing%2Bdynasty%2Bpainting%2Brevival.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-3d+anime+dance+peach+forest" label: 3D Anime Dance Peach-Forest Stylized cover: seffect/anime%2Brestyle-3d%2Banime%2Bdance%2Bpeach%2Bforest.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "manga+panel-nine+panel+interactive" label: Nine-Panel Grid Interactive Animation Manga cover: seffect/manga%2Bpanel-nine%2Bpanel%2Binteractive.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-fantasy+title+sequence+emerge" label: Fantasy Title Sequence Emerging From Blackness cover: seffect/anime%2Brestyle-fantasy%2Btitle%2Bsequence%2Bemerge.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-sakuga+fight+sequence" label: Stylized Cel-Animation Rooftop Duel Restyle cover: seffect/anime%2Brestyle-sakuga%2Bfight%2Bsequence.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-twin+duel+ink+red+blue" label: Twin Duel Ink Style Red and Blue Figures Clash cover: seffect/anime%2Brestyle-twin%2Bduel%2Bink%2Bred%2Bblue.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-real+to+anime+transition" label: Real Movie Texture to Anime Action Style Transition cover: seffect/anime%2Brestyle-real%2Bto%2Banime%2Btransition.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-dimensional+slash+space+shatter" label: Dimensional Slash Space Shattering Anime Attack cover: seffect/anime%2Brestyle-dimensional%2Bslash%2Bspace%2Bshatter.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-water+vs+lightning+breathing+duel" label: Water-Breathing vs Lightning-Breathing Anime Duel cover: seffect/anime%2Brestyle-water%2Bvs%2Blightning%2Bbreathing%2Bduel.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-pure+handdrawn+witch+flight" label: Pure Hand-Drawn 2D Witch Flight Moonlit Sky cover: seffect/anime%2Brestyle-pure%2Bhanddrawn%2Bwitch%2Bflight.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-chibi+neon+alien+desert" label: Chibi Fast-Paced Action Neon Alien Desert cover: seffect/anime%2Brestyle-chibi%2Bneon%2Balien%2Bdesert.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-cyber+wuxia+waterfall+duel" label: Cyber Wuxia Waterfall Duel Five Elements Style cover: seffect/anime%2Brestyle-cyber%2Bwuxia%2Bwaterfall%2Bduel.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "art+restyle-van+gogh+impressionist+swirl" label: Post-Impressionist Swirling Brushstroke Restyle cover: seffect/art%2Brestyle-van%2Bgogh%2Bimpressionist%2Bswirl.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "art+restyle-chinese+papercut+silhouette+lantern" label: Chinese Paper-Cut Silhouette Lantern Restyle cover: seffect/art%2Brestyle-chinese%2Bpapercut%2Bsilhouette%2Blantern.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "art+restyle-pixel+art+retro+bit+studio" label: Retro 8-Bit Pixel-Art Cyber Studio Restyle cover: seffect/art%2Brestyle-pixel%2Bart%2Bretro%2Bbit%2Bstudio.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+sequence-eye+opening+iris+fractal+reveal" label: Anime Eye-Opening Iris Fractal Reveal cover: seffect/anime%2Bsequence-eye%2Bopening%2Biris%2Bfractal%2Breveal.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+sequence-dojo+impact+multi+style+shifts" label: Dojo Impact Multi-Style Dimensional Shifts cover: seffect/anime%2Bsequence-dojo%2Bimpact%2Bmulti%2Bstyle%2Bshifts.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+sequence-ultrafast+metric+montage+cut+switch" label: Ultra-Fast Anime Metric Montage Character Switch cover: seffect/anime%2Bsequence-ultrafast%2Bmetric%2Bmontage%2Bcut%2Bswitch.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-90s+ova+cafe+ambush+coverflip" label: 90s OVA Cafe Ambush Table-Flip Restyle cover: seffect/anime%2Brestyle-90s%2Bova%2Bcafe%2Bambush%2Bcoverflip.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "ink+wash-tai+chi+performance" label: Ink Wash Tai Chi Painting Restyle cover: seffect/ink%2Bwash-tai%2Bchi%2Bperformance.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-claymation+stop+motion+miniature" label: Claymation Stop-Motion Miniature Workshop Restyle cover: seffect/anime%2Brestyle-claymation%2Bstop%2Bmotion%2Bminiature.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-post+impressionist+swirling+night+boat" label: Post-Impressionist Swirling Night Boat Painterly Restyle cover: seffect/anime%2Brestyle-post%2Bimpressionist%2Bswirling%2Bnight%2Bboat.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-cubist+geometric+city+walk+maze+alley" label: Cubist Geometric City Walk Maze Alley Restyle cover: seffect/anime%2Brestyle-cubist%2Bgeometric%2Bcity%2Bwalk%2Bmaze%2Balley.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "anime+restyle-kite+parkour+realistic+to+ink+drumbeat" label: Kite Parkour One-Take Realistic-to-Ink Drumbeat Restyle cover: seffect/anime%2Brestyle-kite%2Bparkour%2Brealistic%2Bto%2Bink%2Bdrumbeat.mp4 inputImageCount: 1 inputImageNote: Upload 1 human portrait photo. - value: "fighting+game-psychic+fencer+avatar+ko" label: Cel-Shaded Arcade Duel With Guardian Spirit cover: seffect/fighting%2Bgame-psychic%2Bfencer%2Bavatar%2Bko.mp4 inputImageCount: 2 inputImageNote: Upload 1 human portrait and 1 opponent character reference photo. - value: "anime+sequence-stardust+shoujo" label: Stardust Shoujo Wish Sequence cover: seffect/anime%2Bsequence-stardust%2Bshoujo.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/anime-manga-style-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": "anime+restyle-rooftop+parkour+chase", "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.