LoRA w praktyce. Skrzyw model tak, aby tworzył lepsze grafiki.

LoRA? Co to, po co to komu? Cóż, jeśli pracujesz z generatywną sztuczną inteligencję, to może Ci się przydać.

Narzędzia oparte na generatywnej sztucznej inteligencji zdobywają coraz większą popularność. Jednak nie dzieje się to bez problemów. Za jeden z kluczowych uważam to, że wyniki często są do siebie boleśnie podobne, co szczególnie widać na przykładzie grafiki. W ostatnim tygodniu marca 2025 doszło do giblifikacji Internetu. Za sprawą openAI i nowych możliwości generowania grafiki każdy chciał nabrać kreski legendarnego i kultowego studia Ghibli. Pewnie, gdy piszę te słowa, czyli w okolicy drugiej połowy kwietnia 2025 roku, już nawet nie pamiętasz o tym trendzie, bo zastąpił go inny. Dla mnie był on okazją do zastanowienia się, jak w pracy z genAI uzyskiwać lepsze wyniki.

Jest to dla mnie istotne, ponieważ zajmuję się projektowaniem systemów, w których generatywna sztuczna inteligencja jest istotną warstwą. Od razu zaznaczam, że dzisiejszy tekst dotyczy głównie pracy z lokalnymi modelami generującymi grafikę. Nie są one doskonałe, ale takie być nie muszą. Nie zależy mi na tym, aby całkowicie usunąć wpływ człowieka na efekt, dlatego często zderzam się z pytaniem o poprawienie wyników pracy modelu. W tym miejscu muszę zaznaczyć pierwszą rzecz, aż ją pogrubię, aby była widoczna.

Jeśli korzystasz z modelu pobranego z Internetu oraz masz kolekcję LoRA pobraną z Internetu, to nie dziw się, że wszystkie twoje wygenerowane obrazki wyglądają tak samo, jak obrazki innych osób.

Uważam, że kluczowe w pracy z grafiką jest zrozumienie tego, że na efekt składa się nie tylko prompt, ale również wybrany model oraz podpięta pod niego LoRA. Wybrany model ma olbrzymią wagę, szczególnie jeśli już został przez kogoś wyspecjalizowany. Przykład? Załóżmy, że potrzebujesz stworzyć zestaw teł do interfejsu gry lub aplikacji. Masz na dysku model, którego uwaga już została przez kogoś skrzywiona i teraz tworzy głównie amatorskie fotografie, niech to będą selfie z telefonu. Nie oczekuj, że używając takiego modelu uda ci się wygenerować zestaw teł, bo tutaj już wchodzi kwestia skrzywienia uwagi, skupienia modelu na konkretnych wynikach, które zwraca. Oczywiście, że trochę można osiągnąć za pomocą promptu, ale pewnych fundamentalnych ograniczeń, wynikających z wybrania takiego, a nie innego modelu, nie da się przeskoczyć.

Dlaczego o tym piszę? Cóż, chciałbym, aby osoby korzystające z generatywnej sztucznej inteligencji przeszły krok dalej, niż wpiszę prompt do GPT i dostanę obrazek. Ja wiem, że modele powoli zaczynają tłumaczyć świat, ale wciąż wierzę, że w wielu osobach tli się ludzka ciekawość i chęć zgłębienia jakiegoś problemu. Stąd wzięła się potrzeba napisania tego tekstu — może ktoś chce pracować z grafiką opartą na własnych materiałach, słowo LoRA obiło się o uszy, a nikt nie powiedział, jak ją zrobić albo po co ona jest. Ja postaram się to trochę wytłumaczyć. Przy czym od razu zaznaczam, że w tym tekście skupię się na trenowaniu LoRA z użyciem CivitAI. Powód jest banalny – tam trzeba tylko klikać, nie ma żadnego kodu do przeklejania, a koszty nie są duże. To co? Bierzemy się do zrobienia pierwszej LoRA!

Oto moje obrazki, maszyno działaj!

Powoli. Zanim przejdę do instrukcji z obrazkami gdzie kliknąć, to, ponownie, muszę coś zaznaczyć. Coś absolutnie krytycznego dla całego procesu.

LoRA, którą chcesz stworzyć, powinna być oparta na materiałach, do których masz stosowne prawa! Prowadzisz firmę i nie masz polityki pracy z generatywną sztuczną inteligencją? Zanim wrzucisz te grafiki jako zbiór treningowy, to najpierw zajmij się tym tematem!

To, czym jest ta cała LoRA? Masz model, który generuje grafikę, ale chcesz, aby efekty jego pracy bardziej przypominały zasoby, którymi dotychczas dysponujesz. Nie musisz wcale tworzyć odrębnego modelu za pomocą fine tuningu! Możesz wykorzystać nakładkę (LoRA!), która zmieni wygląd generowanej grafiki i sprawi, że będzie ona podobna do stylu, z którego korzystasz. Modyfikujesz uwagę modelu w konkretnym kierunku.

