9.3 KiB
🇷🇺 Русский
Stable Diffusion GUI
Stable Diffusion GUI — это удобное графическое приложение с интуитивным интерфейсом для генерации изображений через API Stable Diffusion. Приложение написано на Python с использованием PyQt6 и имеет клиент-серверную архитектуру.
🔍 Описание
Это приложение позволяет вам:
- Генерировать изображения через API Stable Diffusion
- Управлять моделями, сэмплерами и размерами изображений
- Использовать готовые промпты и негативные промпты
- Отслеживать прогресс генерации
- Сохранять и копировать результаты
- Настраивать внешний вид и поведение через меню настроек
🧰 Технологии
- Python — основной язык программирования
- PyQt6 — библиотека для создания графического интерфейса
- Node.js + Express — серверная часть для прокси-запросов
- Stable Diffusion WebUI API — поддержка стандартного API
- JSON — обмен данными между клиентом и сервером
📦 Структура проекта
stable-diffusion-gui/
├── main.py # Главное окно приложения
├── modules/ # Модули приложения
│ ├── console_window.py # Консоль для логов
│ ├── model_manager.py # Выбор модели
│ ├── prompt_window.py # Готовые промпты
│ ├── negative_prompt_window.py # Негативные промпты
│ ├── sampler_manager.py # Управление сэмплерами
│ ├── size_preset_manager.py # Пресеты размеров
│ └── settings_menu.py # Настройки приложения
├── resources/ # Ресурсы (иконки, стили)
├── server/ # Серверная часть
│ ├── package.json
│ └── server.js # Прокси для API Stable Diffusion
├── requirements.txt # Зависимости Python
└── README.md # Это описание
⚙️ Установка и запуск
1. Клонирование репозитория
git clone https://github.com/yourusername/stable-diffusion-gui.git
cd stable-diffusion-gui
2. Установка зависимостей Python
pip install -r requirements.txt
3. Установка зависимостей Node.js (для сервера)
cd server
npm install
4. Запуск сервера
node server.js
5. Запуск клиента
python main.py
🖥️ Интерфейс
Основные элементы:
- Поле ввода промпта и негативного промпта
- Выбор модели, сэмплера, размера изображения
- Настройки генерации (CFG Scale, Steps, Seed)
- Кнопка "Сгенерировать"
- Прогресс-бар
- Область вывода изображений с возможностью сохранения и копирования
Дополнительно:
- Горячие клавиши (
Ctrl+G— генерация, `Ctrl+`` — открыть консоль) - Поддержка темной и светлой темы
- Встроенная консоль для просмотра логов
🛠️ API Прокси (server.js)
Приложение использует простой Node.js-сервер для проксирования запросов к API Stable Diffusion, чтобы избежать проблем с CORS и добавить дополнительные функции, такие как отслеживание прогресса.
Доступные эндпоинты:
| Эндпоинт | Описание |
|---|---|
/api/txt2img |
Генерация изображения |
/api/progress |
Получение прогресса генерации |
/api/sd-models |
Список доступных моделей |
/api/samplers |
Список доступных сэмплеров |
🤝 Как принять участие
Вы можете улучшать проект, создавая pull request'ы или issues:
1. Форкните репозиторий
2. Создайте новую ветку
git checkout -b feature/new-feature
3. Закоммитьте изменения
git commit -m "feat: add new cool feature"
4. Загрузите ветку
git push origin feature/new-feature
5. Откройте Pull Request
Мы используем Conventional Commits для форматирования комментариев к коммитам.
📜 Лицензия
Проект распространяется под лицензией MIT License.
🇬🇧 English
Stable Diffusion GUI
Stable Diffusion GUI is a user-friendly graphical application for generating images using the Stable Diffusion API. It's built with Python and PyQt6, featuring a client-server architecture.
🔍 Description
This application allows you to:
- Generate images via Stable Diffusion API
- Manage models, samplers, and image sizes
- Use ready-made prompts and negative prompts
- Track generation progress
- Save and copy results
- Customize appearance and behavior through the settings menu
🧰 Technologies
- Python — primary programming language
- PyQt6 — GUI library
- Node.js + Express — backend proxy server
- Stable Diffusion WebUI API — standard API support
- JSON — data exchange between client and server
📦 Project Structure
stable-diffusion-gui/
├── main.py # Main window app
├── modules/ # Application modules
│ ├── console_window.py # Logging console
│ ├── model_manager.py # Model selector
│ ├── prompt_window.py # Prompt selector
│ ├── negative_prompt_window.py # Negative prompts
│ ├── sampler_manager.py # Sampler manager
│ ├── size_preset_manager.py # Size presets
│ └── settings_menu.py # Settings menu
├── resources/ # Resources (icons, styles)
├── server/ # Server part
│ ├── package.json
│ └── server.js # Proxy server
├── requirements.txt # Python dependencies
└── README.md # This file
⚙️ Installation & Run
1. Clone repository
git clone https://github.com/yourusername/stable-diffusion-gui.git
cd stable-diffusion-gui
2. Install Python dependencies
pip install -r requirements.txt
3. Install Node.js dependencies (for server)
cd server
npm install
4. Start server
node server.js
5. Launch app
python main.py
🖥️ Interface
Key Features:
- Prompt/Negative prompt input fields
- Model, Sampler, Image size selection
- Generation settings (CFG Scale, Steps, Seed)
- Generate button
- Progress bar
- Image output area with save/copy options
Extra:
- Hotkeys (
Ctrl+G— generate, `Ctrl+`` — open console) - Dark/Light theme toggle
- Built-in logging console
🛠️ API Proxy (server.js)
The app uses a simple Node.js server to proxy requests to the Stable Diffusion API to avoid CORS issues and add extra features like progress tracking.
Available Endpoints:
| Endpoint | Description |
|---|---|
/api/txt2img |
Image generation |
/api/progress |
Get generation progress |
/api/sd-models |
List of available models |
/api/samplers |
List of available samplers |
🤝 How to Contribute
You can help improve this project by creating pull requests or issues:
1. Fork the repo
2. Create a new branch
git checkout -b feature/new-feature
3. Commit changes
git commit -m "feat: add new cool feature"
4. Push branch
git push origin feature/new-feature
5. Open a Pull Request
We use Conventional Commits for commit message formatting.
📜 License
This project is licensed under the MIT License.
