oobabooga textgen
v4.9 open-source# Default — localhost only, no extra flag needed
python server.py
# Opt into network exposure
python server.py --listen
# or for public API access
python server.py --public-api
textgen --no-electron
textgen --split-mode tensor
textgen --listen --nowebui
python server.py --preserve-thinking
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"]
}
}
}
curl -X POST http://localhost:5000/v1/internal/model/load \
-H 'Content-Type: application/json' \
-d '{"model_name": "Mistral-7B-Instruct", "instruction_template": "Mistral", "args": {}}'
python server.py --ik --model my-model.gguf
curl http://localhost:5000/v1/completions -H 'Content-Type: application/json' -d '{"model": "my-model", "prompt": "Explain KV cache", "max_tokens": 64, "echo": true, "logprobs": 5}'
ANTHROPIC_BASE_URL=http://127.0.0.1:5000 claude
python server.py --loader llama.cpp --spec-type ngram-mod --spec-ngram-size-n 8 --spec-ngram-size-m 2 --spec-ngram-min-hits 2
python server.py --loader llama.cpp --parallel 4 --n-ctx 32768
python server.py --temperature 0.7 --min-p 0.05 --top-k 40 --repetition-penalty 1.1 --chat-template-file my_template.jinja
python server.py --cpu-moe
python server.py --loader exllamav3 --enable-tp --tp-backend cuda
python server.py --model mistral-7b-instruct-v0.2.Q5_K_M.gguf --ctx-size 32768 --cache-type q4_0
python server.py --torch-compile
python download-model.py TheBloke/Mixtral-8x7B-v0.1-GGUF --exclude-pattern '*.Q8_0.gguf'
python server.py --old-colors
python server.py --loader exllamav2 --num_experts_per_token 2 --model <your-moe-model>
python server.py --nowebui --admin-key mysecretkey
curl -X POST http://localhost:5000/v1/internal/logits -H 'Authorization: Bearer mysecretkey' -H 'Content-Type: application/json' -d '{"prompt": "The capital of France is"}'
curl http://localhost:5000/v1/internal/lora -H 'Authorization: Bearer mysecretkey'
curl -X POST http://localhost:5000/v1/internal/stop-generation Summary
oobabooga textgen is an open-source desktop application that functions as a local LLM runtime for developers and chat users. As it has no licensing cost, it can be run via a self-contained, portable build for Linux, Windows, and macOS. It is designed for users who interact with local-llm-runtime tools, offering features such as chat interfaces, multimodal vision capabilities via attached images, and file ingestion for PDF or DOCX content. The application supports multiple backends like llama.cpp and Transformers, and exposes an OpenAI/Anthropic-compatible API with native tool-calling support. The project is actively maintained, with portable builds available across common operating systems.
What oobabooga textgen answers
What model formats does it support running?
GGUF (llama.cpp) models and others through attached backends like Transformers, ExLlamaV3, and TensorRT-LLM
How can I integrate it with existing workflows that expect specific API endpoints?
It exposes an OpenAI/Anthropic-compatible API with Chat, Completions, and Messages endpoints that support tool-calling
What types of files can I include as context for the conversation?
It processes text files, PDF documents, and .docx documents, in addition to attached images
Does changing the underlying model structure require restarting the application?
No, you can switch between backends and models without restarting
What kinds of external functions can the models interact with?
Models can call custom functions defined in single .py files, including those for web search, page fetching, and math
Examples
Command line
No option matches that search.
| option | found in | since | description |
|---|
No option matches that search.
Values are placeholders taken from each option’s declared default. Nothing is executed here — the output shown is a recording of a run that already happened.
Release history
- v4.9
v4.9 adds MTP speculative decoding, web search snippets, live token-speed display, drag-and-drop upload, and localhost-only CORS hardening.
└──▷ GET THIS VERSION$ git clone --branch v4.9 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v4.9
└──▷ TRY ITLock the API surface to localhost only (default after v4.9) or expose it to the network when needed.$ # Default — localhost only, no extra flag needed python server.py # Opt into network exposure python server.py --listen # or for public API access python server.py --public-api
- ›Adds
draft-mtpas a new--spec-typeoption for MTP speculative decoding; auto-enabled when loading MTP GGUFs (e.g. Qwen 3.6 MoE MTP builds). - ›Treats negative
--ctx-sizevalues as auto (0), allowing automatic context-size selection. - ›Adds snippet support to the
web_searchtool so results include a short text excerpt, often eliminating the need for a follow-upfetch_webpagecall. - ›Shows live generation speed (tokens/s) and context size in the UI while generating.
- ›Adds drag-and-drop file upload support to the chat input.
+8 moreshow less
- ›Adds Linux aarch64 portable builds for DGX Spark support.
- ›Stores Electron app data in
user_data/cache/electroninstead of the OS default location. - ›Auto-detects and auto-selects sibling
mmproj-*.gguffiles when loading a model; these appear in the mmproj dropdown and are hidden from the regular model dropdown. - ›Drops link URLs from
fetch_webpageoutput (links render as plain text instead of [text](url) markdown), significantly reducing tokens used per page. - ›Adds 'Check for updates' button, a folder picker for the models directory, right-click copy context menu, and a spellcheck toggle in the Electron Session tab.
- ›Improves web search security by rejecting non-HTTP links.
- ›Hides reasoning and tools controls in chat mode (shown only in instruct / chat-instruct modes).
- ›One-click installer now tracks the latest release tag instead of bleeding-edge
main.
└──▷ BREAKING ON UPGRADE- !Electron app data location changed from the OS default to
user_data/cache/electron; existing cached data in the old location will not be picked up automatically.
- ›Adds
- v4.8
oobabooga textgen v4.8 adds a
--no-electronflag, list-format API content support, and a redesigned chat composer.└──▷ GET THIS VERSION$ git clone --branch v4.8 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v4.8
└──▷ TRY ITLaunch textgen headlessly in a server environment where you want browser access only, bypassing the Electron desktop window.$ textgen --no-electron
- ›Adds
--no-electronflag to skip the Electron desktop window and use the web UI in the browser instead. - ›API now supports list-format content in tool and assistant messages.
- ›Redesigned chat composer with a taller input area and pinned paperclip and message-action buttons.
- ›Electron window now persists bounds and maximize state across launches.
- ›Smooth scroll animation when sending a new message in the chat UI.
- ›Adds
- v4.7.3
v4.7.3 adds a native Electron desktop app, tensor-parallel multi-GPU flag, and .jinja template support alongside a full UI overhaul.
└──▷ GET THIS VERSION$ git clone --branch v4.7.3 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v4.7.3
└──▷ TRY ITEnable tensor parallelism across multiple GPUs to get 60%+ faster inference on a multi-GPU workstation.$ textgen --split-mode tensor
Run textgen as a headless API server (no Electron window) for automated or remote access workflows.$ textgen --listen --nowebui
- ›Adds
--split-modeflag for llama.cpp with atensoroption enabling tensor parallelism that can make multi-GPU inference 60%+ faster; on ik_llama.cpp,tensorandrowfall back tograph. - ›Adds
--listenflag to skip the native Electron window and expose the server directly;--nowebuialso skips the window for headless server use. - ›Adds support for standalone
.jinjaand.jinja2instruction template files in the UI, alongside the existing.yamlformat. - ›Portable builds now bundle Electron and open as a native desktop window; launch with
textgen(Linux/macOS) ortextgen.bat(Windows) instead of the previous start scripts. - ›Replaces DuckDuckGo HTML scraping in the web search tool with the
ddgsPython library for more robust bot-blocking resistance.
+1 moreshow less
- ›Redesigns the chat UI with Inter font, Lucide SVG icons, a 3-button segmented mode selector (chat / chat-instruct / instruct), a rounded card chat input with accent-colored send button, and hairline sidebar handles.
└──▷ BREAKING ON UPGRADE- !The
--row-splitflag is replaced by--split-mode; existing launch scripts using--row-splitwill need to be updated.
- ›Adds
- v4.6.2
oobabooga textgen v4.6.2 adds tool-call confirmation buttons, stdio MCP server support, and a
--preserve-thinkingflag.└──▷ GET THIS VERSION$ git clone --branch v4.6.2 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v4.6.2
└──▷ TRY ITLaunch the server with thinking-block preservation enabled so prior-turn reasoning stays in context for multi-turn sessions.$ python server.py --preserve-thinking
Connect a local stdio-based MCP server (e.g. a filesystem tool) so textgen can call it as an agent tool — same config format as Claude Desktop.{ "mcpServers": { "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"] } } }- ›Adds
--preserve-thinkingCLI flag and matching chat template parameterpreserve_thinkingto control whether thinking blocks from prior turns are kept in context. - ›Adds stdio MCP server support via
user_data/mcp.json, using the same format as Claude Desktop and Cursor, enabling local subprocess-based MCP servers alongside existing HTTP MCP servers. - ›Adds inline approve/reject/always-approve tool-call confirmation buttons, enabled via the new 'Confirm tool calls' checkbox in the Chat tab.
- ›Adds UI checkbox for
preserve_thinkingto control thinking-block retention without the CLI. - ›Passes
--draft-min 48by default for llama.cpp draftless speculative decoding.
+1 moreshow less
- ›Limits 'Reasoning effort' and 'Enable thinking' controls to models whose chat template actually uses them.
- ›Adds
- v4.4
v4.4 adds MCP server integration, image-gen metadata in API responses, and new model-load API parameters.
└──▷ GET THIS VERSION$ git clone --branch v4.4 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v4.4
└──▷ TRY ITSpecify a prompt template when loading a model via the API, so the server applies the correct instruction format from the start.$ curl -X POST http://localhost:5000/v1/internal/model/load \ -H 'Content-Type: application/json' \ -d '{"model_name": "Mistral-7B-Instruct", "instruction_template": "Mistral", "args": {}}'
Connect a remote MCP server so its tools are automatically discovered and available alongside local tools during chat.📍In the Chat tab, locate the 'MCP servers' field and enter your server URL (one per line), e.g.: https://mcp.example.com/my-server Then send a message — tools are discovered and invoked automatically.- ›Adds
instruction_templateandinstruction_template_strparameters to the model load API endpoint, allowing callers to specify prompt format at load time. - ›Adds MCP server support: enter one remote MCP server URL per line in the new 'MCP servers' field in the Chat tab — tools are discovered automatically and used alongside local tools.
- ›PNG images returned by the image generation API now include generation metadata (model, seed, dimensions, steps, CFG scale, sampler) embedded in the file.
- ›Adds Windows + ROCm portable builds (ROCm 7.2) alongside the existing Windows CUDA and Vulkan builds.
- ›Updates ik_llama.cpp backend, adding Gemma 4 model support.
└──▷ BREAKING ON UPGRADE- !The deprecated
settingsparameter is removed from the model load endpoint — any client passingsettingswill need to be updated.
- ›Adds
- v4.3.3
oobabooga textgen v4.3.3 adds ik_llama.cpp backend, Gemma 4 tool-calling, and token-level logprobs in the completions API.
└──▷ GET THIS VERSION$ git clone --branch v4.3.3 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v4.3.3
└──▷ TRY ITRun a full install using the ik_llama.cpp backend to get improved KV cache quantization and MoE/CPU optimizations.$ python server.py --ik --model my-model.gguf
Retrieve token-level log probabilities for both the prompt and generated output via the completions API.$ curl http://localhost:5000/v1/completions -H 'Content-Type: application/json' -d '{"model": "my-model", "prompt": "Explain KV cache", "max_tokens": 64, "echo": true, "logprobs": 5}'
- ›Adds
--ikflag for full installs to switch to the ik_llama.cpp backend, which brings new quant types, more accurate KV cache quantization via Hadamard rotation (enabled by default), and MoE/CPU inference optimizations. - ›Adds
textgen-portable-ikportable builds as a no-install distribution of the ik_llama.cpp backend alongside the existing llama.cpp portables. - ›Adds
echoandlogprobsparameters to the/v1/completionsendpoint, returning token-level log probabilities for both prompt and generated tokens; token IDs are also returned in a newtop_logprobs_idsfield. - ›Adds Gemma 4 support with tool-calling in both the API and UI.
- ›Transformers backend now autodetects
torch_dtypefrom model config instead of always forcing bfloat16/float16;--bf16still works as a manual override.
+1 moreshow less
- ›Removes the obsolete
models/config.yamlfile; instruction templates are now detected from model metadata.
└──▷ BREAKING ON UPGRADE- !The
models/config.yamlfile is removed; instruction templates are now auto-detected from model metadata, so any local customizations stored in that file will no longer be applied.
- ›Adds
- v4.2
oobabooga textgen v4.2 adds an Anthropic-compatible
/v1/messagesendpoint and expands--extra-flagsto accept literal flags.└──▷ GET THIS VERSION$ git clone --branch v4.2 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v4.2
└──▷ TRY ITPoint Claude Code at your local textgen instance to use local models via the new Anthropic-compatible endpoint.$ ANTHROPIC_BASE_URL=http://127.0.0.1:5000 claude- ›Adds
/v1/messagesendpoint for Anthropic API compatibility, enabling Claude Code, Cursor, and other Anthropic clients to connect; supports system messages, content blocks, tool use, tool results, image inputs, and thinking blocks. - ›Expands
--extra-flagsto accept literal flags directly (e.g.--extra-flags "--rpc 192.168.1.100:50052 --jinja"), in addition to the existingkey=valueformat. - ›Moves the OpenAI-compatible API from
extensions/openaitomodules/api; the old--extensions openaiflag remains accepted as an alias for--api. - ›Sets
top_p=0.95as the new default sampling parameter for API requests. - ›Enables
gradient_checkpointingby default during training to reduce VRAM usage.
+4 moreshow less
- ›Removes the
higher_rank_limittraining parameter. - ›Updated UI theme with new colors, borders, and button styles across light and dark modes.
- ›Removes 52 obsolete instruction templates from 2023 (Airoboros, Baichuan, Guanaco, Koala, Vicuna v0, MOSS, and others).
- ›Reduces portable build sizes by switching to a stripped Python distribution.
└──▷ BREAKING ON UPGRADE- !The default
top_pfor API requests is now0.95; any setup relying on the previous default will receive different sampling behavior without explicit configuration. - !The
higher_rank_limittraining parameter has been removed; configs or scripts referencing it will need to be updated. - !52 instruction templates (Airoboros, Baichuan, Guanaco, Koala, Vicuna v0, MOSS, and others) have been removed; any saved configurations referencing these templates will lose them.
- ›Adds
- v4.1.1
Tool-calling in the UI, incognito chat, OpenAI API spec overhaul, and llama.cpp/ExLlamaV3 capability expansions in v4.1.1
└──▷ GET THIS VERSION$ git clone --branch v4.1.1 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v4.1.1
└──▷ HOW TO FIND ITStart the UI and keep a sensitive conversation entirely in RAM — no chat history ever written to disk.📍In the chat interface, click the 'Incognito chat' button next to the 'New chat' button to open a temporary session that is never saved to disk.- ›Adds tool-calling support in the chat UI: each tool is a single
.pyfile dropped intouser_data/tools; five built-in examples ship —web_search,fetch_webpage,calculate,get_datetime, androll_dice— and each tool call renders as a collapsible accordion during streaming showing the function name, LLM-chosen arguments, and output. - ›Adds
reasoning_contentfield to OpenAI API streaming and non-streaming chat completions, isolating thinking-block content fromcontent(which now carries only the post-thinking reply) even when tool calls are present. - ›Adds
tool_choicesupport and corrects thetool_callsresponse format in the OpenAI API for strict spec compliance, including returningfinish_reason: tool_callswhen tool calls are detected. - ›Adds
stream_optionssupport withinclude_usagefor streaming responses in the OpenAI API. - ›Adds
max_completion_tokensas an alias formax_tokensin the OpenAI API.
+20 moreshow less
- ›Adds support for the
developerrole in the OpenAI API, mapped tosystem. - ›Makes the
/v1/modelsendpoint show only the currently loaded model. - ›Includes
/v1in the API URL printed to the terminal. - ›Rewrites
logprobssupport in the OpenAI API for full spec compliance across llama.cpp, ExLlamaV3, and Transformers backends — both streaming and non-streaming responses now return token-by-token logprobs. - ›Sets llama.cpp
ctx-sizeto0(auto) by default when--gpu-layersis-1(the default); on other loaders,0maps to 8192. - ›Uses
--fit-ctx 8192to establish 8192 as the minimum acceptable context size for llama.cpp's--fit onmode (previously 4096). - ›Reduces the llama.cpp
--fit-targetdefault from 1024 MiB to 512 MiB. - ›Makes
logit_biasandlogprobsfunctional in llama.cpp API calls. - ›Adds missing
custom_token_bansparameter to the llama.cpp section of the UI. - ›Adds native
logit_biasandlogprobssupport for the ExLlamaV3 backend. - ›Loads the ExLlamaV3 vision model and draft model before the main model so memory auto-splitting accounts for them.
- ›Adds 'Incognito chat' button next to the existing 'New chat' button — incognito chats are temporary, live in RAM, and are never written to disk.
- ›Introduces a new default sampling preset 'Top-P' (
top_p: 0.95); removes the 'Qwen3 - Thinking', 'Qwen3 - No Thinking', 'min_p', and 'Instruct' presets. - ›Removes rope scaling parameters
alpha_value,rope_freq_base, andcompress_pos_embfrom the UI; they can still be passed to llama.cpp via--extra-flags. - ›Increases the
ctx-sizeslider maximum to 1M tokens in the UI (1024-token step). - ›Adds a drag-and-drop UI component for reordering 'Sampler priority' items.
- ›Adds security hardening: server-side file save roots, image URL SSRF protection, and an extension allowlist.
- ›Replaces
html2textwithtrafilaturafor webpage text extraction, reducing navigation-bar boilerplate and lowering token usage in agentic tool-calling loops. - ›Refactors thinking/reasoning extraction into a standalone module supporting Qwen, GPT-OSS, Solar, seed:think, and other formats, and auto-detects when a chat template appends
<think>to prepend it to the reply during streaming. - ›Removes the Gradio import in
--nowebuimode, saving approximately 0.5–0.8 seconds on startup.
└──▷ BREAKING ON UPGRADE- !The
alpha_value,rope_freq_base, andcompress_pos_embrope scaling parameters are removed from the UI; pass them to llama.cpp via--extra-flagsif still needed. - !The 'Qwen3 - Thinking', 'Qwen3 - No Thinking', 'min_p', and 'Instruct' presets are removed; the new default preset is 'Top-P' (
top_p: 0.95). - !Thinking-block content now goes exclusively into the
reasoning_contentfield;contentin chat completions no longer includes thinking-block text, even when tool calls are present. - !The
/v1/modelsendpoint now returns only the currently loaded model instead of all available models. - !llama.cpp
ctx-sizenow defaults to0(auto) when--gpu-layersis-1; setups that relied on the previous default context size will see a different context window.
- ›Adds tool-calling support in the chat UI: each tool is a single
- v4.0
oobabooga textgen v4.0 ships parallel API requests, a tool-calling overhaul, N-gram speculative decoding, new CLI generation-parameter flags, and major security hardening.
└──▷ GET THIS VERSION$ git clone --branch v4.0 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v4.0
└──▷ TRY ITEnable N-gram speculative decoding in llama.cpp for faster generation without a draft model.$ python server.py --loader llama.cpp --spec-type ngram-mod --spec-ngram-size-n 8 --spec-ngram-size-m 2 --spec-ngram-min-hits 2
Run concurrent API requests through llama.cpp with 4-way parallelism, multiplying context by 4 to provide enough KV-cache headroom.$ python server.py --loader llama.cpp --parallel 4 --n-ctx 32768
Set default API generation parameters and a custom jinja2 chat template at server startup so every API caller inherits them.$ python server.py --temperature 0.7 --min-p 0.05 --top-k 40 --repetition-penalty 1.1 --chat-template-file my_template.jinja
- ›Enables parallel API requests via
--parallel Nfor llama.cpp (multiply context length by N), ExLlamaV3, and TensorRT-LLM loaders for maximum throughput. - ›Adds
--spec-type,--spec-ngram-size-n,--spec-ngram-size-m, and--spec-ngram-min-hitsparameters to llama.cpp for N-gram speculative decoding — set--spec-type ngram-modto activate faster generation without a draft model. - ›Adds
--fit-targetparameter to control per-GPU VRAM headroom (default: 1024 MiB) alongside automatic GPU-layer selection (-1auto) for llama.cpp. - ›Adds new CLI flags
--temperature,--min-p,--top-k,--repetition-penalty,--enable-thinking,--reasoning-effort, and--chat-template-fileto set default API generation parameters;--chat-template-fileaccepts.jinjaor.yamlfiles. - ›Adds
--user-data-dirflag to customize the user data directory location; also auto-detects a../user_datafolder in portable mode for easier updates.
+17 moreshow less
- ›Restricts model loading over API to block
extra_flagsandtrust_remote_codeparameters, reducing attack surface. - ›Migrates TensorRT-LLM from the old ModelRunner API to the new LLM API, which accepts any Transformers model as input and exposes more sampling parameters.
- ›Tool-calling now works correctly for Qwen 3.5, Devstral 2, GPT-OSS, DeepSeek V3.2, GLM 5, MiniMax M2.5, Kimi K2/K2.5, and Llama 4 models with strict OpenAI format compliance.
- ›Adds 'Target all linear layers' checkbox in the Training tab to apply LoRA to every
nn.Linearlayer exceptlm_head, working across any model architecture. - ›Adds checkpoint resumption to the Training tab: HF Trainer checkpoint directories are detected automatically and training resumes with full optimizer/scheduler state.
- ›Adds dynamic padding for chat training datasets — batches pad to the longest sequence in the batch rather than always padding to
cutoff_len. - ›Conversations exceeding the cutoff length are now dropped instead of silently truncated (configurable).
- ›Introduces an adaptive-p sampler for llama.cpp, Transformers, ExLlamaV3, and ExLlamaV3_HF loaders that reshapes the logit distribution to favor tokens near a target probability.
- ›Adds a user persona dropdown in the Character settings tab to save and load user profiles (name, bio, profile picture) for switching personas.
- ›Adds Qwen 3.5 and Solar Open thinking block support to the UI.
- ›Replaces PyPDF2 with pymupdf for more accurate conversion of PDF inputs to text.
- ›Adds ROCm portable builds for Windows and CUDA 13.1 portable builds; restores macOS x86_64 (Intel) portable builds.
- ›llama.cpp binaries now autodetect CPU instruction set (AVX, AVX2, AVX-512) at runtime, replacing separate AVX/AVX2 builds.
- ›llama-server now spawns on port 5005 by default instead of a random port.
- ›SSE separator for streaming over the API changed from
\r\nto\nto match OpenAI. - ›Replaces Gradio with a custom fork (
oobabooga/gradio) delivering faster startup, instant SSE message delivery (replacing 50 ms polling), and a new zero-renderinggr.Headlesscomponent that reduces chat-streaming overhead. - ›Removes the ExLlamaV2 loader (archived upstream); EXL2 users must migrate to EXL3.
└──▷ BREAKING ON UPGRADE- !The ExLlamaV2 loader has been removed; EXL2 model users must migrate to the EXL3 loader.
- !The Training_PRO extension has been removed after being made obsolete by the Training tab rewrite.
- !The SSE streaming separator over the API changed from
\r\nto\n; clients that relied on\r\nframing will break. - !Conversations exceeding
cutoff_lenduring training are now dropped rather than silently truncated, changing training dataset behavior for affected entries. - !Model loading over API no longer accepts
extra_flagsortrust_remote_codeparameters; callers that pass these will be blocked. - !TensorRT-LLM has been migrated from the old ModelRunner API to the new LLM API; existing TensorRT-LLM integrations built against ModelRunner will break.
- ›Enables parallel API requests via
- v3.23
oobabooga textgen v3.23 improves table and separator styling in chat messages.
└──▷ GET THIS VERSION$ git clone --branch v3.23 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.23
- ›Improves the visual style of tables and horizontal separators rendered inside chat messages.
- v3.20
oobabooga textgen v3.20 adds a full image generation tab with diffusers models, quantization, and an OpenAI-compatible image API.
└──▷ GET THIS VERSION$ git clone --branch v3.20 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.20
└──▷ HOW TO FIND ITAccess the new image generation UI to generate images with a diffusers model, enable quantization, and browse past generations in the gallery.📍1. Launch textgen as usual and open the web UI. 2. Click the 'Image AI' tab. 3. Select a diffusers model (e.g. Z-Image-Turbo) and choose 4-bit or 8-bit quantization. 4. Enter a prompt and click Generate; past generations appear in the gallery below.- ›New 'Image AI' tab supports image generation via
diffusersmodels (e.g. Z-Image-Turbo) with 4-bit/8-bit quantization,torch.compilesupport, PNG metadata embedding, a gallery of past generations, and a progress bar. - ›Adds an OpenAI-compatible API endpoint for image generation.
- ›Passes
bos_tokenandeos_tokento jinja2 templates, enabling template support for Seed-OSS-36B-Instruct and similar models. - ›Enables
flash_attention_2by default for Transformers models. - ›Adds LLM-generated prompt variations as an image generation feature within the new 'Image AI' tab.
- ›New 'Image AI' tab supports image generation via
- v3.19
oobabooga textgen v3.19 adds a
--ubatch-sizeslider for llama.cpp and updates the backend with Qwen3-Next support.└──▷ GET THIS VERSION$ git clone --branch v3.19 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.19
- ›Adds
--ubatch-sizeslider in the llama.cpp loader UI with new defaults tuned for MoE models, significantly improving prompt processing speeds in full-GPU and GPU+CPU configurations. - ›Updates llama.cpp backend to commit
ff55414cadding Qwen3-Next model support. - ›Updates ExLlamaV3 to version 0.0.16.
- ›Adds
- v3.18
oobabooga text-gen v3.18 adds
--cpu-moeflag for VRAM reduction and ROCm portable builds for AMD GPUs on Linux.└──▷ GET THIS VERSION$ git clone --branch v3.18 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.18
└──▷ TRY ITRun a large MoE model when VRAM is insufficient to hold all experts on the GPU.$ python server.py --cpu-moe
- ›Adds
--cpu-moeflag for the llama.cpp backend to offload MoE model experts to CPU, reducing VRAM usage on large mixture-of-experts models. - ›Adds ROCm portable builds for AMD GPUs on Linux, enabling no-install GGUF inference on AMD hardware.
└──▷ BREAKING ON UPGRADE- !macOS 13 wheels are removed and no longer supported.
- ›Adds
- v3.17
v3.17 adds Qwen3-VL support via llama.cpp update and bumps exllamav3 to 0.0.12.
└──▷ GET THIS VERSION$ git clone --branch v3.17 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.17
- ›Supports Qwen3-VL multimodal models through the updated llama.cpp backend.
- ›Updates exllamav3 backend to version 0.0.12.
- ›Adds
weights_only=Truetotorch.loadin Training_PRO to harden model checkpoint loading.
- v3.16
oobabooga text-generation-webui v3.16 adds symlink support for portable builds and updates llama.cpp with Ling-mini-2.0 and Ring-mini-2.0 model support.
└──▷ GET THIS VERSION$ git clone --branch v3.16 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.16
- ›Enables running a portable Web UI build via a symlink, allowing flexible install layouts without copying the full package.
- ›Updates llama.cpp backend to add support for Ling-mini-2.0 and Ring-mini-2.0 model architectures.
- ›Updates exllamav3 to version 0.0.11.
- ›Updates triton-windows to version 3.5.0.post21.
- v3.15
oobabooga textgen v3.15 locks down
--trust-remote-codefrom UI/API and adds llama-server context-size error logging.└──▷ GET THIS VERSION$ git clone --branch v3.15 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.15
- ›Logs an error when a
llama-serverrequest exceeds the context size, making oversized-context failures visible instead of silent. - ›Makes
--trust-remote-codeimmutable from the UI and API, preventing runtime elevation of code-execution trust.
- ›Logs an error when a
- v3.14
v3.14 adds
/v1/internal/logitsendpoint for exllamav3 loaders andqwen3-nextmodel support viafla.└──▷ GET THIS VERSION$ git clone --branch v3.14 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.14
- ›Implements the
/v1/internal/logitsAPI endpoint for theexllamav3andexllamav3_hfloaders. - ›Adds
flato requirements for Exllamav3 to enable support forqwen3-nextmodels. - ›Improves handling of multi-GPU setups when using Transformers with bitsandbytes (
load-in-8bitandload-in-4bit).
- ›Implements the
- v3.12
oobabooga textgen v3.12 adds thinking support for characters in chat-instruct mode and absolute-path GGUF model loading.
└──▷ GET THIS VERSION$ git clone --branch v3.12 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.12
- ›Extends the
--modelflag to accept absolute paths for GGUF models, e.g.--model /tmp/gemma-3-270m-it-IQ4_NL.gguf. - ›Adds thinking support for characters in
chat-instructmode, enabled by Jinja2 template handling improvements. - ›Adds a chat prompt template for the Seed-OSS-36B-Instruct model.
- ›Optimizes LaTeX rendering during streaming for long replies.
- ›Statically links the MSVC runtime in llama.cpp Windows binaries, removing the Visual C++ Redistributable dependency.
+2 moreshow less
- ›Enables
--verbosellama.cpp terminal output with reduced verbosity. - ›Makes venv portable installs compatible with Python 3.13.
└──▷ BREAKING ON UPGRADE- !The
--flash-attnflag has been removed; flash attention is now always enabled in llama.cpp and passing this flag will no longer work.
- ›Extends the
- v3.11
oobabooga text-generation-webui v3.11 adds Tensor Parallelism support to ExLlamav3 loaders via new CLI options.
└──▷ GET THIS VERSION$ git clone --branch v3.11 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.11
└──▷ TRY ITLaunch the web UI with Tensor Parallelism enabled on ExLlamav3 to spread a large model across multiple GPUs.$ python server.py --loader exllamav3 --enable-tp --tp-backend cuda
- ›Adds
--enable-tpand--tp-backendCLI options to enable Tensor Parallelism for the ExLlamav3 and ExLlamav3_HF loaders. - ›Sets multimodal status at model load time rather than checking on every generation, improving multimodal pipeline efficiency.
- ›Adds
- v3.10
oobabooga text-generation-webui v3.10 adds multimodal support to UI and API across llama.cpp and ExLlamaV3 loaders, plus speculative decoding.
└──▷ GET THIS VERSION$ git clone --branch v3.10 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.10
- ›Supports loading chat templates from
chat_template.jsonfiles for EXL3, EXL2, and Transformers models. - ›Passes
--swa-fulltollama-serverwhen thestreaming-llmoption is checked, enabling SWA model compatibility in llama.cpp. - ›Adds multimodal (image + text) support to the UI and API via the llama.cpp loader.
- ›Adds multimodal support to the UI and API via a new ExLlamaV3 loader.
- ›Adds speculative decoding to the new ExLlamaV3 loader.
+3 moreshow less
- ›Defaults
max_tokensto 512 in the API (previously 16). - ›Uses ExLlamaV3 instead of ExLlamaV3_HF as the default loader for EXL3 models, since it now supports multimodal and speculative decoding.
- ›Reorganizes the right sidebar in the UI for better layout.
└──▷ BREAKING ON UPGRADE- !The default API value of
max_tokenschanges from 16 to 512; clients relying on the old default will now receive longer responses. - !EXL3 models now default to the ExLlamaV3 loader instead of ExLlamaV3_HF; setups that depended on ExLlamaV3_HF behavior by default will need to explicitly select that loader.
- ›Supports loading chat templates from
- v3.9.1
GPT-OSS template 'Continue' and 'Impersonate' actions now work correctly, plus a llama.cpp update.
└──▷ GET THIS VERSION$ git clone --branch v3.9.1 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.9.1
- ›GPT-OSS template special actions 'Continue' and 'Impersonate' now function correctly.
- v3.9
oobabooga textgen v3.9 adds experimental GPT-OSS support with reasoning effort controls and standalone Jinja chat templates.
└──▷ GET THIS VERSION$ git clone --branch v3.9 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.9
- ›Adds a Reasoning effort UI element in the chat tab with
low,medium, andhighoptions for GPT-OSS models. - ›Supports standalone
.jinjachat templates, enabling GPT-OSS to be loaded through the Transformers backend. - ›Makes web search functional with thinking models.
- ›Experimental support for GPT-OSS GGUF models (20B and 120B variants) via updated llama.cpp and Transformers 4.55.
- ›Adds a Reasoning effort UI element in the chat tab with
- v3.8
oobabooga textgen v3.8 unifies attention config, adds speculative decoding 'None' option, and bumps core backends.
└──▷ GET THIS VERSION$ git clone --branch v3.8 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.8
- ›Replaces
use_flash_attention_2anduse_eager_attentionwith a unifiedattn_implementationsetting in the Transformers loader, consolidating attention backend selection into a single config key. - ›Adds a 'None' option for the speculative decoding model, allowing users to explicitly disable speculative decoding from the UI.
- ›Ignores
add_bos_tokenin instruct prompts, deferring BOS token handling to the jinja2 template instead. - ›Updates ExLlamaV3 to 0.0.5 and ExLlamaV2 to 0.3.2.
- ›Updates Transformers to 4.53 alongside the latest bitsandbytes, Accelerate, and PEFT versions.
+1 moreshow less
- ›Updates llama.cpp backend to commit
90083283ec254fa8d33897746dea229aee401b37.
└──▷ BREAKING ON UPGRADE- !The
use_flash_attention_2anduse_eager_attentionTransformers loader settings are replaced byattn_implementation; existing configs using either removed key will need to be updated.
- ›Replaces
- v3.7.1
textgen v3.7.1 adds user extension installs, moves 'Enable thinking' to sidebar, and switches to miniforge for org-friendly installs.
└──▷ GET THIS VERSION$ git clone --branch v3.7.1 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.7.1
- ›Supports installing user extensions in
user_data/extensions/without modifying the core installation. - ›Moves the 'Enable thinking' checkbox from the Parameters tab to the right sidebar for faster access during chat.
- ›Switches the one-click installer from miniconda to miniforge, removing Anaconda licensing restrictions for organizations with 200+ users.
- ›Replaces the 'Generate' button label with 'Send' in the main chat interface.
- ›Standardizes margins and paddings across all chat styles.
- ›Supports installing user extensions in
- v3.6.1
oobabooga text-generation-webui v3.6.1 merges tabs, adds autosave, a new Character tab, and exposes real models via
/v1/models└──▷ GET THIS VERSION$ git clone --branch v3.6.1 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.6.1
- ›Exposes real model list via the
GET /v1/modelsendpoint instead of a static placeholder. - ›Merges the Default and Notebook tabs into a single Notebook tab, with a Session tab option to switch between one and two columns.
- ›Autosaves text in the Notebook tab (both generated and manually typed); adds 'New' and 'Rename' buttons for prompt management.
- ›Saved prompts relocated from
user_data/promptstouser_data/logs/notebook. - ›Adds a new Character tab for character settings.
+9 moreshow less
- ›Adds an option in the Session tab to exclude attachments from previous messages in the chat prompt.
- ›Moves 'Custom system message' to the Parameters > Generation tab.
- ›Truncates web search results to at most 8192 tokens to handle edge cases such as infinite-scrolling pages.
- ›Shows file sizes in the Model tab on 'Get file list'.
- ›Removes images and links from web search results to reduce noise and focus on relevant text content.
- ›Remembers the last selected chat for each chat mode and character.
- ›Forces dark theme on the Gradio login page.
- ›Hides the navigation bar on Ctrl+S / Show controls click.
- ›Updates llama.cpp backend and exllamav3 to 0.0.4.
└──▷ BREAKING ON UPGRADE- !Saved prompts have been moved from
user_data/promptstouser_data/logs/notebook; existing prompts must be manually relocated to the new path.
- ›Exposes real model list via the
- v3.5
oobabooga textgen v3.5 adds persistent UI settings, .docx attachments, Qwen3 presets, and RTX 50XX CUDA 12.8 support.
└──▷ GET THIS VERSION$ git clone --branch v3.5 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.5
- ›Adds CUDA 12.8 installation option supporting RTX 50XX NVIDIA Blackwell GPUs via ExLlamaV2/V3 and Transformers backends.
- ›Uses
user_data/cache/gradiofor Gradio temporary files instead of the system temporary folder. - ›Adds Qwen3 presets ('Thinking' and 'No Thinking'); sets
Qwen3 - Thinkingas the new default preset. - ›Adds support for
.docxfile attachments. - ›Adds an option (configurable in the Session tab) to automatically convert long pasted text into an attachment; disabled by default.
+8 moreshow less
- ›Adds model name to each message's metadata, displayed in the UI on hover over the message date/time.
- ›Adds 'Restore preset', 'Neutralize samplers', and 'Restore character' buttons to the Parameters tab.
- ›Adds trash () buttons for deleting individual past chats.
- ›Reorganizes the Parameters tab with preset-saved parameters on the left and all other settings on the right.
- ›Optimizes chat streaming to update only the last message during generation, enabling smooth streaming even at 100k token context lengths.
- ›Extracts web search result text with formatting instead of collapsing all content to a single line.
- ›Shows llama.cpp prompt processing progress on a single line.
- ›Adds informative tooltips on hover for the file upload icon and web search checkbox.
- v3.4.1
oobabooga textgen v3.4.1 adds file attachments, DuckDuckGo web search, message versioning, and a chat token counter.
└──▷ GET THIS VERSION$ git clone --branch v3.4.1 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.4.1
- ›Adds
max_updates_secondback to cap UI refresh rate during high-speed streaming (~200 tokens/second), resolving a performance bottleneck. - ›Adds file attachment support to chat — text files and PDF documents are fully injected into the prompt (not RAG).
- ›Adds a web search feature powered by DuckDuckGo; the LLM auto-generates the search query from your input.
- ›Adds message version navigation ('swipes') — press left/right to browse previous reply versions, or press right at the latest to generate a new one.
- ›Adds a token counter to the chat tab covering input, history, and attachments.
+3 moreshow less
- ›Adds date/time display on chat messages.
- ›Adds footer buttons for editing individual chat messages.
- ›Adds a 'Branch here' footer button on chat messages to fork the conversation.
- ›Adds
- v3.3
oobabooga textgen v3.3 adds VRAM estimation with auto
gpu-layersfor GGUF and Tools support for the OpenAI-compatible API.└──▷ GET THIS VERSION$ git clone --branch v3.3 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.3
└──▷ TRY ITLoad a large GGUF model for inference without guessing GPU layers — let the auto-calculator fit as many layers as free VRAM allows.$ python server.py --model mistral-7b-instruct-v0.2.Q5_K_M.gguf --ctx-size 32768 --cache-type q4_0
- ›Automatically estimates VRAM usage for GGUF models and sets
gpu-layersbased on free VRAM on NVIDIA GPUs; recalculates in real time whenctx-sizeorcache-typechanges in the UI. - ›When loading a GGUF model via CLI (e.g.
--model model.gguf --ctx-size 32768 --cache-type q4_0),--gpu-layersis now calculated automatically — no manual flag required. - ›Adds Tools support for the OpenAI-compatible API.
- ›Adds the
top_n_sigmasampler to the llama.cpp loader. - ›Renders
max_updates_secondobsolete with a new dynamic Chat Message UI update speed that substantially reduces CPU usage in Chat mode.
+4 moreshow less
- ›Simplifies the Model tab by splitting settings into 'Main options' and 'Other options', with 'Other options' hidden in a closed accordion by default.
- ›Streamlines the UI in portable builds: hides non-functional items such as training, shows only the llama.cpp loader, and excludes non-working extensions to reduce build size.
- ›Shows the list of available files when a user attempts to download an entire GGUF repository instead of a specific file.
- ›Handles short arguments (e.g.
ot) in the--extra-flagsoption for the llama.cpp loader.
- ›Automatically estimates VRAM usage for GGUF models and sets
- v3.2
oobabooga textgen v3.2 adds Qwen3 thinking toggle, auto API port selection, and verbose llama-server logging
└──▷ GET THIS VERSION$ git clone --branch v3.2 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.2
- ›Adds
enable_thinkingcheckbox under Parameters to enable or disable thinking for Qwen3 models (and future models with the feature); thinking is enabled by default and works via the Jinja2 template. - ›Automatically finds a new API port if the default one is already taken.
- ›Makes
--verboseprint thellama-serverlaunch command to the console. - ›Makes
<think>UI blocks closed by default, reducing visual noise from reasoning model output.
- ›Adds
- v3.1
textgen v3.1 adds speculative decoding (up to +88.7% tokens/sec), Vulkan builds, and a universal
--ctx-sizeflag across all loaders.└──▷ GET THIS VERSION$ git clone --branch v3.1 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.1
└──▷ HOW TO FIND ITBoost generation speed on a large GGUF model by pairing it with a small draft model for speculative decoding in the llama.cpp loader.📍# In the UI, load google_gemma-3-27b-it-Q8_0.gguf and set the draft model to google_gemma-3-1b-it-Q4_K_M.gguf under the llama.cpp speculative decoding settings.- ›Adds
--extra-flagsparameter to the llama.cpp loader for passing additional flags directly tollama-server(e.g.override-tensor=exps=CPUfor MoE models). - ›Adds
--streaming-llmflag to llama.cpp (mapped to--cache-reusein llama.cpp internals) to skip full prompt reprocessing when context length is filled, useful for long role-playing sessions. - ›Adds universal
--ctx-sizeflag to specify context size across all loaders. - ›Adds speculative decoding to the llama.cpp loader; benchmarks show +88.7% tokens/second with a 27B model using a 1B draft model, with gains of +34–88% observed across different model combinations.
- ›Adds speculative decoding to the non-HF ExLlamaV2 loader.
+8 moreshow less
- ›Adds KV cache quantization to the ExLlamaV3 loader.
- ›Restructures all user data (models, characters, presets, saved settings) under
text-generation-webui/user_data/to enable portable install updates by moving a single folder. - ›Adds Vulkan portable builds supporting AMD and Intel Arc GPUs on both Windows and Linux.
- ›Adds prompt processing progress messages to the llama.cpp loader.
- ›UI: Adds a collapsible thinking block for messages containing
<think>steps. - ›UI: Sets 'instruct' as the default chat mode.
- ›UI: Adds a greeting when the web UI launches in instruct mode with an empty chat history.
- ›UI: Model menu now displays only part 00001 of multipart GGUF files.
└──▷ BREAKING ON UPGRADE- !All user data has moved: models must be manually relocated from
models/touser_data/models/, presets frompresets/touser_data/presets/, and other user data (characters, saved settings) to their corresponding paths underuser_data/after upgrading.
- ›Adds
- v3.0
oobabooga text-generation-webui v3.0 ships portable zip builds with llama.cpp built in and makes llama.cpp the default loader.
└──▷ GET THIS VERSION$ git clone --branch v3.0 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v3.0
- ›Adds portable zip builds (~700 MB) for Windows, Linux, and macOS (variants:
cuda12.4,cuda11.7,cpu, macOSarm64, macOSx86_64) bundlingtext-generation-webui+llama.cppwith no installation required. - ›API now starts by default on
localhostin portable builds without requiring the--apiflag. - ›The
--gpu-splitflag (previously EXL2-only) is now also reused for Transformers GPU memory control. - ›Makes llama.cpp the default loader across the project.
- ›Adds support for llama.cpp builds from the
ggml-org/llama.cppfork.
└──▷ BREAKING ON UPGRADE- !The
--gpu-memoryflag has been removed; use--gpu-splitinstead for Transformers GPU memory configuration.
- ›Adds portable zip builds (~700 MB) for Windows, Linux, and macOS (variants:
- v2.8
oobabooga text-generation-webui v2.8 replaces llama-cpp-python with a new llama-server loader and adds smoother chat streaming.
└──▷ GET THIS VERSION$ git clone --branch v2.8 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v2.8
- ›New
llama-server-basedllama.cpp loader replacesllama-cpp-python, adding sampling parametersxtc,dry, anddynatempand reducing installation size. - ›Supports GGUF model subfolder organization inside
text-generation-webui/models, enabling direct import from LM Studio directory layouts. - ›Adds support for the Llama-4-Scout-17B-16E-Instruct model via the updated llama.cpp backend.
- ›Smoother per-word chat streaming in the Chat tab replaces chunked token delivery.
- ›The
llamacpp_HFloader has been removed; only one llama.cpp loader now exists.
└──▷ BREAKING ON UPGRADE- !The
llamacpp_HFloader has been removed — any workflow that selected it will need to switch to the single remaining llama.cpp loader. - !Some command-line flags have been removed — existing launch scripts using those flags will break on upgrade.
- ›New
- v2.7
oobabooga text-gen v2.7 adds ExLlamaV3 support via new
ExLlamav3_HFloader, a Dark chat style, and default 8192 context-length cap.└──▷ GET THIS VERSION$ git clone --branch v2.7 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v2.7
- ›Adds
ExLlamav3_HFloader, providing ExLlamaV3 inference with the same sampler stack as Transformers andExLlamav2_HF; pre-built wheels for Linux and Windows are included, removing manual installation (requires compute capability 8+). - ›Adds a new 'Dark' chat style option.
- ›Adds
- v2.6
oobabooga text-gen v2.6 adds a top N-sigma sampler, SuperboogaV2 GPU/date-time upgrades, and a refreshed Perplexity Colors extension.
└──▷ GET THIS VERSION$ git clone --branch v2.6 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v2.6
- ›Adds the top N-sigma sampler for token sampling.
- ›Improves SuperboogaV2 with Date/Time Embeddings, GPU support, and multiple file format handling.
- ›Updates the Perplexity Colors extension to v2 with additional improvements.
- v2.5
Adds a 'Show after' parameter to the UI for controlling DeepSeek <
/think> token display.└──▷ GET THIS VERSION$ git clone --branch v2.5 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v2.5
- ›Adds a Show after parameter to the UI for use with DeepSeek
</think>token handling. - ›Minor UI improvements to list styles and the light theme.
- ›Adds a Show after parameter to the UI for use with DeepSeek
- v2.4
Adds 'Continue' and 'Remove' chat buttons,
strftime_nowin JINJA, and smarter installer caching in v2.4└──▷ GET THIS VERSION$ git clone --branch v2.4 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v2.4
- ›Adds 'Continue' and 'Remove' buttons below the last chat message in the UI for quick in-place edits.
- ›Adds
strftime_nowto JINJA template support, enabling LLAMA 3.1, 3.2, and Granite model chat templates to render correctly. - ›Installer now skips re-downloading
.whlrequirements during updates unless the files or local repo commit have changed, speeding up updates after manual branch switches. - ›Adds a descriptive error message when llama.cpp fails to load a model, prompting users to lower the context length.
- ›Extends OpenAI-compatible leniency to SillyTavern API clients.
- v2.3
oobabooga text-gen v2.3 cuts Chat tab CPU usage via morphdom incremental rendering and adds per-message copy/regenerate buttons.
└──▷ GET THIS VERSION$ git clone --branch v2.3 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v2.3
- ›Adopts the
morphdomlibrary for incremental DOM updates in the Chat tab during streaming, drastically reducing CPU usage on long contexts or high token throughput and keeping the UI responsive. - ›Enables text and code selection/copying from previous chat messages while a reply is still streaming, since only changed elements are updated.
- ›Adds a 'copy raw message content' button below each chat message.
- ›Adds a 'regenerate reply' button below the last chat message.
- ›Activates
auto_max_new_tokensby default, removing the need to manually continue replies every 512 tokens.
- ›Adopts the
- v2.2
oobabooga textgen v2.2 adds branch/search chat UI,
--torch-compile,--exclude-pattern, IPv6 API support, and ExLlamaV2 sampler expansions.└──▷ GET THIS VERSION$ git clone --branch v2.2 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v2.2
└──▷ TRY ITSpeed up transformers inference on repeated prompt patterns by compiling the model graph at first run.$ python server.py --torch-compile
Download a model while skipping large or unwanted shard files to save disk space.$ python download-model.py TheBloke/Mixtral-8x7B-v0.1-GGUF --exclude-pattern '*.Q8_0.gguf'
- ›Adds
--torch-compileflag for the transformers loader to improve inference performance. - ›Adds
--exclude-patternflag to thedownload-model.pyscript to filter files during model downloads. - ›Connects XTC, DRY,
smoothing_factor, anddynatempsampling parameters to the ExLlamaV2 loader (non-HF). - ›Adds IPv6 support to the API.
- ›Adds a 'Static KV cache' option for transformers to improve performance.
+5 moreshow less
- ›Adds a 'Branch chat' option to the chat tab, enabling conversation branching from any point.
- ›Adds a 'Search chats' menu to the chat tab for finding past conversations.
- ›Removes a 0.2-second startup delay for llama.cpp and ExLlamaV2, increasing reported tokens/second.
- ›Adds a horizontal scrollbar to code blocks wider than the chat area.
- ›Removes the AutoGPTQ loader; GPTQ models can still be loaded through ExLlamaV2.
└──▷ BREAKING ON UPGRADE- !The AutoGPTQ loader has been removed; any setup relying on it must switch to the ExLlamaV2 loader to load GPTQ models.
- ›Adds
- v2.1
Parameters tab reorganized with grouped controls and new Instruct and Creative presets in oobabooga textgen v2.1
└──▷ GET THIS VERSION$ git clone --branch v2.1 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v2.1
- ›Adds two new built-in presets, Instruct and Creative, replacing 5 removed presets to reduce the default preset list from 11 to 6.
- ›Reorganizes the Parameters tab with grouped input fields (sliders, checkboxes) and headings for parameter types (curve shape, curve cutoff) to reduce visual clutter.
- ›Reorganizes the Model tab with similar grouping and heading structure.
- ›Improves heading, list, and link styling in chat messages.
- ›Improves the streaming typing cursor
|appearance during chat.
+1 moreshow less
- ›Improves chat colors in light mode.
- v2.0
text-generation-webui v2.0 overhauls the UI with collapsible sidebars, vertical nav, mobile support, and a new
--old-colorsflag.└──▷ GET THIS VERSION$ git clone --branch v2.0 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v2.0
└──▷ TRY ITPreserve your team's familiar workflow after upgrading by launching with the legacy color palette.$ python server.py --old-colors
- ›Adds
--old-colorslaunch flag to restore the previous UI color scheme for users who prefer the legacy look. - ›Allows more granular KV cache settings.
- ›Redesigns the UI with a vertical left sidebar replacing the top navigation bar (Chat / Default / Notebook tabs).
- ›Adds collapsible sidebars for improved mobile navigation.
- ›Moves the 'past chats' menu into its own sidebar, visually separated from the chat area.
+1 moreshow less
- ›Improves HTML rendering for nested lists with sub-items.
- ›Adds
- v1.16
oobabooga text-gen v1.16 adds Whisper Turbo transcription and RWKV-World instruction template support.
└──▷ GET THIS VERSION$ git clone --branch v1.16 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v1.16
- ›Adds Whisper Turbo as a selectable transcription model option.
- ›Adds RWKV-World instruction template for use with RWKV-World models.
- v1.15
oobabooga textgen v1.15 adds XTC sampler, sortable repetition penalties, and ExLlamaV2 tensor parallelism for multi-GPU inference.
└──▷ GET THIS VERSION$ git clone --branch v1.15 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v1.15
- ›Adds
xtcto the Sampler priority ordering keywords, alongside new keywordsrepetition_penalty,presence_penalty,frequency_penalty,dry,encoder_repetition_penalty, andno_repeat_ngram, enabling fine-grained control over the order repetition penalties are applied. - ›Adds Exclude Top Choices (XTC) sampler to boost creativity, break writing clichés, and inhibit non-verbatim repetition.
- ›Enables ExLlamaV2 tensor parallelism to increase multi-GPU inference speeds.
- ›Removes
AutoAWQ,AutoGPTQ,HQQ, andAQLMfromrequirements.txt; these can still be installed manually. - ›Adds a
beforeunloadconfirmation dialog when leaving the page to prevent accidental session loss.
+2 moreshow less
- ›Updates API documentation with examples to list and load models.
- ›Defers PEFT import until needed, reducing web UI launch time.
└──▷ BREAKING ON UPGRADE- !
AutoAWQandAutoGPTQare removed fromrequirements.txtdue to lack of support for PyTorch 2.4.1 and CUDA 12.1; setups relying on these quantization backends must install them manually. - !
HQQandAQLMare removed fromrequirements.txt; setups using these experimental backends must install them manually.
- ›Adds
- v1.14
textgen v1.14 adds
--tokenizer-dirflag for llamacpp_HF and faster multi-file model downloads.└──▷ GET THIS VERSION$ git clone --branch v1.14 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v1.14
- ›Adds
--tokenizer-dirflag for use withllamacpp_HFto specify a custom tokenizer directory. - ›Model downloader now uses a single session for all files in a download, reducing per-file startup latency.
- ›Adds
- v1.13
textgen v1.13 adds Llama 3.1 support, manual context-length entry, and improved model download progress.
└──▷ GET THIS VERSION$ git clone --branch v1.13 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v1.13
- ›Makes
compress_pos_emb,n_ctx,max_seq_len, andtruncation_lengtheditable number fields instead of sliders, allowing precise manual entry of context lengths. - ›Adds Llama 3.1 support via llama-cpp-python 0.2.85 bump, including better handling of the Llama 3.1 Jinja2 template (optional 'tools' headers now suppressed).
- ›Model downloader progress bar now shows filename, file size, and download speed per file.
- ›Makes
- v1.12
oobabooga textgen v1.12 adds Llama 3.1 support across Transformers, ExLlamaV2, and AutoAWQ backends with UI markdown and coloring improvements.
└──▷ GET THIS VERSION$ git clone --branch v1.12 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v1.12
- ›Removes AutoAWQ as a standalone loader; AWQ models (including Llama 3.1 AWQ-INT4) are now loaded directly through Transformers for better compatibility.
- ›Adds Llama 3.1 support via Transformers 4.43, ExLlamaV2 0.1.8, and AutoAWQ 0.2.6 backend bumps.
- ›Colors text between quote characters in chat and chat-instruct modes for improved readability.
- ›Makes the markdown rendering cache infinite (cleared on chat switch) to keep the UI responsive during long 128k-context conversations.
└──▷ BREAKING ON UPGRADE- !AutoAWQ is no longer available as a standalone loader; AWQ models must now be loaded through the Transformers loader.
- v1.11
textgen v1.11 defaults to chat-instruct mode, adds Mistral-Nemo support, and enables gradio subpath customization for reverse proxies.
└──▷ GET THIS VERSION$ git clone --branch v1.11 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v1.11
- ›Adds support for customizing the gradio subpath for use with a reverse proxy.
- ›Adds
ChatML-format.jsonformat example for training. - ›Supports Mistral-Nemo via
llama-cpp-pythonbump to 0.2.83. - ›Defaults new sessions to chat-instruct mode, which automatically applies the model's Jinja2 template for higher-quality outputs.
- ›Significantly faster and more responsive UI through refactored event handling that reduces connections between the UI and the server.
+1 moreshow less
- ›Excludes the instruction template from exports when using 'Save UI defaults to settings.yaml', preventing it from being overwritten by the model template.
- v1.10
oobabooga textgen v1.10 adds Gemma-2 support via ExLlamaV2 and new attention-disable flags.
└──▷ GET THIS VERSION$ git clone --branch v1.10 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v1.10
- ›Adds
--no_xformersand--no_sdpaflags for ExLlamaV2 (complement the existing--no_flash_attnflag); all three must be used together — or their UI checkboxes enabled — to run Gemma-2 without severe performance degradation. - ›ExLlamaV2 updated to 0.1.7, enabling Gemma-2 model support.
- ›Adds
- v1.9
oobabooga text-gen v1.9 adds 4-bit/8-bit KV cache for llama.cpp, Gemma-2 support, and a rewritten Whisper STT extension.
└──▷ GET THIS VERSION$ git clone --branch v1.9 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v1.9
- ›Adds 4-bit and 8-bit KV cache options to llama.cpp and llamacpp_HF backends via the existing
--cache_4bitand--cache_8bitflags. - ›Adds native Gemma-2 support in Transformers: automatically detects
Gemma2ForCausalLMarchitecture and applies optimal settings (bfloat16/float16 precision and eager attention) without requiring--bf16 --use_eager_attentionmanually. - ›Automatically obtains the EOT token from Jinja2 templates and adds it to stopping strings, so Llama-3-Instruct stops correctly without manually adding
<eot>to custom stopping strings. - ›Rewrites the Whisper STT extension, replacing the Gradio microphone component with a custom microphone element for improved reliability.
- ›Increases the chat area size on mobile devices.
- ›Adds 4-bit and 8-bit KV cache options to llama.cpp and llamacpp_HF backends via the existing
- v1.8
oobabooga textgen v1.8 adds TensorRT-LLM as its fastest backend and overhauls the chat UI with persistent browser history.
└──▷ GET THIS VERSION$ git clone --branch v1.8 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v1.8
- ›Adds TensorRT-LLM backend support, now the fastest inference backend in the project, installed in a separate Python 3.10 environment with a provided Dockerfile.
- ›Stores chat history in the browser so conversations survive server restarts without requiring a page refresh.
- ›Redesigned 'past chats' menu from a dropdown to a vertical text list, reducing conversation switching to a single click.
- ›Moves the 'Character' dropdown menu to the main Chat tab for faster character switching.
- ›Enables installing past releases by downloading the
.zipsource and running thestart_script, without auto-updating to latest.
└──▷ BREAKING ON UPGRADE- !The installation script no longer updates to the latest version automatically on run.
- snapshot-2024-04-21
Adds
/v1/internal/chat-promptAPI endpoint for retrieving the formatted chat prompt.└──▷ GET THIS VERSION$ git clone --branch snapshot-2024-04-21 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2024-04-21
- ›Adds
POST /v1/internal/chat-promptAPI endpoint to retrieve the fully formatted chat prompt string before generation.
- ›Adds
- snapshot-2024-04-14
Adds min_p sampling preset as default, Ascend NPU support, and
HF_ENDPOINTawareness for model downloads.└──▷ GET THIS VERSION$ git clone --branch snapshot-2024-04-14 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2024-04-14
- ›Respects model and LoRA directory settings when downloading files, so downloads land in the configured paths rather than defaults.
- ›Reads the
HF_ENDPOINTenvironment variable when downloading models, enabling use of Hugging Face mirror endpoints. - ›Adds Ascend NPU as a supported hardware backend.
- ›Adds a
min_psampling preset and makes it the default generation preset.
- snapshot-2024-03-31
Parameters tab reorganized and ChatML support added for Hyperion and Hercules models.
└──▷ GET THIS VERSION$ git clone --branch snapshot-2024-03-31 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2024-03-31
- ›Adds ChatML format configuration for Hyperion and Hercules models.
- ›Reorganizes the Parameters tab layout in the UI.
- snapshot-2024-03-17
Adds AQLM quantization support, StreamingLLM for llama.cpp backends, and a new User Description field in the UI.
└──▷ GET THIS VERSION$ git clone --branch snapshot-2024-03-17 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2024-03-17
- ›Adds a new 'User description' field in the UI for setting user personality/biography context.
- ›Adds experimental AQLM quantization support for loading AQLM-quantized models.
- ›Adds StreamingLLM support for the
llamacppandllamacpp_HFbackends, enabling efficient long-context streaming inference. - ›Bumps AutoAWQ to 0.2.3 on Linux, enabling use of newer AWQ model variants on that platform.
- snapshot-2024-03-10
Adds
cache_q4KV-cache quantization for ExLlamaV2 and introduces an update wizard in textgen WebUI.└──▷ GET THIS VERSION$ git clone --branch snapshot-2024-03-10 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2024-03-10
- ›Adds
cache_q4option for ExLlamaV2 to enable 4-bit KV-cache quantization, reducing VRAM usage during inference. - ›Introduces an update wizard to guide users through upgrading the WebUI.
- ›Extensions requirements are no longer installed by default, reducing setup overhead for users who don't need them.
- ›Adds
- snapshot-2024-03-03
Adds cubic sampling with a curve parameter and Gemma model compatibility via transformers 4.38.1.
└──▷ GET THIS VERSION$ git clone --branch snapshot-2024-03-03 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2024-03-03
- ›Adds cubic sampling with a configurable curve parameter as a new sampling method for text generation.
- ›Supports Google Gemma models via a bump to transformers 4.38.1.
- snapshot-2024-02-18
Adds
--autosplitfor ExLlamaV2, a llamacpp_HF creator menu, and per-model instruction template customization.└──▷ GET THIS VERSION$ git clone --branch snapshot-2024-02-18 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2024-02-18
- ›Adds
--autosplitflag for ExLlamaV2 to automatically split model layers across GPUs. - ›Adds a 'llamacpp_HF creator' menu in the UI for building llama.cpp HuggingFace-compatible model configs.
- ›Adds a menu for customizing the instruction template on a per-model basis.
└──▷ BREAKING ON UPGRADE- !The 'Maximum UI updates/second' parameter has been removed.
- ›Adds
- snapshot-2024-02-11
Adds quadratic sampling and custom sampler order support; llama.cpp multi-GPU now splits by rows instead of layers.
└──▷ GET THIS VERSION$ git clone --branch snapshot-2024-02-11 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2024-02-11
- ›Adds custom sampler order support, letting users control the sequence in which samplers are applied during text generation.
- ›Adds quadratic sampling as a new sampling method for text generation.
- ›Splits by rows instead of layers for llama.cpp multi-GPU configurations, improving multi-GPU utilization.
- ›Removes the non-HuggingFace ExLlamaV2 loader, consolidating to the HF-based loader only.
└──▷ BREAKING ON UPGRADE- !The non-HuggingFace ExLlamaV2 loader has been removed; setups using that loader must switch to the HuggingFace ExLlamaV2 loader.
- snapshot-2024-02-04
Adds CPU support for Coqui TTS, new Docker GPU options, and a roleplay GBNF grammar file.
└──▷ GET THIS VERSION$ git clone --branch snapshot-2024-02-04 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2024-02-04
- ›Adds
roleplay.gbnfgrammar file for constrained roleplay-format generation. - ›Adds Docker options for CPU-only, Intel GPU, and AMD GPU deployments.
- ›Enables the Coqui TTS extension to run on CPU, removing the GPU requirement.
- ›Supports running the tool as a git submodule.
- ›Adds
- snapshot-2024-01-28
Adds
prompt_lookup_num_tokens, multimodal content arrays, RGBA image support, andtrust_remote_codefor DeepSpeed loading.└──▷ GET THIS VERSION$ git clone --branch snapshot-2024-01-28 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2024-01-28
- ›Adds
prompt_lookup_num_tokensparameter for prompt lookup decoding. - ›Adds
trust_remote_codesupport when loading models with DeepSpeed. - ›Updates
n_gpu_layersdefault to 256 to support larger models. - ›Supports content arrays in multimodal OpenAI API requests.
- ›Supports RGBA color format for image inputs.
- ›Adds
- snapshot-2024-01-21
Adds dynatemp parameters, past-chat sidebar, and Tab-key navigation between tabs.
└──▷ GET THIS VERSION$ git clone --branch snapshot-2024-01-21 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2024-01-21
- ›Adds
dynatemp_low,dynatemp_high, anddynatemp_exponentparameters for dynamic temperature control during generation. - ›Adds a past chat histories sidebar on desktop for quick access to previous conversations.
- ›Adds Tab key shortcut to switch between the current tab and the Parameters tab.
- ›Adds
- snapshot-2024-01-14
Adds dynamic temperature parameters and a desktop chat history sidebar to oobabooga text-generation-webui.
└──▷ GET THIS VERSION$ git clone --branch snapshot-2024-01-14 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2024-01-14
- ›Adds
dynatemp_low,dynatemp_high, anddynatemp_exponentparameters for dynamic temperature control during text generation. - ›New sidebar on desktop displays past chat histories for quick access.
- ›Press Tab to switch between the current tab and the Parameters tab in the UI.
- ›Adds
- snapshot-2024-01-07
Adds
dynamic_temperature_lowparameter and Dynamic Temperature support for the HF loader.└──▷ GET THIS VERSION$ git clone --branch snapshot-2024-01-07 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2024-01-07
- ›Adds
dynamic_temperature_lowparameter for finer control over dynamic temperature sampling ranges. - ›Adds Dynamic Temperature sampling support for the HuggingFace (HF) loader.
- ›Adds Docker build args to support non-AVX2 CPUs.
- ›Adds
- snapshot-2023-12-31
Adds image input to OpenAI chat API and Synthia instruction templates; removes
--sdp-attention,--xformers, ExLlamaV1, and RWKV loaders.└──▷ GET THIS VERSION$ git clone --branch snapshot-2023-12-31 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2023-12-31
- ›Adds image sending support to the OpenAI chat API endpoint, enabling multimodal chat requests.
- ›Adds Synthia instruction templates for Synthia-series models.
└──▷ BREAKING ON UPGRADE- !The
--sdp-attentionand--xformersflags are removed; any launch scripts using them will fail on upgrade. - !ExLlamaV1 loaders are removed; models configured to use ExLlamaV1 must be switched to an alternative loader.
- !The RWKV loader is removed; RWKV models can no longer be loaded.
- !Additional deprecated command-line flags are removed; any scripts relying on them will break.
- snapshot-2023-12-24
Adds HQQ quant loader, GGUF instruction-template auto-detection, tensor-core llama.cpp wheels, and safetensor LoRA support for ExLlama v1.
└──▷ GET THIS VERSION$ git clone --branch snapshot-2023-12-24 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2023-12-24
- ›Adds HQQ quantization loader for loading HQQ-quantized models.
- ›Adds auto-detection of Eric Hartford's Dolphin models via
models/config.yaml. - ›Adds Orca-Vicuna instruction template.
- ›Reads instruction templates automatically from GGUF metadata for llama.cpp models, removing the need to set them manually.
- ›Adds llama-cpp-python wheels built with tensor cores support, unlocking faster inference on compatible GPUs.
+4 moreshow less
- ›Enables ExLlama v1 models to load safetensor-format LoRAs.
- ›Organizes CMD arguments by group for clearer CLI navigation.
- ›Updates Training PRO with new capabilities.
- ›Bumps ExLlamaV2 to 0.0.11.
- snapshot-2023-12-17
Adds Jinja templates for chat/instruct, OpenAI embeddings endpoint,
max_logitsparam, and--num_experts_per_tokenfor ExLlamav2.└──▷ GET THIS VERSION$ git clone --branch snapshot-2023-12-17 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2023-12-17
└──▷ TRY ITRun the server with expert routing tuned for a MoE model loaded via ExLlamav2.$ python server.py --loader exllamav2 --num_experts_per_token 2 --model <your-moe-model>
- ›Adds
--num_experts_per_tokenCLI parameter for ExLlamav2 to control mixture-of-experts routing per token. - ›Adds OpenAI-compatible embeddings endpoint via the OpenAI extension.
- ›Adds
max_logitsparameter to the OpenAI extension logits endpoint. - ›Introduces Jinja2 template support for Instruct and Chat prompt formatting.
- ›Supports symlinked folders within the root directory for model/asset organization.
+2 moreshow less
- ›Bypasses Coqui TTS EULA check to streamline TTS extension setup.
- ›Removes the ElevenLabs extension.
└──▷ BREAKING ON UPGRADE- !The ElevenLabs extension has been removed; any setup relying on it will stop working after upgrade.
- ›Adds
- snapshot-2023-12-10
Adds QuIP# quantization support and gallery improvements; changes defaults for max_new_tokens and repetition_penalty_range.
└──▷ GET THIS VERSION$ git clone --branch snapshot-2023-12-10 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2023-12-10
- ›Changes default values for
max_new_tokensandrepetition_penalty_rangeparameters. - ›Adds QuIP# quantization format support for model loading.
- ›Improves the model Gallery UI.
└──▷ BREAKING ON UPGRADE- !Default values for
max_new_tokensandrepetition_penalty_rangehave changed; existing workflows relying on the previous defaults may produce different outputs after upgrade.
- ›Changes default values for
- snapshot-2023-12-03
Adds OpenHermes Mistral model support and Docker container CLI improvements.
└──▷ GET THIS VERSION$ git clone --branch snapshot-2023-12-03 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2023-12-03
- ›Adds support for the OpenHermes Mistral model.
- ›Improves Docker container CLI arguments for more practical containerized deployments.
- snapshot-2023-11-19
Adds
--admin-key,--nowebui,/v1/internal/logits, and/v1/internal/loraendpoints plus a random preset button.└──▷ GET THIS VERSION$ git clone --branch snapshot-2023-11-19 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2023-11-19
└──▷ TRY ITRun the server headlessly for API-only deployments, secured with an admin key.$ python server.py --nowebui --admin-key mysecretkey
Retrieve per-token logit scores for a prompt to inspect model confidence.$ curl -X POST http://localhost:5000/v1/internal/logits -H 'Authorization: Bearer mysecretkey' -H 'Content-Type: application/json' -d '{"prompt": "The capital of France is"}'
List currently loaded LoRA adapters via the API.$ curl http://localhost:5000/v1/internal/lora -H 'Authorization: Bearer mysecretkey'
- ›Adds
--admin-keyflag to require an API key for all API access. - ›Adds
--nowebuiflag to run the server in pure API mode with no browser UI. - ›Adds
GET /v1/internal/logitsendpoint for retrieving token logits via the API. - ›Adds
/v1/internal/loraendpoints for managing LoRA adapters via the API. - ›New 'random preset' button in the UI to randomly select a generation preset.
+2 moreshow less
- ›Character pictures in chat mode can now be enlarged on click.
- ›System message support added to chat instruct mode, shared between UI and API.
- ›Adds
- snapshot-2023-11-12
OpenAI API becomes the default, gains
/v1/internal/stop-generationendpoint, and now supportstrust_remote_codefor embeddings.└──▷ GET THIS VERSION$ git clone --branch snapshot-2023-11-12 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2023-11-12
└──▷ TRY ITAbort a running generation mid-stream from a script or integration that uses the OpenAI-compatible API.$ curl -X POST http://localhost:5000/v1/internal/stop-generation
- ›Adds
POST /v1/internal/stop-generationendpoint to the OpenAI-compatible API, allowing programmatic cancellation of in-progress generation. - ›Makes the OpenAI-compatible API the default API (previously non-default).
- ›Enables
trust_remote_codesupport in the OpenAI API embedder, allowing embedding models that require remote code execution. - ›Separates context and system message fields in instruction formats, enabling independent control of each in prompt templates.
- ›Adds
- snapshot-2023-11-05
Adds Min P sampler,
temperature_lastparameter, anduse_flash_attention_2flag to oobabooga text-generation-webui.└──▷ GET THIS VERSION$ git clone --branch snapshot-2023-11-05 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2023-11-05
- ›Adds
temperature_lastparameter to control the order in which temperature sampling is applied relative to other samplers. - ›Adds
use_flash_attention_2parameter to the Transformers model loader to enable Flash Attention 2 support. - ›Implements Min P as a new sampler option in HF loaders for controlling minimum probability thresholds during generation.
- ›Adds a flag to force loading models from safetensors format in the Transformers loader.
- ›Adds
- snapshot-2023-10-29
Adds
presence_penaltyandfrequency_penaltysampler settings, plus initial Intel GPU support.└──▷ GET THIS VERSION$ git clone --branch snapshot-2023-10-29 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2023-10-29
- ›Adds
presence_penaltysampler setting (renamed fromadditive_repetition_penalty) to control token repetition based on presence in the output so far. - ›Adds
frequency_penaltysampler setting to penalize tokens proportional to how frequently they have already appeared in the output. - ›Adds initial Intel GPU support.
- ›Adds
- snapshot-2023-10-22
Adds LLaVA v1.5 support, multi-LoRA blending, flash-attention 2 on Windows, and expanded Silero language coverage.
└──▷ GET THIS VERSION$ git clone --branch snapshot-2023-10-22 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2023-10-22
- ›Supports LLaVA v1.5 and LLaVA v1.5 7B multimodal models for vision-language inference.
- ›Allows multiple loaded LoRAs to simultaneously influence generation output, enabling LoRA blending workflows.
- ›Adds option to select additional linear modules and layers as targets during LoRA training.
- ›Adds flash-attention 2 support on Windows.
- ›Adds Python 3.11 support with structured requirements.
+2 moreshow less
- ›Expands Silero text-to-speech language coverage with more supported languages.
- ›Enables special token support for the ExLlamav2 backend.
- snapshot-2023-10-15
textgen snapshot adds LLaVA-LLaMA-2 support, HTTPS for OpenAI extension, ChatML, and ExLlamaV2 LoRA.
└──▷ GET THIS VERSION$ git clone --branch snapshot-2023-10-15 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout snapshot-2023-10-15
- ›Adds HTTPS support to the OpenAI extension, enabling secure API connections.
- ›Adds ChatML prompt format support, including Mistral-OpenOrca compatibility.
- ›Adds LoRA support for the ExLlamaV2 backend.
- ›Supports LLaVA-LLaMA-2 multimodal model loading.
- v1.7
v1.7 adds AutoAWQ loader support, grammar for Transformers/HF loaders, NUMA for llama.cpp, and EOS-abort for text generation.
└──▷ GET THIS VERSION$ git clone --branch v1.7 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v1.7
- ›Adds
grammarsupport to thetransformersand_HFloaders, enabling constrained decoding for locally loaded models. - ›Adds initial AutoAWQ loader support, allowing AWQ-quantized models to be loaded directly.
- ›Enables NUMA feature for
llama_cpp_python, improving CPU memory locality on multi-socket systems. - ›Model downloader now downloads
*.tiktokentokenizer files alongside model weights. - ›Adds EOS-token abort behavior in text generation — output stops immediately when the end-of-sequence token is reached.
+3 moreshow less
- ›Updates on the one-click installer now preserve custom changes to
CMD_FLAGS.txtrather than overwriting them. - ›Expands macOS
llama.cppsupport inrequirements.txt. - ›Bumps ExLlamaV2 to 0.0.5 and AutoAWQ to v0.1.4.
- ›Adds
- 1.6.1
Adds a grammar editor to the UI and alternative requirements.txt with AMD and Metal wheels.
└──▷ GET THIS VERSION$ git clone --branch 1.6.1 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout 1.6.1
- ›Adds a grammar editor to the UI for direct grammar authoring during inference.
- ›Adds an alternative
requirements.txtwith AMD and Metal wheels for broader hardware support.
- v1.6
oobabooga textgen v1.6 adds GGUF support, ExLlamaV2 loaders, CFG sampling, SSL, named Cloudflare tunnels, and a logit viewer.
└──▷ GET THIS VERSION$ git clone --branch v1.6 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v1.6
- ›Adds
--cpuoption for llama.cpp to force CPU-only inference and prevent CUDA from being used. - ›Adds
--disable_exllamaoption for AutoGPTQ to bypass ExLlama kernels. - ›Adds
auto_max_new_tokensparameter to automatically size the maximum new tokens based on context. - ›Adds
max_tokens_secondparameter to rate-limit token generation speed. - ›Adds SSL certificate support for securing the web UI endpoint.
+25 moreshow less
- ›Adds option for named Cloudflare tunnels, enabling persistent public URLs.
- ›Adds
ExLlamaV2andExLlamaV2_HFloaders for next-generation ExLlama inference. - ›Adds GGUF format support, including reading GGUF metadata fields such as
scale_linearandfreq_base. - ›Adds Classifier Free Guidance (CFG) sampling for Transformers, ExLlama, ExLlama_HF, and llamacpp_HF loaders.
- ›Adds new RoPE settings for ExLlama, with NTK (alpha) and RoPE scaling also supported for ExLlamaV2 and ExLlamaV2_HF.
- ›Adds
mlockandno-mmapoptions to ctransformers loader. - ›Adds GGUF support to ctransformers loader.
- ›Adds array (batched) input support to the
openaiextension API. - ›Handles Chunked Transfer Encoding in the
openaiextension for streaming requests. - ›Adds
chat_instruct_commandsupport in the API. - ›Adds
save defaults to settings.yamlbutton so current UI parameters persist across sessions. - ›Adds Show controls button to the chat UI to toggle the parameter panel.
- ›Adds a simple logit viewer to inspect per-token probability distributions.
- ›Adds probability dropdown to the
perplexity_colorsextension. - ›Adds language option to the
silero_ttsextension. - ›Adds silero TTS audio preview back to the UI.
- ›Unifies the three interface modes (chat, notebook, default) into a single cohesive UI.
- ›Adds support for downloading a single file from a model repository via the UI and
download-model.py. - ›Merges one-click-installers into the main repository, reducing installation size by several GB with a more reliable update procedure.
- ›Adds a standalone Dockerfile for NVIDIA Jetson devices.
- ›Adds ffmpeg to the Docker image.
- ›Adds chat instruction configuration for BaiChuan-chat, starchat, Vicuna-v1.5, pygmalion-2, mythalion, and StableBeluga2 model series.
- ›Adds scrollbar to notebook/default textboxes and enables scrolling during token streaming.
- ›Refactors the training tab UI for improved usability.
- ›Uses separate llama-cpp-python packages to maintain GGML support alongside GGUF.
- ›Adds
- v1.5
oobabooga text-generation-webui v1.5 adds a new extension hook, automatic instruction templates, and drops FlexGen support.
└──▷ GET THIS VERSION$ git clone --branch v1.5 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v1.5
- ›Introduces
chat_input_modifierextension function inextensions/example/script.pyas the replacement for the deprecatedinput_hijackhook. - ›Switches to the dark theme as the new default UI appearance.
- ›Removes FlexGen backend support, which has been made obsolete by llama.cpp and 4-bit quantization.
- ›Adds a detailed extension authoring example at
extensions/example/script.pywith updated extension documentation.
└──▷ BREAKING ON UPGRADE- !
input_hijackis deprecated in favour ofchat_input_modifier; existing extensions usinginput_hijackwill need to migrate to the new function. - !FlexGen support is removed; any setup relying on the FlexGen backend will no longer work after upgrading.
- ›Introduces
- v1.4
oobabooga textgen v1.4 adds llama-2-70b GGML support and expands OpenAI extension with images and logit_bias/logprobs.
└──▷ GET THIS VERSION$ git clone --branch v1.4 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v1.4
- ›OpenAI extension gains support for
logit_biasandlogprobsparameters, image handling, embeddings, and token endpoints — with improved error reporting and updated docs. - ›Adds llama-2-70b GGML model support.
- ›Bumps exllama module to 0.0.8 with expanded LoRA support.
- ›Bumps bitsandbytes to 0.41.0 for faster inference speeds.
- ›OpenAI extension gains support for
- v1.3
oobabooga textgen v1.3 adds Llama-v2 support, customizable RoPE for GGML, and LoRA loading via AutoGPTQ 0.3.0.
└──▷ GET THIS VERSION$ git clone --branch v1.3 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v1.3
- ›Adds Llama-v2 instruction template with auto-detection of truncation length.
- ›Adds customizable RoPE (Rotary Position Embedding) support for GGML models.
- ›Adds Airoboros-v1.2 instruction template.
- ›AutoGPTQ updated to 0.3.0, enabling LoRA loading out of the box for GPTQ models.
- ›LoRA menu selection is now preserved when loading a model (no longer reset on model load).
+1 moreshow less
- ›Disables 'Autoload the model' by default, and disables auto-loading at startup even when only one model is available.
└──▷ BREAKING ON UPGRADE- !The 'Autoload the model' setting is now disabled by default; setups that relied on automatic model loading at startup will need to re-enable it manually.
- v1.2
v1.2 adds a llamacpp_HF loader, exllama perplexity evaluation, logits processor support in extensions, and token probability/perplexity colorization.
└──▷ GET THIS VERSION$ git clone --branch v1.2 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v1.2
- ›New
llamacpp_HFloader adds a llama.cpp backend variant compatible with the Hugging Face tokenizer interface. - ›Extensions can now register custom logits processors, enabling token-level generation control from extension code.
- ›Enables perplexity evaluation for models loaded with the exllama backend.
- ›Increases the alpha value limit for NTK RoPE scaling on exllama and exllama_HF loaders, supporting longer context extrapolation.
- ›New 'Color tokens by probability and/or perplexity' extension visualizes per-token generation confidence in the UI.
- ›New
- v1.1
oobabooga text-generation-webui v1.1 adds low-VRAM llama.cpp mode, token auth for model downloads, and TensorBoard/W&B training integration.
└──▷ GET THIS VERSION$ git clone --branch v1.1 https://github.com/oobabooga/textgen.git # already have the repo? check out this version: $ git checkout v1.1
- ›Adds low VRAM mode support to the llama.cpp module for running larger models on constrained hardware.
- ›Adds token authorization for downloading models, enabling authenticated access to gated or private model repositories.
- ›Adds
context_instructfield to the API and loads the default model instruction template automatically. - ›Expands
models/config.yamlwith entries for platypus/gplatty, longchat, vicuna-33b, Redmond-Hermes-Coder, wizardcoder, and additional models. - ›Adds TensorBoard and Weights & Biases integration for monitoring training runs.
+6 moreshow less
- ›Adds default environment variable values to the Docker Compose file for easier out-of-box deployment.
- ›Adds ability to load all text files from a subdirectory for training datasets.
- ›Adds a feature to log a sample of the training dataset for inspection during fine-tuning.
- ›Chat history downloads now generate more detailed file names.
- ›Disables wandb remote HTTP requests by default.
- ›
--load-in-4bitquantization is significantly faster following a bitsandbytes Windows wheel update.