https://github.com/anonbotpl/swiftdiffusion
A modern PyQt6 GUI for Stable Diffusion 1.5. Optimized for 6GB VRAM GPUs, 7 dark themes, advanced Inpainting canvas, Latent Mixology, Zero-Copy memory, i18n PL/EN. ☕ ko-fi.com/anonbotpl
https://github.com/anonbotpl/swiftdiffusion
controlnet diffusers generative-ai gui image-generation inpainting latent-diffusion pyqt6 python pytorch stable-diffusion text-to-image ui vram-optimized
Last synced: 12 days ago
JSON representation
A modern PyQt6 GUI for Stable Diffusion 1.5. Optimized for 6GB VRAM GPUs, 7 dark themes, advanced Inpainting canvas, Latent Mixology, Zero-Copy memory, i18n PL/EN. ☕ ko-fi.com/anonbotpl
- Host: GitHub
- URL: https://github.com/anonbotpl/swiftdiffusion
- Owner: AnonBOTpl
- License: mit
- Created: 2026-05-22T08:25:17.000Z (21 days ago)
- Default Branch: main
- Last Pushed: 2026-05-29T21:36:38.000Z (14 days ago)
- Last Synced: 2026-05-29T23:14:26.042Z (14 days ago)
- Topics: controlnet, diffusers, generative-ai, gui, image-generation, inpainting, latent-diffusion, pyqt6, python, pytorch, stable-diffusion, text-to-image, ui, vram-optimized
- Language: Python
- Homepage:
- Size: 3.62 MB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README-pl.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[🇬🇧 English](README.md)
# 🎨 SwiftDiffusion — Stable Diffusion GUI
Koniec z konsolą. Zacznij tworzyć.
Przejrzysty, szybki i oszczędny dla VRAM interfejs do Stable Diffusion 1.5 — zbudowany w PyQt6.
---
## 🖼️ Zrzuty ekranu
Główne okno generowania
ADetailer — automatyczna poprawa twarzy
Wbudowany pobieracz modeli z CivitAI i HuggingFace
---
## 🚀 Co potrafi?
### ✍️ Narzędzia promptowania
- **Wildcards** — użyj składni `__token__` w prompcie; zastępowana losową linią z `wildcards/token.txt` przy każdym generowaniu
- **Prompt Builder** — komponuj prompty wizualnie z kategorii tagów (quality, style, lighting, artists) jednym kliknięciem
- **Prompt weighting (compel)** — precyzyjnie kontroluj wagę słów i fraz standardową składnią `(word:1.2)`, bez dodatkowej konfiguracji
- **Embeddingi Textual Inversion** — wrzuć pliki `.pt` / `.bin` / `.safetensors` do `models/embeddings/`; pojawiają się automatycznie w Prompt Builderze i są gotowe do użycia po załadowaniu modelu
- **Prompt Builder** — wbudowany menedżer tagów z kategoriami (pozytywne i negatywne), podglądem na żywo dla obu i kopiowaniem jednym kliknięciem do T2I. Zapisuj i przywracaj kombinacje tagów przez **historię** (`prompts_history.json`, ostatnie 20) i **ulubione** (`prompts_favorites.json`, bez limitu). Osobne akcje Wczytaj/Kopiuj/Usuń na wpis dla obu zestawów. 🎲 Przycisk Losuj wybiera konfigurowalną liczbę tagów na kategorię.
- **Wyszukiwarka tagów** — filtruj wszystkie przyciski tagów (pozytywne i negatywne) wpisując tekst w polu wyszukiwania. Pasujące wyniki pojawiają się w dedykowanej zakładce z zsynchronizowanym stanem przełączania.
- **Zakładka Wildcards** — przeglądaj i przełączaj wildcardy z folderu `wildcards/` bezpośrednio w Prompt Builderze. Każdy plik `.txt` to klikalny przycisk; tooltip pokazuje pierwsze 5 linii. Wybrane wildcardy używają składni `__nazwa__` i są przywracane z historii/ulubionych.
- **Własne kategorie tagów** — wrzuć własny plik `.json` do `tags/` z `{"label": "Moje Tagi", "tags": ["tag1", "tag2"]}` i pojawi się jako nowa zakładka natychmiast, bez restartu. Wbudowane kategorie zachowują swoją kolejność; twoje pliki dodawane są alfabetycznie poniżej.
- **Style Presets** — gotowe zestawy tagów w `tags/presets/`. Każdy plik to jeden preset: `{"name": "Mój Styl", "icon": "✨", "tags": ["tag1", "tag2"]}`. Dodawaj lub usuwaj pliki w dowolnym momencie — zmiany widoczne od razu. Presety są ekskluzywne (wybranie jednego zastępuje poprzedni).
- **Batch generation** — generuj do 10 obrazów sekwencyjnie jednym kliknięciem. Każdy element używa innego seeda. Auto upscale stosowany per-item. Po zakończeniu przewijany pasek miniatur pozwala przeglądać wyniki i porównywać wersję przed i po upscale.
- **CLIP Interrogator** — wbudowane reverse engineering promptu. Załaduj model CLIP (ViT-B/32 lub ViT-L/14), wrzuć dowolny obraz i otrzymaj ranking dopasowanych terminów w 8 kategoriach — jakość, kolory, medium, artysta, styl, oświetlenie, efekty, kompozycja. Obsługa własnych plików `.json`. Przełącznik GPU/CUDA. Kopiowanie jednym kliknięciem do Text2Image.
### 🖌️ Tryby generowania
| Tryb | Do czego służy |
|---|---|
| **Text2Image** | Generowanie z promptu — pełna kontrola nad samplerem, schedulerem, CFG, krokami i wymiarami |
| **Img2Img** | Transformacja istniejącego obrazu sterowana promptem |
| **Inpainting** | Narysuj maskę na dowolnym obszarze i wygeneruj tylko tę część — pełne Undo/Redo (Ctrl+Z/Y) |
| **ControlNet (Canny)** | Steruj generowaniem na podstawie krawędzi obrazu referencyjnego |
| **ADetailer** | Automatyczne wykrywanie i poprawa twarzy przez YOLOv8 — bez dodatkowych kosztów VRAM |
| **Upscaler** | Powiększanie obrazów wysokiej jakości przez bibliotekę `spandrel` |
| **CLIP Interrogator** | Analizuj dowolny obraz i odtwórz jego prompt — wykrywa jakość, kolory, medium, artystę, styl, oświetlenie, efekty i kompozycję |
### ⚙️ Inteligentne ustawienia
- **Kreator powitalny** — wybierz język i motyw zanim cokolwiek inne
- **7 ciemnych motywów** — Dark, Amber, Nord, Dracula, Monokai, Forest, Ocean — z opcjonalnym własnym kolorem akcentu
- **Kontrola wydajności** — VRAM Slicing, Attention Slicing, Tiled VAE, CPU Offloading, auto czyszczenie VRAM
- **Pełna wielojęzyczność** — dodaj dowolny język, wrzucając plik JSON do folderu `locales/`
### 📦 Zarządzanie modelami
- **URL Downloader** — wklej link z CivitAI lub HuggingFace, resztą zajmuje się SwiftDiffusion: pobiera, kategoryzuje i udostępnia model od razu
- **Live refresh** — dodaj model lub embedding do folderu i UI wykrywa go automatycznie, bez restartu (`QFileSystemWatcher`)
- **Latent Mixology Station** — łącz do 5 adapterów LoRA jednocześnie z wizualnym mikserem wag
- **Automatyczne wykrywanie** formatów `.safetensors`, `.pth`, `.onnx` i innych
### 🖼️ Galeria i metadane PNG
- Przeglądaj wygenerowane obrazy w wbudowanym eksploratorze
- **Recall jednym kliknięciem** — odczytaj prompt, seed i wszystkie ustawienia z metadanych PNG i przywróć je do potoku natychmiast
- Pływające okna z dokumentacją HTML do ControlNet i Inpaintingu
### ⚠️ Znane ograniczenia
- **SDXL** został przetestowany, ale usunięty — `from_single_file()` crashuje na 6 GB GPU bez komunikatu błędu. SwiftDiffusion jest zoptymalizowany i testowany wyłącznie dla **SD 1.5**.
### 📊 Monitor zasobów na żywo
VRAM, RAM, obciążenie i temperatura GPU — widoczne w pasku bocznym przez cały czas.
---
## 🛠️ Instalacja
### Windows (zalecane)
```
1. Pobierz lub sklonuj repozytorium
2. Uruchom install.bat
3. Uruchom start.bat
```
`install.bat` automatycznie tworzy środowisko wirtualne, instaluje PyTorch z obsługą CUDA 12.8 i pobiera wszystkie zależności.
### Linux
```bash
pip install -r requirements.txt
python main.py
```
---
## 📋 Wymagania
| | |
|---|---|
| **Python** | 3.12.10 |
| **GPU** | Kompatybilna z CUDA, zalecane min. 6 GB VRAM (GTX 1060 lub lepsza) |
| **System** | Windows / Linux (wymagany PyQt6) |
---
## 📂 Struktura projektu
```
SwiftDiffusion/
├── main.py # Szkielet UI i punkt wejścia
├── boot.py # CUDA health check przy imporcie
├── engine.py # Logika pipeline'ów dyfuzji
├── worker.py # Wątki QThread działające w tle
├── model_manager.py # Ładowanie modeli, LoRA, file watchery
├── generation_controller.py # T2I / Img2Img / Upscale
├── mode_controllers.py # Inpaint / ControlNet / ADetailer
├── config.py # Ustawienia i loader i18n
├── widgets/ # Pakiet komponentów UI
│ ├── __init__.py
│ ├── dialogs.py # Okna dialogowe (settings, galeria, about)
│ ├── inpaint_canvas.py # Edytor maski
│ ├── widgets_common.py # ClickableLabel, suwaki, LoRA
│ ├── model_downloader.py # Pobieracze z CivitAI / HF
│ ├── flow_layout.py # FlowLayout dla Prompt Builder
│ ├── prompt_builder.py # Zakładka Prompt Builder
│ ├── resource_monitor.py # Monitor VRAM/RAM na żywo
│ └── clip_interrogator.py # Zakładka CLIP Interrogator
├── models_registry.py # Skaner i rejestr modeli
├── url_downloader.py # Pomocnicze pobieranie
├── scraper.py # Wyszukiwarka modeli
├── install.bat # Instalator Windows (dwujęzyczny)
├── start.bat # Launcher Windows
├── locales/ # Pliki tłumaczeń (en, pl, …)
├── wildcards/ # Pliki tekstowe wildcardów
├── tags/ # Kategorie tagów Prompt Buildera
└── docs/ # Pływające okna z dokumentacją HTML
```
---
## ☕ Wsparcie
Jeśli SwiftDiffusion oszczędza Ci czas, rozważ postawienie mi kawy:
[](https://ko-fi.com/anonbotpl)