Web-based UI for Stable Diffusion
Web-based UI for Stable Diffusion
Created by Sygil.Dev
Join us at Sygil.Dev’s Discord Server
Installation instructions for:
Want to ask a question or request a feature?
Come to our Discord Server or use Discussions.
Documentation
Want to contribute?
Check the Contribution Guide
Sygil-Dev main devs:
Project Features:
-
Built-in image enhancers and upscalers, including GFPGAN and realESRGAN
-
Generator Preview: See your image as its being made
-
Run additional upscaling models on CPU to save VRAM
-
Textual inversion: Reaserch Paper
-
K-Diffusion Samplers: A great collection of samplers to use, including:
k_euler
k_lms
k_euler_a
k_dpm_2
k_dpm_2_a
k_heun
PLMS
DDIM
-
Loopback: Automatically feed the last generated sample back into img2img
-
Prompt Weighting & Negative Prompts: Gain more control over your creations
-
Selectable GPU usage from Settings tab
-
Word Seeds: Use words instead of seed numbers
-
Automated Launcher: Activate conda and run Stable Diffusion with a single command
-
Lighter on VRAM: 512x512 Text2Image & Image2Image tested working on 4GB (with optimized mode enabled in Settings)
-
Prompt validation: If your prompt is too long, you will get a warning in the text output field
-
Sequential seeds for batches: If you use a seed of 1000 to generate two batches of two images each, four generated images will have seeds:
1000, 1001, 1002, 1003
. -
Prompt matrix: Separate multiple prompts using the
|
character, and the system will produce an image for every combination of them. -
[Gradio] Advanced img2img editor with Mask and crop capabilities
-
[Gradio] Mask painting 🖌️: Powerful tool for re-generating only specific parts of an image you want to change (currently Gradio only)
SD WebUI
An easy way to work with Stable Diffusion right from your browser.
Streamlit
Features:
- Clean UI with an easy to use design, with support for widescreen displays
- Dynamic live preview of your generations
- Easily customizable defaults, right from the WebUI’s Settings tab
- An integrated gallery to show the generations for a prompt
- Optimized VRAM usage for bigger generations or usage on lower end GPUs
- Text to Video: Generate video clips from text prompts right from the WebUI (WIP)
- Image to Text: Use CLIP Interrogator to interrogate an image and get a prompt that you can use to generate a similar image using Stable Diffusion.
- Concepts Library: Run custom embeddings others have made via textual inversion.
- Textual Inversion training: Train your own embeddings on any photo you want and use it on your prompt.
- **Currently in development: Stable Horde integration; ImgLab, batch inputs, & mask editor from Gradio
Prompt Weights & Negative Prompts:
To give a token (tag recognized by the AI) a specific or increased weight (emphasis), add :0.##
to the prompt, where 0.##
is a decimal that will specify the weight of all tokens before the colon.
Ex: cat:0.30, dog:0.70
or guy riding a bicycle :0.7, incoming car :0.30
Negative prompts can be added by using ###
, after which any tokens will be seen as negative.
Ex: cat playing with string ### yarn
will negate yarn
from the generated image.
Negatives are a very powerful tool to get rid of contextually similar or related topics, but be careful when adding them since the AI might see connections you can’t, and end up outputting gibberish
*Tip: Try using the same seed with different prompt configurations or weight values see how the AI understands them, it can lead to prompts that are more well-tuned and less prone to error.
Please see the Streamlit Documentation to learn more.
Gradio [Legacy]
Features:
- Older UI that is functional and feature complete.
- Has access to all upscaling models, including LSDR.
- Dynamic prompt entry automatically changes your generation settings based on
--params
in a prompt. - Includes quick and easy ways to send generations to Image2Image or the Image Lab for upscaling.
Note: the Gradio interface is no longer being actively developed by Sygil.Dev and is only receiving bug fixes.
Please see the Gradio Documentation to learn more.
Image resizing and processing
Fit or fill your input image into the desired output format by cropping or uncropping your image. This allows for composition adjustments and generative backgrounds to help the diffusion process with more pixel data.
Please see the Resize and Processing Documentation to learn more.
Image Upscalers
GFPGAN
Lets you improve faces in pictures using the GFPGAN model. There is a checkbox in every tab to use GFPGAN at 100%, and also a separate tab that just allows you to use GFPGAN on any picture, with a slider that controls how strong the effect is.
If you want to use GFPGAN to improve generated faces, you need to install it separately.
Download GFPGANv1.4.pth and put it
into the /sygil-webui/models/gfpgan
directory.
RealESRGAN
Lets you double the resolution of generated images. There is a checkbox in every tab to use RealESRGAN, and you can choose between the regular upscaler and the anime version. There is also a separate tab for using RealESRGAN on any picture.
Download RealESRGAN_x4plus.pth and RealESRGAN_x4plus_anime_6B.pth.
Put them into the sygil-webui/models/realesrgan
directory.
LSDR
Download LDSR project.yaml and model last.cpkt. Rename last.ckpt to model.ckpt and place both under sygil-webui/models/ldsr/
GoBig, and GoLatent (Currently on the Gradio version Only)
More powerful upscalers that uses a seperate Latent Diffusion model to more cleanly upscale images.
Please see the Image Enhancers Documentation to learn more.
Original Information From The Stable Diffusion Repo:
Stable Diffusion
Stable Diffusion was made possible thanks to a collaboration with Stability AI and Runway and builds upon our previous work:
High-Resolution Image Synthesis with Latent Diffusion Models
Robin Rombach*,
Andreas Blattmann*,
Dominik Lorenz\,
Patrick Esser,
Björn Ommer
CVPR ‘22 Oral
which is available on GitHub. PDF at arXiv. Please also visit our Project page.
Stable Diffusion is a latent text-to-image diffusion model. Thanks to a generous compute donation from Stability AI and support from LAION, we were able to train a Latent Diffusion Model on 512x512 images from a subset of the LAION-5B database. Similar to Google’s Imagen, this model uses a frozen CLIP ViT-L/14 text encoder to condition the model on text prompts. With its 860M UNet and 123M text encoder, the model is relatively lightweight and runs on a GPU with at least 10GB VRAM. See this section below and the model card.
Stable Diffusion v1
Stable Diffusion v1 refers to a specific configuration of the model architecture that uses a downsampling-factor 8 autoencoder with an 860M UNet and CLIP ViT-L/14 text encoder for the diffusion model. The model was pretrained on 256x256 images and then finetuned on 512x512 images.
*Note: Stable Diffusion v1 is a general text-to-image diffusion model and therefore mirrors biases and (mis-)conceptions that are present in its training data. Details on the training procedure and data, as well as the intended use of the model can be found in the corresponding model card.
Comments
-
Our codebase for the diffusion models builds heavily on OpenAI’s ADM codebase and https://github.com/lucidrains/denoising-diffusion-pytorch. Thanks for open-sourcing!
-
The implementation of the transformer encoder is from x-transformers by lucidrains.
BibTeX
@misc{rombach2021highresolution,
title={High-Resolution Image Synthesis with Latent Diffusion Models},
author={Robin Rombach and Andreas Blattmann and Dominik Lorenz and Patrick Esser and Björn Ommer},
year={2021},
eprint={2112.10752},
archivePrefix={arXiv},
primaryClass={cs.CV}
}