### 🇷🇺 Русский # 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. Клонирование репозитория ```bash git clone https://github.com/yourusername/stable-diffusion-gui.git cd stable-diffusion-gui ``` ### 2. Установка зависимостей Python ```bash pip install -r requirements.txt ``` ### 3. Установка зависимостей Node.js (для сервера) ```bash cd server npm install ``` ### 4. Запуск сервера ```bash node server.js ``` ### 5. Запуск клиента ```bash 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. Создайте новую ветку ```bash git checkout -b feature/new-feature ``` ### 3. Закоммитьте изменения ```bash git commit -m "feat: add new cool feature" ``` ### 4. Загрузите ветку ```bash git push origin feature/new-feature ``` ### 5. Откройте Pull Request > Мы используем [Conventional Commits](https://www.conventionalcommits.org/) для форматирования комментариев к коммитам. ## 📜 Лицензия Проект распространяется под лицензией **MIT License**. --- ### 🇬🇧 English # Stable Diffusion GUI

Example UI

**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 ```bash git clone https://github.com/yourusername/stable-diffusion-gui.git cd stable-diffusion-gui ``` ### 2. Install Python dependencies ```bash pip install -r requirements.txt ``` ### 3. Install Node.js dependencies (for server) ```bash cd server npm install ``` ### 4. Start server ```bash node server.js ``` ### 5. Launch app ```bash 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 ```bash git checkout -b feature/new-feature ``` ### 3. Commit changes ```bash git commit -m "feat: add new cool feature" ``` ### 4. Push branch ```bash git push origin feature/new-feature ``` ### 5. Open a Pull Request > We use [Conventional Commits](https://www.conventionalcommits.org/) for commit message formatting. ## 📜 License This project is licensed under the **MIT License**.