{"id":50446796,"url":"https://github.com/anonbotpl/swiftdiffusion","last_synced_at":"2026-05-31T22:01:51.279Z","repository":{"id":359533718,"uuid":"1246477012","full_name":"AnonBOTpl/SwiftDiffusion","owner":"AnonBOTpl","description":"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","archived":false,"fork":false,"pushed_at":"2026-05-29T21:36:38.000Z","size":3793,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-29T23:14:26.042Z","etag":null,"topics":["controlnet","diffusers","generative-ai","gui","image-generation","inpainting","latent-diffusion","pyqt6","python","pytorch","stable-diffusion","text-to-image","ui","vram-optimized"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AnonBOTpl.png","metadata":{"files":{"readme":"README-pl.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-22T08:25:17.000Z","updated_at":"2026-05-29T21:36:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/AnonBOTpl/SwiftDiffusion","commit_stats":null,"previous_names":["anonbotpl/swiftdiffusion"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AnonBOTpl/SwiftDiffusion","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnonBOTpl%2FSwiftDiffusion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnonBOTpl%2FSwiftDiffusion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnonBOTpl%2FSwiftDiffusion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnonBOTpl%2FSwiftDiffusion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AnonBOTpl","download_url":"https://codeload.github.com/AnonBOTpl/SwiftDiffusion/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnonBOTpl%2FSwiftDiffusion/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33750474,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["controlnet","diffusers","generative-ai","gui","image-generation","inpainting","latent-diffusion","pyqt6","python","pytorch","stable-diffusion","text-to-image","ui","vram-optimized"],"created_at":"2026-05-31T22:01:48.565Z","updated_at":"2026-05-31T22:01:51.270Z","avatar_url":"https://github.com/AnonBOTpl.png","language":"Python","funding_links":["https://ko-fi.com/anonbotpl"],"categories":[],"sub_categories":[],"readme":"[🇬🇧 English](README.md)\n# 🎨 SwiftDiffusion — Stable Diffusion GUI\n\n\u003cp align=\"center\"\u003e\n    \u003cbr\u003e\u003cbr\u003e\n  \u003cb\u003eKoniec z konsolą. Zacznij tworzyć.\u003c/b\u003e\n  \u003cbr\u003e\n  \u003ci\u003ePrzejrzysty, szybki i oszczędny dla VRAM interfejs do Stable Diffusion 1.5 — zbudowany w PyQt6.\u003c/i\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/license/AnonBOTpl/SwiftDiffusion?color=blue\" alt=\"Licencja\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/python-3.12-blue\" alt=\"Python 3.12\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/platform-Windows%20%7C%20Linux-lightgrey\" alt=\"Platforma\"\u003e\n  \u003ca href=\"https://ko-fi.com/anonbotpl\"\u003e\u003cimg src=\"https://img.shields.io/badge/wsparcie-Ko--fi-FF5E5B?logo=ko-fi\u0026logoColor=white\" alt=\"Ko-fi\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## 🖼️ Zrzuty ekranu\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/AnonBOTpl/SwiftDiffusion/main/screens/screen%20main.png\" alt=\"Główne okno\" width=\"700\"\u003e\n  \u003cbr\u003e\u003ci\u003eGłówne okno generowania\u003c/i\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/AnonBOTpl/SwiftDiffusion/main/screens/screen%20adetailer.png\" alt=\"ADetailer\" width=\"700\"\u003e\n  \u003cbr\u003e\u003ci\u003eADetailer — automatyczna poprawa twarzy\u003c/i\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/AnonBOTpl/SwiftDiffusion/main/screens/screen%20downloader.png\" alt=\"Pobieracz modeli\" width=\"700\"\u003e\n  \u003cbr\u003e\u003ci\u003eWbudowany pobieracz modeli z CivitAI i HuggingFace\u003c/i\u003e\n\u003c/p\u003e\n\n---\n\n## 🚀 Co potrafi?\n\n### ✍️ Narzędzia promptowania\n\n- **Wildcards** — użyj składni `__token__` w prompcie; zastępowana losową linią z `wildcards/token.txt` przy każdym generowaniu\n- **Prompt Builder** — komponuj prompty wizualnie z kategorii tagów (quality, style, lighting, artists) jednym kliknięciem\n- **Prompt weighting (compel)** — precyzyjnie kontroluj wagę słów i fraz standardową składnią `(word:1.2)`, bez dodatkowej konfiguracji\n- **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\n- **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ę.\n- **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.\n- **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.\n- **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.\n- **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).\n- **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.\n- **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.\n\n### 🖌️ Tryby generowania\n\n| Tryb | Do czego służy |\n|---|---|\n| **Text2Image** | Generowanie z promptu — pełna kontrola nad samplerem, schedulerem, CFG, krokami i wymiarami |\n| **Img2Img** | Transformacja istniejącego obrazu sterowana promptem |\n| **Inpainting** | Narysuj maskę na dowolnym obszarze i wygeneruj tylko tę część — pełne Undo/Redo (Ctrl+Z/Y) |\n| **ControlNet (Canny)** | Steruj generowaniem na podstawie krawędzi obrazu referencyjnego |\n| **ADetailer** | Automatyczne wykrywanie i poprawa twarzy przez YOLOv8 — bez dodatkowych kosztów VRAM |\n| **Upscaler** | Powiększanie obrazów wysokiej jakości przez bibliotekę `spandrel` |\n| **CLIP Interrogator** | Analizuj dowolny obraz i odtwórz jego prompt — wykrywa jakość, kolory, medium, artystę, styl, oświetlenie, efekty i kompozycję |\n\n### ⚙️ Inteligentne ustawienia\n\n- **Kreator powitalny** — wybierz język i motyw zanim cokolwiek inne\n- **7 ciemnych motywów** — Dark, Amber, Nord, Dracula, Monokai, Forest, Ocean — z opcjonalnym własnym kolorem akcentu\n- **Kontrola wydajności** — VRAM Slicing, Attention Slicing, Tiled VAE, CPU Offloading, auto czyszczenie VRAM\n- **Pełna wielojęzyczność** — dodaj dowolny język, wrzucając plik JSON do folderu `locales/`\n\n### 📦 Zarządzanie modelami\n\n- **URL Downloader** — wklej link z CivitAI lub HuggingFace, resztą zajmuje się SwiftDiffusion: pobiera, kategoryzuje i udostępnia model od razu\n- **Live refresh** — dodaj model lub embedding do folderu i UI wykrywa go automatycznie, bez restartu (`QFileSystemWatcher`)\n- **Latent Mixology Station** — łącz do 5 adapterów LoRA jednocześnie z wizualnym mikserem wag\n- **Automatyczne wykrywanie** formatów `.safetensors`, `.pth`, `.onnx` i innych\n\n### 🖼️ Galeria i metadane PNG\n\n- Przeglądaj wygenerowane obrazy w wbudowanym eksploratorze\n- **Recall jednym kliknięciem** — odczytaj prompt, seed i wszystkie ustawienia z metadanych PNG i przywróć je do potoku natychmiast\n- Pływające okna z dokumentacją HTML do ControlNet i Inpaintingu\n\n### ⚠️ Znane ograniczenia\n- **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**.\n\n### 📊 Monitor zasobów na żywo\n\nVRAM, RAM, obciążenie i temperatura GPU — widoczne w pasku bocznym przez cały czas.\n\n---\n\n## 🛠️ Instalacja\n\n### Windows (zalecane)\n\n```\n1. Pobierz lub sklonuj repozytorium\n2. Uruchom install.bat\n3. Uruchom start.bat\n```\n\n`install.bat` automatycznie tworzy środowisko wirtualne, instaluje PyTorch z obsługą CUDA 12.8 i pobiera wszystkie zależności.\n\n### Linux\n\n```bash\npip install -r requirements.txt\npython main.py\n```\n\n---\n\n## 📋 Wymagania\n\n| | |\n|---|---|\n| **Python** | 3.12.10 |\n| **GPU** | Kompatybilna z CUDA, zalecane min. 6 GB VRAM (GTX 1060 lub lepsza) |\n| **System** | Windows / Linux (wymagany PyQt6) |\n\n---\n\n## 📂 Struktura projektu\n\n```\nSwiftDiffusion/\n├── main.py                    # Szkielet UI i punkt wejścia\n├── boot.py                    # CUDA health check przy imporcie\n├── engine.py                  # Logika pipeline'ów dyfuzji\n├── worker.py                  # Wątki QThread działające w tle\n├── model_manager.py           # Ładowanie modeli, LoRA, file watchery\n├── generation_controller.py   # T2I / Img2Img / Upscale\n├── mode_controllers.py        # Inpaint / ControlNet / ADetailer\n├── config.py                  # Ustawienia i loader i18n\n├── widgets/                   # Pakiet komponentów UI\n│   ├── __init__.py\n│   ├── dialogs.py             # Okna dialogowe (settings, galeria, about)\n│   ├── inpaint_canvas.py      # Edytor maski\n│   ├── widgets_common.py      # ClickableLabel, suwaki, LoRA\n│   ├── model_downloader.py    # Pobieracze z CivitAI / HF\n│   ├── flow_layout.py         # FlowLayout dla Prompt Builder\n│   ├── prompt_builder.py      # Zakładka Prompt Builder\n│   ├── resource_monitor.py    # Monitor VRAM/RAM na żywo\n│   └── clip_interrogator.py   # Zakładka CLIP Interrogator\n├── models_registry.py         # Skaner i rejestr modeli\n├── url_downloader.py          # Pomocnicze pobieranie\n├── scraper.py                 # Wyszukiwarka modeli\n├── install.bat                # Instalator Windows (dwujęzyczny)\n├── start.bat                  # Launcher Windows\n├── locales/                   # Pliki tłumaczeń (en, pl, …)\n├── wildcards/                 # Pliki tekstowe wildcardów\n├── tags/                      # Kategorie tagów Prompt Buildera\n└── docs/                      # Pływające okna z dokumentacją HTML\n```\n\n---\n\n## ☕ Wsparcie\n\nJeśli SwiftDiffusion oszczędza Ci czas, rozważ postawienie mi kawy:\n\n[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/anonbotpl)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanonbotpl%2Fswiftdiffusion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanonbotpl%2Fswiftdiffusion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanonbotpl%2Fswiftdiffusion/lists"}