Lokalne generowanie obrazów AI — Flux LoRA i ComfyUI na własnym GPU
Usługi generowania obrazów w chmurze mają dwie wady, które rzadko są wymieniane wprost. Pierwsza to koszt iteracji — płacisz za każde wygenerowane zdjęcie albo subskrypcję, niezależnie od tego, czy wynik jest dobry. Druga, poważniejsza: Twoje prompty i zdjęcia treningowe trafiają na zewnętrzne serwery. Dla agencji AI, która pracuje z wizerunkiem klientów i materiałami marki, to problem fundamentalny.
Lokalne studio AI rozwiązuje obydwa: generujesz bez limitu, a dane nie opuszczają dysku. Ten artykuł przeprowadzi Cię przez cały proces — od doboru sprzętu, przez trening modelu LoRA na własnych zdjęciach, po generowanie w ComfyUI.
Co da się zautomatyzować u Ciebie w n8n?
Wskażesz proces robiony ręcznie, my ocenimy wykonalność i ROI. Bezpłatna rozmowa diagnostyczna.
Wybierz dogodny termin bezpłatnej rozmowy (30 min).
Umów bezpłatną rozmowęFilm: Homelab AI — lokalne generowanie obrazów krok po kroku
Poniżej pełny tutorial z konfiguracją każdego kroku.
Flux 2 vs SDXL — i co to jest LoRA
Jeszcze w 2024 roku standardem był SDXL. W 2025 Black Forest Labs wypuścił Flux 2 — hybrydowy transformer, który generuje obrazy wyraźnie ostrzejsze, bardziej spójne anatomicznie i lepiej interpretujące złożone prompty. Jakościowa przepaść między SDXL a Flux 2 jest na tyle duża, że nie ma sensu zaczynać dziś od starszego modelu.
Model Flux 2 waży kilkanaście gigabajtów i zawiera wiedzę o milionach twarzy, stylów, obiektów, oświetleń. To encyklopedia. Problem: nie wie, kim jest konkretna osoba ani jak wygląda konkretna marka wizualna.
Tu wchodzi LoRA (Low Rank Adaptation). Zamiast douczać cały model — co wymagałoby dziesiątek godzin i setek gigabajtów VRAM — LoRA uczy się tylko "różnicy": jak wygląda ta konkretna twarz, ten konkretny styl. Myśl o tym jak o cienkiej nakładce na encyklopedię. Model bazowy pozostaje nienaruszony w VRAM, rdzenie Tensor skupiają obliczenia wyłącznie na tej małej warstwie. Efekt: trening trwa kilka godzin zamiast kilku dni, a wynikowy plik LoRA ma 50–300 MB zamiast kilkudziesięciu GB.
Sprzęt — dlaczego VRAM i przepustowość są ważniejsze niż rdzenie
Przykład w filmie: RTX 5080 z architekturą Blackwell. Kluczowe dane tej karty to przepustowość pamięci GDDR7 na poziomie ~1 TB/s oraz rdzenie Tensor obsługujące FP4/FP8/FP16/BF16. Przy pracy z modelami językowymi i dyfuzyjnymi wąskim gardłem prawie zawsze jest transfer danych między VRAM a rdzeniami obliczeniowymi — nie sama moc GPU.
Minimalne wymagania do treningu Flux LoRA:
- 16 GB VRAM — przy kwantyzacji float8 i batch size 1 to absolutne minimum
- 24 GB VRAM — komfortowy trening bez kompromisów
- SSD NVMe — dataset i checkpointy co 250 kroków; wolny dysk to wąskie gardło
RTX 4090 i 5080 działają doskonale. Karty AMD wymagają dodatkowej konfiguracji ROCm i nie zawsze są kompatybilne z bibliotekami PyTorch używanymi przez Ostris AI Toolkit.
Dataset — 3 zasady dobrego zestawu treningowego
Jakość datasetu determinuje jakość LoRA. Dwadzieścia dobrych zdjęć bije pięćdziesiąt złych.
1. Rozdzielczość i ostrość
Minimum to 1024x1024 pikseli. Rozmyte, skompresowane lub pikselowate zdjęcia nie nauczą modelu niczego użytecznego — wytrenują go w reprodukowaniu artefaktów. Każde zdjęcie powinno być ostre i dobrze naświetlone.
Co robić źle: skanowane odbitki, screenshoty z wideo w niskiej rozdzielczości, zdjęcia z silnym przeeksponowaniem lub niedoświetleniem.
Co robić dobrze: zdjęcia z aparatu lub dobrego smartfona, wykadrowane tak, żeby twarz/obiekt wypełniał znaczną część kadru.
2. Różnorodność
Model musi nauczyć się odróżniać twarz od tła, oświetlenia i ubrań. Jeśli wszystkie zdjęcia pokazują tę samą osobę w tej samej koszuli przy tym samym oknie — model nauczy się korelacji z koszulą i oknem, nie z twarzą.
Dobre zdjęcia treningowe: różne kąty (frontal, 3/4, profil), różne oświetlenie (naturalne, studyjne, sztuczne), różne tła, różne ubrania. Kilka zdjęć z okularami i bez. Kilka zbliżeń i kilka ujęć do ramion.
3. Opisy (captions)
Każde zdjęcie musi mieć plik tekstowy z opisem. W opisie musi pojawić się trigger word — unikalne słowo, które model skojarzy z douczaną twarzą lub stylem. Przykład: jeśli trigger word to Kacper, opis może brzmieć:
photo of Kacper, man, outdoor, casual clothing, natural light, looking at camera
Bez captions model nie wie, które cechy ze zdjęcia ma zapamiętać, a które zignorować.
Trening w Ostris AI Toolkit
Ostris AI Toolkit to narzędzie open-source stworzone specjalnie pod trening LoRA dla modeli Flux. Najwygodniejszy sposób uruchomienia to Docker — wszystkie zależności PyTorch, xformers i CUDA są już dopasowane do architektury Blackwell.
Bash1 2 3 4docker run --gpus all \ -v D:/NvidiaFilm1/ProgAndToolKitOutput:/workspace/output \ -p 7860:7860 \ ostris/ai-toolkit:latest
Po uruchomieniu interfejs webowy jest dostępny pod localhost:7860. Dodajesz zdjęcia datasetu (już opisane trigger wordem), tworzysz nowy job i konfigurujesz parametry.
Tabela parametrów treningu
| Parametr | Wartość | Dlaczego |
|---|---|---|
| Training name | Kacper_Flux_LoRA_v1 | Identyfikator w katalogu output |
| Trigger word | Kacper | Musi być identyczny jak w captions |
| Model architecture | flux2-kline-base-4B | Flux 2 — nowszy i lepszy niż SDXL |
| Kwantyzacja | float8 | Najlepsza stabilność na serii 50 |
| Target | lora | Trening warstwy LoRA, nie full fine-tuning |
| Linear rank | 32 | Złoty środek — 16 też ok, 128 to ryzyko overfittingu |
| Save format | BF16 | Optymalna stabilność dla GPU Nvidia serii 50 |
| Save every | 250 kroków | Możliwość podglądu postępu i wyboru najlepszego checkpointu |
| Max step saves | 4 | Nie zapycha dysku starymi checkpointami |
| Batch size | 1 | Wyższy kończy się OOM; paradoksalnie 1 jest szybszy na tej architekturze |
| Steps | 3000 | ~150 kroków na zdjęcie przy 20 zdjęciach |
| Cache text embeddings | TAK | Opisy przetworzone raz przy starcie — ogromne przyspieszenie treningu |
| Dataset resolution | 1024x1024 | Odznacz inne opcje — trenuj w docelowej rozdzielczości |
| Sample prompts | 4 prompty co 250 kroków | Wizualny podgląd postępu treningu |
Trening na RTX 5080 przy powyższych ustawieniach zajmuje około 2 godzin. W trakcie co 250 kroków generowane są próbki — możesz obserwować, jak model stopniowo uczy się twarzy.
Loss graph — jak czytać postęp treningu
Loss (strata) to liczba mówiąca, jak bardzo przewidywania modelu różnią się od danych treningowych. Na początku treningu jest wysoka — model nie zna jeszcze tej twarzy. Z każdym krokiem maleje.
Kluczowa obserwacja: loss powinien maleć, ale nigdy nie dojść do zera.
Jeśli loss doszedłby do zera, model "zapamiętałby" zdjęcia dosłownie — pixel po pixelu — zamiast uogólnić wzorzec twarzy. To overfitting. Wygenerowany obraz wyglądałby jak kolaż oryginalnych zdjęć, a nie nowe, unikalne ujęcie.
Dobry loss przy treningu LoRA oscyluje gdzieś między 0.05 a 0.15 pod koniec treningu. Jeśli spada poniżej — zmniejsz liczbę kroków lub użyj niższego linear rank. Jeśli nie schodzi poniżej 0.3 — sprawdź jakość datasetu i captions.
Dlatego Ostris zapisuje checkpointy co 250 kroków: możesz wybrać ten, który daje najlepsze wyniki wizualnie, nawet jeśli nie jest ostatnim.
Generowanie w ComfyUI
ComfyUI to graficzny interfejs do budowania pipeline'ów dyfuzji. Pobierz wersję standalone z GitHuba — nie instalatora, który potrafi mieć konflikty zależności z bibliotekami Blackwell.
Bazowy workflow do generowania z LoRA składa się z węzłów:
- Load Diffusion Model — ten sam model Flux co przy treningu
- Load LoRA — plik
.safetensorswygenerowany przez Ostris - Load CLIP — enkoder tekstu
- Text Prompt — pozytywny i negatywny (Flux 2 nie wymaga negatywnego, ale pole istnieje)
- Flux Guidance — jak mocno model ma podążać za promptem
- KSampler — właściwy proces dyfuzji
- VAE Decode — dekodowanie latent space do obrazu
- Save Image — zapis na dysk
KSampler — kluczowe parametry
| Parametr | Rekomendacja | Uwaga |
|---|---|---|
| seed | eksperymentuj, zapisuj dobre | Ten sam seed + ten sam prompt = ten sam obraz |
| steps | 30–40 | Więcej nie zawsze lepiej |
| CFG | 3.5–7.0 | Wyższy = mocniejsze trzymanie się promptu, ale mniej kreatywności |
| sampler | euler / dpmpp_2m | Eksperymentuj |
| scheduler | beta | Stabilny dla Flux 2 |
| denoise | 1.0 | Pełna dyfuzja od szumu |
Flux 2 działa lepiej z krótkimi, precyzyjnymi promptami niż z długimi opisami. Zamiast:
a highly detailed professional photo of Kacper, man in his 30s, with brown hair and blue eyes, wearing a casual dark blue shirt, standing in a modern office with large windows, sharp focus, 8k resolution, photorealistic
Lepiej:
photo of Kacper, professional headshot, modern office, sharp focus
Generacja jednego obrazu na RTX 5080 zajmuje kilka sekund. Możesz iterować dziesiątki razy, zanim trafisz na idealny seed i ustawienia — bez żadnych kosztów.
Zastosowania biznesowe
Trening twarzy to tylko jeden przypadek użycia. LoRA sprawdza się wszędzie tam, gdzie potrzebna jest spójność wizualna:
Styl marki. Wytrenuj LoRA na zdjęciach z sesji brandingowej — ComfyUI generuje nowe materiały graficzne, które wyglądają jak część tej samej kampanii. Bez Photoshopa, bez designera, bez czekania na kolejną sesję.
Produkt. Kilkanaście zdjęć produktu w różnych kątach jako dataset — LoRA uczy się jego kształtu, kolorów, materiałów. Możesz generować produkt w dowolnym otoczeniu, z różnym oświetleniem, w rękach różnych modeli.
Kampanie wizerunkowe. Klient zatwierdził wygląd modela, ale potrzeba 20 wariantów do A/B testów. Zamiast wynajmować modela 20 razy — generujesz lokalnie, prywatność zachowana, koszty minimalne.
Consistent characters. W materiałach edukacyjnych, prezentacjach, infografikach — ta sama postać, różne sytuacje, spójna identyfikacja wizualna.
We wszystkich tych przypadkach kluczowe jest to, że dane treningowe i wygenerowane obrazy nie opuszczają lokalnego dysku. Dla agencji pracującej z wizerunkiem i materiałami klientów to nie jest szczegół — to wymóg.
Dalej w tym klastrze
Lokalne generowanie obrazów to jeden element większego stacku AI na własnej infrastrukturze:
- Lokalny RAG bez chmury — RTX 5080, ColQwen i LanceDB — wyszukiwanie semantyczne po dokumentach bez zewnętrznych API
- Lokalny asystent AI dla programistów — Qwen 3, Ollama, Docker — code completion i refactoring offline
- Gemini Imagen w n8n — automatyczna edycja zdjęć produktów — kiedy lokalne nie wystarczy i potrzebujesz chmury
Jeśli chcesz wdrożyć podobny stack w swojej firmie — lokalny homelab AI, pipeline generowania grafik lub automatyzacje oparte na modelu wytrenowanym na własnych danych — umów się na rozmowę. Dobierzemy rozwiązanie do budżetu, skali i wymagań dotyczących prywatności.
