Convert Figma logo to code with AI

AUTOMATIC1111 logostable-diffusion-webui

Stable Diffusion web UI

139,306
26,433
139,306
2,270

Top Related Projects

22,788

InvokeAI is a leading creative engine for Stable Diffusion models, empowering professionals, artists, and enthusiasts to generate and create visual media using the latest AI-driven technologies. The solution offers an industry leading WebUI, supports terminal use through a CLI, and serves as the foundation for multiple commercial products.

High-Resolution Image Synthesis with Latent Diffusion Models

22,785

InvokeAI is a leading creative engine for Stable Diffusion models, empowering professionals, artists, and enthusiasts to generate and create visual media using the latest AI-driven technologies. The solution offers an industry leading WebUI, supports terminal use through a CLI, and serves as the foundation for multiple commercial products.

49,866

The most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.

Quick Overview

AUTOMATIC1111/stable-diffusion-webui is a browser interface for Stable Diffusion, a popular AI image generation model. This project provides a user-friendly GUI with extended functionality, allowing users to generate, edit, and manipulate images using various AI models and techniques.

Pros

  • Easy-to-use web interface for Stable Diffusion
  • Extensive features including inpainting, outpainting, and prompt editing
  • Active community with frequent updates and improvements
  • Support for multiple models and extensions

Cons

  • Can be resource-intensive, requiring a powerful GPU for optimal performance
  • Setup process may be challenging for less technical users
  • Some features may require additional downloads or setup
  • Occasional stability issues due to rapid development and updates

Getting Started

  1. Clone the repository:

    git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
    
  2. Navigate to the project directory:

    cd stable-diffusion-webui
    
  3. Run the appropriate script for your operating system:

    • Windows: webui-user.bat
    • Linux/macOS: ./webui.sh
  4. Open a web browser and go to http://localhost:7860 to access the interface.

Note: Ensure you have Python 3.10+ installed and a compatible GPU with the necessary drivers. Some models may need to be downloaded separately due to licensing restrictions.

Competitor Comparisons

22,788

InvokeAI is a leading creative engine for Stable Diffusion models, empowering professionals, artists, and enthusiasts to generate and create visual media using the latest AI-driven technologies. The solution offers an industry leading WebUI, supports terminal use through a CLI, and serves as the foundation for multiple commercial products.

Pros of InvokeAI

  • More user-friendly interface, especially for beginners
  • Better documentation and community support
  • Integrated support for multiple AI models beyond Stable Diffusion

Cons of InvokeAI

  • Fewer advanced features and customization options
  • Slower development cycle and updates
  • Less extensive plugin ecosystem

Code Comparison

InvokeAI:

from invokeai.app.services.image_records.image_records_common import ImageCategory, ResourceOrigin
from invokeai.app.invocations.baseinvocation import BaseInvocation, InputField, InvocationContext, invocation

stable-diffusion-webui:

from modules import sd_samplers, sd_models, images, scripts, shared
from modules.processing import StableDiffusionProcessing
from modules.sd_samplers import samplers

The code snippets show that InvokeAI uses a more modular and structured approach, while stable-diffusion-webui has a more direct import style. This reflects InvokeAI's focus on extensibility and stable-diffusion-webui's emphasis on performance and flexibility.

High-Resolution Image Synthesis with Latent Diffusion Models

Pros of stablediffusion

  • Official implementation from Stability AI, ensuring compatibility with the latest model updates
  • More focused on research and development of the core Stable Diffusion technology
  • Provides a clean, modular codebase for easier integration into other projects

Cons of stablediffusion

  • Less user-friendly interface compared to stable-diffusion-webui
  • Fewer built-in features and extensions for image generation and manipulation
  • Requires more technical knowledge to set up and use effectively

Code Comparison

stable-diffusion-webui:

from modules import sd_samplers
sampler = sd_samplers.create_sampler(name, model)
samples = sampler.sample(model, x, conditioning, unconditional_conditioning, steps=steps)

stablediffusion:

from ldm.models.diffusion import DDIMSampler
sampler = DDIMSampler(model)
samples, _ = sampler.sample(S=steps, conditioning=c, batch_size=1, shape=shape, verbose=False)

The code comparison shows that stable-diffusion-webui provides a more abstracted and user-friendly approach to sampling, while stablediffusion offers a more direct implementation that may be better suited for research and customization.

22,785

InvokeAI is a leading creative engine for Stable Diffusion models, empowering professionals, artists, and enthusiasts to generate and create visual media using the latest AI-driven technologies. The solution offers an industry leading WebUI, supports terminal use through a CLI, and serves as the foundation for multiple commercial products.

Pros of InvokeAI

  • More user-friendly interface, especially for beginners
  • Better documentation and community support
  • Integrated support for multiple AI models beyond Stable Diffusion

