Do more and simpler with your A1111 SD-webui on your Android device. Inpainting / txt2img / img2img on your sketches and photos with just a few clicks.
Download APK
- A1111 SD-webui start support on SD3 in 1.10.0.
- A1111 SD-webui 1.8.0 and prior does not support separate sampler and scheduler. When you update your SD-webui to 1.9.x, please also update the custom mode JSON and default sampler in the app.
- A1111 SD-webui 1.7.0 and prior does not support SDXL Inpainiting model. Please update to latest release.
- There are several SDXL Inpainting models on Civitai. For your instance, JuggerXL_inpaint and RealVisXL V3.0 may be a good choice.
- Support ControlNet
- Support SD3
- Support SDXL
- Support SDXL Turbo / Lightning
- Support SDXL Inpainting
- Autocomplete LORA tag in prompt
- Autocomplete Phrase setup
- Autocomplete for Custom Mode
- Select Style for prompt
- Sketch with color
- Create new paint from:
- Blank Canvas
- Capture from camera
- Output of Stable Diffusion txt2img
- shared image from other apps
- Enhance your sketch with Stable Diffusion
- Preset Modes:
- img2img(sketch) + Scribble(sketch)
- txt2img + Canny(sketch)
- txt2img + Scribble(sketch)
- SDXL (turbo) txt2img
- SDXL img2img
- Inpainting (background)
- Inpainting (sketch)
- Partial Inpainting (background)
- Partial Inpainting (sketch)
- Special Modes:
- Outpainting
- Fill with Reference
- Merge with Reference
- 12 Custom Modes
- Preset Modes:
- Painting Tools:
- Palette
- Paintbrush
- Eyedropper
- Eraser
- Undo/redo
- Zooming / Panning
- Preset values for your prompt
- Prompt Prefix
- Prompt Postfix
- Negative Prompt
- 4 Canvas aspect ratio: wide landscape, landscape, portrait and square
- Upscaler
- Long press image on Main Screen to delete
- Group related sketches
- Support multiple ControlNet
- Keep EXIF of shared content in your SD output
- Batch size
- Mask Blur
- Import and Export Settings
Custom mode can be defined in JSON format.
- Partial inpaint with POSE
{"type":"inpaint","denoise":0.75, "baseImage":"background", "inpaintFill":1, "inpaintPartial":1, "cn":[{"cnInputImage":"background", "cnModelKey":"cnPoseModel", "cnModule":"openpose_full", "cnWeight":1.0, "cnControlMode":0}], "sdSize":768}
- Color fix
{"type":"inpaint","denoise":0.5, "baseImage":"background", "inpaintFill":1, "inpaintPartial":1, "cn":[{"cnInputImage":"background", "cnModelKey":"cnSoftedgeModel", "cnModule":"softedge_pidinet", "cnWeight":1.0, "cnControlMode":0}], "sdSize":1024}
- Mild Enhance
{"type":"inpaint","denoise":0.15, "baseImage":"background", "inpaintFill":1, "inpaintPartial":1, "cn":[{"cnInputImage":"background", "cnModelKey":"cnTileModel", "cnModule":"tile_resample", "cnModuleParamA":1, "cnWeight":1.0, "cnControlMode":0}], "sdSize":1024}
- Heavy Enhance
{"type":"inpaint","denoise":0.4, "baseImage":"background", "inpaintFill":1, "inpaintPartial":1, “cn”:[{"cnInputImage":"background", "cnModelKey":"cnTileModel", "cnModule":"tile_colorfix+sharp", "cnModuleParamA":5, "cnModuleParamB":0.2, "cnWeight":1.0, "cnControlMode":0}], "sdSize":1024}
- Partial Redraw
{"type":"inpaint", "denoise":0.7, "baseImage":"background", "inpaintFill":1, "inpaintPartial":1, "sdSize":1024}
- Get similar image
{"type":"txt2img", "cn":[{"cnInputImage":"background", "cnModelKey":"cnNoneModel", "cnModule":"reference_only", "cnWeight":1.0, "cnControlMode":2}]}
- Tiles Refiner
{"type":"img2img", "denoise":0.4, "baseImage":"background", "cn":[{ "cnInputImage":"background", "cnModelKey":"cnTileModel", "cnModule":"tile_colorfix+sharp", "cnModuleParamA":4, "cnModuleParamB":0.1, "cnWeight":1.0}], "sdSize":1024}
- Partial Inpaint with LORA
{"type":"inpaint", "denoise":0.9, "cfgScale":7, "inpaintFill":1, "baseImage":"background", "sdSize":1024, "model":"v1Model"}
Variable | txt2img | img2img | inpainting | Value |
---|---|---|---|---|
name |
O | O | O | Name of this custom mode. |
prompt |
O | O | O | Postfix for this mode on prompt. |
negPrompt |
O | O | O | Postfix for this mode on negative prompt. |
type |
M | M | M | txt2img - Text to Image img2img - Image to Image inpaint - Inpainting |
steps |
O | O | O | integer from 1 to 120, default value is 40 |
cfgScale |
O | O | O | decimal from 0 to 30, default value is 7.0 |
model |
O | O | O | v1Model - Default for type =txt2img and type =img2img v1Inpaint - Default for type =inpaint sdxlBase - Default for SDXL txt2img mode sdxlInpaint sdxlTurbo - Default for SDXL Turbo txt2img mode sd3Model - Default for SD3 txt2img mode |
sampler |
O | O | O | Can use all samplers available in your A1111 webui. |
scheduler |
O | O | O | Automatic - Default Possible values are Uniform , Exponential , Karras , Polyexponential and SGM Uniform |
maskBlur |
O | O | O | decimal from 0 to 50, default value is 10. |
denoise |
- | M | M | decimal from 0 to 1 |
baseImage |
- | M | M | background - background image under your drawing sketch - your drawing on the background image |
inpaintFill |
- | - | O | 0 - fill (DEFAULT) 1 - original 2 - latent noise 3 - latent nothing |
inpaintPartial |
- | - | O | 0 - Inpainting on whole image (DEFAULT) 1 - Inpainting on "painted" area and paste on original image |
sdSize |
O | O | O | Output resolution of SD. Default value is configured in setting. Suggested value: 512 / 768 / 1024 / 1280 |
clipSkip |
O | O | O | Clip skip for v1.5 Model. Default value is configured in setting. Suggested value: 1-2 |
cn |
O | O | O | JSON Array for ControlNet Object |
(M - Mandatory; O - Optional)
Variable | Value |
---|---|
cnInputImage |
background - background image under your drawing sketch - your drawing and the background image reference - reference image |
cnModelKey |
cnTileModel - CN Tile Model cnPoseModel - CN Pose Model cnCannyModel - CN Canny Model cnScribbleModel - CN Scribble Model cnDepthModel - CN Depth Model cnNormalModel - CN Normal Model cnMlsdModel - CN MLSD Model cnLineartModel - CN Line Art Model cnSoftedgeModel - CN Soft Edge Model cnSegModel - CN Seg Model cnIPAdapterModel - CN IP-Adapter Model cnxlIPAdapterModel - CN IP-Adapter XL Model cnOther1Model - Other CN Model 1 cnOther2Model - Other CN Model 2 cnOther3Model - Other CN Model 3 |
cnModel |
Alternative for cnModelKey . Value can be any valid CN models name with hash code. |
cnModule |
CN Module that ControlNet provided. Typical values are: tile_resample / reference_only / openpose_full / canny / depth_midas / scribble_hed For full list, please refer to the Automatic1111 web UI. |
cnControlMode |
0 - Balanced (DEFAULT) 1 - My prompt is more important 2 - ControlNet is more important |
cnWeight |
decimal from 0 to 1 |
cnResizeMode |
0 - Just Resize 1 - Crop and Resize 2 - Resize and Fill (default) |
cnModuleParamA |
First Parameter for ControlNet Module |
cnModuleParamB |
Second Parameter for ControlNet Module |
cnStart |
Starting Control Step (default 0.0) |
cnEnd |
Ending Control Step (default 1.0) |
sdSketchDemo.mp4
Before using Stable Diffusion Sketch, you need to install and set up the following on your server:
- Stable Diffusion Web UI by AUTOMATIC1111
- Install sd-webui-controlnet extension on Stable Diffusion Web UI
- Enable the API and listen on all network interfaces by editing the running script webui-user.bat:
set COMMANDLINE_ARGS=--api --listen
- Put your perferenced SD model under stable-diffusion-webui/models/Stable-diffusion folder. You may selected one from Civitai.
- Put your perferenced ControlNet Model under stable-diffusion-webui/extensions/sd-webui-controlnet/models folder.
- Scribble, Canny, Depth, Tile and Pose model are needed.
- Default supported model can be download from lllyasviel's ControlNet v1.1 Hugging Face card
- ControlNet Model needed to match with your SD model in order to get it working. i.e. If your ControlNet model are build for SD1.5, then your SD model need to be SD1.5 based.
Here's how to use Stable Diffusion Sketch:
- Start the Stable Diffusion Web UI on your server.
- Download and install the Stable Diffusion Sketch APK on your Android device.
- Open the app and input the network address of your Stable Diffusion server in the "Stable Diffusion Server Address" field.
- If both of your Android device and Server are on the same intranet, you can use the intranet IP, i.e. 192.168.xxx.xxx / 10.xxx.xxx.xxx. You can get this IP by running
ipconfig /all
on Windows orifconfig --all
on MacOS/Linux. - If your Android device is on public internet, and your server is on intranet, you need to config your router NAT/Firewall and DDNS. In this case, use the internet IP and translated port number as the server address.
- You can test the server address by using it on Android device's web browser. If it is valid, then you will see automatic1111's webui running on your web browser.
- If both of your Android device and Server are on the same intranet, you can use the intranet IP, i.e. 192.168.xxx.xxx / 10.xxx.xxx.xxx. You can get this IP by running
- In the app, select SD Model, Inpainting Model, Sampler, Upscaler and ControlNet model.
- Start sketching and let Stable Diffusion do the magic!
Stable Diffusion Sketch is licensed under the GNU General Public License v3.0.