W skrócie: Text Generation WebUI (projekt oobabooga) to open-source interfejs w przeglądarce do uruchamiania lokalnych modeli językowych. Pod jednym panelem obsługuje kilka backendów - llama.cpp, Transformers, ExLlamaV2 - więc odpalisz na nim niemal każdy format modelu. Działa offline, bez abonamentu, z własnym API.
Jeśli Ollama i LM Studio są jak gotowe pudełko - wygodne, ale z paroma śrubkami zakręconymi na stałe - to Text Generation WebUI jest jak otwarta maska silnika. Dostajesz dostęp do parametrów, backendów i rozszerzeń, których tamte narzędzia nie pokazują. Ta kontrola ma swoją cenę: trzeba wiedzieć, co się kręci pod spodem.
Co to jest Text Generation WebUI
Text Generation WebUI to aplikacja webowa napisana w oparciu o Gradio, która daje ci graficzny panel do rozmowy z lokalnym modelem językowym. Autor, występujący pod nickiem oobabooga, budował ją jako tekstowy odpowiednik AUTOMATIC1111 stable-diffusion-webui - tego samego, którego społeczność używa do generowania grafiki. Stąd druga popularna nazwa: "textgen" albo po prostu "ooba".
Najważniejsze: to nie jest kolejny model. To interfejs, który ładuje modele i pozwala nimi sterować. Sam w sobie nic nie generuje - potrzebuje pliku modelu, który pobierasz z Hugging Face. Za to gdy już go załadujesz, dostajesz trzy tryby pracy: Chat (rozmowa jak z asystentem), Notebook (swobodne dopisywanie tekstu bez podziału na tury) i Default (surowy prompt-completion do testów).
Pod maską projekt przeszedł sporą metamorfozę. W wersji trzeciej (2025) autor przepisał go na natywną aplikację desktop z jednoplikowymi instalatorami dla Windows, Linuksa i macOS - społeczność na r/Oobabooga opisuje go dziś wprost jako open-source alternatywę dla LM Studio. Zniknęła część ciężkich zależności, przyspieszył start. Ale sam rdzeń pozostał ten sam: jeden panel, wiele silników inferencji.
Backendy - dlaczego to jest jego supermoc
Tu leży cała różnica między Text Generation WebUI a prostszymi narzędziami. Konkurencja zwykle stawia na jeden silnik. Ollama i LM Studio siedzą na llama.cpp i formacie GGUF - świetnie, dopóki chcesz dokładnie tego. Ooba pozwala przełączać backend zależnie od tego, jaki model i jaki sprzęt masz pod ręką.
- llama.cpp - ładuje modele w formacie GGUF, potrafi rozłożyć obliczenia między CPU a GPU. To wybór, gdy masz mało VRAM albo w ogóle brak dedykowanej karty. Ten sam silnik napędza Ollamę, więc modele GGUF przenoszą się między tymi narzędziami bez konwersji.
- Transformers - biblioteka od Hugging Face, ładuje modele w oryginalnym formacie PyTorch (safetensors). Daje pełną precyzję albo kwantyzację 8-bit i 4-bit w locie. Wybierasz go, gdy chcesz najbliżej "surowego" modelu, na przykład do trenowania.
- ExLlamaV2 (i nowszy ExLlamaV3) - wyspecjalizowany silnik pod karty NVIDIA i format EXL2. W praktyce najszybsza opcja, jeśli cały model mieści się w pamięci GPU.
Trade-off jest prosty: jeden interfejs, który rozumie trzy ekosystemy formatów, oznacza, że nie musisz uczyć się trzech osobnych narzędzi. Kosztuje cię to za to chwilę zastanowienia przy każdym modelu - który backend go załaduje. Ollama tej decyzji nie wymaga, bo za ciebie ją podjęła.
Jakie modele uruchomisz
Zasada jest taka: jeśli model istnieje na Hugging Face jako otwarte wagi, prawdopodobnie odpalisz go w Text Generation WebUI. Panel ma wbudowaną zakładkę do pobierania - wklejasz identyfikator repozytorium (na przykład TheBloke/Mistral-7B-Instruct-GGUF) i narzędzie ściąga pliki do folderu models.
W praktyce najczęściej zobaczysz tu rodziny Llama 3, Mistral, Qwen, a z klasyki GPT-J, Pythia, OPT czy GALACTICA. Formaty, które połkniesz:
- GGUF - skwantyzowane modele pod llama.cpp, najlżejsze dla przeciętnego peceta.
- EXL2 - format ExLlamy, gdy grasz na maksymalną szybkość na GPU.
- safetensors / Transformers - pełne wagi, gdy zależy ci na jakości albo planujesz fine-tuning.
Konkret: dla polskich zastosowań tak samo załadujesz tu Bielika w formacie GGUF, jak w każdym narzędziu na llama.cpp. Interfejs nie ogranicza doboru modelu - ogranicza go twój VRAM i cierpliwość przy pobieraniu.
API - most do własnych aplikacji
Text Generation WebUI wystawia API zgodne ze standardem OpenAI. To ważniejsze, niż brzmi. Oznacza, że dowolna aplikacja czy biblioteka, która umie gadać z ChatGPT przez API, zagada z twoim lokalnym modelem - wystarczy podmienić adres endpointu na localhost i zostawić resztę bez zmian.
W praktyce włączasz rozszerzenie API (flaga --api przy starcie albo przełącznik w zakładce Session), a narzędzie zaczyna nasłuchiwać na lokalnym porcie. Od tego momentu podłączysz pod nie skrypt w Pythonie, wtyczkę do edytora kodu czy własny przepływ automatyzacji - tak samo, jak podłączasz API Ollamy.
Pro tip: skoro API mówi dialektem OpenAI, to migracja działa w obie strony. Prototyp na chmurowym GPT przepniesz na lokalny model bez przepisywania kodu - i odwrotnie. To jest właśnie sens lokalnego API: kontrola nad danymi bez przebudowy całej aplikacji.
Rozszerzenia - RAG, głos, tłumaczenie
Ooba ma system rozszerzeń (extensions), który dokłada funkcje bez ruszania rdzenia. To one odróżniają go od minimalistycznych czatów.
- superbooga / superboogav2 - dokłada prostą pamięć i RAG, czyli podawanie modelowi fragmentów twoich dokumentów jako kontekstu. Zapytanie "text generation webui rag" prowadzi zwykle właśnie tutaj.
- TTS i Whisper - synteza mowy z odpowiedzi oraz dyktowanie promptu głosem.
- translate - tłumaczenie wejścia i wyjścia w locie.
- character / gallery - persony i karty postaci, jeśli budujesz asystenta z określonym charakterem.
Najważniejsze: rozszerzenia włączasz w zakładce Session albo flagą przy starcie, a społeczność dorzuca kolejne w osobnych repozytoriach. Jeśli szukasz gotowego, wypolerowanego czatu z zarządzaniem dokumentami, prościej wychodzi Open WebUI to lekki fine-tuning - zamiast przeliczać cały model, uczysz małą nakładkę wag, którą potem doczepiasz do bazowego modelu.
W praktyce wrzucasz zbiór danych tekstowych, ustawiasz kilka parametrów i odpalasz trening bez pisania kodu treningowego. To nie zastąpi poważnego pipeline'u fine-tuningu - do tego lepiej sięgnąć po Unsloth: opisujesz kontener, montujesz folder z modelami, mapujesz port.
Wymagania sprzętowe zależą od tego, co chcesz uruchomić, nie od samego interfejsu. Model 7B w GGUF ruszy na zwykłym pececie z 16 GB RAM, choć bez GPU generacja będzie wolna. Większe modele albo backend ExLlamaV2 chcą dedykowanej karty NVIDIA z odpowiednim zapasem VRAM. Sprawdź sam: zacznij od małego modelu w GGUF, zobacz tempo, dopiero potem celuj wyżej.
Text Generation WebUI a Ollama i LM Studio
To zależy - od tego, czego szukasz. Ollama i LM Studio wygrywają prostotą: instalujesz, wpisujesz nazwę modelu, gadasz. Text Generation WebUI wygrywa kontrolą: wybór backendu, pełen zestaw parametrów generacji, trening LoRA, rozszerzenia. Poniżej skrót różnic.
| Cecha | Text Generation WebUI | Ollama / LM Studio |
|---|---|---|
| Backendy | llama.cpp, Transformers, ExLlamaV2 | głównie llama.cpp (GGUF) |
| Próg wejścia | średni - trzeba rozumieć backendy | niski - działa od razu |
| Trening LoRA | tak, wbudowana zakładka | nie |
| Rozszerzenia | rozbudowany system (RAG, TTS, translate) | ograniczone lub brak |
| API | zgodne z OpenAI | zgodne z OpenAI |
| Dla kogo | tinkerzy, badacze, fine-tuning | szybki start, codzienne użycie |
W praktyce: jeśli dopiero wchodzisz w lokalne modele, zacznij od prostszego narzędzia - porównanie LM Studio vs Ollama - instalujesz i działa. Text Generation WebUI obsługuje trzy backendy (llama.cpp, Transformers, ExLlamaV2), dokłada trening LoRA i rozszerzenia. Płacisz za to wyższym progiem wejścia. Ooba to wybór, gdy chcesz kontroli, Ollama - gdy chcesz prostoty.
Jak zainstalować Text Generation WebUI? Najprościej pobrać instalator jednoplikowy z repozytorium oobabooga/text-generation-webui na GitHub, uruchomić skrypt startowy i poczekać, aż postawi środowisko. Panel otworzy się w przeglądarce pod lokalnym adresem. Alternatywa to gotowy obraz Docker (atinoda/text-generation-webui), wygodny na serwerze i przy izolacji od systemu.
Czy Text Generation WebUI ma API?
Tak, wystawia API zgodne ze standardem OpenAI. Włączasz je flagą --api przy starcie lub w zakładce Session, a narzędzie nasłuchuje na lokalnym porcie. Każda aplikacja, która umie rozmawiać z ChatGPT przez API, podłączy się do twojego lokalnego modelu po podmianie adresu na localhost.
Jakie modele obsługuje Text Generation WebUI? Praktycznie każdy otwarty model z Hugging Face - Llama 3, Mistral, Qwen, a z klasyki GPT-J, Pythia, OPT, GALACTICA. Formaty: GGUF (llama.cpp), EXL2 (ExLlamaV2) oraz safetensors (Transformers). Wbudowana zakładka pobiera modele po podaniu identyfikatora repozytorium z Hugging Face.
Czy w Text Generation WebUI można trenować własny model? Tak, ma zakładkę Training do dostrajania metodą LoRA - lekkiej nakładki wag zamiast przeliczania całego modelu. Wystarczy zbiór danych tekstowych i kilka parametrów, bez pisania kodu treningowego. Do poważniejszego fine-tuningu z mniejszym zużyciem pamięci lepiej sprawdza się Unsloth.
Jaki sprzęt jest potrzebny do Text Generation WebUI? Zależy od modelu, nie od interfejsu. Model 7B w GGUF ruszy na pececie z 16 GB RAM, choć bez GPU generacja jest wolna. Większe modele albo backend ExLlamaV2 wymagają dedykowanej karty NVIDIA z zapasem VRAM. Zacznij od małego modelu, zmierz tempo, potem celuj wyżej.