## Basic tool info Tool name: wiro/image-inpainting-sd Tool description: Transform your image editing experience with our AI generative model-based image inpainting solution Tool cover: https://cdn.wiro.ai/uploads/models/wiro-image-inpainting-cover.jpg Tool categories: - tool - sd - image-to-image - inpainting Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/wiro/image-inpainting-sd Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Tool Inputs: - name: selectedModel label: select-model help: selct-model-help type: select default: "1" options: - value: "632" label: ItsJayQz/GTA5_Artwork_Diffusion description: This model was trained on the loading screens, gta storymode, and gta online DLCs artworks. Which includes characters, background, chop, and some objects. The model can do people and portrait pretty easily, as well as cars, and houses. triggerwords: ["gtav style"] generatesettings: [] - value: "482" label: SG161222/Realistic Vision v6.0 B1 noVAE description: An instruction-based image editing model triggerwords: [] generatesettings: [] - value: "481" label: SG161222/Realistic Vision v5.1 noVAE description: An instruction-based image editing model triggerwords: [] generatesettings: [] - value: "466" label: stabilityai/stable-video-diffusion-img2vid-xt description: Stable Video Diffusion (SVD) Image-to-Video is a diffusion model that takes in a still image as a conditioning frame, and generates a video from it. triggerwords: [] generatesettings: [] - value: "56" label: stabilityai/stable-diffusion-2-depth description: This stable-diffusion-2-depth model is resumed from stable-diffusion-2-base and finetuned for 200k steps. triggerwords: [] generatesettings: [] - value: "54" label: Lykon/dreamshaper-8 description: DreamShaper started as a model to have an alternative to MidJourney in the open source world. triggerwords: [] generatesettings: [] - value: "53" label: Falah/fashion-model description: Generate images of fashionable clothes for women based on SD 1.5. triggerwords: [] generatesettings: [] - value: "52" label: Lykon/NeverEnding-Dream description: This model is great at generating cosplay images, generating anime pictures, generating good-looking people, generating realistic animals, generating images using booru-like tags. triggerwords: [] generatesettings: [] - value: "51" label: 22h/vintedois-diffusion-v0-2 description: This model was trained on a large amount of high quality images with simple prompts to generate beautiful images without a lot of prompt engineering. triggerwords: ["estilovintedois"] generatesettings: [] - value: "50" label: Envvi/Inkpunk-Diffusion description: Finetuned Stable Diffusion model trained on dreambooth. Vaguely inspired by Gorillaz, FLCL, and Yoji Shinkawa. triggerwords: ["nvinkpunk"] generatesettings: [] - value: "49" label: wavymulder/modelshoot description: Modelshoot is trained on a diverse set of photographs of people. The goal was to create a model focused on full to medium body shots, with cool clothing and a fashion-shoot aesthetic. triggerwords: ["modelshoot style"] generatesettings: [] - value: "45" label: SG161222/Realistic Vision v2.0 description: An instruction-based image editing model triggerwords: ["RAW photo","(high detailed skin:1.2)","dslr","soft lighting","Fujifilm XT3"] generatesettings: [] - value: "44" label: radames/stable-diffusion-v1-5-img2img description: Stable Diffusion is a latent text-to-image diffusion model capable of generating photo-realistic images given any text input. triggerwords: [] generatesettings: [] - value: "43" label: stable-diffusion-v1-5/stable-diffusion-inpainting description: Stable Diffusion Inpainting is a latent text-to-image diffusion model capable of generating photo-realistic images given any text input. triggerwords: [] generatesettings: [] - value: "7" label: dallinmackay/Van Gogh Diffusion description: A fine-tuned Stable Diffusion model (based on v1.5) trained on screenshots from the film Loving Vincent. triggerwords: ["lvngvncnt"] generatesettings: [] - value: "6" label: wavymulder/portraitplus description: A dreambooth model trained on a diverse set of close to medium range portraits of people. triggerwords: ["portrait+ style"] generatesettings: [] - value: "5" label: prompthero/openjourney-v4 description: A text-to-image diffusion model that makes AI art images in the style of Midjourney. triggerwords: [] generatesettings: [] - value: "4" label: plasmo/vox2 description: 3D pixel art, Jak's Voxel-ish Image Pack v.1.2 for Stable Diffusion triggerwords: ["voxel-ish"] generatesettings: [] - value: "3" label: stabilityai/stable-diffusion-2-1 description: Model is fine-tuned from stable-diffusion-2 with an additional 55k steps on the same dataset, and then fine-tuned for another 155k extra steps. triggerwords: [] generatesettings: [] - value: "2" label: stable-diffusion-v1-5/stable-diffusion-v1-5 description: A latent text-to-image diffusion model capable of generating photo-realistic images given any text input,initialized with the weights of the Stable-Diffusion-v1-2 checkpoint. triggerwords: [] generatesettings: [] - value: "1" label: CompVis/stable-diffusion-v1-4 description: A latent text-to-image diffusion model capable of generating photo-realistic images given any text input. triggerwords: [] generatesettings: [] - name: selectedModelPrivate label: select-model-private help: select-model-private-help type: select default: "" options: - name: inputImageUrl label: input-image-url help: input-image-url-help type: text default: - name: inputImageMaskUrl label: input-image-mask-url help: input-image-mask-url-help type: text default: - name: prompt label: prompt help: prompt-help type: textarea default: handsome man with sunglasses, realistic, highly detailed - name: negativePrompt label: negativeprompt help: negativeprompt-help type: textarea default: painted illustration - name: samples label: numberofoutputs help: numberofoutputs-help type: number default: 1 - name: steps label: inferencesteps help: inferencesteps-help type: number default: 30 - name: scale label: guidancescale help: guidancescale-help type: float default: 7.5 - name: strength label: strength help: strength-help type: float default: 0.85 - 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: 512 - name: height label: height help: height-help type: number default: 512 ## 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/image-inpainting-sd" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "selectedModel": "", "selectedModelPrivate": "", "inputImageUrl": "input-inpainting.png", "inputImageMaskUrl": "input-inpainting-mask.jpeg", "prompt": "handsome man with sunglasses, realistic, highly detailed", "negativePrompt": "painted illustration", "samples": 1, "steps": 30, "scale": "7.5", "strength": "0.85", "seed": "123456", "scheduler": "EulerDiscreteScheduler", "width": 512, "height": 512, "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.