A local Stable Diffusion AI image generation server compatible with the Stability-AI GRPC protocol'
Project description
An implementation of a server for the Stability AI API
Installation
Option 1 (recommended):
Install Miniconda, then in a Conda console:
git clone https://github.com/hafriedlander/stable-diffusion-grpcserver.git
cd stable-diffusion-grpcserver
conda env create -f environment.yaml
conda activate sd-grpc-server
sets HF_API_TOKEN={your huggingface token}
python ./server.py
Option 2:
PIP_EXTRA_INDEX_URL=https://download.pytorch.org/whl/cu116 pip install stable-diffusion-grpcserver
set HF_API_TOKEN={your huggingface token}
sdgrpcserver
Features
- Txt2Img and Img2Img from Stability-AI/Stability-SDK, specifying a prompt
- Can load multiple pipelines, such as Stable and Waifu Diffusion, and swap between them as needed
- Mid and Low VRAM modes for larger generated images at the expense of some performance
- Adjustable NSFW behaviour
- Significantly enhanced masked painting:
- When Strength < 1, uses normal diffusers inpainting (with improved mask gradient handling)
- When Strength >= 1 and <= 2, uses seamless outpainting algorithm. Strength above 1 acts as a boost - the higher the value, the more even areas protected by a mask are allowed to change
- Euler, Euler_A samplers are currently integrated, and DDIM accepts an ETA parameter
- Cancel over API (using GRPC cancel will abort the currently in progress generation)
- Negative prompting (send a
Prompt
object withtext
and a negativeweight
)
Thanks to / Credits:
- Seamless outpainting https://github.com/parlance-zz/g-diffuser-bot/tree/g-diffuser-bot-beta2
Roadmap
Core API functions not working yet:
- Some samplers (like dpm2) are not currently supported in Diffusers
- ChainGenerate not implemented
Extra features to add
- Progress reporting over the API is included but not exposed yet
- Embedding params in png
- Extra APIs
- Image resizing
- Aspect ratio shifting
- Asset management
- Extension negotiation so we can:
- Ping back progress notices
- Allow cancellation requests
- Specify negative prompts
- CLIP guided generation https://github.com/huggingface/diffusers/pull/561
- Community features:
- Prompt calculation https://github.com/pharmapsychotic/clip-interrogator/blob/main/clip_interrogator.ipynb
- Prompt suggestion https://huggingface.co/spaces/Gustavosta/MagicPrompt-Stable-Diffusion
- Prompt compositing https://github.com/energy-based-model/Compositional-Visual-Generation-with-Composable-Diffusion-Models-PyTorch
- Automasking https://github.com/ThstereforeGames/txt2mask
- Other schedulers (needs custom pipeline for some). https://github.com/huggingface/diffusers/commit/489894e4d9272dec88fa3a64a8161aeab471fc18
- Huge seeds
- Other thoughts
- Figure out how to just suppress NSFW filtering altogether (takes VRAM, if you're not interested)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file stable-diffusion-grpcserver-0.0.1.tar.gz
.
File metadata
- Download URL: stable-diffusion-grpcserver-0.0.1.tar.gz
- Upload date:
- Size: 1.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.28.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97c586d37acc143f23c24c45757e546bad20739adda9b80ad188aa7da22c2509 |
|
MD5 | 7a814921c59b81c2d8a65105d9c402f2 |
|
BLAKE2b-256 | c92ddde6137942422eca7907a7737e73407117f0510d9fd8ed46d29f1b07c981 |
File details
Details for the file stable_diffusion_grpcserver-0.0.1-py2.py3-none-any.whl
.
File metadata
- Download URL: stable_diffusion_grpcserver-0.0.1-py2.py3-none-any.whl
- Upload date:
- Size: 61.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.28.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21d1cc0430428f6acccd0081ed310c34df895099428f18c269412e90f036a4e2 |
|
MD5 | 449591ac120e033207b42c1679613041 |
|
BLAKE2b-256 | 12bfc8c496659e09978dc67e40a7565865133385baf151c6ba583b5a6904c378 |