## Basic tool info Model name: pruna/vace Model description: Vace powered by Pruna AI Model cover: https://cdn.wiro.ai/uploads/models/pruna-vace-cover.mp4 Model categories: - tool - use-agent - partner - pruna - text-to-video - image-to-video Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/pruna/vace Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Model Inputs: - name: prompt label: Prompt help: type: textarea default: A serene and beautiful cinematic scene capturing a majestic deer moving gracefully through a pristine, quiet, and snow-covered forest during early morning. - name: inputImage label: Images help: Optional. Use 1-3 clear, high-quality images for character consistency type: combinefileinput default: pruna-vace-input-3-1.jpg,pruna-vace-input-3-2.jpg - name: resolution label: Resolution help: type: select default: 480p options: - value: "480p" label: 480p - value: "720p" label: 720p - name: ratio label: Aspect Ratio help: Auto will calculate from reference image, if no image provided it will set 16:9 by default type: select default: auto options: - value: "auto" label: Auto (from image) - value: "16:9" label: 16:9 (Landscape) - value: "9:16" label: 9:16 (Portrait) - name: frameNum label: Frame Number help: Number of frames to generate type: text default: 81 - name: speedMode label: Speed Mode help: Balance between speed and quality type: select default: Lightly Juiced ๐ŸŠ (more consistent) options: - value: "Lightly Juiced ๐ŸŠ (more consistent)" label: Lightly Juiced ๐ŸŠ (best quality) - value: "Juiced ๐Ÿ”ฅ (more speed)" label: Juiced ๐Ÿ”ฅ (balanced) - value: "Extra Juiced ๐Ÿš€ (even more speed)" label: Extra Juiced ๐Ÿš€ (fastest) - name: sampleSteps label: Sample Steps help: Higher values = better quality, slower generation type: text default: 50 - name: sampleSolver label: Sample Solver help: Sampling algorithm type: select default: unipc options: - value: "unipc" label: UniPC - value: "dpm++" label: DPM++ - name: guidanceScale label: Guidance Scale help: How closely to follow the prompt (higher = stricter) type: text default: 5 - name: sampleShift label: Sample Shift help: Sample shift parameter for fine-tuning type: text default: 16 - name: seed label: Seed help: Random seed for reproducibility. Use 0 for random seed type: text default: 1234 ## Model Parameter Inspires: - prompt: A wide, tranquil shot of a rocky coastline just after sunrise. The waves crash gently against the moss-covered rocks, leaving a white foam trail. A solitary fisherman in a bright yellow rain slicker is casting a line into the sea from a small jetty. The air is slightly misty and cool. The sound of the gulls and the ocean waves is prominent. The camera slowly zooms out to show the vastness of the ocean. Hyper-realistic, 8K detail, natural soundscape, serene atmosphere, realistic color and texture. - inputImage: - prompt: A hyper-realistic, medium shot of a crowded city bus during the morning rush hour. Sunlight streams through the dusty windows, illuminating specks of dust floating in the air. A young woman is looking out the window, her reflection visible on the glass. The camera slowly focuses on the rhythmic movement of the passing cityscapeโ€”buildings, trees, and traffic lights. The scene is slightly shaky from the bus\'s movement. Rainy weather, hyper-realistic, documentary style, natural color grading, ambient noise present. - inputImage: - prompt: A cinematic, slow-motion video featuring the two individuals from the provided image, standing in the same expansive grassy field under a clear blue sky. The woman, in her striped sweater and red skirt, slowly turns her head and shifts her gaze towards the camera. The man, in his yellow shirt and red pants, subtly adjusts his tie. Include a slow, steady camera pan around them, and a close-up of the grass swaying gently in slow motion. The mood is quirky, stylish, and contemplative, with bright, natural daylight. High-definition, clean aesthetic, Wes Anderson-inspired. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/pruna-vace-input-2.jpg - prompt: A serene and beautiful cinematic scene capturing a majestic deer moving gracefully through a pristine, quiet, and snow-covered forest during early morning. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/pruna-vace-input-3-1.jpg,https://cdn.wiro.ai/uploads/sampleinputs/pruna-vace-input-3-2.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/pruna/vace" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "prompt": "A serene and beautiful cinematic scene capturing a majestic deer moving gracefully through a pristine, quiet, and snow-covered forest during early morning.", "inputImage": [ "pruna-vace-input-3-1.jpg", "pruna-vace-input-3-2.jpg" ], "resolution": "480p", "ratio": "auto", "frameNum": "81", "speedMode": "Lightly Juiced ๐ŸŠ (more consistent)", "sampleSteps": "50", "sampleSolver": "unipc", "guidanceScale": "5", "sampleShift": "16", "seed": "1234", "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.