## Basic tool info Model name: wiro/Product Ads Model description: Transform product images into stunning animated video ads with 100+ creative presets. Choose from effects like water splashes, scene transitions, surreal staging, and seasonal themes. Model cover: https://cdn.wiro.ai/uploads/models/wiro-product-ads-cover.mp4 Model categories: - tool - use-agent - quick-showcase - wiroEcommerce - wiroEntertainment - fast-inference - image-to-video - product-ads Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/wiro/product-ads Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Model Inputs: - name: inputImage label: Input Image help: Required: Product photo type: combinefileinput default: input-product-7.jpg - name: videoMode label: Video Mode help: Required. type: select default: std options: - value: "std" label: Standard - value: "pro" label: Pro - name: effectType label: Effect Type help: Required type: selectwithcover default: animate-products-smoky-pedestal options: - value: "animate-products-smoky-pedestal" label: Smoky Pedestal - value: "animate-products-water-petals" label: Water Petals - value: "animate-products-water-dark-electric-hues" label: Water Dark Electric Hues - value: "animate-products-snow" label: Snow - value: "animate-products-glitter-silver" label: Glitter Silver - value: "animate-products-roses-smoke" label: Roses Smoke - value: "animate-products-car-warehouse" label: Car Warehouse - value: "animate-products-water-splashes-light" label: Water Splashes Light - value: "animate-products-falling-petals" label: Falling Petals - value: "animate-products-liquid-gold" label: Liquid Gold - value: "animate-products-oil-bubbles" label: Oil Bubbles - value: "animate-products-golden-fireworks" label: Golden Fireworks - value: "animate-products-led-strips" label: Led Strips - value: "animate-products-water-fruits-splash" label: Water Fruits Splash - value: "animate-products-smoke-reveal" label: Smoke Reveal - value: "animate-products-rose-petals" label: Rose Petals - value: "animate-products-led-strips-colorful" label: Led Strips Colorful - value: "animate-products-water-cinematic" label: Water Cinematic - value: "animate-products-roses-candles" label: Roses Candles - value: "animate-products-car-road-seaside" label: Car Road Seaside - value: "animate-products-car-road-city-night" label: Car Road City Night - value: "animate-products-bar-people" label: Bar People - value: "animate-products-car-road-forest" label: Car Road Forest - value: "animate-products-car-road-snow" label: Car Road Snow - value: "animate-products-rustic-table-fireplace" label: Rustic Table Fireplace - value: "animate-products-heat-fumes-countertop" label: Heat Fumes Countertop - value: "animate-products-water-rain" label: Water Rain - value: "animate-products-ink-clouds" label: Ink Clouds - value: "animate-products-beach-palm" label: Beach Palm - value: "animate-products-sea-platform" label: Sea Platform - value: "animate-products-mist-ribbons-petals" label: Mist Ribbons Petals - value: "animate-products-confetti" label: Confetti - value: "animate-products-waterfall" label: Waterfall - value: "animate-products-satin-fabric" label: Satin Fabric - value: "animate-products-pink-ribbons" label: Pink Ribbons - value: "scene-morphs-studio-to-cafe" label: Studio To Cafe - value: "scene-morphs-product-jumps-billboards" label: Product Jumps Billboards - value: "scene-morphs-luminous-studio" label: Luminous Studio - value: "scene-morphs-bubble-to-flower-field" label: Bubble To Flower Field - value: "scene-morphs-helicopter-to-city" label: Helicopter To City - value: "scene-morphs-fire-and-ice" label: Fire And Ice - value: "scene-morphs-factory-to-delivery" label: Factory To Delivery - value: "scene-morphs-winter-to-summer-in-grass-field" label: Winter To Summer In Grass Field - value: "scene-morphs-desert-to-jungle-morph" label: Desert To Jungle Morph - value: "scene-morphs-sky-to-eiffel-tower" label: Sky To Eiffel Tower - value: "scene-morphs-product-crystals" label: Product Crystals - value: "scene-morphs-waiter-hand-to-bar-counter" label: Waiter Hand To Bar Counter - value: "scene-morphs-underwater-to-sky" label: Underwater To Sky - value: "scene-morphs-rocket-to-space" label: Rocket To Space - value: "surreal-product-staging-claw-machine" label: Claw Machine - value: "surreal-product-staging-3d-waterfall-billboard" label: 3d Waterfall Billboard - value: "surreal-product-staging-truck-spring-product" label: Truck Spring Product - value: "surreal-product-staging-product-simple-clouds" label: Product Simple Clouds - value: "surreal-product-staging-helicopter-city-product" label: Helicopter City Product - value: "surreal-product-staging-dome-product" label: Dome Product - value: "surreal-product-staging-make_it_big" label: Make_it_big - value: "surreal-product-staging-object-on-wheels-fair" label: Object On Wheels Fair - value: "surreal-product-staging-oversized-billboard" label: Oversized Billboard - value: "surreal-product-staging-toy-packaging-luxury-product" label: Toy Packaging Luxury Product - value: "surreal-product-staging-parachute-clouds-product" label: Parachute Clouds Product - value: "surreal-product-staging-commerial-with-splash" label: Commerial With Splash - value: "surreal-product-staging-tiny-product-held" label: Tiny Product Held - value: "surreal-product-staging-object-carousel" label: Object Carousel - value: "surreal-product-staging-balloon-landscape-product" label: Balloon Landscape Product - value: "surreal-product-staging-rock-floating-product" label: Rock Floating Product - value: "surreal-product-staging-golden-waterfall" label: Golden Waterfall - value: "surreal-product-staging-paraglider-jungle-product" label: Paraglider Jungle Product - value: "surreal-product-staging-product-crystals" label: Product Crystals - value: "surreal-product-staging-product-in-a-bottle" label: Product In A Bottle - value: "surreal-product-staging-floating-items" label: Floating Items - value: "surreal-product-staging-toy-packaging-product" label: Toy Packaging Product - value: "surreal-product-staging-product-in-calm" label: Product In Calm - value: "surreal-product-staging-receipt-to-floating" label: Receipt To Floating - value: "surreal-product-staging-product-in-flower-blooming" label: Product In Flower Blooming - value: "surreal-product-staging-cupcake-balloons-plane" label: Cupcake Balloons Plane - value: "surreal-product-staging-magic-portal-dispelled" label: Magic Portal Dispelled - value: "surreal-product-staging-balloons-product" label: Balloons Product - value: "surreal-product-staging-donut-on-ice" label: Donut On Ice - value: "surreal-product-staging-airplane-window-clouds" label: Airplane Window Clouds - value: "surreal-product-staging-venice-boat" label: Venice Boat - value: "product-on-model-object-studio-held-model" label: Object Studio Held Model - value: "product-on-model-oversized-object-with-model" label: Oversized Object With Model - value: "product-on-model-model-wearing-product-beach" label: Model Wearing Product Beach - value: "product-on-model-model-wearing-product-jungle" label: Model Wearing Product Jungle - value: "product-on-model-product-heels-on-feet" label: Product Heels On Feet - value: "product-on-model-product-wore-by-model-in-studio" label: Product Wore By Model In Studio - value: "product-on-model-product-wore-by-model-in-mirror" label: Product Wore By Model In Mirror - value: "product-on-model-model-product-editorial-portrait" label: Model Product Editorial Portrait - value: "product-on-model-object-held-by-model-in-studio" label: Object Held By Model In Studio - value: "product-on-model-product-wore-by-model-in-paris" label: Product Wore By Model In Paris - value: "christmas-presets-christmas-snow-globe2" label: Christmas Snow Globe2 - value: "christmas-presets-product-as-ornaments" label: Product As Ornaments - value: "christmas-presets-cable-car-miniture" label: Cable Car Miniture - value: "christmas-presets-christmas-santa-chimney" label: Christmas Santa Chimney - value: "christmas-presets-christmas-train" label: Christmas Train - value: "christmas-presets-christmas-snowman-skating" label: Christmas Snowman Skating - value: "christmas-presets-merry-go-round-to-elves" label: Merry Go Round To Elves - value: "christmas-presets-merry-go-round-christmas" label: Merry Go Round Christmas - value: "christmas-presets-winter-chariot" label: Winter Chariot ## 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/product-ads" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "inputImage": "input-product-7.jpg", "videoMode": "std", "effectType": "animate-products-smoky-pedestal", "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.