## Basic tool info Tool name: wiro/controlnet-sdxl-lora Tool description: SDXL ControlNet is a neural network structure to control diffusion models by adding extra conditions. Tool cover: https://cdn.wiro.ai/uploads/models/wiro-sdxl-controlnet-lora-cover.png Tool categories: - tool - sdxl - image-to-image - lora-sdxl - sdxl-conrolnet-lora Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/wiro/controlnet-sdxl-lora Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Tool Inputs: - name: selectedModel label: select-model help: select-model-help type: select default: "79" options: - value: "1201" label: King_Hatchet/SereneXL description: SereneXL triggerwords: [] generatesettings: [] - value: "1053" label: Splashed/Deep-Splashed-Something description: Deep Splashed Something triggerwords: [] generatesettings: [] - value: "927" label: Hevok/Endjourney-XL description: Endjourney XL triggerwords: [] generatesettings: [] - value: "79" label: stabilityai/stable-diffusion-xl-base-1.0 description: A text-to-image generative AI model that creates beautiful 1024x1024 images triggerwords: [] generatesettings: [] - value: "422" label: braintacles/BriXL v5.0 description: BriXL is a fine-tuned model with a special focus on science fiction and cinematic vibes. Its imperfection is what makes it shine! It has been trained on a lot of my original content as well as cinematic materials. triggerwords: [] generatesettings: [] - name: selectedModelPrivate label: select-model-private help: select-model-private-help type: select default: "" options: - name: selectedLoraModel label: select-lora-model help: select-lora-model-help type: select default: "80" options: - value: "1099" label: Coolreal/Cinematic-Anime-Portraits-Pony-XL description: Cinematic Anime Portraits Pony XL triggerwords: [] generatesettings: [{"type":"float","template":"","id":"Cinematic-Anime-Portraits-Pony-XL","placeholder":"Cinematic-Anime-Portraits-Pony-XL scale","label":"Cinematic-Anime-Portraits-Pony-XL scale","minvalue":"0.00","maxvalue":"1","value":"1.0","defaultvalue":"1.0","incrementby":"0.1","options":[],"note":""}] - value: "1375" label: HailoKnight/Weapon-Dual-Pistols description: Weapon Dual Pistols triggerwords: ["dual pistols"] generatesettings: [{"type":"float","template":"","id":"Weapon-Dual-Pistols","placeholder":"Weapon-Dual-Pistols scale","label":"Weapon-Dual-Pistols scale","minvalue":"0.00","maxvalue":"1","value":"1.0","defaultvalue":"1.0","incrementby":"0.1","options":[],"note":""}] - value: "1244" label: WizardWhitebeard/Vintage-Board-Games-Sdxl description: Vintage Board Games Sdxl triggerwords: ["Vintage board game box","vintage board game box called \"your-title\""] generatesettings: [{"type":"float","template":"","id":"Vintage-Board-Games-Sdxl","placeholder":"Vintage-Board-Games-Sdxl scale","label":"Vintage-Board-Games-Sdxl scale","minvalue":"0.00","maxvalue":"1","value":"1.0","defaultvalue":"1.0","incrementby":"0.1","options":[],"note":""}] - value: "551" label: jjhuang/JJs Interior - Santorini Style v1.0 - LoRA XL description: A text-to-image model with Stable Diffusion XL and Lora XL. The LoRA has a high capacity to generate interior design! triggerwords: ["Santorini Style"] generatesettings: [{"type":"float","template":"","id":"JJs-Interior-Santorini-Style-v1.0-LoRA-XL","placeholder":"JJs-Interior-Santorini-Style-v1.0-LoRA-XL scale","label":"JJs-Interior-Santorini-Style-v1.0-LoRA-XL scale","minvalue":"0.00","maxvalue":"1","value":"0.5","defaultvalue":"0.5","incrementby":"0.1","options":[],"note":""}] - value: "1172" label: desertPixel/Flat-Pixel-Art-SDXL description: Flat Pixel Art SDXL triggerwords: ["dpixeBw","dpixeBw style"] generatesettings: [{"type":"float","template":"","id":"Flat-Pixel-Art-SDXL","placeholder":"Flat-Pixel-Art-SDXL scale","label":"Flat-Pixel-Art-SDXL scale","minvalue":"0.00","maxvalue":"1","value":"1.0","defaultvalue":"1.0","incrementby":"0.1","options":[],"note":""}] - name: selectedLoraModelPrivate label: select-lora-model-private help: select-lora-model-private-help type: select default: "" options: - name: selectedLoraModelPrivateUrl label: LoRA Model Url help: You can provide a direct URL to a LoRA model (.safetensors). We’ll apply it during generation. You can also use links from platforms like Google Drive, AWS S3, or any publicly accessible file host. type: text default: - name: selectedControlnetModel label: select-controlnet-model help: select-controlnet-model-help type: multiselect default: "454" options: - value: "458" label: thibaud/controlnet-openpose-sdxl-1.0 description: SDXL ControlNet is a neural network structure to control diffusion models by adding extra conditions. triggerwords: [] generatesettings: [{"type":"float","template":"","id":"controlnet-openpose-sdxl-1.0","placeholder":"controlnet-openpose-sdxl-1.0 scale","label":"controlnet-openpose-sdxl-1.0 scale","minvalue":"0.00","maxvalue":"1","value":"1.0","defaultvalue":"1.0","incrementby":"0.1","options":[],"note":""}] - value: "455" label: diffusers/controlnet-depth-sdxl-1.0 description: SDXL ControlNet is a neural network structure to control diffusion models by adding extra conditions. triggerwords: [] generatesettings: [{"type":"float","template":"","id":"controlnet-depth-sdxl-1.0","placeholder":"controlnet-depth-sdxl-1.0 scale","label":"controlnet-depth-sdxl-1.0 scale","minvalue":"0.00","maxvalue":"1","value":"1.0","defaultvalue":"1.0","incrementby":"0.1","options":[],"note":""}] - value: "454" label: diffusers/controlnet-canny-sdxl-1.0 description: SDXL ControlNet is a neural network structure to control diffusion models by adding extra conditions. triggerwords: [] generatesettings: [{"type":"float","template":"","id":"controlnet-canny-sdxl-1.0","placeholder":"controlnet-canny-sdxl-1.0 scale","label":"controlnet-canny-sdxl-1.0 scale","minvalue":"0.00","maxvalue":"1","value":"1.0","defaultvalue":"1.0","incrementby":"0.1","options":[],"note":""}] - name: preprocess label: controlnet-preprocess help: controlnet-preprocess-help type: checkbox default: --pre_process - name: prompt label: prompt help: prompt-help type: textarea default: Darth vader dancing in a desert, high quality - name: negativePrompt label: negativeprompt help: negativeprompt-help type: textarea default: low quality, bad quality - name: samples label: numberofoutputs help: numberofoutputs-help type: number default: 4 - name: steps label: inferencesteps help: inferencesteps-help type: number default: 30 - name: scale label: guidancescale help: guidancescale-help type: float default: 7.5 - name: seed label: seed help: seed-help type: text default: 123456 - name: scheduler label: scheduler help: scheduler-help type: select default: EulerDiscreteScheduler options: - value: "EulerDiscreteScheduler" label: EulerDiscreteScheduler - value: "DDIMScheduler" label: DDIMScheduler - value: "LMSDiscreteScheduler" label: LMSDiscreteScheduler - value: "DPMSolverMultistepScheduler" label: DPMSolverMultistepScheduler - value: "EulerDiscreteScheduler" label: EulerDiscreteScheduler - value: "PNDMScheduler" label: PNDMScheduler - value: "DDPMScheduler" label: DDPMScheduler - value: "EulerAncestralDiscreteScheduler" label: EulerAncestralDiscreteScheduler - name: width label: width help: width-help type: number default: 1024 - name: height label: height help: height-help type: number default: 1024 ## 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/controlnet-sdxl-lora" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "selectedModel": "", "selectedModelPrivate": "", "selectedLoraModel": "", "selectedLoraModelPrivateUrl": "", "selectedControlnetModel": [], "preprocess": "--pre_process", "prompt": "Darth vader dancing in a desert, high quality", "negativePrompt": "low quality, bad quality", "samples": 4, "steps": 30, "scale": "7.5", "seed": "123456", "scheduler": "EulerDiscreteScheduler", "width": 1024, "height": 1024, "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.