Cons of InvokeAI

  • Fewer advanced features and customization options
  • Slower development cycle and updates
  • Less extensive plugin ecosystem

Code Comparison

InvokeAI:

from invokeai.app.services.image_records.image_records_common import ImageCategory, ResourceOrigin
from invokeai.app.invocations.baseinvocation import BaseInvocation, InputField, InvocationContext, invocation

stable-diffusion-webui:

from modules import sd_samplers, sd_models, images, scripts, shared
from modules.processing import StableDiffusionProcessing
from modules.sd_samplers import samplers

The code snippets show that InvokeAI uses a more modular and structured approach, while stable-diffusion-webui has a more direct import style. This reflects InvokeAI's focus on extensibility and stable-diffusion-webui's emphasis on performance and flexibility.

49,866

The most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.

Pros of ComfyUI

  • Highly flexible and customizable node-based interface
  • Better suited for advanced users and complex workflows
  • More efficient resource utilization for batch processing

Cons of ComfyUI

  • Steeper learning curve for beginners
  • Less user-friendly interface compared to stable-diffusion-webui
  • Fewer built-in features and extensions out of the box

Code Comparison

ComfyUI (Python):

class KSampler:
    @classmethod
    def INPUT_TYPES(s):
        return {"required":
                    {"model": ("MODEL",),
                     "seed": ("INT", {"default": 0, "min": 0, "max": 0xffffffffffffffff}),
                     "steps": ("INT", {"default": 20, "min": 1, "max": 10000}),
                     "cfg": ("FLOAT", {"default": 8.0, "min": 0.0, "max": 100.0}),
                     "sampler_name": (comfy.samplers.KSampler.SAMPLERS, ),
                     "scheduler": (comfy.samplers.KSampler.SCHEDULERS, ),
                     "positive": ("CONDITIONING", ),
                     "negative": ("CONDITIONING", ),
                     "latent_image": ("LATENT", ),
                     "denoise": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 1.0, "step": 0.01}),
                     }
                }

stable-diffusion-webui (Python):

def sample(self, p, x, conditioning, unconditional_conditioning, steps=None, image_conditioning=None):
    steps = steps or p.steps

    if isinstance(conditioning, dict):
        img2img_conditioning = conditioning.pop("c_crossattn", None)
        img2img_conditioning_mask = conditioning.pop("c_concat", None)
    else:
        img2img_conditioning = None
        img2img_conditioning_mask = None

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Stable Diffusion web UI

A web interface for Stable Diffusion, implemented using Gradio library.

Features