Pogadajmy o pieniądzach. Ostatnia LoRA, jaką robiłem, składała się z około 50 obrazków, były to ikony do gry. Ile kosztował mnie jeden trening? Zależy od modelu, jaki wybrałem. SDXL kosztował mnie 500 kredytów, tyle samo Illustorious. Flux1Dev był droższy, tutaj zapłaciłem 2000 kredytów. A ile to jest jeden kredyt? Kupuje się je w pakietach, najtańszy, 5000 kredytów, to… 5 dolarów. Czy wystarczy założyć konto i zapłacić? A skąd!

LoRA z pomocą CivitAI

Jak już masz konto i doładowane kredyty, to czas rozpocząć klikanie. Najpierw wybierasz Train LoRA z rozwijanej listy pod Create
Teraz czas zdecydować, czego będzie dotyczyła twoja LoRA. Masz do wyboru postać, styl oraz koncepcję.

Tutaj już musisz mniej więcej wiedzieć, co chcesz osiągnąć. Na przykład, chcesz, aby w generowanych obrazkach była zawsze konkretna osoba, to wtedy robisz LoRA z postacią. Zależy ci bardziej na transferze stylu? To wybierz styl.

Czytasz ze zrozumieniem i akceptujesz poniższe regulacje.
Czas dodać dane! Tutaj na chwilę się zatrzymamy. Musisz je odpowiednio przygotować, czyli po prostu opisać. O czym trzeba pamiętać?
  • Do opisywania grafik wykorzystaj LLMa. Ja używałem zarówno tych z otwartoźródłowych, jak i komercyjnych. Nadają się.
  • Jeśli to ma być LoRA pod model oparty na SDXL, to opisy muszą być w formie tagów, a jeśli chcesz korzystać z Fluksa, to muszą być w formie takiej narracji opowiadającej, co jest widoczne.
  • Gdzie znajdziesz przykłady? Skąd wziąć gotowy skrypt? Spokojnie, wszystko przygotowałem w moim repozytorium. Tam jest gotowy skrypt oraz prompty. Więcej niż jedna LoRA została zrobiona na bazie wygenerowanych opisów i efekty były bardzo dobre. Skrypt używa modeli gemma3:12B (za pomocą ollamy, więc możesz wybrać inny model) lub GPT-4o.
Potwierdzasz, że masz prawa do zestawu obrazków, ale go nie udostępniasz (chyba że chcesz!)
Wybierasz podstawowy model, pod który będzie podpinana LoRA.
Rozwijasz Training parameters. Tam jest sporo do przeklikania i jak chcesz wiedzieć więcej i więcej poustawiać, to wykorzystaj Perplexity do tego, aby rozszerzyć swoją wiedzę. Ja, z racji tego, że to jest tekst wprowadzający w temat, skupię się na kilku elementach:
  • Ustaw rozdzielczość, z jaką ma pracować LoRA. Zależy od zestawu obrazków oraz tego, gdzie będą używane. Mnie nie zdarzyło się wyjść poza 1024×1024. Pamiętaj, aby zerknąć na to, z jakimi rozdzielczościami współpracuje model, który chcesz wykorzystać!
  • Parametr Epoch ustaw tak, aby mieć wartość 1000 kroków (Steps). Każda Epoch to jedna LoRA, którą możesz sprawdzić. Im więcej ich zrobisz, tym lepsze będą wyniki. Ja najlepsze osiągałem przy 18 Epochs i 1000 kroków (Steps).
Zjeżdżasz na sam dół, wysyłasz dane do treningu i czekasz. Uwaga! Koszt może ulec zmianie! Jeśli ustawisz parametr Epochs na 50, zobaczysz, że trening będzie droższy (w tym przypadku będzie to około 900 kredytów). 500 kredytów to koszt dla 18 Epochs.
Teraz musisz uzbroić się w cierpliwość. Trochę się to będzie wypiekać, na maila otrzymasz wiadomość, gdy proces się skończy.

Czasem się udaje, a czasem nie. Bardzo dużo zależy od danych treningowych, ale również od samego modelu. Taki Illustrious jest lepszy w tworzeniu postaci, niż przedmiotów i trzeba brać na to poprawkę. Po ukończeniu treningu LoRA będzie gotowa do pobrania — z rozwijanego menu pod obrazkiem profilowym wybierz Training i wybierz efekt treningu.

Teraz zobaczysz miejsce, w którym LoRA będzie dostępna do pobrania.

Każda będzie miała obrazek podglądowy oraz słowa kluczowe (lub dłuższy prompt), który będzie ją wyzwalać. Pamiętaj, że te podglądy nie muszą być idealne! Ważne, aby były spójne z tym, co chcesz osiągnąć!

Już! LoRA na dysku. Bierz, podpinaj pod model, działaj! Ja zachęcam do zainteresowania się ComfyUI, tutaj znajdziesz krótkie podsumowanie szkolenia, które robiłem dla uczestników „Śniadań z AI” w Katowicach. Tak się składa, że jest tam też zapisany proces, gdzie została użyta LoRA.