## Basic tool info Tool name: Aiwood/Fluffy-Hair Tool description: Fluffy Hair Tool cover: https://cdn.wiro.ai/uploads/models/Aiwood-Fluffy-Hair-cover.mp4 Tool categories: - model - persistent - image-to-video - h100 - lora-wan2.1 - checkpoint-file Tool tags: - action - i2v - transfer Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/Aiwood/Fluffy-Hair 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: prompt-help type: textarea default: baozhatou of a man's hair swells elongates and turns into a long curly hair, growing flowing fluffy hair, creating a baozhatou effect while talking - name: negativePrompt label: negativePrompt help: negative prompt type: textarea default: colourful, overexposed, static, blurred details, caption, style, artwork, painting, picture, still, overall grey, worst quality, low quality, jpeg compression residue, ugly, mutilated, extra fingers, poorly drawn hand, poorly drawn face, deformed, disfigured, morphologically deformed limbs, fused fingers, still frame, cluttered background, three legs, background Lots of people, walking backwards. - name: fps label: fps help: numberofoutputs-help type: number default: 16 - name: width label: width help: width-help type: number default: 0 - name: height label: height help: height-help type: number default: 0 - name: numFrames label: num-frames help: 4*n + 1 type: number default: 81 - name: steps label: inferencesteps help: inferencesteps-help type: number default: 25 - name: scale label: guidancescale help: guidancescale-help type: float default: 5.0 - name: flowShift label: flowShift help: flow shift type: float default: 5.0 ## 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/Aiwood/Fluffy-Hair" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "inputImageUrl": "input-man-3.jpg", "prompt": "baozhatou of a man's hair swells elongates and turns into a long curly hair, growing flowing fluffy hair, creating a baozhatou effect while talking", "negativePrompt": "colourful, overexposed, static, blurred details, caption, style, artwork, painting, picture, still, overall grey, worst quality, low quality, jpeg compression residue, ugly, mutilated, extra fingers, poorly drawn hand, poorly drawn face, deformed, disfigured, morphologically deformed limbs, fused fingers, still frame, cluttered background, three legs, background Lots of people, walking backwards.", "fps": 16, "width": 0, "height": 0, "numFrames": 81, "steps": 25, "scale": "5.0", "flowShift": "5.0", "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 ```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 } ``` ## 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.