Detailed feature showcase with images:

  • Original txt2img and img2img modes
  • One click install and run script (but you still must install python and git)
  • Outpainting
  • Inpainting
  • Color Sketch
  • Prompt Matrix
  • Stable Diffusion Upscale
  • Attention, specify parts of text that the model should pay more attention to
    • a man in a ((tuxedo)) - will pay more attention to tuxedo
    • a man in a (tuxedo:1.21) - alternative syntax
    • select text and press Ctrl+Up or Ctrl+Down (or Command+Up or Command+Down if you're on a MacOS) to automatically adjust attention to selected text (code contributed by anonymous user)
  • Loopback, run img2img processing multiple times
  • X/Y/Z plot, a way to draw a 3 dimensional plot of images with different parameters
  • Textual Inversion
    • have as many embeddings as you want and use any names you like for them
    • use multiple embeddings with different numbers of vectors per token
    • works with half precision floating point numbers
    • train embeddings on 8GB (also reports of 6GB working)
  • Extras tab with:
    • GFPGAN, neural network that fixes faces
    • CodeFormer, face restoration tool as an alternative to GFPGAN
    • RealESRGAN, neural network upscaler
    • ESRGAN, neural network upscaler with a lot of third party models
    • SwinIR and Swin2SR (see here), neural network upscalers
    • LDSR, Latent diffusion super resolution upscaling
  • Resizing aspect ratio options
  • Sampling method selection
    • Adjust sampler eta values (noise multiplier)
    • More advanced noise setting options
  • Interrupt processing at any time
  • 4GB video card support (also reports of 2GB working)
  • Correct seeds for batches
  • Live prompt token length validation
  • Generation parameters
    • parameters you used to generate images are saved with that image
    • in PNG chunks for PNG, in EXIF for JPEG
    • can drag the image to PNG info tab to restore generation parameters and automatically copy them into UI
    • can be disabled in settings
    • drag and drop an image/text-parameters to promptbox
  • Read Generation Parameters Button, loads parameters in promptbox to UI
  • Settings page
  • Running arbitrary python code from UI (must run with --allow-code to enable)
  • Mouseover hints for most UI elements
  • Possible to change defaults/mix/max/step values for UI elements via text config
  • Tiling support, a checkbox to create images that can be tiled like textures
  • Progress bar and live image generation preview
    • Can use a separate neural network to produce previews with almost none VRAM or compute requirement
  • Negative prompt, an extra text field that allows you to list what you don't want to see in generated image
  • Styles, a way to save part of prompt and easily apply them via dropdown later
  • Variations, a way to generate same image but with tiny differences
  • Seed resizing, a way to generate same image but at slightly different resolution
  • CLIP interrogator, a button that tries to guess prompt from an image
  • Prompt Editing, a way to change prompt mid-generation, say to start making a watermelon and switch to anime girl midway
  • Batch Processing, process a group of files using img2img
  • Img2img Alternative, reverse Euler method of cross attention control
  • Highres Fix, a convenience option to produce high resolution pictures in one click without usual distortions
  • Reloading checkpoints on the fly
  • Checkpoint Merger, a tab that allows you to merge up to 3 checkpoints into one
  • Custom scripts with many extensions from community
  • Composable-Diffusion, a way to use multiple prompts at once
    • separate prompts using uppercase AND
    • also supports weights for prompts: a cat :1.2 AND a dog AND a penguin :2.2
  • No token limit for prompts (original stable diffusion lets you use up to 75 tokens)
  • DeepDanbooru integration, creates danbooru style tags for anime prompts
  • xformers, major speed increase for select cards: (add --xformers to commandline args)
  • via extension: History tab: view, direct and delete images conveniently within the UI
  • Generate forever option
  • Training tab
    • hypernetworks and embeddings options
    • Preprocessing images: cropping, mirroring, autotagging using BLIP or deepdanbooru (for anime)
  • Clip skip
  • Hypernetworks
  • Loras (same as Hypernetworks but more pretty)
  • A separate UI where you can choose, with preview, which embeddings, hypernetworks or Loras to add to your prompt
  • Can select to load a different VAE from settings screen
  • Estimated completion time in progress bar
  • API
  • Support for dedicated inpainting model by RunwayML
  • via extension: Aesthetic Gradients, a way to generate images with a specific aesthetic by using clip images embeds (implementation of https://github.com/vicgalle/stable-diffusion-aesthetic-gradients)
  • Stable Diffusion 2.0 support - see wiki for instructions
  • Alt-Diffusion support - see wiki for instructions
  • Now without any bad letters!
  • Load checkpoints in safetensors format
  • Eased resolution restriction: generated image's dimensions must be a multiple of 8 rather than 64
  • Now with a license!
  • Reorder elements in the UI from settings screen
  • Segmind Stable Diffusion support

Installation and Running

Make sure the required dependencies are met and follow the instructions available for:

Alternatively, use online services (like Google Colab):

Installation on Windows 10/11 with NVidia-GPUs using release package

  1. Download sd.webui.zip from v1.0.0-pre and extract its contents.
  2. Run update.bat.
  3. Run run.bat.

For more details see Install-and-Run-on-NVidia-GPUs

Automatic Installation on Windows

  1. Install Python 3.10.6 (Newer version of Python does not support torch), checking "Add Python to PATH".
  2. Install git.
  3. Download the stable-diffusion-webui repository, for example by running git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git.
  4. Run webui-user.bat from Windows Explorer as normal, non-administrator, user.

Automatic Installation on Linux

  1. Install the dependencies:
# Debian-based:
sudo apt install wget git python3 python3-venv libgl1 libglib2.0-0
# Red Hat-based:
sudo dnf install wget git python3 gperftools-libs libglvnd-glx
# openSUSE-based:
sudo zypper install wget git python3 libtcmalloc4 libglvnd
# Arch-based:
sudo pacman -S wget git python3

If your system is very new, you need to install python3.11 or python3.10:

# Ubuntu 24.04
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.11

# Manjaro/Arch
sudo pacman -S yay
yay -S python311 # do not confuse with python3.11 package

# Only for 3.11
# Then set up env variable in launch script
export python_cmd="python3.11"
# or in webui-user.sh
python_cmd="python3.11"
  1. Navigate to the directory you would like the webui to be installed and execute the following command:
wget -q https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh

Or just clone the repo wherever you want:

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
  1. Run webui.sh.
  2. Check webui-user.sh for options.

Installation on Apple Silicon

Find the instructions here.

Contributing

Here's how to add code to this repo: Contributing

Documentation

The documentation was moved from this README over to the project's wiki.

For the purposes of getting Google and other search engines to crawl the wiki, here's a link to the (not for humans) crawlable wiki.

Credits

Licenses for borrowed code can be found in Settings -> Licenses screen, and also in html/licenses.html file.