## Basic tool info Tool name: Wan-AI/Wan2.2-I2V-A14B Tool description: Wan2.2-I2V-A14B model, designed for image-to-video generation, supporting both 480P and 720P resolutions. Built with a Mixture-of-Experts (MoE) architecture, it achieves more stable video synthesis with reduced unrealistic camera movements and offers enhanced support for diverse stylized scenes. Tool cover: https://cdn.wiro.ai/uploads/models/Wan-AI-Wan2.2-I2V-A14B-cover.mp4 Tool categories: - text-to-video - quick-showcase - persistent - model - h100 - checkpoint-folder - wan2.2 - compare-landscape Tool tags: - video - realistic - image-to-video Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/Wan-AI/Wan2.2-I2V-A14B Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Tool Inputs: - name: inputImageUrl label: input-image-url help: input-image-url-help type: text default: - name: prompt label: prompt help: The prompt to generate the image or video from. type: textarea default: Cinematic medium shot, warm contrasting lighting. A man sits on a large industrial pipe, holding and reading a newspaper. The top of the newspaper catches the warm glow from nearby flames, which flicker naturally in the background. The firelight casts shifting highlights across the newspaper and the man's face while the flames move fluidly. The camera remains still, focusing on the subtle motion of the flames and the realistic play of light and shadow. - name: negativePrompt label: negativeprompt help: Specify what to exclude from the output. type: textarea default: bad quality, unrealistic flame motion, low detail in paper texture, unnatural lighting - name: resolution label: resolution help: Resolution. type: select default: 480P options: - value: "480P" label: 480P - value: "580P" label: 580P - value: "720P" label: 720P - name: aspectRatio label: Aspect Ratio help: Aspect Ratio. type: select default: Default options: - value: "Default" label: Default - value: "16:9" label: 16:9 - value: "9:16" label: 9:16 - value: "1:1" label: 1:1 - name: numFrames label: Number of Frames help: How many frames to sample from a image or video. The number should be 4n+1 type: number default: 81 - name: scale label: guidancescale help: guidancescale-help type: float default: 5.0 - name: steps label: inferencesteps help: The sampling steps. type: number default: 25 - name: fps label: fps help: Frames Per Second type: number default: 16 - name: seed label: seed help: seed-help type: text default: 42 ## Tool Parameter Inspires: - prompt: A cinematic camera shot rotating 360 degrees around a classic red Volkswagen Beetle parked on a scenic countryside road. The camera moves smoothly and steadily around the car. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/image-to-video-input-1.jpeg - prompt: Summer beach vacation style, a white cat wearing sunglasses sits on a surfboard. The fluffy-furred feline gazes directly at the camera with a relaxed expression. Blurred beach scenery forms the background featuring crystal-clear waters, distant green hills, and a blue sky dotted with white clouds. The cat assumes a naturally relaxed posture, as if savoring the sea breeze and warm sunlight. A close-up shot highlights the feline's intricate details and the refreshing atmosphere of the seaside. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/image-to-video-input-1.jpeg - prompt: A serene moonlit backyard with a modern swimming pool gently reflecting the moonlight. The camera slowly glides forward from the garden entrance toward the pool, passing by softly swaying palm trees and glowing ambient garden lights. The night sky is full of stars, and the atmosphere is peaceful and cinematic. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/image-to-video-input-3.png - prompt: A hyper-realistic, ultra-cute, fluffy white bird with large black eyes and pastel-colored wings and tail (pink, blue, yellow, purple) standing on a sandy beach at golden hour. The waves gently roll in the background with soft bokeh light reflections. The bird tilts its head curiously and blinks, its feathers moving slightly in the ocean breeze. Seashells rest near its tiny feet. The sunlight glows warmly, creating a dreamy and magical seaside atmosphere. Cinematic shallow depth of field, soft focus, 8K quality. - prompt: A lush green forest with tall trees and sunrays beaming through the leaves. The camera gently moves forward along a narrow dirt path, passing through ferns, mossy rocks, and scattered fallen leaves. Birds chirp in the background as the scene feels calm, immersive, and full of natural beauty. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/image-to-video-input-4.jpg - prompt: Cinematic medium shot, warm contrasting lighting. A man sits on a large industrial pipe, holding and reading a newspaper. The top of the newspaper catches the warm glow from nearby flames, which flicker naturally in the background. The firelight casts shifting highlights across the newspaper and the man's face while the flames move fluidly. The camera remains still, focusing on the subtle motion of the flames and the realistic play of light and shadow. - negativePrompt: bad quality, unrealistic flame motion, low detail in paper texture, unnatural lighting - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/wanai_wan2.2_i2v_input_2.jpg - prompt: Dimly lit room, cinematic close-up, warm golden tones. A long row of candles rests on an aged wooden table. One by one, each wick catches fire, small flames flickering gently until all the candles are glowing brightly, casting soft dancing shadows across the scene. After a brief pause, all flames go out at the same moment, leaving thin trails of smoke rising and fading into the darkness. - negativePrompt: bad quality, unrealistic fire motion, low detail in smoke, unnatural lighting changes - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/wanai_wan2.2_i2v_input_1.jpg ## 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/Wan-AI/Wan2.2-I2V-A14B" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "inputImageUrl": "wan_2_2_input.jpg", "prompt": "Cinematic medium shot, warm contrasting lighting. A man sits on a large industrial pipe, holding and reading a newspaper. The top of the newspaper catches the warm glow from nearby flames, which flicker naturally in the background. The firelight casts shifting highlights across the newspaper and the man's face while the flames move fluidly. The camera remains still, focusing on the subtle motion of the flames and the realistic play of light and shadow.", "negativePrompt": "bad quality, unrealistic flame motion, low detail in paper texture, unnatural lighting", "resolution": "480P", "aspectRatio": "Default", "numFrames": 81, "scale": "5.0", "steps": 25, "fps": 16, "seed": "42", "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.