Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1838 commits
Select commit Hold shift + click to select a range
b108c55
Fix portable builds not starting due to missing ik element
oobabooga Apr 3, 2026
9374a4e
Merge pull request #7453 from oobabooga/dev
oobabooga Apr 3, 2026
6e2b70b
Add Gemma 4 tool-calling support
oobabooga Apr 3, 2026
42dfcdf
API: Add warning about vanilla llama-server not supporting prompt log…
oobabooga Apr 3, 2026
b11379f
Merge pull request #7455 from oobabooga/dev
oobabooga Apr 3, 2026
a1cb5b5
llama.cpp: Disable jinja by default (we use Python jinja, not cpp jinja)
oobabooga Apr 3, 2026
000d776
Revert "llama.cpp: Disable jinja by default (we use Python jinja, not…
oobabooga Apr 3, 2026
66d1a22
Fix crash when no model is selected (None passed to resolve_model_path)
oobabooga Apr 3, 2026
8bba9ec
Update the custom gradio wheels
oobabooga Apr 3, 2026
95d6c53
Revert "API: Add warning about vanilla llama-server not supporting pr…
oobabooga Apr 3, 2026
131a9a0
Update llama.cpp
oobabooga Apr 3, 2026
8e8e1ba
Update the custom gradio wheels
oobabooga Apr 3, 2026
6b66da8
Update the custom gradio wheels
oobabooga Apr 3, 2026
0050a33
Merge pull request #7461 from oobabooga/dev
oobabooga Apr 3, 2026
5fb8c4f
Update the custom gradio wheels
oobabooga Apr 3, 2026
8ecdb41
fix(security): sanitize filenames in all prompt file operations (CWE-…
oobabooga Apr 3, 2026
fc35aca
API: Fix tool call parser crash on non-dict JSON output
oobabooga Apr 3, 2026
62e67ad
Merge pull request #7463 from oobabooga/dev
oobabooga Apr 3, 2026
2fbaee5
Add Windows + ROCm portable builds
oobabooga Apr 4, 2026
b5afecc
Merge pull request #7464 from oobabooga/dev
oobabooga Apr 4, 2026
54b2f39
Cleanup modules/chat.py
oobabooga Apr 4, 2026
16af11f
Update README
oobabooga Apr 4, 2026
e0ad4e6
UI: Fix tool buffer check truncating visible text at end of generation
oobabooga Apr 4, 2026
9183dc4
API: Fix loader args leaking between sequential model loads
oobabooga Apr 4, 2026
2eef90a
API: Remove deprecated "settings" parameter from model load endpoint
oobabooga Apr 4, 2026
7fed60f
UI: Improve the hover menu looks
oobabooga Apr 5, 2026
ffea8f2
UI: Improve message text contrast
oobabooga Apr 5, 2026
41bce3f
UI: Improve scrollbars style
oobabooga Apr 5, 2026
8cb7fe9
UI: Improve message action icon visibility in light mode
oobabooga Apr 5, 2026
1b403a4
UI: Fix inline LaTeX rendering by protecting $...$ from markdown (clo…
oobabooga Apr 5, 2026
0c033ca
UI: Reduce spacing above chat input
oobabooga Apr 5, 2026
dfd8ec9
UI: Make accordion outline styling global
oobabooga Apr 5, 2026
ee917cd
UI: Make table and hr borders more subtle
oobabooga Apr 5, 2026
e8b31c0
UI: Soften message action icons in light mode
oobabooga Apr 5, 2026
1f49a64
UI: Improve blockquote border width and color
oobabooga Apr 5, 2026
91f9b01
UI: Minor change
oobabooga Apr 5, 2026
9805ddc
Update the custom gradio wheels
oobabooga Apr 5, 2026
c63a79e
Image generation: Embed generation metadata in API image responses
oobabooga Apr 5, 2026
544fcb0
Simplify modules/image_models.py
oobabooga Apr 5, 2026
422f42c
Pre-compile LaTeX regex in html_generator.py
oobabooga Apr 5, 2026
d78fc46
Fix "address already in use" on server restart (Linux/macOS)
oobabooga Apr 5, 2026
f8db23b
Call ik portable build folders text-generation-webui-ik-version
oobabooga Apr 6, 2026
223dd4b
UI: Hide spin buttons on number inputs
oobabooga Apr 6, 2026
abc3487
UI: Move cpu-moe checkbox to extra flags (no longer useful now that -…
oobabooga Apr 6, 2026
b1d06dc
UI: Add MCP server support
oobabooga Apr 6, 2026
05e4842
Fix image generation: default to SDPA attention backend
oobabooga Apr 6, 2026
7b2f15e
Minor change after b1d06dcf96e2b5958ae004b8c9bbb0fc8518328b
oobabooga Apr 6, 2026
4d6230a
Follow-up to d78fc46114a4ce1de505fc286798372ddaa0c32d
oobabooga Apr 6, 2026
c26ffdd
API: add instruction_template support to the model load endpoint
oobabooga Apr 6, 2026
193424c
API: Fix IPv6 address formatting
oobabooga Apr 6, 2026
cb51192
Fix GPT-OSS tag leak during streaming between thinking and tool calls
oobabooga Apr 6, 2026
775c913
Fix crash when truncating prompts with tool call messages
oobabooga Apr 6, 2026
778e1c4
Update llama.cpp/ik_llama.cpp
oobabooga Apr 7, 2026
e18f32c
Remove hardcoded trust_remote_code=True in embedding loader
oobabooga Apr 7, 2026
9dcf574
Merge pull request #7471 from oobabooga/dev
oobabooga Apr 7, 2026
5ad199e
Update README
oobabooga Apr 8, 2026
0c3720a
Merge pull request #7478 from oobabooga/dev
oobabooga Apr 8, 2026
24cc0e2
Update llama.cpp
oobabooga Apr 10, 2026
9bc3f9f
Update README
oobabooga Apr 10, 2026
326867e
Reduce VRAM peak in prompt logprobs forward pass
oobabooga Apr 11, 2026
456afad
Update llama.cpp
oobabooga Apr 11, 2026
e9d7feb
Update exllamav3
oobabooga Apr 12, 2026
add9161
Fix bos/eos tokens not being set for models without a chat template
oobabooga Apr 12, 2026
7e4c8fa
prevent tool icon SVG shrinking when tool calls are long (#7488)
mamei16 Apr 13, 2026
fae17dc
Update README
oobabooga Apr 13, 2026
1ae749a
Merge branch 'main' into dev
oobabooga Apr 13, 2026
a9afc48
Merge remote-tracking branch 'refs/remotes/origin/dev' into dev
oobabooga Apr 13, 2026
61bfc2f
Update README
oobabooga Apr 13, 2026
65cef2c
Rename project from text-generation-webui to textgen
oobabooga Apr 13, 2026
5f16b86
Update README
oobabooga Apr 14, 2026
3dcb30b
Update llama.cpp
oobabooga Apr 15, 2026
533b436
Revert "Update exllamav3"
oobabooga Apr 15, 2026
fbd95bd
Handle Double Quotes and Newline Chars in Gemma-4 Tool Call Arguments…
mamei16 Apr 15, 2026
75bf2fe
Logits display improvements (#7486)
wiger3 Apr 15, 2026
c7ca2f2
Fix: wrong chat deleted when selection changes before confirm (#7483)
lawrence3699 Apr 15, 2026
ed61081
UI: Add sky-blue color for quoted text in light mode (#7473)
Th-Underscore Apr 15, 2026
a8a0f8d
Fix version metadata not syncing on Continue (closes #7492)
oobabooga Apr 15, 2026
9e32342
Fix row_split not working with ik_llama.cpp (closes #7489)
oobabooga Apr 15, 2026
160a5e1
Merge remote-tracking branch 'refs/remotes/origin/dev' into dev
oobabooga Apr 15, 2026
2aee3a1
UI: Deduplicate auto-scroll calls with queueMicrotask
oobabooga Apr 15, 2026
4bce4a3
Attempt at fixing chat scroll getting stuck on thinking blocks (#7485)
oobabooga Apr 15, 2026
4e978dd
Update README
oobabooga Apr 15, 2026
b06b36a
Lint
oobabooga Apr 15, 2026
734d3c3
Reset bos/eos tokens to defaults before reading model metadata
oobabooga Apr 15, 2026
9055937
Merge pull request #7494 from oobabooga/dev
oobabooga Apr 15, 2026
f66a01b
UI: Add an error message when no model is loaded
oobabooga Apr 15, 2026
eeb3288
Merge pull request #7495 from oobabooga/dev
oobabooga Apr 15, 2026
5992fa9
Fix "Start reply with" crash (closes #7497)
oobabooga Apr 15, 2026
e4168ee
Fix tool responses with Gemma 4 template (closes #7498)
oobabooga Apr 15, 2026
dd77820
UI: Fix consecutive thinking blocks rendering with Gemma 4
oobabooga Apr 15, 2026
a56e281
Clean up unused function
oobabooga Apr 15, 2026
7bae526
Merge pull request #7501 from oobabooga/dev
oobabooga Apr 15, 2026
57be34d
Fix bos/eos tokens being overwritten after GGUF metadata sets them (c…
oobabooga Apr 15, 2026
841aded
Merge pull request #7502 from oobabooga/dev
oobabooga Apr 15, 2026
acb2488
UI: Make sidebars toggle independently, overlay the chat area, and pe…
oobabooga Apr 16, 2026
21d4c17
UI: Fix code block copy button centering and light/dark mode colors
oobabooga Apr 16, 2026
78a178d
UI: Past chats menu improvement
oobabooga Apr 16, 2026
145f329
UI: Sidebar defaults based on viewport width
oobabooga Apr 16, 2026
b646090
Add model download branch handling in download_model_wrapper
Th-Underscore Apr 17, 2026
d6d9720
Remove double space
Th-Underscore Apr 17, 2026
40ba610
UI: Improve border colors in light theme
oobabooga Apr 18, 2026
ae997d6
UI: Remove fixed sidebar positioning on wide viewports
oobabooga Apr 18, 2026
beb6e17
UI: Fix code block scrollbar flash during page load
oobabooga Apr 18, 2026
6f3b1b0
UI: Only show reasoning effort/enable thinking for models that use them
oobabooga Apr 18, 2026
57643eb
Account for non-tree URLs
Th-Underscore Apr 19, 2026
fe0b385
Merge pull request #7506 from Th-Underscore/fix/download-model
oobabooga Apr 19, 2026
eb596b8
Update llama.cpp
oobabooga Apr 19, 2026
1b3af51
Update exllamav3 to v0.0.30, pin xformers
oobabooga Apr 19, 2026
707b5df
Add stdio MCP server support via user_data/mcp.json
oobabooga Apr 20, 2026
1e1d2d3
Cache MCP tool discovery to avoid re-querying on each generation
oobabooga Apr 22, 2026
a253d38
Add tool call confirmation with inline approve/reject buttons
oobabooga Apr 19, 2026
4e065e6
Update llama.cpp
oobabooga Apr 22, 2026
9a9f3ae
llama.cpp: Pass --draft-min 48 by default for draftless speculative d…
oobabooga Apr 22, 2026
83347ed
Add `preserve_thinking` chat template parameter (UI and CLI)
oobabooga Apr 22, 2026
4737744
Security: Fix SSRF vulnerabilities in URL fetching
oobabooga Apr 22, 2026
1d871c0
Fix Gemma 4 thinking tags not hidden after tool calls (closes #7509)
oobabooga Apr 22, 2026
cb023a9
Follow-up to a253d38953f3a1de298d75d0e6dd1135eae0f35f
oobabooga Apr 22, 2026
1bb6ae4
Update README
oobabooga Apr 22, 2026
7338120
Fix GPT-OSS channel tokens leaking in UI after tool calls
oobabooga Apr 23, 2026
8ac5162
Update README
oobabooga Apr 23, 2026
5a9d61e
Update llama.cpp
oobabooga Apr 23, 2026
1d35a48
Merge pull request #7512 from oobabooga/dev
oobabooga Apr 23, 2026
1d1a319
llama.cpp: Fix multimodal by using server's random media marker
oobabooga Apr 23, 2026
d440d83
Update the custom gradio wheels
oobabooga Apr 23, 2026
dc798aa
Pre-load MCP stdio server tools at startup
oobabooga Apr 23, 2026
facd16c
Merge pull request #7514 from oobabooga/dev
oobabooga Apr 23, 2026
d31662a
Revert "Pre-load MCP stdio server tools at startup"
oobabooga Apr 23, 2026
8399fc4
Merge pull request #7515 from oobabooga/dev
oobabooga Apr 23, 2026
c014efd
Update transformers to 5.6
oobabooga Apr 23, 2026
7847d72
Update the screenshots
oobabooga Apr 23, 2026
08b53f8
Merge branch 'main' into dev
oobabooga Apr 23, 2026
187b07a
Fix race condition and clean up exllamav3 module
oobabooga Apr 25, 2026
4b575a2
llama.cpp: Add --split-mode flag with tensor parallelism support
oobabooga Apr 27, 2026
54c4fee
Support .jinja/.jinja2 instruction template files in the UI (closes #…
oobabooga Apr 27, 2026
c6a57a4
Major UI overhaul
oobabooga May 2, 2026
cfda099
Add Electron desktop app to portable builds
oobabooga May 2, 2026
ddec64a
UI: refinements after c6a57a45727b197090d11ec4c6c28e4ce581c22d & elec…
oobabooga May 2, 2026
8e0b02a
Fix Stop button being ignored during tool call approval
oobabooga May 2, 2026
03b964a
Minor color improvement
oobabooga May 2, 2026
8e7ecab
Update llama.cpp
oobabooga May 2, 2026
d9a83d8
Add missing electronjs file + small fixes
oobabooga May 2, 2026
a4838ae
Update README
oobabooga May 2, 2026
30177bb
Improve the chat Stop button
oobabooga May 3, 2026
7facf66
Replace DuckDuckGo scraping with ddgs library
oobabooga May 3, 2026
717b17c
Update README
oobabooga May 3, 2026
8376284
Fix extension settings not saving for user_data/extensions (closes #7…
oobabooga May 3, 2026
9c85092
Update README
oobabooga May 3, 2026
3f97f5c
Update README
oobabooga May 3, 2026
365848f
Update README
oobabooga May 3, 2026
25d6004
Update README
oobabooga May 3, 2026
d38124b
Update README
oobabooga May 3, 2026
2ca61f2
Cleanup modules/web_search.py
oobabooga May 3, 2026
23581cd
Merge pull request #7528 from oobabooga/dev
oobabooga May 3, 2026
2db59ad
Electron: Fix blank window on Linux
oobabooga May 3, 2026
10d32a7
Merge pull request #7529 from oobabooga/dev
oobabooga May 3, 2026
9c08e68
Electron: keep Windows console + silence VAAPI warning
oobabooga May 3, 2026
556c5b5
Merge pull request #7531 from oobabooga/dev
oobabooga May 3, 2026
d764aaf
Electron: fix sandbox crash on stricter Linux configs
oobabooga May 3, 2026
1dcde41
Merge pull request #7532 from oobabooga/dev
oobabooga May 3, 2026
31c2a82
Electron: fix missing log colors on Windows
oobabooga May 3, 2026
233318f
Remove "Shutting down TextGen gracefully." log message
oobabooga May 3, 2026
14c8301
Electron: persist window bounds and maximize state
oobabooga May 3, 2026
0f4d8aa
API: Fix crash on list-format content in tool and assistant messages
oobabooga May 4, 2026
645df9a
Fix textarea auto-grow in Firefox (fix by @jepjoo, closes #7534)
oobabooga May 4, 2026
61241cf
Gemini/DeepSeek-like chat composer (closes #7534 for real this time)
oobabooga May 5, 2026
acacede
Small light theme color change
oobabooga May 5, 2026
59411f0
Update README
oobabooga May 5, 2026
1037bdc
Update README
oobabooga May 5, 2026
210c65a
Update README
oobabooga May 5, 2026
cd3ac27
Update README
oobabooga May 5, 2026
4de6027
Fix big character picture failing to load in Electron (#7540)
oobabooga May 6, 2026
71525d5
Fix truncation length reverting after model load on UI reload (closes…
oobabooga May 6, 2026
8536d58
Update llama.cpp
oobabooga May 6, 2026
bf50e7e
Fix --listen mode in the new Electron launcher
oobabooga May 7, 2026
3e38f44
Fix speculative decoding broken by llama.cpp arg rename (closes #7541)
oobabooga May 7, 2026
4d3f355
Add a `--no-electron` flag
oobabooga May 7, 2026
bde878f
Electron: disable spellcheck
oobabooga May 7, 2026
5c0fab6
Add a scroll animation when new chat messages are sent (Gemini-like)
oobabooga May 7, 2026
88d47dc
Don't clear chat input when no model is loaded (closes #7542)
oobabooga May 7, 2026
206b9d2
Increase bottom padding of the last chat/chat-instruct message
oobabooga May 7, 2026
4549fc6
Update llama.cpp
oobabooga May 7, 2026
3ce136e
Update README
oobabooga May 7, 2026
3b9d0fe
Update README
oobabooga May 7, 2026
1f367a2
Merge pull request #7543 from oobabooga/dev
oobabooga May 7, 2026
95c0a26
Switch flash-attn wheels from kingbri1 to mjun0812
oobabooga May 7, 2026
f29e220
Update README
oobabooga May 11, 2026
9a098a9
Update exllamav3 to 0.0.34
oobabooga May 11, 2026
f4f556a
Add snippet support to the web_search tool (closes #7548)
oobabooga May 12, 2026
b863696
Downgrade xformers to make exllamav3 0.0.34 work
oobabooga May 12, 2026
79630e9
Remove `backend="duckduckgo"` from ddgs (https://github.com/oobabooga…
oobabooga May 12, 2026
13f5d37
Make web_search tool call results pretty
oobabooga May 13, 2026
66f01d6
Electron: Add right-click context menu for copying text
oobabooga May 13, 2026
2c254cb
docs: Small API example change
oobabooga May 13, 2026
47fdee9
Electron: Add a folder picker for the models directory
oobabooga May 14, 2026
6a1a959
Add missing file
oobabooga May 14, 2026
66c3c49
Treat negative ctx-size as auto
oobabooga May 14, 2026
a711849
Detect mmproj files in the models folder (simplifies LM Studio migrat…
oobabooga May 14, 2026
6301419
Fix streaming output leaking across chats (closes #7555)
oobabooga May 14, 2026
58774c8
Also fix streaming leak across all other chat actions
oobabooga May 14, 2026
1e8136d
Small simplifications
oobabooga May 14, 2026
646f10d
fix(win): set PYTHONUTF8 for non-ASCII locale Windows compatibility (…
jerry78424 May 14, 2026
0f88365
Rename "Send dummy message/reply" to "Insert user/assistant message"
oobabooga May 15, 2026
bed909d
Auto-select sibling mmproj when loading a model (closes #7564)
oobabooga May 15, 2026
82d931e
Keep web search blocks closed when user closes them mid-stream
oobabooga May 15, 2026
6033be5
Reorder right sidebar: Mode/Character/Chat style on top
oobabooga May 15, 2026
2a27cea
Hide reasoning and tools controls in chat mode
oobabooga May 15, 2026
626b089
Polish character dropdown in chat tab
oobabooga May 15, 2026
5270943
Fix Show controls text style in hover menu
oobabooga May 15, 2026
3c4a140
Soften slider and checkbox label colors in light theme
oobabooga May 15, 2026
8e34c7b
Show live context size while generating
oobabooga May 15, 2026
dbf9220
Revert "Soften slider and checkbox label colors in light theme"
oobabooga May 15, 2026
ceade2e
docs: reorder API examples by importance
oobabooga May 15, 2026
6378c5c
Electron: Add "Check for updates" button in the Session tab
oobabooga May 16, 2026
f327da7
Improve the looks of the Session tab
oobabooga May 16, 2026
bf6c8cd
Tighten spacing between dropdowns and refresh buttons
oobabooga May 16, 2026
be7f3a2
Electron: Add spellcheck toggle in the Session tab (closes #7550)
oobabooga May 16, 2026
9a396e1
Fix incorrect prompts generated with continue mode
MeemeeLab May 16, 2026
d803e29
Fix continue-mode regressions across template families
oobabooga May 16, 2026
59c67f9
Change dependabot to target the main branch
oobabooga May 17, 2026
aa7d6bf
Electron: Validate model_dir path before applying it
oobabooga May 17, 2026
4c16b94
UI: Fix token count not being set in non-streaming mode
oobabooga May 17, 2026
dcbb323
UI: Improve web search security by rejecting non-HTTP links
oobabooga May 17, 2026
58e4406
Merge pull request #7567 from oobabooga/dev
oobabooga May 17, 2026
52212f4
fix: prevent path traversal in load_template_by_name (CWE-22) (#7562)
Allen930311 May 17, 2026
959b0b9
Update feature_request.md
oobabooga May 17, 2026
dbe4784
Full version installer: track release tags instead of main HEAD
oobabooga May 17, 2026
46159d5
UI: fade in new messages, fix scroll-up jump on send
oobabooga May 17, 2026
28c01b8
Add an info message to the "Activate web search" checkbox
oobabooga May 17, 2026
b76dd13
Update llama.cpp
oobabooga May 17, 2026
242a2d4
Pin xformers to cu128
oobabooga May 17, 2026
c022565
UI: Add MTP support, reorganize the speculative decoding menu
oobabooga May 17, 2026
9023515
Add DGX Spark support (linux aarch64 portable builds)
oobabooga May 18, 2026
2b07e17
Show live generation speed (tokens/s) while generating (closes #7563)
oobabooga May 18, 2026
fa57f83
Electron: Refresh models dropdown when a new models directory is sele…
oobabooga May 18, 2026
9667029
Add an icon! (Credits: LMLocalizer on Reddit) https://www.reddit.com/…
oobabooga May 18, 2026
518c696
Electron: Store app data in user_data/cache/electron
oobabooga May 18, 2026
895f055
Electron: Disable DNS-over-HTTPS probes
oobabooga May 18, 2026
3a63a0e
Auto-enable MTP for MTP GGUFs
oobabooga May 19, 2026
f5e92c6
Set TORCH_VERSION to 2.9.0 to match xformers 0.0.33's torch pin (#7581)
AJ-Gazin May 20, 2026
163a470
Fix chat deletion failing when user_data/logs is a symlink (closes #7…
oobabooga May 20, 2026
350eb17
Fix thinking channel being lost across tool-call turns (closes #7578)
oobabooga May 20, 2026
2fb21dc
Fix API model load silently dropping hyphenated arg keys (closes #7577)
oobabooga May 20, 2026
619a2b8
Restrict CORS to localhost by default to prevent drive-by API access
oobabooga May 20, 2026
dc92ee7
Sanitize character name in load_character to prevent path traversal
oobabooga May 20, 2026
d1b29f5
Bind llama-server to parent process lifetime on Windows (closes #7574)
oobabooga May 20, 2026
3cdd7e0
Update llama.cpp
oobabooga May 20, 2026
79b46b8
Update the custom gradio wheels
oobabooga May 20, 2026
f9df9be
Minor fixes
oobabooga May 20, 2026
fbaa8a3
Fix stray scrollbars and leftover spacing in instruct mode chat
oobabooga Jun 1, 2026
ed888c7
Update llama.cpp
oobabooga Jun 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 0 additions & 2 deletions .github/FUNDING.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report_template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ body:
id: system-info
attributes:
label: System Info
description: "Please share your system info with us: operating system, GPU brand, and GPU model. If you are using a Google Colab notebook, mention that instead."
description: "Please share your operating system and GPU type (NVIDIA/AMD/Intel/Apple). If you are using a Google Colab notebook, mention that instead."
render: shell
placeholder:
validations:
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: Feature request
about: Suggest an improvement or new feature for the web UI
about: Suggest an improvement or new feature for TextGen
title: ''
labels: 'enhancement'
assignees: ''
Expand Down
7 changes: 4 additions & 3 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@

version: 2
updates:
- package-ecosystem: "pip" # See documentation for possible values
directory: "/" # Location of package manifests
target-branch: "dev"
- package-ecosystem: "pip"
directories:
- "/requirements/full/"
- "/requirements/portable/"
schedule:
interval: "weekly"
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
## Checklist:

- [ ] I have read the [Contributing guidelines](https://github.com/oobabooga/text-generation-webui/wiki/Contributing-guidelines).
- [ ] I have read the [Contributing guidelines](https://github.com/oobabooga/textgen/wiki/Contributing-guidelines).
112 changes: 112 additions & 0 deletions .github/workflows/build-everything-tgw.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
name: Build Everything TGW

on:
workflow_dispatch:
inputs:
version:
description: 'Version tag of textgen to build: v3.0'
default: 'v3.0'
required: true
type: string

permissions:
contents: write

jobs:
build_release_cuda_windows:
name: CUDA Windows
uses: ./.github/workflows/build-portable-release-cuda.yml
with:
version: ${{ inputs.version }}
config: 'os:windows-2022'

build_release_cuda_linux:
name: CUDA Linux
uses: ./.github/workflows/build-portable-release-cuda.yml
with:
version: ${{ inputs.version }}
config: 'os:ubuntu-22.04'

build_release_cuda_linux_arm:
name: CUDA Linux ARM
uses: ./.github/workflows/build-portable-release-cuda.yml
with:
version: ${{ inputs.version }}
config: 'os:ubuntu-24.04-arm;cuda:13.1'

build_release_vulkan_windows:
name: Vulkan Windows
uses: ./.github/workflows/build-portable-release-vulkan.yml
with:
version: ${{ inputs.version }}
config: 'os:windows-2022'

build_release_vulkan_linux:
name: Vulkan Linux
uses: ./.github/workflows/build-portable-release-vulkan.yml
with:
version: ${{ inputs.version }}
config: 'os:ubuntu-22.04'

build_release_rocm_windows:
name: ROCm Windows
uses: ./.github/workflows/build-portable-release-rocm.yml
with:
version: ${{ inputs.version }}
config: 'os:windows-2022'

build_release_rocm_linux:
name: ROCm Linux
uses: ./.github/workflows/build-portable-release-rocm.yml
with:
version: ${{ inputs.version }}
config: 'os:ubuntu-22.04'

build_release_cpu_windows:
name: CPU Windows
uses: ./.github/workflows/build-portable-release.yml
with:
version: ${{ inputs.version }}
config: 'os:windows-2022'

build_release_cpu_linux:
name: CPU Linux
uses: ./.github/workflows/build-portable-release.yml
with:
version: ${{ inputs.version }}
config: 'os:ubuntu-22.04'

build_release_macos:
name: macOS
uses: ./.github/workflows/build-portable-release.yml
with:
version: ${{ inputs.version }}
config: 'os:macos-15-intel,macos-14'

build_release_ik_cuda_windows:
name: ik CUDA Windows
uses: ./.github/workflows/build-portable-release-ik-cuda.yml
with:
version: ${{ inputs.version }}
config: 'os:windows-2022'

build_release_ik_cuda_linux:
name: ik CUDA Linux
uses: ./.github/workflows/build-portable-release-ik-cuda.yml
with:
version: ${{ inputs.version }}
config: 'os:ubuntu-22.04'

build_release_ik_cpu_windows:
name: ik CPU Windows
uses: ./.github/workflows/build-portable-release-ik.yml
with:
version: ${{ inputs.version }}
config: 'os:windows-2022'

build_release_ik_cpu_linux:
name: ik CPU Linux
uses: ./.github/workflows/build-portable-release-ik.yml
with:
version: ${{ inputs.version }}
config: 'os:ubuntu-22.04'
235 changes: 235 additions & 0 deletions .github/workflows/build-portable-release-cuda.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,235 @@
name: Build CUDA

on:
workflow_dispatch:
inputs:
version:
description: 'Version tag of textgen to build: v3.0'
default: 'v3.0'
required: true
type: string
config:
description: 'Override configurations to build: key1:item1-1,item1-2;key2:item2-1,item2-2'
default: 'Default'
required: false
type: string
exclude:
description: 'Exclude build configurations: key1-1:item1-1,key1-2:item1-2;key2-1:item2-1,key2-2:item2-2'
default: 'None'
required: false
type: string
workflow_call:
inputs:
version:
description: 'Version tag of textgen to build: v3.0'
default: 'v3.0'
required: true
type: string
config:
description: 'Configurations to build: key1:item1-1,item1-2;key2:item2-1,item2-2'
default: 'Default'
required: false
type: string
exclude:
description: 'Exclude build configurations: key1-1:item1-1,key1-2:item1-2;key2-1:item2-1,key2-2:item2-2'
default: 'None'
required: false
type: string

permissions:
contents: write

jobs:
define_matrix:
name: Define Build Matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
defaults:
run:
shell: pwsh
env:
CONFIGIN: ${{ inputs.config }}
EXCLUDEIN: ${{ inputs.exclude }}

steps:
- name: Define Job Output
id: set-matrix
run: |
$matrix = @{
'os' = @('ubuntu-22.04', 'windows-2022')
'pyver' = @("3.13")
'cuda' = @("12.4", "13.1")
}

if ($env:CONFIGIN -ne 'Default') {$env:CONFIGIN.split(';').foreach({$matrix[$_.split(':')[0]] = $_.split(':')[1].split(',')})}

if ($env:EXCLUDEIN -ne 'None') {
$exclusions = @()
$exclusions += $env:EXCLUDEIN.split(';').replace(':','=').replace(',',"`n") | ConvertFrom-StringData
$matrix['exclude'] = $exclusions
}

$matrixOut = ConvertTo-Json $matrix -Compress
Write-Output ('matrix=' + $matrixOut) >> $env:GITHUB_OUTPUT

build_wheels:
name: ${{ matrix.os }} ${{ matrix.pyver }} CUDA ${{ matrix.cuda }}
needs: define_matrix
runs-on: ${{ matrix.os }}
strategy:
matrix: ${{ fromJSON(needs.define_matrix.outputs.matrix) }}
defaults:
run:
shell: pwsh
env:
PCKGVER: ${{ inputs.version }}

steps:
- uses: actions/checkout@v6
with:
repository: 'oobabooga/textgen'
ref: ${{ inputs.version }}
submodules: 'recursive'

- uses: actions/setup-python@v6
with:
python-version: ${{ matrix.pyver }}

- name: Build Package
shell: bash
run: |
VERSION_CLEAN="${{ inputs.version }}"
VERSION_CLEAN="${VERSION_CLEAN#v}"
cd ..
cp -r textgen "textgen-${VERSION_CLEAN}"
cd "textgen-${VERSION_CLEAN}"

# Remove extensions that need additional requirements
allowed=("character_bias" "gallery" "sd_api_pictures")
find extensions/ -mindepth 1 -maxdepth 1 -type d | grep -v -E "$(printf '%s|' "${allowed[@]}" | sed 's/|$//')" | xargs rm -rf

# Define common variables
CUDA_VERSION="${{ matrix.cuda }}"
VERSION="${{ inputs.version }}"

# 1. Set platform-specific variables
if [[ "$RUNNER_OS" == "Windows" ]]; then
PLATFORM="windows"
PYTHON_URL="https://github.com/astral-sh/python-build-standalone/releases/download/20260303/cpython-3.13.12+20260303-x86_64-pc-windows-msvc-install_only_stripped.tar.gz"
PIP_PATH="portable_env/python.exe -m pip"
PACKAGES_PATH="portable_env/Lib/site-packages"
rm start_linux.sh start_macos.sh
elif [[ "$RUNNER_ARCH" == "ARM64" ]]; then
PLATFORM="linux-arm64"
PYTHON_URL="https://github.com/astral-sh/python-build-standalone/releases/download/20260303/cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-install_only_stripped.tar.gz"
PIP_PATH="portable_env/bin/python -m pip"
PACKAGES_PATH="portable_env/lib/python3.13/site-packages"
rm start_macos.sh start_windows.bat
else
PLATFORM="linux"
PYTHON_URL="https://github.com/astral-sh/python-build-standalone/releases/download/20260303/cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz"
PIP_PATH="portable_env/bin/python -m pip"
PACKAGES_PATH="portable_env/lib/python3.13/site-packages"
rm start_macos.sh start_windows.bat
fi

# 2. Download and extract Python
cd ..
echo "Downloading Python for $PLATFORM..."
curl -L -o python-build.tar.gz "$PYTHON_URL"
tar -xzf python-build.tar.gz
mv python "textgen-${VERSION_CLEAN}/portable_env"

# 3. Prepare requirements file based on CUDA version
cd "textgen-${VERSION_CLEAN}"
if [[ "$CUDA_VERSION" == "13.1" ]]; then
REQ_FILE="requirements/portable/requirements_cuda131.txt"
else
REQ_FILE="requirements/portable/requirements.txt"
fi

# 4. Install packages
echo "Installing Python packages from $REQ_FILE..."
$PIP_PATH install --target="./$PACKAGES_PATH" -r "$REQ_FILE"

# 5. Clean up
rm -rf .git cmd* update_wizard* Colab-TextGen-GPU.ipynb docker setup.cfg .github .gitignore requirements/ one_click.py

# 5b. Bundle Electron desktop launcher
ELECTRON_VERSION="41.5.0"
APP_DIR="app"
if [[ "$RUNNER_OS" == "Windows" ]]; then
ELECTRON_ZIP="electron-v${ELECTRON_VERSION}-win32-x64.zip"
ELECTRON_BIN="electron/electron.exe"
rm -f start_windows.bat
elif [[ "$RUNNER_OS" == "macOS" ]]; then
if [[ "$OS_TYPE" == "macos-15-intel" ]]; then
ELECTRON_ZIP="electron-v${ELECTRON_VERSION}-darwin-x64.zip"
else
ELECTRON_ZIP="electron-v${ELECTRON_VERSION}-darwin-arm64.zip"
fi
ELECTRON_BIN="electron/Electron.app/Contents/MacOS/Electron"
rm -f start_macos.sh
elif [[ "$RUNNER_ARCH" == "ARM64" ]]; then
ELECTRON_ZIP="electron-v${ELECTRON_VERSION}-linux-arm64.zip"
ELECTRON_BIN="electron/electron"
rm -f start_linux.sh
else
ELECTRON_ZIP="electron-v${ELECTRON_VERSION}-linux-x64.zip"
ELECTRON_BIN="electron/electron"
rm -f start_linux.sh
fi

echo "Downloading Electron ${ELECTRON_VERSION} (${ELECTRON_ZIP})..."
curl -L -o /tmp/electron.zip \
"https://github.com/electron/electron/releases/download/v${ELECTRON_VERSION}/${ELECTRON_ZIP}"
mkdir electron
unzip -q /tmp/electron.zip -d electron
rm /tmp/electron.zip

if [[ "$RUNNER_OS" == "Windows" ]]; then
sed "s|__APP__|${APP_DIR}|g" desktop/textgen.bat > textgen.bat
sed -i 's/$/\r/' textgen.bat
else
sed "s|__APP__|${APP_DIR}|g; s|__ELECTRON__|${ELECTRON_BIN}|g" desktop/textgen.sh > textgen
chmod +x textgen
fi

mv desktop/main.js desktop/preload.js desktop/package.json .
rm -rf desktop

# 5c. Restructure: textgen-VERSION/{textgen, user_data/, app/<everything else>}
mkdir "${APP_DIR}"
shopt -s dotglob
for item in *; do
case "$item" in
"${APP_DIR}"|user_data|textgen|textgen.bat) ;;
*) mv "$item" "${APP_DIR}/" ;;
esac
done
shopt -u dotglob

# 6. Create archive
cd ..
if [[ "$RUNNER_OS" == "Windows" ]]; then
ARCHIVE_NAME="textgen-portable-${VERSION_CLEAN}-${PLATFORM}-cuda${CUDA_VERSION}.zip"
echo "Creating archive: $ARCHIVE_NAME"
powershell -Command "Compress-Archive -Path textgen-${VERSION_CLEAN} -DestinationPath $ARCHIVE_NAME"
else
ARCHIVE_NAME="textgen-portable-${VERSION_CLEAN}-${PLATFORM}-cuda${CUDA_VERSION}.tar.gz"
echo "Creating archive: $ARCHIVE_NAME"
tar czf "$ARCHIVE_NAME" "textgen-${VERSION_CLEAN}"
fi

- name: Upload files to a GitHub release
id: upload-release
uses: svenstaro/upload-release-action@2.7.0
continue-on-error: true
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ../textgen-portable-*
tag: ${{ inputs.version }}
file_glob: true
make_latest: false
overwrite: true
Loading