https://github.com/leopedroso45/stable-diffusion-imagegen
A Python package to make Stable Diffusion Image Generation ridiculously easy
https://github.com/leopedroso45/stable-diffusion-imagegen
huggingface ml python python3 pytorch script stablediffusion
Last synced: 5 months ago
JSON representation
A Python package to make Stable Diffusion Image Generation ridiculously easy
- Host: GitHub
- URL: https://github.com/leopedroso45/stable-diffusion-imagegen
- Owner: leopedroso45
- License: mit
- Created: 2023-12-28T16:19:12.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-01T22:17:56.000Z (over 1 year ago)
- Last Synced: 2025-05-18T22:13:05.318Z (8 months ago)
- Topics: huggingface, ml, python, python3, pytorch, script, stablediffusion
- Language: Python
- Homepage:
- Size: 77.1 KB
- Stars: 13
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Easy Stable Diffusion Image Generation

[](https://codecov.io/gh/leopedroso45/Stable-Diffusion-ImageGen)

`sevsd` is a Python package specifically designed to make the process of generating images using Stable Diffusion models as simple as possible. The package enables image generation with just a single function call, greatly simplifying the integration of Stable Diffusion into various applications. Utilizing Hugging Face's `diffusers` library, `sevsd` provides an intuitive and flexible interface for generating images based on textual prompts. This makes it an ideal choice for building HTTP APIs, high-level services, or any application requiring AI-driven image generation.
## Features
- Simplified interface for Stable Diffusion image generation, enabling the creation of images with just a single function call.
- Easy integration of Stable Diffusion model into Python applications.
- Customizable image generation based on user-defined tasks and configurations.
- Batch processing capabilities for handling multiple tasks efficiently.
- Compatibility with CUDA-enabled GPUs and MPS (Apple's Metal Performance Shaders) for enhanced performance.
## Requirements
- Python 3.11+
- PyTorch
- Hugging Face `diffusers` library
- CUDA-compatible GPU (recommended for better performance)
## Installation
### Install from PyPI
You can install `sevsd` directly from PyPI. This is the recommended way to install the package as it will always provide you with the latest stable version:
```bash
pip install sevsd
```
### Install from Source
If you prefer to install `sevsd` from the source, for example, to get the latest changes that may not be released on PyPI yet, you can clone the repository and install it manually:
```bash
git clone https://github.com/leopedroso45/Stable-Diffusion-ImageGen
cd Stable-Diffusion-ImageGen
pip install .
```
Note: When installing from source, make sure you have the necessary build tools and dependencies installed on your system.
## Usage
Import and use `sevsd` in your Python project:
```python
from sevsd import do_work
# Define your models and jobs
models = [
{
"name": './model_cache/model1.safetensors',
"executor": {
"labels": [1],
"num_of_exec": 1,
"cfg_scale": 7,
"inference_steps": 100,
}
},
{
"name": './model_cache/model2.safetensors',
"executor": {
"labels": [2],
"num_of_exec": 2,
"cfg_scale": 6,
"inference_steps": 50,
}
},
]
jobs = [
{
"label": 1,
"prompt": 'A scenic landscape',
"negative_prompt": "blurred image, black and white, watermarked image",
},
{
"label": 2,
"prompt": 'A person wearing a mask',
"negative_prompt": 'deformed anatomy, hand-drawn image, blurred image',
},
]
do_work(models, jobs, './generated-images')
```
This example demonstrates a basic usage scenario. Customize the `models` and `jobs` as needed for your application.
## Components
- `setup_pipeline`: Prepares the Stable Diffusion pipeline with the specified model configuration.
- `process_task`: Processes individual tasks, generating and saving images based on job specifications.
- `generate_image`: Handles the image generation process for each job.
- `setup_device`: Sets up the computation device (GPU or CPU) for image generation.
- `check_os_path`: Ensures the output path exists or creates it.
- `check_cuda_and_clear_cache`: Manages GPU memory and cache for efficient processing.
- `do_work`: Central function to orchestrate the processing of jobs with corresponding models.
## Customization
You can customize the image generation process by adjusting the `models` and `jobs` lists. Define different prompts, model paths, execution parameters, and more to cater to diverse image styles and requirements.
## Note
- Ensure sufficient GPU memory if using CUDA.
- The package is optimized for flexible handling of various job and model configurations.
- For detailed examples and advanced usage, refer to the source code documentation.
## Contributing
Contributions to `sevsd` are welcome! Please refer to the repository's issues and pull requests for ongoing development.
## License
`sevsd` is licensed under the [MIT License](LICENSE).