Skip to content
Open

Ia #1

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
3205 commits
Select commit Hold shift + click to select a range
2a6b1fd
Fix `--extra-flags` breaking short long-form-only flags like `--rpc`
oobabooga Mar 18, 2026
7e54e7b
llama.cpp: Support literal flags in `--extra-flags` (e.g. `--rpc`, `-…
oobabooga Mar 18, 2026
08ff3f0
Merge remote-tracking branch 'refs/remotes/origin/dev' into dev
oobabooga Mar 18, 2026
c8bb212
Security: server-side file save roots, image URL SSRF protection, ext…
oobabooga Mar 18, 2026
256431f
Security: server-side file save roots, image URL SSRF protection, ext…
oobabooga Mar 18, 2026
fef2bd8
UI: Fix the instruction template delete dialog not appearing
oobabooga Mar 18, 2026
ca36bd6
API: Remove leading spaces from post-reasoning `content`
oobabooga Mar 18, 2026
eeb0e57
Fix AMD installer failing to resolve ROCm triton dependency
oobabooga Mar 18, 2026
779e761
Use `logger.exception()` instead of `traceback.print_exc()` for error…
oobabooga Mar 19, 2026
dde1764
Cleanup `modules/chat.py`
oobabooga Mar 19, 2026
5453b9f
Remove ancient/obsolete instruction templates
oobabooga Mar 19, 2026
e0e20ab
Minor cleanup across multiple modules
oobabooga Mar 19, 2026
b9922f7
Merge branch 'main' into dev
oobabooga Mar 19, 2026
b3eb0e3
Reduce the size of portable builds by using stripped Python
oobabooga Mar 19, 2026
843de8b
Update exllamav3 to 0.0.26
oobabooga Mar 20, 2026
2e4232e
Minor cleanup
oobabooga Mar 20, 2026
bf6fbc0
API: Move OpenAI-compatible API from extensions/openai to modules/api
oobabooga Mar 20, 2026
1a91057
API: Fix debug_msg truthy check for OPENEDAI_DEBUG=0
oobabooga Mar 20, 2026
8551419
API: Handle --extensions openai as alias for --api
oobabooga Mar 20, 2026
7c79143
API: Fix _start_cloudflared raising after first attempt instead of ex…
oobabooga Mar 20, 2026
f0e3997
Add missing __init__.py to modules/grammar
oobabooga Mar 20, 2026
0216893
API: Add Anthropic-compatible /v1/messages endpoint
oobabooga Mar 20, 2026
f2c9097
API: Use top_p=0.95 by default
oobabooga Mar 21, 2026
2c4f364
Update API docs to mention Anthropic support
oobabooga Mar 22, 2026
9488df3
llama.cpp: Don't suppress llama-server logs
oobabooga Mar 22, 2026
1dda5e4
Follow-up to previous commit
oobabooga Mar 22, 2026
bde496e
Fix prompt corruption when continuing with context truncation (#7439)
Phrosty1 Mar 23, 2026
9ec20d9
Strip thinking blocks before tool-call parsing
oobabooga Mar 23, 2026
307d0c9
UI polish
oobabooga Mar 23, 2026
02f18a1
API: Add thinking block signature field, fix error codes, clean up lo…
oobabooga Mar 23, 2026
286bbb6
Revert "Follow-up to previous commit"
oobabooga Mar 24, 2026
a7ef430
Revert "llama.cpp: Don't suppress llama-server logs"
oobabooga Mar 24, 2026
c9d2240
Update README
oobabooga Mar 24, 2026
5b8da15
Update llama.cpp
oobabooga Mar 24, 2026
5814e74
UI: Minor polish
oobabooga Mar 24, 2026
7505026
Fix GPT-OSS tool-calling after 9ec20d97
oobabooga Mar 24, 2026
f48a2b7
UI: Minor polish
oobabooga Mar 24, 2026
dd9d254
Merge pull request #7441 from oobabooga/dev
oobabooga Mar 24, 2026
807be11
Remove obsolete models/config.yaml and related code
oobabooga Mar 25, 2026
d6f1485
UI: Update the enable_thinking info message
oobabooga Mar 25, 2026
368f373
Fix --idle-timeout issues with encode/decode and parallel generation
oobabooga Mar 25, 2026
e154140
Rename "truncation length" to "context length" in logs
oobabooga Mar 25, 2026
4cbea02
Add ik_llama.cpp support via `--ik` flag
oobabooga Mar 26, 2026
bda9517
Fix stopping string detection for chromadb/context-1
oobabooga Mar 28, 2026
9dd04b8
Suppress EOS token at logit level for ExLlamav3 when ban_eos_token is…
oobabooga Mar 28, 2026
4979e87
Add ik_llama.cpp support via ik_llama_cpp_binaries package
oobabooga Mar 28, 2026
be6fc06
Update the custom gradio wheels
oobabooga Mar 28, 2026
0466b6e
ik_llama.cpp: Auto-enable Hadamard KV cache rotation with quantized c…
oobabooga Mar 29, 2026
6382fbe
Several small code simplifications
oobabooga Mar 31, 2026
71c1a52
API: Implement echo + logprobs for /v1/completions endpoint
oobabooga Mar 31, 2026
328534b
Update llama.cpp
oobabooga Apr 1, 2026
4073164
Fix ExLlamav3 OOM on prompt logprobs and qwen3_5_moe HF compat
oobabooga Apr 2, 2026
a32ce25
Don't pass torch_dtype to transformers, autodetect from model config
oobabooga Apr 2, 2026
c10c6e8
API: Add token ids to logprobs output
oobabooga Apr 2, 2026
ea1f8c7
API: Optimize prompt logprobs and refactor ExLlamav3 forward pass
oobabooga Apr 2, 2026
c50e17b
Add dedicated ik portable requirements files and remove macOS ik builds
oobabooga Apr 2, 2026
8f8b57a
Update exllamav3
oobabooga Apr 2, 2026
6a1f720
Update transformers
oobabooga Apr 2, 2026
468cb5c
Update accelerate
oobabooga Apr 2, 2026
80e81a5
Remove ik macOS wheels from full requirements
oobabooga Apr 2, 2026
f6f8f14
Security: Fix SSRF in superbooga extensions
oobabooga Apr 2, 2026
091037e
Fix top_logprobs_ids missing for llama.cpp loader
oobabooga Apr 2, 2026
a61bde5
Update llama.cpp
oobabooga Apr 3, 2026
d841574
Update the custom gradio wheels
oobabooga Apr 3, 2026
7aab2fd
API: Improve cache clearing in logprobs
oobabooga Apr 3, 2026
ae699ac
Merge pull request #7452 from oobabooga/dev
oobabooga Apr 3, 2026
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
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
  •  
  •  
  •  
1 change: 0 additions & 1 deletion .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
7 changes: 5 additions & 2 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@

version: 2
updates:
- package-ecosystem: "pip" # See documentation for possible values
directory: "/" # Location of package manifests
- package-ecosystem: "pip"
directories:
- "/requirements/full/"
- "/requirements/portable/"
target-branch: "dev"
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).
105 changes: 105 additions & 0 deletions .github/workflows/build-everything-tgw.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
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_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'
225 changes: 225 additions & 0 deletions .github/workflows/build-portable-release-cuda.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,225 @@
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
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
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/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