Table of Contents
Pull requests
To contribute, clone the repository, make your changes, commit and push to your clone, and submit a pull request.
Note
If you're not a contributor to this repository, you need to fork and clone the repository before pushing your changes. For more information, check out Contributing to Projects in the GitHub documentation.
- If you are adding a lot of code, consider making it an extension instead.
- this way, you will be able to make changes in the future without needing my approval
- I also won't have to study your code
- if your would-be extension needs some changes to the repo (like adding an API or callback), this change is welcome to be added, and it will also profit other developers
- Do not add multiple unrelated things in same PR.
- PRs should target the
dev
branch. - Make sure that your changes do not break anything by running tests.
- Do not submit PRs where you just take existing lines and reformat them without changing what they do.
- If you are submitting a bug fix, there must be a way for me to reproduce the bug.
- Do not use your clone's
master
ormain
branch to make a PR - create a branch and PR that.
There is a discord channel for development of the webui (click to expand). Join if you want to talk about a PR in real time. Don't join if you're not involved in development.
This is a discord for development only, NOT for tech support.
If you are making changes to used libraries or the installation script, you must verify them to work on default Windows installation from scratch. If you cannot test if it works (due to your OS or anything else), do not make those changes (with possible exception of changes that explicitly are guarded from being executed on Windows by if
s or something else).
Code style
We use linters to enforce style for python and javascript. If you make a PR that fails the check, I will ask you to fix the code until the linter does not complain anymore.
Here's how to use linters locally:
python
Install: pip install ruff
Run: ruff .
(or python -mruff .
)
javascript
Install: install npm on your system.
Run: npx eslint .
Quirks
webui.user.bat
is never to be editedrequirements_versions.txt
is for python 3.10.6requirements.txt
is for people running on colabs and whatnot using python 3.7
Gradio
Gradio at some point wanted to add this section to shill their project in the contributing section, which I didn't have at the time, so here it is now.
For Gradio check out the docs to contribute: Have an issue or feature request with Gradio? open a issue/feature request on github for support: https://github.com/gradio-app/gradio/issues
Setup
- Install and run on NVidia GPUs
- Install and run on AMD GPUs
- Install and run on Apple Silicon
- Install and run on Intel Silicon (external wiki page)
- Install and run via container (i.e. Docker)
- Run via online services
Reproducing images / troubleshooting
Usage
- Features
- Command Line Arguments and Settings
- Optimizations
- Custom Filename Name and Subdirectory
- Change model folder location e.g. external disk
- User Interface Customizations
- Guides and Tutorials
Developers
This is the Stable Diffusion web UI wiki. Wiki Home