├── .github ├── ISSUE_TEMPLATE │ ├── bug-report.yml │ └── feature-request.yml ├── labeler.yml └── workflows │ └── labeler.yml ├── .gitignore ├── LICENSE ├── Launcher.bat ├── README-zh-cn.md ├── README-zh-tw.md ├── README.md ├── bin └── functions │ ├── Home │ ├── exit_stl.bat │ ├── info_vram.bat │ └── log_wrapper.bat │ ├── SSL │ └── create_ssl.bat │ └── Toolbox │ ├── App_Installer │ ├── Core_Utilities │ │ ├── config_tailscale.bat │ │ ├── install_7zip.bat │ │ ├── install_cudatoolkit.bat │ │ ├── install_ffmpeg.bat │ │ ├── install_nodejs.bat │ │ ├── install_tailscale.bat │ │ ├── install_vsbuildtools.bat │ │ ├── install_w64devkit.bat │ │ └── install_yq.bat │ ├── Image_Generation │ │ ├── install_comfyui.bat │ │ ├── install_fooocus.bat │ │ ├── install_invokeai.bat │ │ ├── install_ostris_aitoolkit.bat │ │ ├── install_sdwebui.bat │ │ └── install_sdwebuiforge.bat │ ├── Text_Completion │ │ ├── install_koboldcpp.bat │ │ ├── install_koboldcpp_raw.bat │ │ ├── install_llamacpp.bat │ │ ├── install_ooba.bat │ │ ├── install_tabbyapi.bat │ │ └── install_tabbyapi_st_ext.bat │ └── Voice_Generation │ │ ├── install_alltalk.bat │ │ ├── install_alltalk_v2.bat │ │ ├── install_rvc.bat │ │ ├── install_rvc_python.bat │ │ └── install_xtts.bat │ ├── App_Launcher │ ├── Core_Utilities │ │ ├── start_extras.bat │ │ ├── start_st.bat │ │ └── update_start_st.bat │ ├── Image_Generation │ │ ├── start_comfyui.bat │ │ ├── start_invokeai.bat │ │ ├── start_sdwebui.bat │ │ └── start_sdwebuiforge.bat │ ├── Text_Completion │ │ ├── start_koboldcpp.bat │ │ └── start_tabbyapi.bat │ └── Voice_Generation │ │ ├── start_alltalk.bat │ │ ├── start_alltalk_v2.bat │ │ ├── start_alltalk_v2_diag.bat │ │ ├── start_alltalk_v2_finetune.bat │ │ ├── start_rvc.bat │ │ ├── start_rvc_python.bat │ │ ├── start_rvc_realtime.bat │ │ └── start_xtts.bat │ ├── App_Uninstaller │ ├── Core_Utilities │ │ ├── uninstall_7zip.bat │ │ ├── uninstall_cudatoolkit.bat │ │ ├── uninstall_extras.bat │ │ ├── uninstall_ffmpeg.bat │ │ ├── uninstall_nodejs.bat │ │ ├── uninstall_st.bat │ │ ├── uninstall_tailscale.bat │ │ ├── uninstall_vsbuildtools.bat │ │ ├── uninstall_w64devkit.bat │ │ └── uninstall_yq.bat │ ├── Image_Generation │ │ ├── uninstall_comfyui.bat │ │ ├── uninstall_fooocus.bat │ │ ├── uninstall_invokeai.bat │ │ ├── uninstall_ostris_aitoolkit.bat │ │ ├── uninstall_sdwebui.bat │ │ └── uninstall_sdwebuiforge.bat │ ├── Text_Completion │ │ ├── uninstall_koboldcpp.bat │ │ ├── uninstall_llamacpp.bat │ │ ├── uninstall_ooba.bat │ │ └── uninstall_tabbyapi.bat │ └── Voice_Generation │ │ ├── uninstall_alltalk.bat │ │ ├── uninstall_alltalk_v2.bat │ │ ├── uninstall_rvc.bat │ │ ├── uninstall_rvc_python.bat │ │ └── uninstall_xtts.bat │ ├── Backup │ ├── create_backup.bat │ └── restore_backup.bat │ ├── Editor │ ├── Core_Utilities │ │ ├── edit_env_var.bat │ │ ├── edit_extras_modules.bat │ │ └── edit_st_config.bat │ ├── Image_Generation │ │ ├── edit_comfyui_modules.bat │ │ ├── edit_fooocus_modules.bat │ │ ├── edit_sdwebui_modules.bat │ │ └── edit_sdwebuiforge_modules.bat │ ├── Text_Completion │ │ ├── edit_koboldcpp_modules.bat │ │ ├── edit_ooba_modules.bat │ │ └── edit_tabbyapi_modules.bat │ └── Voice_Generation │ │ ├── edit_rvc_python_modules.bat │ │ └── edit_xtts_modules.bat │ └── Troubleshooting │ ├── Support │ └── discord.bat │ ├── detect_vpn.bat │ ├── export_dxdiag.bat │ ├── fetch_st_version.js │ ├── fetch_title.js │ ├── find_app_port.bat │ ├── fix_github_conflicts.bat │ ├── gpu_info.bat │ ├── home_port_check.bat │ ├── onboarding_flow.bat │ ├── remove_node_modules.bat │ ├── remove_npm_cache.bat │ ├── remove_pip_cache.bat │ └── restart_stl.bat ├── install.sh ├── installer.bat ├── launcher.sh ├── st-launcher.ico └── st.ico /.github/ISSUE_TEMPLATE/bug-report.yml: -------------------------------------------------------------------------------- 1 | name: Bug Report 🐛 2 | description: Report something that's not working the intended way. Support requests for external programs (reverse proxies, 3rd party servers, other peoples' forks) will be refused! 3 | title: '[BUG] ' 4 | labels: ['🐛Bug'] 5 | body: 6 | - type: dropdown 7 | id: environment 8 | attributes: 9 | label: Environment 10 | description: What OS are you running the file from? 11 | options: 12 | - 🪟 Windows 13 | - 🐧 Linux 14 | - 📱 Termux 15 | - 🐋 Docker 16 | - 🍎 Mac 17 | validations: 18 | required: true 19 | 20 | - type: input 21 | id: system 22 | attributes: 23 | label: System 24 | description: >- 25 | Specify your OS/Distro version and/or Docker version. 26 | For Windows: 27 | - Press WINDOWS KEY + R. 28 | - Type `winver` and press Enter. 29 | For Linux: 30 | - Open a terminal. 31 | - Run one of the following commands based on your distribution: 32 | - For Ubuntu/Debian: `lsb_release -a` 33 | - For CentOS/Fedora: `cat /etc/os-release` 34 | - For others: Check your distribution's documentation. 35 | For macOS: 36 | - Click on the Apple logo in the top-left corner. 37 | - Select "About This Mac" to see the macOS version. 38 | placeholder: 39 | validations: 40 | required: true 41 | 42 | - type: textarea 43 | id: repro 44 | attributes: 45 | label: Describe the problem 46 | description: Please describe exactly what is not working, include the steps to reproduce, actual result and expected result 47 | placeholder: When doing ABC then DEF, I expect to see XYZ, but I actually see ZYX 48 | validations: 49 | required: true 50 | 51 | - type: textarea 52 | id: logs 53 | attributes: 54 | label: Additional info 55 | description: Logs? Screenshots? Yes, please. 56 | placeholder: If the issue happens during build-time, include terminal logs. For run-time errors, include browser logs which you can view in the Dev Tools (F12), under the Console tab. Take care to blank out any personal info. 57 | validations: 58 | required: false 59 | 60 | - type: checkboxes 61 | id: user-check 62 | attributes: 63 | label: Please tick the boxes 64 | description: Before submitting, please ensure that you have completed the following checklist 65 | options: 66 | - label: I have explained the issue clearly, and I included all relevant info 67 | required: true 68 | - label: I have checked that this [issue hasn't already been raised](https://github.com/SillyTavern/SillyTavern/issues?q=is%3Aissue) 69 | required: true 70 | - label: I have checked the [docs](https://docs.sillytavern.app/) ![important](https://img.shields.io/badge/Important!-F6094E) 71 | required: true 72 | 73 | - type: markdown 74 | attributes: 75 | value: |- 76 | ## Thanks 🙏 77 | Thank you for raising this ticket - in doing so you are helping to make SillyTavern-Launcher better for everyone. 78 | validations: 79 | required: false 80 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-request.yml: -------------------------------------------------------------------------------- 1 | name: Feature Request ✨ 2 | description: Suggest an idea for future development of this project 3 | title: '[FEATURE_REQUEST] <title>' 4 | labels: ['🦄 Feature Request'] 5 | 6 | body: 7 | 8 | # Field 1 - Did the user searched for similar requests 9 | - type: dropdown 10 | id: similarRequest 11 | attributes: 12 | label: Have you searched for similar requests? 13 | description: 14 | options: 15 | - 'No' 16 | - 'Yes' 17 | validations: 18 | required: true 19 | 20 | # Field 2 - Is it bug-related 21 | - type: textarea 22 | id: issue 23 | attributes: 24 | label: Is your feature request related to a problem? If so, please describe. 25 | description: 26 | placeholder: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 27 | validations: 28 | required: false 29 | 30 | # Field 3 - Describe feature 31 | - type: textarea 32 | id: solution 33 | attributes: 34 | label: Describe the solution you'd like 35 | placeholder: An outline of how you would like this to be implemented, include as much details as possible 36 | validations: 37 | required: true 38 | 39 | # Field 4 - Describe alternatives 40 | - type: textarea 41 | id: alternatives 42 | attributes: 43 | label: Describe alternatives you've considered 44 | placeholder: A clear and concise description of any alternative solutions or features you've considered. 45 | validations: 46 | required: false 47 | 48 | # Field 5 - Additional context 49 | - type: textarea 50 | id: addcontext 51 | attributes: 52 | label: Additional context 53 | placeholder: Add any other context or screenshots about the feature request here. 54 | validations: 55 | required: false 56 | 57 | # Field 6 - Priority 58 | - type: dropdown 59 | id: priority 60 | attributes: 61 | label: Priority 62 | description: How urgent is the development of this feature 63 | options: 64 | - Low (Nice-to-have) 65 | - Medium (Would be very useful) 66 | - High (The app does not function without it) 67 | validations: 68 | required: true 69 | 70 | # Field 7 - Can the user implement 71 | - type: dropdown 72 | id: canImplement 73 | attributes: 74 | label: Is this something you would be keen to implement? 75 | description: Are you raising this ticket in order to get an issue number for your PR? 76 | options: 77 | - 'No' 78 | - 'Maybe' 79 | - 'Yes!' 80 | validations: 81 | required: false 82 | 83 | # Final text 84 | - type: markdown 85 | attributes: 86 | value: |- 87 | ## Thanks 🙏 88 | Thank you for your feature suggestion. 89 | Please note that there is no guarantee that your idea will be implemented. 90 | validations: 91 | required: false 92 | -------------------------------------------------------------------------------- /.github/labeler.yml: -------------------------------------------------------------------------------- 1 | # Add/remove 'critical' label if issue contains the words 'urgent' or 'critical' 2 | #critical: 3 | # - '(critical|urgent)' 4 | 5 | 🪟 Windows: 6 | - '(🪟 Windows)' 7 | 8 | 🍎 Mac: 9 | - '(🍎 Mac)' 10 | 11 | 🐋 Docker: 12 | - '(🐋 Docker)' 13 | 14 | 📱 Termux: 15 | - '(📱 Termux)' 16 | 17 | 🐧 Linux: 18 | - '(🐧 Linux)' -------------------------------------------------------------------------------- /.github/workflows/labeler.yml: -------------------------------------------------------------------------------- 1 | name: "Issue Labeler" 2 | on: 3 | issues: 4 | types: [opened, edited] 5 | 6 | permissions: 7 | issues: write 8 | contents: read 9 | 10 | jobs: 11 | triage: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: github/issue-labeler@v3.4 15 | with: 16 | configuration-path: .github/labeler.yml 17 | # not-before: 2020-01-15T02:54:32Z # optional and will result in any issues prior to this timestamp to be ignored. 18 | enable-versioned-regex: 0 19 | repo-token: ${{ github.token }} -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | SillyTavern/ 2 | SillyTavern-backups/ 3 | SillyTavern-extras/ 4 | text-completion/ 5 | image-generation/ 6 | voice-generation/ 7 | xtts/ 8 | bin/* 9 | !bin/functions/ 10 | !bin/functions/** 11 | *.txt 12 | *.logs 13 | /bin/functions/Toolbox/Troubleshooting/telemetry/venv 14 | bin/functions/Toolbox/Troubleshooting/detect_vpn - OLD.bat 15 | bin/functions/Toolbox/Troubleshooting/home_port_check - OLD.bat 16 | bin/functions/Toolbox/Troubleshooting/gpu_info - CUDA DETECT IN DEV.bat 17 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 SillyTavern 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README-zh-cn.md: -------------------------------------------------------------------------------- 1 | <a name="readme-top"></a> 2 | 3 | <div align="center"> 4 | 5 | <img height="160" src="st-launcher.ico"> 6 | 7 | <h1 align="center">SillyTavern Launcher - (STL)</h1> 8 | 9 | <p align="center"> 10 | <a href="README.md">English</a> | 中文 | <a href="README-zh-tw.md">繁體中文</a> | <a href="README-ja-jp.md">日本語</a> | <a href="README-ko-kr.md">한국어</a> | <a href="README-nl-nl.md">Nederlands</a> | <a href="README-fr-fr.md">Français</a> | <a href="README-vi-vn.md">Tiếng Việt</a> | <a href="README-pt-pt.md">Português</a> | <a href="README-es-es.md">Español</a> 11 | 12 | [![GitHub Stars](https://img.shields.io/github/stars/SillyTavern/SillyTavern-Launcher.svg)](https://github.com/SillyTavern/SillyTavern-Launcher/stargazers) 13 | [![GitHub Forks](https://img.shields.io/github/forks/SillyTavern/SillyTavern-Launcher.svg)](https://github.com/SillyTavern/SillyTavern-Launcher/network) 14 | [![GitHub Issues](https://img.shields.io/github/issues/SillyTavern/SillyTavern-Launcher.svg)](https://github.com/SillyTavern/SillyTavern-Launcher/issues) 15 | [![GitHub Pull Requests](https://img.shields.io/github/issues-pr/SillyTavern/SillyTavern-Launcher.svg)](https://github.com/SillyTavern/SillyTavern-Launcher/pulls) 16 | </div> 17 | 18 | 🔧 # 安装 19 | ## 🖥️ window 20 | 方法一 21 | 1.安装git(安装过git可以跳过),在键盘上:按“WINDOWS + R”打开“运行”对话框。然后,运行以下命令安装 git: 22 | ```shell 23 | cmd /c winget install -e --id Git.Git 24 | ``` 25 | 2. 在键盘上:按“WINDOWS + E”** 打开文件资源管理器,然后导航到要安装启动器的文件夹。进入所需文件夹后,在地址栏中键入“cmd”,然后按回车键。然后,运行以下命令: 26 | ```shell 27 | git clone https://github.com/SillyTavern/SillyTavern-Launcher.git && cd SillyTavern-Launcher && start installer.bat 28 | ``` 29 | 30 | 推销下我自己的分支,建设中[纯中文界面汉化版](https://github.com/vircus/SillyTavern-Launcher-zh/) 31 | 32 | ## 🐧 Linux 33 | 1. 打开你喜欢的终端并安装 git 34 | 2. Git 克隆 Sillytavern-Launcher: 35 | ```shell 36 | git clone https://github.com/SillyTavern/SillyTavern-Launcher.git && cd SillyTavern-Launcher 37 | ``` 38 | 3. 以以下方式开始 installer.sh: 39 | ```shell 40 | chmod +x install.sh && ./install.sh 41 | ``` 42 | 4. 安装后,通过以下方式启动 launcher.sh: 43 | ```shell 44 | chmod +x launcher.sh && ./launcher.sh 45 | ``` 46 | 47 | 48 | ## 🍎 Mac 49 | 1. 打开终端并安装 brew: 50 | ```shell 51 | /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)” 52 | ``` 53 | 2. 使用以下命令安装 git: 54 | ```shell 55 | brew install git 56 | ``` 57 | 3. Git 克隆 Sillytavern-Launcher: 58 | ```shell 59 | git clone https://github.com/SillyTavern/SillyTavern-Launcher.git && cd SillyTavern-Launcher 60 | ``` 61 | 4. 以以下方式开始 installer.sh: 62 | ```shell 63 | chmod +x install.sh && ./install.sh 64 | ``` 65 | 5. 安装后,通过以下方式启动 launcher.sh: 66 | ```shell 67 | chmod +x launcher.sh && ./launcher.sh 68 | ``` 69 | 70 | 71 | ✨ # 特性 72 | * 能够自动安装带有可选应用的核心app: 73 | * SillyTavern, 74 | * Extras, 75 | * XTTS, 76 | * 7-Zip, 77 | * FFmpeg, 78 | * Node.js, 79 | * yq, 80 | * Visual Studio BuildTools, 81 | * CUDA Toolkit 82 | 83 | * 能够自动安装文本完成应用程序: 84 | * Text generation web UI oobabooga 85 | * koboldcpp 86 | * TabbyAPI 87 | 88 | * 能够自动安装图像生成应用程序: 89 | * Stable Diffusion web UI 90 | * Stable Diffusion web UI Forge 91 | * ComfyUI 92 | * Fooocus 93 | 94 | *自动更新所有应用程序 95 | *备份和恢复SillyTavern 96 | * 开关分支 97 | * 模块编辑器 98 | * 应用程序安装程序和卸载程序来管理应用程序 99 | * 故障排除菜单可解决最常见的问题 100 | 101 | #问题或建议? 102 | 103 | |[![][discord-shield-badge]][discord-link] |[加入我们的 Discord 社区!](https://discord.gg/sillytavern)获得支持,分享角色和提示。| 104 | |:---------------------------------------- |:------------------------------------------------------------------------------------------------------- | 105 | 106 | # Screenshots 107 | <img width="400" alt="image" src="https://github.com/SillyTavern/SillyTavern-Launcher/assets/61471128/96775287-df23-4976-980f-a0ce4dead9a5"> 108 | <img width="400" alt="image" src="https://github.com/SillyTavern/SillyTavern-Launcher/assets/61471128/b080c199-4b26-4246-931e-92cc0c4b47eb"> 109 | 110 | <div align="right"> 111 | 112 | [![][back-to-top]](#readme-top) 113 | 114 | </div> 115 | 116 | 117 | <!-- LINK GROUP --> 118 | [back-to-top]: https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square 119 | [discord-link]: https://discord.gg/sillytavern 120 | [discord-shield]: https://img.shields.io/discord/1100685673633153084?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=flat-square 121 | [discord-shield-badge]: https://img.shields.io/discord/1100685673633153084?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=for-the-badge 122 | -------------------------------------------------------------------------------- /README-zh-tw.md: -------------------------------------------------------------------------------- 1 | <a name="readme-top"></a> 2 | 3 | <div align="center"> 4 | 5 | <img height="160" src="st-launcher.ico"> 6 | 7 | <h1 align="center">SillyTavern Launcher - (STL)</h1> 8 | 9 | <p align="center"> 10 | <a href="README.md">English</a> | <a href="README-zh-cn.md">中文</a> | 繁體中文 | <a href="README-ja-jp.md">日本語</a> | <a href="README-ko-kr.md">한국어</a> | <a href="README-nl-nl.md">Nederlands</a> | <a href="README-fr-fr.md">Français</a> | <a href="README-vi-vn.md">Tiếng Việt</a> | <a href="README-pt-pt.md">Português</a> | <a href="README-es-es.md">Español</a> 11 | 12 | [![GitHub Stars](https://img.shields.io/github/stars/SillyTavern/SillyTavern-Launcher.svg)](https://github.com/SillyTavern/SillyTavern-Launcher/stargazers) 13 | [![GitHub Forks](https://img.shields.io/github/forks/SillyTavern/SillyTavern-Launcher.svg)](https://github.com/SillyTavern/SillyTavern-Launcher/network) 14 | [![GitHub Issues](https://img.shields.io/github/issues/SillyTavern/SillyTavern-Launcher.svg)](https://github.com/SillyTavern/SillyTavern-Launcher/issues) 15 | [![GitHub Pull Requests](https://img.shields.io/github/issues-pr/SillyTavern/SillyTavern-Launcher.svg)](https://github.com/SillyTavern/SillyTavern-Launcher/pulls) 16 | </div> 17 | 18 | # 🔧 安裝指南 19 | ## 🪟 Windows 20 | 1. 按下 **`Windows + R`** 開啟「執行」對話框後,輸入以下指令安裝 Git: 21 | ```shell 22 | cmd /c winget install -e --id Git.Git 23 | ``` 24 | 2. 按下 **`Windows + E`** 打開檔案總管,前往要安裝啟動器的資料夾,在地址欄輸入 `cmd` 並按 Enter ,執行: 25 | ```shell 26 | git clone https://github.com/SillyTavern/SillyTavern-Launcher.git && cd SillyTavern-Launcher && start installer.bat 27 | ``` 28 | 29 | ## 🐧 Linux 30 | 1. 開啟您偏好的終端機(Terminal)並安裝 Git 31 | 2. 使用以下指令從 GitHub 複製 SillyTavern Launcher: 32 | ```shell 33 | git clone https://github.com/SillyTavern/SillyTavern-Launcher.git && cd SillyTavern-Launcher 34 | ``` 35 | 3. 執行安裝腳本(`installer.sh`): 36 | ```shell 37 | chmod +x install.sh && ./install.sh 38 | ``` 39 | 4. 安裝完成後啟動 SillyTavern Launcher(`launcher.sh`): 40 | ```shell 41 | chmod +x launcher.sh && ./launcher.sh 42 | ``` 43 | 44 | ## 🍎 Mac 45 | 1. 開啟終端機(Terminal)並安裝 Homebrew: 46 | ```shell 47 | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 48 | ``` 49 | 2. 安裝 Git: 50 | ```shell 51 | brew install git 52 | ``` 53 | 3. 使用以下指令從 GitHub 複製 SillyTavern Launcher: 54 | ```shell 55 | git clone https://github.com/SillyTavern/SillyTavern-Launcher.git && cd SillyTavern-Launcher 56 | ``` 57 | 4. 執行安裝腳本(`installer.sh`): 58 | ```shell 59 | chmod +x install.sh && ./install.sh 60 | ``` 61 | 5. 安裝完成後啟動 SillyTavern Launcher(`launcher.sh`): 62 | ```shell 63 | chmod +x launcher.sh && ./launcher.sh 64 | ``` 65 | 66 | # ✨ 功能 67 | ## **核心工具** 68 | 管理 SillyTavern 及其他應用程式的關鍵工具 69 | 70 | ### **支援** 71 | - SillyTavern 72 | - 7-Zip, FFmpeg, Node.js, yq, Visual Studio BuildTools, CUDA Toolkit, Tailscale, w64devkit 73 | 74 | ### **功能** 75 | - 安裝、解除安裝與設定核心工具 76 | - 透過選單管理環境變數與設定 77 | 78 | ## **文字生成應用** 79 | 設定與管理文字生成模型與其應用程式 80 | 81 | ### **支援** 82 | - Text Generation Web UI (oobabooga) 83 | - KoboldCPP 84 | - KoboldCPP Raw 85 | - LlamaCPP 86 | - TabbyAPI 87 | - TabbyAPI(SillyTavern 擴充功能版) 88 | 89 | ### **功能** 90 | - 透過選單安裝、啟動、移除並自訂各類文字生成模組 91 | 92 | ## **影像生成應用** 93 | 管理 AI 圖像生成應用程式。 94 | 95 | ### **支援** 96 | - Stable Diffusion Web UI 97 | - Stable Diffusion Web UI Forge 98 | - ComfyUI 99 | - Fooocus 100 | - Ostris AI Toolkit 101 | 102 | ### **功能** 103 | - 透過選單安裝、啟動、移除並調整設定 104 | 105 | ## **Voice Generation Apps** 106 | Manage voice synthesis and processing tools. 107 | 108 | ### **語音合成應用** 109 | - XTTS 110 | - AllTalk 111 | - AllTalk v2(包含診斷與微調模式) 112 | - RVC(Retrieval-based Voice Conversion,支援即時語音轉換) 113 | 114 | ### **功能** 115 | - 安裝、啟動、移除並調整語音處理工具的設定 116 | 117 | ## **Additional Features** 118 | - **備份與還原**:建立並還原 SillyTavern 的備份 119 | - **SSL 支援**:透過選單建立 SSL 憑證 120 | - **故障排除工具**: 121 | - 檢測 VPN 問題 122 | - 取得 GPU 資訊 123 | - 檢查網路埠 124 | - 解決 GitHub 衝突 125 | - 清除快取(Node.js、npm、pip) 126 | - 匯出診斷資料 127 | - 重新啟動啟動器 128 | - Discord 伺服器 129 | - **應用程式管理**:自動更新、切換不同的 Git 分支、安裝與移除應用程式 130 | - **日誌記錄**:可在 `logs/` 目錄中查看日誌,以便排除錯誤 131 | - **自訂設定**:在 `settings/` 目錄中設定快捷鍵與模組 132 | 133 | 134 | # 有任何有疑問或建議? 135 | 136 | | [![][discord-shield-badge]][discord-link] | [加入我們的 Discord 社群!](https://discord.gg/sillytavern) 取得支援、分享角色設定與 AI 提示詞。 | 137 | | :---------------------------------------- | :------------------------------------------------------------------------------------------------------- | 138 | 139 | # 截圖 140 | ## Windows 141 | <img width="400" alt="image" src="https://github.com/user-attachments/assets/ac9edfe4-b5a7-4d7f-a21c-acd702b3d2fe"> 142 | <img width="400" alt="image" src="https://github.com/user-attachments/assets/8830d523-87e1-4e0a-8fb0-75d8a48d763f"> 143 | 144 | ## Linux 145 | <img width="400" alt="image" src="https://github.com/user-attachments/assets/e1db688d-7cb0-4fbc-825c-3560ca4b901d"> 146 | <img width="400" alt="image" src="https://github.com/user-attachments/assets/180b9fbb-e4b4-4992-bb0c-72386f30a513"> 147 | 148 | 149 | <div align="right"> 150 | 151 | [![][back-to-top]](#readme-top) 152 | 153 | </div> 154 | 155 | 156 | <!-- LINK GROUP --> 157 | [back-to-top]: https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square 158 | [discord-link]: https://discord.gg/sillytavern 159 | [discord-shield]: https://img.shields.io/discord/1100685673633153084?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=flat-square 160 | [discord-shield-badge]: https://img.shields.io/discord/1100685673633153084?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=for-the-badge 161 | -------------------------------------------------------------------------------- /bin/functions/Home/exit_stl.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | set /p "exit_choice=Are you sure you wanna exit SillyTavern-Launcher? [Y/N]: " 4 | if /i "%exit_choice%"=="" set exit_choice=Y 5 | if /i "%exit_choice%"=="Y" ( 6 | echo %red_bg%[%time%]%reset% %red_fg_strong%Terminating all PID processes...%reset% 7 | for /f %%a in ('type "%log_dir%\pids.txt"') do ( 8 | taskkill /F /PID %%a 9 | ) 10 | del "%log_dir%\pids.txt" 11 | exit 12 | ) else ( 13 | goto :home 14 | ) -------------------------------------------------------------------------------- /bin/functions/Home/log_wrapper.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | setlocal 3 | 4 | REM Set necessary environment variables for Node.js 5 | set NODE_ENV=production 6 | 7 | REM Determine the command to run 8 | if "%1"=="ssl" ( 9 | set NODE_CMD=node server.js --ssl 10 | ) else ( 11 | set NODE_CMD=node server.js 12 | ) 13 | 14 | REM Start the Node.js server and log the output using PowerShell Tee-Object, suppressing specific warnings 15 | echo Starting Node.js server with command: %NODE_CMD% 16 | powershell -Command "& {%NODE_CMD% 2>&1 | Where-Object {$_ -notmatch 'Security has been overridden'} | Tee-Object -FilePath '%logs_st_console_path%'}" 17 | echo Node.js server started. 18 | pause 19 | 20 | REM Pause to keep the window open 21 | pause 22 | -------------------------------------------------------------------------------- /bin/functions/SSL/create_ssl.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | setlocal 3 | 4 | :: Check if a specific argument is passed to detect if called by another batch file 5 | set "pauseRequired=false" 6 | set "silentMode=false" 7 | if "%~1"=="" ( 8 | set "pauseRequired=true" 9 | ) else ( 10 | set "silentMode=true" 11 | ) 12 | 13 | :: Redirect output to NUL if in silent mode 14 | if "%silentMode%"=="true" ( 15 | set "outputRedirection=>nul 2>&1" 16 | ) else ( 17 | set "outputRedirection=" 18 | ) 19 | 20 | REM Set the SSL certificate directory and files 21 | set "CERT_DIR=%st_install_path%\certs" 22 | set "CERT_FILE=%CERT_DIR%\cert.pem" 23 | set "KEY_FILE=%CERT_DIR%\privkey.pem" 24 | set "CERT_INFO_FILE=%CERT_DIR%\SillyTavernSSLInfo.txt" 25 | set "ERROR_LOG=%CERT_DIR%\error_log.txt" 26 | 27 | :: Check if the SillyTavern directory exists 28 | if not exist "%st_install_path%" ( 29 | echo Please install SillyTavern first. 30 | if "%pauseRequired%"=="true" pause 31 | endlocal 32 | exit /b 1 33 | ) 34 | 35 | :: Create the SSL certificate directory if it doesn't exist 36 | if not exist "%CERT_DIR%" ( 37 | mkdir "%CERT_DIR%" 38 | echo Created directory %CERT_DIR% %outputRedirection% 39 | ) else ( 40 | echo Directory %CERT_DIR% already exists. %outputRedirection% 41 | ) 42 | 43 | :: Check if the certificate already exists and delete it if it does 44 | if exist "%CERT_FILE%" ( 45 | del "%CERT_FILE%" 46 | echo Existing certificate deleted. %outputRedirection% 47 | ) 48 | 49 | if exist "%KEY_FILE%" ( 50 | del "%KEY_FILE%" 51 | echo Existing key deleted. %outputRedirection% 52 | ) 53 | 54 | :: Find the Git installation directory 55 | for /f "delims=" %%i in ('where git') do ( 56 | set "gitPath=%%i" 57 | goto :foundGit 58 | ) 59 | 60 | :foundGit 61 | :: Extract the directory from the git.exe path 62 | for %%i in ("%gitPath%") do set "gitDir=%%~dpi" 63 | 64 | :: Remove the bin\ or cmd\ part to get the main Git installation directory 65 | set "gitDir=%gitDir:bin\=%" 66 | set "gitDir=%gitDir:cmd\=%" 67 | 68 | echo Git is installed at: %gitDir% %outputRedirection% 69 | 70 | :: Find openssl.exe within the Git installation directory 71 | for /f "delims=" %%i in ('dir "%gitDir%" /s /b ^| findstr \\openssl.exe') do ( 72 | set "opensslPath=%%i" 73 | goto :foundOpenSSL 74 | ) 75 | 76 | :foundOpenSSL 77 | echo OpenSSL is located at: %opensslPath% %outputRedirection% 78 | 79 | :: Generate the self-signed certificate in PEM format 80 | echo Generating self-signed certificate... %outputRedirection% 81 | "%opensslPath%" req -x509 -newkey rsa:4096 -keyout "%KEY_FILE%" -out "%CERT_FILE%" -days 825 -nodes -subj "/CN=127.0.0.1" %outputRedirection% 82 | 83 | if %errorlevel% neq 0 goto error 84 | echo Certificate generation complete. %outputRedirection% 85 | 86 | :: Calculate the expiration date (today + 825 days) and format as mm/dd/yyyy 87 | for /f %%i in ('powershell -command "[datetime]::Now.AddDays(825).ToString('MM/dd/yyyy')"') do ( 88 | set "expDate=%%i" 89 | ) 90 | 91 | :: Store the certificate and key path, and expiration date in the text file 92 | echo %CERT_FILE% > "%CERT_INFO_FILE%" 93 | echo %KEY_FILE% >> "%CERT_INFO_FILE%" 94 | echo SSL Expiration Date (mm/dd/yyyy): %expDate% >> "%CERT_INFO_FILE%" 95 | echo Certificate and key paths and expiration date stored in %CERT_INFO_FILE%. %outputRedirection% 96 | 97 | echo Done. %outputRedirection% 98 | if "%pauseRequired%"=="true" pause 99 | endlocal 100 | exit /b 0 101 | 102 | :error 103 | echo An error occurred. Please check the console output for details. %outputRedirection% 104 | :: Log the error to the log file 105 | echo [%date% %time%] An error occurred during certificate generation. >> "%ERROR_LOG%" 106 | if "%pauseRequired%"=="true" pause 107 | endlocal 108 | exit /b 1 109 | goto :eof 110 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Core_Utilities/config_tailscale.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | setlocal enabledelayedexpansion 3 | 4 | 5 | title STL [TAILSCALE CONFIGURATION] 6 | cls 7 | echo / Home / Toolbox / App Installer / Core Utilities / Tailscale 8 | echo ------------------------------------------------------------- 9 | 10 | rem Calculate the path to the logs folder based on the current script location 11 | set log_dir=%~dp0..\..\..\..\logs 12 | rem Normalize the path 13 | for %%i in ("%log_dir%") do set log_dir=%%~fi 14 | 15 | set log_file=%log_dir%\tailscale_status.txt 16 | 17 | rem Check if the log file exists before attempting to clear it 18 | if exist "%log_file%" ( 19 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Clearing existing log file... 20 | powershell -command "Clear-Content '%log_file%'" 21 | ) else ( 22 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Log file does not exist, no need to clear. 23 | ) 24 | 25 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Configuring Tailscale... 26 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Running Tailscale login... 27 | 28 | tailscale up 29 | 30 | if %errorlevel%==0 ( 31 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Tailscale configuration successful. 32 | 33 | echo ------------------------------------------------------------- 34 | echo Select an option: 35 | echo 1. Find Tailscale SillyTavern Remote URLs 36 | echo 2. Home 37 | 38 | choice /c 12 /m "Enter the number corresponding to your choice:" 39 | 40 | if errorlevel 2 ( 41 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Returning to Home... 42 | ) else if errorlevel 1 ( 43 | echo. 44 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Fetching Tailscale status... 45 | rem Use the dynamic path based on %~dp0 to write to the logs folder 46 | powershell -command ^ 47 | "$json = tailscale status --json | ConvertFrom-Json; " ^ 48 | "$self = $json.Self; " ^ 49 | "$ip4 = $self.TailscaleIPs[0]; " ^ 50 | "$hostName = $self.HostName; " ^ 51 | "$dnsName = $self.DNSName; " ^ 52 | "$logPath = '%~dp0..\..\..\..\logs\tailscale_status.txt'; " ^ 53 | "Out-File -FilePath $logPath -InputObject $ip4 -Encoding ascii; " ^ 54 | "Out-File -FilePath $logPath -InputObject $hostName -Append -Encoding ascii; " ^ 55 | "Out-File -FilePath $logPath -InputObject $dnsName -Append -Encoding ascii" 56 | 57 | rem Read the values directly using delayed expansion 58 | set count=0 59 | for /f "tokens=* delims=" %%i in (%log_file%) do ( 60 | set /a count+=1 61 | if !count! equ 1 set ip4=%%i 62 | if !count! equ 2 set hostName=%%i 63 | if !count! equ 3 set dnsName=%%i 64 | ) 65 | 66 | rem Remove trailing period from dnsName if it exists 67 | if "!dnsName:~-1!"=="." set "dnsName=!dnsName:~0,-1!" 68 | 69 | echo %blue_fg_strong%-------------------------------------------------------------%reset% 70 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% "Tailscale Remote SillyTavern URLs (if you changed your SillyTavern Port # change 8000 to that new port):" 71 | echo %cyan_fg_strong%IP4:%reset% http://!ip4!:8000 72 | echo %cyan_fg_strong%Machine Name:%reset% http://!hostName!:8000 73 | echo %cyan_fg_strong%MagicDNS Name:%reset% http://!dnsName!:8000 74 | echo %blue_fg_strong%-------------------------------------------------------------%reset% 75 | 76 | rem Prompt the user to open the additional config instructions page 77 | set /p userChoice="Do you want to open the additional configuration instructions page (Y/N)? " 78 | if /i "!userChoice!"=="Y" ( 79 | rem Open the configuration URL 80 | powershell -command ^ 81 | "$url = 'https://sillytavernai.com/tailscale-config/?HostName=!hostName!&DNSName=!dnsName!&IP4=!ip4!#STL'; " ^ 82 | "Start-Process $url" 83 | ) else ( 84 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Skipping additional configuration instructions. 85 | ) 86 | ) 87 | ) else ( 88 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[ERROR]%reset% %red_fg_strong%Tailscale configuration failed.%reset% 89 | ) 90 | 91 | pause 92 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Core_Utilities/install_7zip.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_7zip 4 | title STL [INSTALL-7Z] 5 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing 7-Zip... 6 | winget install -e --id 7zip.7zip 7 | 8 | rem Get the current PATH value from the registry 9 | for /f "tokens=2*" %%A in ('reg query "HKCU\Environment" /v PATH') do set "current_path=%%B" 10 | 11 | rem Check if the paths are already in the current PATH 12 | echo %current_path% | find /i "%zip7_install_path%" > nul 13 | set "zip7_path_exists=%errorlevel%" 14 | 15 | setlocal enabledelayedexpansion 16 | 17 | REM Append the new paths to the current PATH only if they don't exist 18 | if %zip7_path_exists% neq 0 ( 19 | set "new_path=%current_path%;%zip7_install_path%" 20 | echo. 21 | echo [DEBUG] "current_path is:%cyan_fg_strong% %current_path%%reset%" 22 | echo. 23 | echo [DEBUG] "zip7_install_path is:%cyan_fg_strong% %zip7_install_path%%reset%" 24 | echo. 25 | echo [DEBUG] "new_path is:%cyan_fg_strong% !new_path!%reset%" 26 | 27 | REM Update the PATH value in the registry 28 | reg add "HKCU\Environment" /v PATH /t REG_EXPAND_SZ /d "!new_path!" /f 29 | 30 | REM Update the PATH value for the current session 31 | setx PATH "!new_path!" > nul 32 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%7-zip added to PATH.%reset% 33 | ) else ( 34 | set "new_path=%current_path%" 35 | echo %blue_fg_strong%[INFO] 7-Zip already exists in PATH.%reset% 36 | ) 37 | 38 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%7-Zip installed successfully.%reset% 39 | 40 | REM Prompt user to restart 41 | echo Restarting launcher... 42 | timeout /t 5 43 | cd /d %stl_root% 44 | start %stl_root%Launcher.bat 45 | exit 46 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Core_Utilities/install_cudatoolkit.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_cudatoolkit 4 | REM Check if file exists and remove it if it does 5 | if exist "%bin_dir%\cuda_12.6.1_windows_network.exe" ( 6 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO] Removing existing "cuda_12.6.1_windows_network.exe".%reset% 7 | del "%bin_dir%\cuda_12.6.1_windows_network.exe" 8 | ) 9 | 10 | REM Download the CUDA installer 11 | curl -L -o "%bin_dir%\cuda_12.6.1_windows_network.exe" "https://developer.download.nvidia.com/compute/cuda/12.6.1/network_installers/cuda_12.6.1_windows_network.exe" 12 | 13 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing CUDA Toolkit... 14 | start "" "%bin_dir%\cuda_12.6.1_windows_network.exe" visual_studio_integration_12.6.1 15 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%When install is finished:%reset% 16 | 17 | REM If CUDA Toolkit fails to install then copy all files from MSBuildExtensions into BuildCustomizations 18 | REM xcopy /s /i /y "%ProgramFiles%\NVIDIA GPU Computing Toolkit\CUDA\v12.5.1\extras\visual_studio_integration\MSBuildExtensions\*" "%ProgramFiles%\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\BuildCustomizations" 19 | 20 | pause 21 | REM Prompt user to restart 22 | echo Restarting launcher... 23 | timeout /t 5 24 | cd /d %stl_root% 25 | start %stl_root%Launcher.bat 26 | exit -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Core_Utilities/install_ffmpeg.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_ffmpeg 4 | title STL [INSTALL-FFMPEG] 5 | REM Check if 7-Zip is installed 6 | 7z > nul 2>&1 7 | if %errorlevel% neq 0 ( 8 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] 7z command not found in PATH.%reset% 9 | echo %red_fg_strong%7-Zip is not installed or not found in the system PATH.%reset% 10 | echo %red_fg_strong%To install 7-Zip go to:%reset% %blue_bg%/ Toolbox / App Installer / Core Utilities / Install 7-Zip%reset% 11 | pause 12 | goto :app_installer_core_utilities 13 | ) 14 | 15 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Downloading FFmpeg archive... 16 | curl -L -o "%ffmpeg_download_path%" "%ffmpeg_download_url%" 17 | 18 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Creating ffmpeg directory if it doesn't exist... 19 | if not exist "%ffmpeg_install_path%" ( 20 | mkdir "%ffmpeg_install_path%" 21 | ) 22 | 23 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Extracting FFmpeg archive... 24 | 7z x "%ffmpeg_download_path%" -o"%ffmpeg_install_path%" 25 | 26 | 27 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Moving FFmpeg contents to C:\ffmpeg... 28 | for /d %%i in ("%ffmpeg_install_path%\ffmpeg-*-full_build") do ( 29 | xcopy "%%i\bin" "%ffmpeg_install_path%\bin" /E /I /Y 30 | xcopy "%%i\doc" "%ffmpeg_install_path%\doc" /E /I /Y 31 | xcopy "%%i\presets" "%ffmpeg_install_path%\presets" /E /I /Y 32 | rd "%%i" /S /Q 33 | ) 34 | 35 | rem Get the current PATH value from the registry 36 | for /f "tokens=2*" %%A in ('reg query "HKCU\Environment" /v PATH') do set "current_path=%%B" 37 | 38 | rem Check if the paths are already in the current PATH 39 | echo %current_path% | find /i "%ffmpeg_path_bin%" > nul 40 | set "ff_path_exists=%errorlevel%" 41 | 42 | setlocal enabledelayedexpansion 43 | 44 | REM Append the new paths to the current PATH only if they don't exist 45 | if %ff_path_exists% neq 0 ( 46 | set "new_path=%current_path%;%ffmpeg_path_bin%" 47 | echo. 48 | echo [DEBUG] "current_path is:%cyan_fg_strong% %current_path%%reset%" 49 | echo. 50 | echo [DEBUG] "ffmpeg_path_bin is:%cyan_fg_strong% %ffmpeg_path_bin%%reset%" 51 | echo. 52 | echo [DEBUG] "new_path is:%cyan_fg_strong% !new_path!%reset%" 53 | 54 | REM Update the PATH value in the registry 55 | reg add "HKCU\Environment" /v PATH /t REG_EXPAND_SZ /d "!new_path!" /f 56 | 57 | REM Update the PATH value for the current session 58 | setx PATH "!new_path!" > nul 59 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%ffmpeg added to PATH.%reset% 60 | ) else ( 61 | set "new_path=%current_path%" 62 | echo %blue_fg_strong%[INFO] ffmpeg already exists in PATH.%reset% 63 | ) 64 | del "%ffmpeg_download_path%" 65 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%ffmpeg installed successfully.%reset% 66 | 67 | REM Prompt user to restart 68 | echo Restarting launcher... 69 | timeout /t 5 70 | cd /d %stl_root% 71 | start %stl_root%Launcher.bat 72 | exit -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Core_Utilities/install_nodejs.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_nodejs 4 | title STL [INSTALL NODEJS] 5 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing Node.js... 6 | winget install -e --id OpenJS.NodeJS.LTS 7 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Node.js is installed.%reset% 8 | 9 | REM Prompt user to restart 10 | echo Restarting launcher... 11 | timeout /t 5 12 | cd /d %stl_root% 13 | start %stl_root%Launcher.bat 14 | exit -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Core_Utilities/install_tailscale.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | setlocal enabledelayedexpansion 3 | 4 | :install_tailscale 5 | title STL [INSTALL-TAILSCALE] 6 | set log_dir=%log_dir% 7 | 8 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Do you already have a Tailscale account set up? (Y/N) 9 | set /p tailscale_account="Answer (Y/N): " 10 | 11 | if /i "%tailscale_account%"=="Y" ( 12 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing Tailscale... 13 | winget install Tailscale.Tailscale 14 | 15 | if %errorlevel%==0 ( 16 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Tailscale installed successfully.%reset% 17 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Running Tailscale configuration... 18 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Restart the launcher and go to Toolbox / Editor / Core Utilities / View Tailscale Configuration to see your Tailscale Remote SillyTavern URLS. 19 | echo Press any key to restart the launcher 20 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Restarting launcher...%reset% 21 | timeout /t 10 22 | start %stl_root%/launcher.bat 23 | exit 24 | ) else ( 25 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[ERROR]%reset% %red_fg_strong%Tailscale installation failed.%reset% 26 | ) 27 | ) else ( 28 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Opening Tailscale sign-up page... 29 | start "" "https://login.tailscale.com/start" 30 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Press any key after signing up to continue installation... 31 | pause 32 | 33 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing Tailscale... 34 | winget install Tailscale.Tailscale 35 | 36 | if %errorlevel%==0 ( 37 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Tailscale installed successfully.%reset% 38 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Restart the launcher, your Tailscale Remote SillyTavern URLS should appear on the home menu. 39 | echo If they don't appear, go to Toolbox / Editor / Core Utilities / View Tailscale Configuration. 40 | echo Press any key to restart the launcher 41 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Restarting launcher...%reset% 42 | timeout /t 10 43 | start %stl_root%/launcher.bat 44 | exit 45 | ) else ( 46 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[ERROR]%reset% %red_fg_strong%Tailscale installation failed.%reset% 47 | ) 48 | ) 49 | 50 | pause 51 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Core_Utilities/install_vsbuildtools.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_vsbuildtools 4 | REM Check if file exists 5 | if not exist "%bin_dir%\vs_buildtools.exe" ( 6 | REM Check if the folder exists 7 | if not exist "%bin_dir%" ( 8 | mkdir "%bin_dir%" 9 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Created folder: "bin" 10 | ) else ( 11 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO] "bin" folder already exists.%reset% 12 | ) 13 | curl -L -o "%bin_dir%\vs_buildtools.exe" "https://aka.ms/vs/17/release/vs_BuildTools.exe" 14 | ) else ( 15 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO] "vs_buildtools.exe" file already exists. Downloading latest version...%reset% 16 | del "%bin_dir%\vs_buildtools.exe" 17 | curl -L -o "%bin_dir%\vs_buildtools.exe" "https://aka.ms/vs/17/release/vs_BuildTools.exe" 18 | ) 19 | 20 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing Visual Studio BuildTools 2022... 21 | start "" "%bin_dir%\vs_buildtools.exe" --norestart --passive --downloadThenInstall --includeRecommended --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Workload.MSBuildTools 22 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%When install is finished:%reset% 23 | pause 24 | 25 | REM Prompt user to restart 26 | echo Restarting launcher... 27 | timeout /t 5 28 | cd /d %stl_root% 29 | start %stl_root%Launcher.bat 30 | exit -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Core_Utilities/install_w64devkit.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_w64devkit 4 | REM Check if 7-Zip is installed 5 | 7z > nul 2>&1 6 | if %errorlevel% neq 0 ( 7 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] 7z command not found in PATH.%reset% 8 | echo %red_fg_strong%7-Zip is not installed or not found in the system PATH.%reset% 9 | echo %red_fg_strong%To install 7-Zip go to:%reset% %blue_bg%/ Toolbox / App Installer / Core Utilities / Install 7-Zip%reset% 10 | pause 11 | goto :app_installer_core_utilities 12 | ) 13 | 14 | REM Check if the folder exists 15 | if exist "%w64devkit_install_path%" ( 16 | REM Remove w64devkit folder if it already exist 17 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing existing w64devkit installation... 18 | rmdir /s /q "%w64devkit_install_path%" 19 | ) 20 | 21 | REM Download w64devkit zip archive 22 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Downloading w64devkit... 23 | curl -L -o "%w64devkit_download_path%" "%w64devkit_download_url%" 24 | 25 | REM Extract w64devkit zip archive 26 | 7z x "%w64devkit_download_path%" -o"C:\" 27 | 28 | REM Remove leftovers 29 | del "%w64devkit_download_path%" 30 | 31 | REM Get the current PATH value from the registry 32 | for /f "tokens=2*" %%A in ('reg query "HKCU\Environment" /v PATH') do set "current_path=%%B" 33 | 34 | REM Check if the paths are already in the current PATH 35 | echo %current_path% | find /i "%w64devkit_path_bin%" > nul 36 | set "ff_path_exists=%errorlevel%" 37 | 38 | setlocal enabledelayedexpansion 39 | 40 | REM Append the new paths to the current PATH only if they don't exist 41 | if %ff_path_exists% neq 0 ( 42 | set "new_path=%current_path%;%w64devkit_path_bin%" 43 | echo. 44 | echo [DEBUG] "current_path is:%cyan_fg_strong% %current_path%%reset%" 45 | echo. 46 | echo [DEBUG] "w64devkit_path_bin is:%cyan_fg_strong% %w64devkit_path_bin%%reset%" 47 | echo. 48 | echo [DEBUG] "new_path is:%cyan_fg_strong% !new_path!%reset%" 49 | 50 | REM Update the PATH value in the registry 51 | reg add "HKCU\Environment" /v PATH /t REG_EXPAND_SZ /d "!new_path!" /f 52 | 53 | REM Update the PATH value for the current session 54 | setx PATH "!new_path!" > nul 55 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%w64devkit added to PATH.%reset% 56 | ) else ( 57 | set "new_path=%current_path%" 58 | echo %blue_fg_strong%[INFO] w64devkit already exists in PATH.%reset% 59 | ) 60 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%w64devkit is installed.%reset% 61 | 62 | REM Prompt user to restart 63 | echo Restarting launcher... 64 | timeout /t 5 65 | cd /d %stl_root% 66 | start %stl_root%Launcher.bat 67 | exit -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Core_Utilities/install_yq.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_yq 4 | title STL [INSTALL-YQ] 5 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing yq... 6 | winget install -e --id MikeFarah.yq 7 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%yq is installed.%reset% 8 | 9 | REM Prompt user to restart 10 | echo Restarting launcher... 11 | timeout /t 5 12 | cd /d %stl_root% 13 | start %stl_root%Launcher.bat 14 | exit -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Image_Generation/install_comfyui.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_comfyui 4 | title STL [INSTALL COMFYUI] 5 | cls 6 | echo %blue_fg_strong%/ Home / Toolbox / App Installer / Image Generation / Install ComfyUI%reset% 7 | echo ------------------------------------------------------------- 8 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing ComfyUI... 9 | 10 | REM Check if the folder exists 11 | if not exist "%image_generation_dir%" ( 12 | mkdir "%image_generation_dir%" 13 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Created folder: "image-generation" 14 | ) else ( 15 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO] "image-generation" folder already exists.%reset% 16 | ) 17 | cd /d "%image_generation_dir%" 18 | 19 | 20 | set max_retries=3 21 | set retry_count=0 22 | :retry_install_comfyui 23 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Cloning the ComfyUI repository... 24 | git clone https://github.com/comfyanonymous/ComfyUI.git 25 | 26 | if %errorlevel% neq 0 ( 27 | set /A retry_count+=1 28 | echo %yellow_bg%[%time%]%reset% %yellow_fg_strong%[WARN] Retry %retry_count% of %max_retries%%reset% 29 | if %retry_count% lss %max_retries% goto :retry_install_comfyui 30 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Failed to clone repository after %max_retries% retries.%reset% 31 | pause 32 | goto :app_installer_image_generation 33 | ) 34 | cd /d "%comfyui_install_path%" 35 | 36 | REM Run conda activate from the Miniconda installation 37 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Miniconda environment... 38 | call "%miniconda_path%\Scripts\activate.bat" 39 | 40 | REM Create a Conda environment named comfyui 41 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Creating Conda environment: %cyan_fg_strong%comfyui%reset% 42 | call conda create -n comfyui python=3.12 -y 43 | 44 | REM Activate the comfyui environment 45 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Conda environment %cyan_fg_strong%comfyui%reset% 46 | call conda activate comfyui 47 | 48 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing pytorch... 49 | pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu128 50 | 51 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing pip requirements... 52 | pip install -r requirements.txt 53 | 54 | REM Clone extensions for ComfyUI 55 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Cloning extensions for ComfyUI... 56 | cd /d "%comfyui_install_path%\custom_nodes" 57 | git clone https://github.com/ltdrdata/ComfyUI-Manager.git 58 | 59 | REM Installs better upscaler models 60 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing Better Upscaler models... 61 | cd /d "%comfyui_install_path%\models" 62 | mkdir ESRGAN && cd ESRGAN 63 | curl -o 4x-AnimeSharp.pth https://huggingface.co/konohashinobi4/4xAnimesharp/resolve/main/4x-AnimeSharp.pth 64 | curl -o 4x-UltraSharp.pth https://huggingface.co/lokCX/4x-Ultrasharp/resolve/main/4x-UltraSharp.pth 65 | 66 | 67 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%ComfyUI successfully installed.%reset% 68 | pause 69 | goto :app_installer_image_generation -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Image_Generation/install_fooocus.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_fooocus 4 | title STL [INSTALL FOOOCUS] 5 | cls 6 | echo %blue_fg_strong%/ Home / Toolbox / App Installer / Image Generation / Install Fooocus%reset% 7 | echo ------------------------------------------------------------- 8 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing Fooocus... 9 | 10 | REM Check if the folder exists 11 | if not exist "%image_generation_dir%" ( 12 | mkdir "%image_generation_dir%" 13 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Created folder: "image-generation" 14 | ) else ( 15 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO] "image-generation" folder already exists.%reset% 16 | ) 17 | cd /d "%image_generation_dir%" 18 | 19 | 20 | set max_retries=3 21 | set retry_count=0 22 | :retry_install_fooocus 23 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Cloning the Fooocus repository... 24 | git clone https://github.com/lllyasviel/Fooocus.git 25 | 26 | if %errorlevel% neq 0 ( 27 | set /A retry_count+=1 28 | echo %yellow_bg%[%time%]%reset% %yellow_fg_strong%[WARN] Retry %retry_count% of %max_retries%%reset% 29 | if %retry_count% lss %max_retries% goto :retry_install_fooocus 30 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Failed to clone repository after %max_retries% retries.%reset% 31 | pause 32 | goto :app_installer_image_generation 33 | ) 34 | cd /d "%fooocus_install_path%" 35 | 36 | REM Run conda activate from the Miniconda installation 37 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Miniconda environment... 38 | call "%miniconda_path%\Scripts\activate.bat" 39 | 40 | REM Create a Conda environment named fooocus 41 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Creating Conda environment: %cyan_fg_strong%fooocus%reset% 42 | call conda create -n fooocus python=3.10 -y 43 | 44 | REM Activate the fooocus environment 45 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Conda environment %cyan_fg_strong%fooocus%reset% 46 | call conda activate fooocus 47 | 48 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing pip requirements... 49 | pip install -r requirements_versions.txt 50 | 51 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Fooocus successfully installed.%reset% 52 | pause 53 | goto :app_installer_image_generation -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Image_Generation/install_invokeai.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_invokeai 4 | title STL [INSTALL INVOKEAI] 5 | cls 6 | echo %blue_fg_strong%/ Home / Toolbox / App Installer / Image Generation / Install invokeai%reset% 7 | echo --------------------------------------------------------------- 8 | REM GPU menu - Frontend 9 | echo What is your GPU? 10 | echo 1. NVIDIA 11 | echo 2. AMD 12 | echo 0. Cancel 13 | 14 | setlocal enabledelayedexpansion 15 | chcp 65001 > nul 16 | REM Get GPU information 17 | set "gpu_info=" 18 | for /f "tokens=*" %%i in ('powershell -Command "Get-CimInstance Win32_VideoController | Select-Object -ExpandProperty Name -First 1"') do ( 19 | set "gpu_info=%%i" 20 | ) 21 | 22 | echo. 23 | echo %blue_bg%╔════ GPU INFO ═════════════════════════════════╗%reset% 24 | echo %blue_bg%║ ║%reset% 25 | echo %blue_bg%║* %gpu_info:~1% ║%reset% 26 | echo %blue_bg%║ ║%reset% 27 | echo %blue_bg%╚═══════════════════════════════════════════════╝%reset% 28 | echo. 29 | 30 | endlocal 31 | set /p gpu_choice=Enter number corresponding to your GPU: 32 | 33 | REM GPU menu - Backend 34 | REM Set the GPU choice in an environment variable for choise callback 35 | set "GPU_CHOICE=%gpu_choice%" 36 | 37 | REM Check the user's response 38 | if "%gpu_choice%"=="1" ( 39 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% GPU choice set to NVIDIA 40 | goto :install_invokeai_pre 41 | ) else if "%gpu_choice%"=="2" ( 42 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% GPU choice set to AMD 43 | goto :install_invokeai_pre 44 | ) else if "%gpu_choice%"=="0" ( 45 | goto :app_installer_image_generation 46 | ) else ( 47 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Invalid input. Please enter a valid number.%reset% 48 | pause 49 | goto :install_invokeai 50 | ) 51 | :install_invokeai_pre 52 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing InvokeAI... 53 | 54 | REM Check if the folder exists 55 | if not exist "%image_generation_dir%" ( 56 | mkdir "%image_generation_dir%" 57 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Created folder: "image-generation" 58 | ) else ( 59 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO] "image-generation" folder already exists.%reset% 60 | ) 61 | cd /d "%image_generation_dir%" 62 | 63 | set max_retries=3 64 | set retry_count=0 65 | 66 | :retry_install_invokeai 67 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Cloning InvokeAI repository... 68 | git clone https://github.com/invoke-ai/InvokeAI.git 69 | 70 | if %errorlevel% neq 0 ( 71 | set /A retry_count+=1 72 | echo %yellow_bg%[%time%]%reset% %yellow_fg_strong%[WARN] Retry %retry_count% of %max_retries%%reset% 73 | if %retry_count% lss %max_retries% goto :retry_install_invokeai 74 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Failed to clone repository after %max_retries% retries.%reset% 75 | pause 76 | goto :home 77 | ) 78 | cd /d "%invokeai_install_path%" 79 | 80 | REM Activate the Miniconda installation 81 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Miniconda environment... 82 | call "%miniconda_path%\Scripts\activate.bat" 83 | 84 | REM Create a Conda environment named invokeai 85 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Creating Conda environment: %cyan_fg_strong%invokeai%reset% 86 | call conda create -n invokeai python=3.11 -y 87 | 88 | REM Activate the invokeai environment 89 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Conda environment: %cyan_fg_strong%invokeai%reset% 90 | call conda activate invokeai 91 | 92 | REM Use the GPU choice made earlier to install requirements for invokeai 93 | if "%GPU_CHOICE%"=="1" ( 94 | echo %blue_bg%[%time%]%reset% %cyan_fg_strong%[invokeai]%reset% %blue_fg_strong%[INFO]%reset% Installing NVIDIA version of PyTorch in conda enviroment: %cyan_fg_strong%invokeai%reset% 95 | pip install InvokeAI --use-pep517 --extra-index-url https://download.pytorch.org/whl/cu121 96 | goto :install_invokeai_final 97 | ) else if "%GPU_CHOICE%"=="2" ( 98 | echo %blue_bg%[%time%]%reset% %cyan_fg_strong%[invokeai]%reset% %blue_fg_strong%[INFO]%reset% Installing AMD version of PyTorch in conda enviroment: %cyan_fg_strong%invokeai%reset% 99 | pip install InvokeAI --use-pep517 --extra-index-url https://download.pytorch.org/whl/rocm5.6 100 | goto :install_invokeai_final 101 | ) 102 | :install_invokeai_final 103 | 104 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%InvokeAI installed successfully%reset% 105 | pause 106 | goto :app_installer_image_generation -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Image_Generation/install_ostris_aitoolkit.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_ostrisaitoolkit 4 | title STL [INSTALL OSTRIS AI TOOLKIT] 5 | cls 6 | echo %blue_fg_strong%/ Home / Toolbox / App Installer / Image Generation / Install Ostris AI Toolkit%reset% 7 | echo ------------------------------------------------------------- 8 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing Ostris AI Toolkit... 9 | 10 | REM Check if the folder exists 11 | if not exist "%image_generation_dir%" ( 12 | mkdir "%image_generation_dir%" 13 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Created folder: "image-generation" 14 | ) else ( 15 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO] "image-generation" folder already exists.%reset% 16 | ) 17 | cd /d "%image_generation_dir%" 18 | 19 | 20 | set max_retries=3 21 | set retry_count=0 22 | :retry_install_ostrisaitoolkit 23 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Cloning the ostris ai-toolkit repository... 24 | git clone https://github.com/ostris/ai-toolkit.git 25 | 26 | if %errorlevel% neq 0 ( 27 | set /A retry_count+=1 28 | echo %yellow_bg%[%time%]%reset% %yellow_fg_strong%[WARN] Retry %retry_count% of %max_retries%%reset% 29 | if %retry_count% lss %max_retries% goto :retry_install_ostrisaitoolkit 30 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Failed to clone repository after %max_retries% retries.%reset% 31 | pause 32 | goto :app_installer_image_generation 33 | ) 34 | cd /d "%ostrisaitoolkit_install_path%" 35 | git submodule update --init --recursive 36 | 37 | REM Run conda activate from the Miniconda installation 38 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Miniconda environment... 39 | call "%miniconda_path%\Scripts\activate.bat" 40 | 41 | REM Create a Conda environment named ostrisaitoolkit 42 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Creating Conda environment: %cyan_fg_strong%ostrisaitoolkit%reset% 43 | call conda create -n ostrisaitoolkit python=3.11 -y 44 | 45 | REM Activate the ostrisaitoolkit environment 46 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Conda environment: %cyan_fg_strong%ostrisaitoolkit%reset% 47 | call conda activate ostrisaitoolkit 48 | 49 | REM Install pip requirements 50 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing pip requirements 51 | pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121 52 | pip install -r requirements.txt 53 | 54 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Ostris AI Toolkit installed Successfully.%reset% 55 | pause 56 | goto :install_ostrisaitoolkit_menu -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Image_Generation/install_sdwebui.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_sdwebui 4 | title STL [INSTALL STABLE DIFFUSION WEBUI] 5 | cls 6 | echo %blue_fg_strong%/ Home / Toolbox / App Installer / Image Generation / Install Stable Diffusion web UI%reset% 7 | echo ------------------------------------------------------------- 8 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing Stable Diffusion web UI... 9 | 10 | REM Check if the folder exists 11 | if not exist "%image_generation_dir%" ( 12 | mkdir "%image_generation_dir%" 13 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Created folder: "image-generation" 14 | ) else ( 15 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO] "image-generation" folder already exists.%reset% 16 | ) 17 | cd /d "%image_generation_dir%" 18 | 19 | 20 | set max_retries=3 21 | set retry_count=0 22 | :retry_install_sdwebui 23 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Cloning the stable-diffusion-webui repository... 24 | git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git 25 | 26 | if %errorlevel% neq 0 ( 27 | set /A retry_count+=1 28 | echo %yellow_bg%[%time%]%reset% %yellow_fg_strong%[WARN] Retry %retry_count% of %max_retries%%reset% 29 | if %retry_count% lss %max_retries% goto :retry_install_sdwebui 30 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Failed to clone repository after %max_retries% retries.%reset% 31 | pause 32 | goto :app_installer_image_generation 33 | ) 34 | cd /d "%sdwebui_install_path%" 35 | 36 | REM Run conda activate from the Miniconda installation 37 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Miniconda environment... 38 | call "%miniconda_path%\Scripts\activate.bat" 39 | 40 | REM Create a Conda environment named sdwebui 41 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Creating Conda environment: %cyan_fg_strong%sdwebui%reset% 42 | call conda create -n sdwebui python=3.10.6 -y 43 | 44 | REM Activate the sdwebui environment 45 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Conda environment: %cyan_fg_strong%sdwebui%reset% 46 | call conda activate sdwebui 47 | 48 | REM Install pip requirements 49 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing pip requirements 50 | pip install civitdl 51 | 52 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Stable Diffusion web UI installed Successfully.%reset% 53 | pause 54 | goto :install_sdwebui_menu -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Image_Generation/install_sdwebuiforge.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_sdwebuiforge 4 | title STL [INSTALL SDWEBUI FORGE] 5 | cls 6 | echo %blue_fg_strong%/ Home / Toolbox / App Installer / Text Completion / Install Stable Diffusion web UI forge%reset% 7 | echo ------------------------------------------------------------- 8 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing Stable Diffusion web UI forge... 9 | 10 | REM Check if the folder exists 11 | if not exist "%image_generation_dir%" ( 12 | mkdir "%image_generation_dir%" 13 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Created folder: "image-generation" 14 | ) else ( 15 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO] "image-generation" folder already exists.%reset% 16 | ) 17 | cd /d "%image_generation_dir%" 18 | 19 | 20 | set max_retries=3 21 | set retry_count=0 22 | :retry_install_sdwebuiforge 23 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Cloning the stable-diffusion-webui-forge repository... 24 | git clone https://github.com/lllyasviel/stable-diffusion-webui-forge.git 25 | 26 | if %errorlevel% neq 0 ( 27 | set /A retry_count+=1 28 | echo %yellow_bg%[%time%]%reset% %yellow_fg_strong%[WARN] Retry %retry_count% of %max_retries%%reset% 29 | if %retry_count% lss %max_retries% goto :retry_install_sdwebuiforge 30 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Failed to clone repository after %max_retries% retries.%reset% 31 | pause 32 | goto :app_installer_image_generation 33 | ) 34 | cd /d "%sdwebuiforge_install_path%" 35 | 36 | REM Run conda activate from the Miniconda installation 37 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Miniconda environment... 38 | call "%miniconda_path%\Scripts\activate.bat" 39 | 40 | REM Create a Conda environment named sdwebuiforge 41 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Creating Conda environment: %cyan_fg_strong%sdwebuiforge%reset% 42 | call conda create -n sdwebuiforge python=3.10.6 -y 43 | 44 | REM Activate the sdwebuiforge environment 45 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Conda environment: %cyan_fg_strong%sdwebuiforge%reset% 46 | call conda activate sdwebuiforge 47 | 48 | REM Install pip requirements 49 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing pip requirements 50 | pip install civitdl 51 | 52 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Stable Diffusion WebUI forge installed Successfully.%reset% 53 | pause 54 | goto :install_sdwebuiforge_menu -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Text_Completion/install_koboldcpp.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_koboldcpp 4 | title STL [INSTALL KOBOLDCPP] 5 | cls 6 | echo %blue_fg_strong%/ Home / Toolbox / App Installer / Text Completion / Install koboldcpp%reset% 7 | echo ------------------------------------------------------------- 8 | REM GPU menu - Frontend 9 | echo What is your GPU? 10 | echo 1. NVIDIA 11 | echo 2. AMD 12 | echo 0. Cancel 13 | 14 | setlocal enabledelayedexpansion 15 | chcp 65001 > nul 16 | REM Get GPU information 17 | set "gpu_info=" 18 | for /f "tokens=*" %%i in ('powershell -Command "Get-CimInstance Win32_VideoController | Select-Object -ExpandProperty Name -First 1"') do ( 19 | set "gpu_info=%%i" 20 | ) 21 | 22 | echo. 23 | echo %blue_bg%╔════ GPU INFO ═════════════════════════════════╗%reset% 24 | echo %blue_bg%║ ║%reset% 25 | echo %blue_bg%║* %gpu_info:~1% ║%reset% 26 | echo %blue_bg%║ ║%reset% 27 | echo %blue_bg%╚═══════════════════════════════════════════════╝%reset% 28 | echo. 29 | 30 | endlocal 31 | set /p gpu_choice=Enter number corresponding to your GPU: 32 | 33 | REM GPU menu - Backend 34 | REM Set the GPU choice in an environment variable for choise callback 35 | set "GPU_CHOICE=%gpu_choice%" 36 | 37 | REM Check the user's response 38 | if "%gpu_choice%"=="1" ( 39 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% GPU choice set to NVIDIA 40 | goto :install_koboldcpp_pre 41 | ) else if "%gpu_choice%"=="2" ( 42 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% GPU choice set to AMD 43 | goto :install_koboldcpp_pre 44 | ) else if "%gpu_choice%"=="0" ( 45 | goto :install_koboldcpp_menu 46 | ) else ( 47 | echo [%DATE% %TIME%] %log_invalidinput% >> %logs_stl_console_path% 48 | echo %red_bg%[%time%]%reset% %echo_invalidinput% 49 | pause 50 | goto :install_koboldcpp 51 | ) 52 | 53 | :install_koboldcpp_pre 54 | REM Check if text-completion folder exists 55 | if not exist "%text_completion_dir%" ( 56 | mkdir "%text_completion_dir%" 57 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Created folder: "text-completion" 58 | ) else ( 59 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO] "text-completion" folder already exists.%reset% 60 | ) 61 | 62 | REM Check if dev-koboldcpp folder exists 63 | if not exist "%koboldcpp_install_path%" ( 64 | mkdir "%koboldcpp_install_path%" 65 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Created folder: "dev-koboldcpp" 66 | ) else ( 67 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO] "dev-koboldcpp" folder already exists.%reset% 68 | ) 69 | cd /d "%koboldcpp_install_path%" 70 | 71 | REM Use the GPU choice made earlier to install koboldcpp 72 | if "%GPU_CHOICE%"=="1" ( 73 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Downloading koboldcpp.exe for: %cyan_fg_strong%NVIDIA%reset% 74 | curl -L -o "%koboldcpp_install_path%\koboldcpp.exe" "https://github.com/LostRuins/koboldcpp/releases/latest/download/koboldcpp_cu12.exe" 75 | start "" "koboldcpp.exe" 76 | goto :install_koboldcpp_final 77 | ) else if "%GPU_CHOICE%"=="2" ( 78 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Downloading koboldcpp_rocm.exe for: %cyan_fg_strong%AMD%reset% 79 | curl -L -o "%koboldcpp_install_path%\koboldcpp_rocm.exe" "https://github.com/YellowRoseCx/koboldcpp-rocm/releases/latest/download/koboldcpp_rocm.exe" 80 | start "" "koboldcpp_rocm.exe" 81 | goto :install_koboldcpp_final 82 | ) 83 | 84 | :install_koboldcpp_final 85 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Successfully installed koboldcpp%reset% 86 | pause 87 | goto :app_installer_text_completion -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Text_Completion/install_koboldcpp_raw.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_koboldcpp_raw 4 | title STL [INSTALL KOBOLDCPP RAW] 5 | cls 6 | echo %blue_fg_strong%/ Home / Toolbox / App Installer / Text Completion / Install koboldcpp RAW%reset% 7 | echo ------------------------------------------------------------- 8 | 9 | REM Check if the folder exists 10 | if not exist "%w64devkit_install_path%" ( 11 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] w64devkit not found.%reset% 12 | echo %red_fg_strong%w64devkit is not installed or not found in the system PATH.%reset% 13 | echo %red_fg_strong%To install w64devkit go to:%reset% %blue_bg%/ Toolbox / App Installer / Core Utilities / Install w64devkit%reset% 14 | pause 15 | goto :app_installer_core_utilities 16 | ) 17 | 18 | REM Check if the folder exists 19 | if not exist "%text_completion_dir%" ( 20 | mkdir "%text_completion_dir%" 21 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Created folder: "text-completion" 22 | ) else ( 23 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO] "text-completion" folder already exists.%reset% 24 | ) 25 | 26 | REM Check if the folder exists 27 | if not exist "%koboldcpp_install_path%" ( 28 | mkdir "%koboldcpp_install_path%" 29 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Created folder: "dev-koboldcpp" 30 | ) else ( 31 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO] "dev-koboldcpp" folder already exists.%reset% 32 | ) 33 | cd /d "%koboldcpp_install_path%" 34 | 35 | REM Check if file exists 36 | if not exist "make.sh" ( 37 | echo make -C "${1}" > "make.sh" 38 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Created new file: "make.sh" 39 | ) else ( 40 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO] "make.sh" already exists.%reset% 41 | ) 42 | 43 | REM Activate the Miniconda installation 44 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Miniconda environment... 45 | call "%miniconda_path%\Scripts\activate.bat" 46 | 47 | REM Create a Conda environment named koboldcpp 48 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Creating Conda environment: %cyan_fg_strong%koboldcpp%reset% 49 | call conda create -n koboldcpp python=3.11 -y 50 | 51 | REM Activate the conda environment named koboldcpp 52 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Conda environment: %cyan_fg_strong%koboldcpp%reset% 53 | call conda activate koboldcpp 54 | 55 | REM Install pip requirements 56 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing pip requirements 57 | pip install pyinstaller 58 | 59 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing koboldcpp... 60 | 61 | set max_retries=3 62 | set retry_count=0 63 | 64 | :retry_install_koboldcpp 65 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Cloning the koboldcpp repository... 66 | git clone https://github.com/LostRuins/koboldcpp.git 67 | 68 | if %errorlevel% neq 0 ( 69 | set /A retry_count+=1 70 | echo %yellow_bg%[%time%]%reset% %yellow_fg_strong%[WARN] Retry %retry_count% of %max_retries%%reset% 71 | if %retry_count% lss %max_retries% goto :retry_install_koboldcpp 72 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Failed to clone repository after %max_retries% retries.%reset% 73 | pause 74 | goto :app_installer_text_completion 75 | ) 76 | 77 | REM Add new lines to CMakeLists.txt 78 | cd /d "koboldcpp" 79 | echo add_compile_options("$<$<C_COMPILER_ID:MSVC>:-utf-8>")>> CMakeLists.txt 80 | echo add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:-utf-8>")>> CMakeLists.txt 81 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% successfully added new lines to: CMakeLists.txt 82 | 83 | make 84 | PyInstaller --noconfirm --onefile --clean --console --collect-all customtkinter --icon "./niko.ico" --add-data "./winclinfo.exe;." --add-data "./OpenCL.dll;." --add-data "./klite.embd;." --add-data "./kcpp_docs.embd;." --add-data "./koboldcpp_default.dll;." --add-data "./koboldcpp_openblas.dll;." --add-data "./koboldcpp_failsafe.dll;." --add-data "./koboldcpp_noavx2.dll;." --add-data "./libopenblas.dll;." --add-data "./koboldcpp_clblast.dll;." --add-data "./koboldcpp_clblast_noavx2.dll;." --add-data "./koboldcpp_vulkan_noavx2.dll;." --add-data "./clblast.dll;." --add-data "./koboldcpp_vulkan.dll;." --add-data "./vulkan-1.dll;." --add-data "./rwkv_vocab.embd;." --add-data "./rwkv_world_vocab.embd;." "./koboldcpp.py" -n "koboldcpp.exe" 85 | start "" "koboldcpp.exe" 86 | 87 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Successfully installed koboldcpp%reset% 88 | pause 89 | goto :app_installer_text_completion -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Text_Completion/install_llamacpp.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_llamacpp 4 | title STL [INSTALL LLAMACPP] 5 | cls 6 | echo %blue_fg_strong%/ Home / Toolbox / App Installer / Text Completion / Install llamacpp%reset% 7 | echo ------------------------------------------------------------- 8 | 9 | REM Check if the folder exists 10 | if not exist "%w64devkit_install_path%" ( 11 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] w64devkit not found.%reset% 12 | echo %red_fg_strong%w64devkit is not installed or not found in the system PATH.%reset% 13 | echo %red_fg_strong%To install w64devkit go to:%reset% %blue_bg%/ Toolbox / App Installer / Core Utilities / Install w64devkit%reset% 14 | pause 15 | goto :app_installer_core_utilities 16 | ) 17 | 18 | REM Check if the folder exists 19 | if not exist "%text_completion_dir%" ( 20 | mkdir "%text_completion_dir%" 21 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Created folder: "text-completion" 22 | ) else ( 23 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO] "text-completion" folder already exists.%reset% 24 | ) 25 | 26 | REM Check if the folder exists 27 | if not exist "%llamacpp_install_path%" ( 28 | mkdir "%llamacpp_install_path%" 29 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Created folder: "dev-llamacpp" 30 | ) else ( 31 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO] "dev-llamacpp" folder already exists.%reset% 32 | ) 33 | cd /d "%llamacpp_install_path%" 34 | 35 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing llamacpp... 36 | 37 | set max_retries=3 38 | set retry_count=0 39 | 40 | :retry_install_llamacpp 41 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Cloning the llamacpp repository... 42 | git clone https://github.com/ggerganov/llama.cpp.git 43 | 44 | if %errorlevel% neq 0 ( 45 | set /A retry_count+=1 46 | echo %yellow_bg%[%time%]%reset% %yellow_fg_strong%[WARN] Retry %retry_count% of %max_retries%%reset% 47 | if %retry_count% lss %max_retries% goto :retry_install_llamacpp 48 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Failed to clone repository after %max_retries% retries.%reset% 49 | pause 50 | goto :app_installer_text_completion 51 | ) 52 | cd /d "llama.cpp" 53 | make 54 | 55 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Successfully installed llamacpp%reset% 56 | pause 57 | goto :app_installer_text_completion -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Text_Completion/install_ooba.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_ooba 4 | title STL [INSTALL OOBABOOGA] 5 | cls 6 | echo %blue_fg_strong%/ Home / Toolbox / App Installer / Text Completion / Install oobabooga%reset% 7 | echo ------------------------------------------------------------- 8 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% installing Text generation web UI oobabooga... 9 | 10 | REM Check if the folder exists 11 | if not exist "%stl_root%/text-completion" ( 12 | mkdir "%stl_root%/text-completion" 13 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Created folder: "text-completion" 14 | ) else ( 15 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO] "text-completion" folder already exists.%reset% 16 | ) 17 | cd /d "%stl_root%/text-completion" 18 | 19 | 20 | set max_retries=3 21 | set retry_count=0 22 | 23 | :retry_install_ooba 24 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Cloning the text-generation-webui repository... 25 | git clone https://github.com/oobabooga/text-generation-webui.git 26 | 27 | if %errorlevel% neq 0 ( 28 | set /A retry_count+=1 29 | echo %yellow_bg%[%time%]%reset% %yellow_fg_strong%[WARN] Retry %retry_count% of %max_retries%%reset% 30 | if %retry_count% lss %max_retries% goto :retry_install_ooba 31 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Failed to clone repository after %max_retries% retries.%reset% 32 | pause 33 | goto :ooba_install_exit 34 | ) 35 | 36 | cd /d "%ooba_install_path%" 37 | start "" "start_windows.bat" 38 | echo %yellow_fg_strong%[INFO]%reset% Another Command Window will open, wait for the installation to finish then 39 | pause 40 | 41 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Text generation web UI oobabooga Installed Successfully.%reset% 42 | pause 43 | 44 | :ooba_install_exit 45 | goto :app_installer_text_completion -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Text_Completion/install_tabbyapi.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_tabbyapi 4 | title STL [INSTALL TABBYAPI] 5 | cls 6 | echo %blue_fg_strong%/ Home / Toolbox / App Installer / Text Completion / Install TabbyAPI%reset% 7 | echo ------------------------------------------------------------- 8 | REM GPU menu - Frontend 9 | echo What is your GPU? 10 | echo 1. NVIDIA 11 | echo 2. AMD 12 | echo 0. Cancel 13 | 14 | setlocal enabledelayedexpansion 15 | chcp 65001 > nul 16 | REM Get GPU information 17 | set "gpu_info=" 18 | for /f "tokens=*" %%i in ('powershell -Command "Get-CimInstance Win32_VideoController | Select-Object -ExpandProperty Name -First 1"') do ( 19 | set "gpu_info=%%i" 20 | ) 21 | 22 | echo. 23 | echo %blue_bg%╔════ GPU INFO ═════════════════════════════════╗%reset% 24 | echo %blue_bg%║ ║%reset% 25 | echo %blue_bg%║* %gpu_info:~1% ║%reset% 26 | echo %blue_bg%║ ║%reset% 27 | echo %blue_bg%╚═══════════════════════════════════════════════╝%reset% 28 | echo. 29 | 30 | endlocal 31 | set /p gpu_choice=Enter number corresponding to your GPU: 32 | 33 | REM GPU menu - Backend 34 | REM Set the GPU choice in an environment variable for choise callback 35 | set "GPU_CHOICE=%gpu_choice%" 36 | 37 | REM Check the user's response 38 | if "%gpu_choice%"=="1" ( 39 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% GPU choice set to NVIDIA 40 | goto :install_tabbyapi_pre 41 | ) else if "%gpu_choice%"=="2" ( 42 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% GPU choice set to AMD 43 | goto :install_tabbyapi_pre 44 | ) else if "%gpu_choice%"=="0" ( 45 | goto :app_installer_text_completion 46 | ) else ( 47 | echo [%DATE% %TIME%] %log_invalidinput% >> %logs_stl_console_path% 48 | echo %red_bg%[%time%]%reset% %echo_invalidinput% 49 | pause 50 | goto :install_tabbyapi 51 | ) 52 | 53 | :install_tabbyapi_pre 54 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing TabbyAPI... 55 | 56 | REM Check if the folder exists 57 | if not exist "%text_completion_dir%" ( 58 | mkdir "%text_completion_dir%" 59 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Created folder: "text-completion" 60 | ) else ( 61 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO] "text-completion" folder already exists.%reset% 62 | ) 63 | cd /d "%text_completion_dir%" 64 | 65 | set max_retries=3 66 | set retry_count=0 67 | 68 | :retry_install_tabbyapi 69 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Cloning the tabbyAPI repository... 70 | git clone https://github.com/theroyallab/tabbyAPI.git 71 | 72 | if %errorlevel% neq 0 ( 73 | set /A retry_count+=1 74 | echo %yellow_bg%[%time%]%reset% %yellow_fg_strong%[WARN] Retry %retry_count% of %max_retries%%reset% 75 | if %retry_count% lss %max_retries% goto :retry_install_tabbyapi 76 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Failed to clone repository after %max_retries% retries.%reset% 77 | pause 78 | goto :app_installer_text_completion 79 | ) 80 | 81 | REM Activate the Miniconda installation 82 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Miniconda environment... 83 | call "%miniconda_path%\Scripts\activate.bat" 84 | 85 | REM Create a Conda environment named tabbyapi 86 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Creating Conda environment: %cyan_fg_strong%tabbyapi%reset% 87 | call conda create -n tabbyapi python=3.11 -y 88 | 89 | REM Activate the conda environment named tabbyapi 90 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Conda environment: %cyan_fg_strong%tabbyapi%reset% 91 | call conda activate tabbyapi 92 | 93 | cd /d "%tabbyapi_install_path%" 94 | REM Use the GPU choice made earlier to install requirements for tabbyapi 95 | if "%GPU_CHOICE%"=="1" ( 96 | echo %blue_bg%[%time%]%reset% %cyan_fg_strong%[tabbyapi]%reset% %blue_fg_strong%[INFO]%reset% Setting TabbyAPI to use NVIDIA GPUs: %cyan_fg_strong%tabbyapi%reset% 97 | echo cu121 > "gpu_lib.txt" 98 | goto :install_tabbyapi_final 99 | ) else if "%GPU_CHOICE%"=="2" ( 100 | echo %blue_bg%[%time%]%reset% %cyan_fg_strong%[tabbyapi]%reset% %blue_fg_strong%[INFO]%reset% Setting TabbyAPI to use AMD GPUs: %cyan_fg_strong%tabbyapi%reset% 101 | echo amd > "gpu_lib.txt" 102 | goto :install_tabbyapi_final 103 | ) 104 | 105 | :install_tabbyapi_final 106 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Downgrading numpy to: %cyan_fg_strong%1.26.4%reset% 107 | pip install numpy==1.26.4 108 | 109 | echo Loading solely the API may not be your optimal usecase. 110 | echo Therefore, a config.yml exists to tune initial launch parameters and other configuration options. 111 | echo. 112 | echo A config.yml file is required for overriding project defaults. 113 | echo If you are okay with the defaults, you don't need a config file! 114 | echo. 115 | echo If you do want a config file, copy over config_sample.yml to config.yml. All the fields are commented, 116 | echo so make sure to read the descriptions and comment out or remove fields that you don't need. 117 | echo. 118 | 119 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%TabbyAPI installed successfully.%reset% 120 | 121 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Updating TabbyAPI Dependencies... 122 | echo %yellow_bg%[%time%]%reset% %yellow_fg_strong%[WARN] This process could take a while, typically around 10 minutes or less. Please be patient and do not close this window until the update is complete.%reset% 123 | 124 | REM Run the update process and log the output 125 | python start.py --update-deps > %log_dir%\tabby_update_log.txt 2>&1 126 | 127 | REM Scan the log file for the specific success message 128 | findstr /c:"Dependencies updated. Please run TabbyAPI" %log_dir%\tabby_update_log.txt >nul 129 | if %errorlevel% == 0 ( 130 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% OK 131 | ) else ( 132 | echo %red_bg%[ERROR] TabbyAPI Update Failed. Please run the installer again%reset% 133 | ) 134 | 135 | REM Delete the log file 136 | del %log_dir%\tabby_update_log.txt 137 | 138 | REM Continue with the rest of the script 139 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%TabbyAPI Dependencies updated successfully.%reset% 140 | pause -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Text_Completion/install_tabbyapi_st_ext.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_tabbyapi_st_ext 4 | title STL [INSTALL TABBYAPI ST EXT] 5 | cls 6 | echo %blue_fg_strong%/ Home / Toolbox / App Installer / Text Completion / Install ST-tabbyAPI-loader Extension%reset% 7 | echo ------------------------------------------------------------- 8 | 9 | REM Scan for user folders 10 | set "user_folders=" 11 | for /d %%d in ("%st_install_path%\data\*") do ( 12 | if /i not "%%~nxd"=="_storage" if /i not "%%~nxd"=="_uploads" ( 13 | set "user_folders=!user_folders!%%~nxd|" 14 | ) 15 | ) 16 | 17 | echo Detected accounts: 18 | echo ================================ 19 | REM Remove the trailing pipe character 20 | set "user_folders=%user_folders:~0,-1%" 21 | 22 | REM Split user_folders into an array 23 | set i=1 24 | set "user_count=0" 25 | for %%a in (%user_folders:|= %) do ( 26 | echo !i!. %cyan_fg_strong%%%a%reset% 27 | set "user_folder_!i!=%%a" 28 | set /a i+=1 29 | set /a user_count+=1 30 | ) 31 | echo ================================ 32 | 33 | REM If only one user folder is found, skip the selection 34 | if %user_count%==1 ( 35 | set "selected_user_folder=!user_folder_1!" 36 | goto skip_user_selection 37 | ) 38 | 39 | :select_user_folder 40 | REM Prompt user to select a folder 41 | echo 0. Cancel 42 | echo. 43 | set "selected_user_folder=" 44 | set /p user_choice="Select a folder to install ST-tabbyAPI-loader: " 45 | 46 | REM Check if the user wants to exit 47 | if "%user_choice%"=="0" ( 48 | exit /b 0 49 | ) 50 | 51 | REM Get the selected folder name 52 | for /l %%i in (1,1,%user_count%) do ( 53 | if "%user_choice%"=="%%i" set "selected_user_folder=!user_folder_%%i!" 54 | ) 55 | 56 | if "%selected_user_folder%"=="" ( 57 | echo %red_fg_strong%[ERROR] Invalid selection. Please enter a number between 1 and %user_count%, or press 0 to cancel.%reset% 58 | pause 59 | goto :create_backup 60 | ) 61 | 62 | :skip_user_selection 63 | REM Replace backslashes with double backslashes in st_install_path 64 | set "escaped_st_install_path=%st_install_path:\=\\%" 65 | 66 | REM install the extension in selected user folder 67 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing ST-tabbyAPI-loader extension... 68 | cd /d "%st_install_path%\data\%selected_user_folder%\extensions" 69 | git clone https://github.com/theroyallab/ST-tabbyAPI-loader.git 70 | 71 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%ST-tabbyAPI-loader Extension for SillyTavern has been installed successfully.%reset% 72 | pause 73 | goto :install_tabbyapi_menu -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Voice_Generation/install_alltalk.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_alltalk 4 | title STL [INSTALL ALLTALK] 5 | cls 6 | echo %blue_fg_strong%/ Home / Toolbox / App Installer / Voice Generation / Install AllTalk%reset% 7 | echo --------------------------------------------------------------- 8 | REM GPU menu - Frontend 9 | echo What is your GPU? 10 | echo 1. NVIDIA 11 | echo 2. AMD 12 | echo 0. Cancel 13 | 14 | setlocal enabledelayedexpansion 15 | chcp 65001 > nul 16 | REM Get GPU information 17 | set "gpu_info=" 18 | for /f "tokens=*" %%i in ('powershell -Command "Get-CimInstance Win32_VideoController | Select-Object -ExpandProperty Name -First 1"') do ( 19 | set "gpu_info=%%i" 20 | ) 21 | 22 | echo. 23 | echo %blue_bg%╔════ GPU INFO ═════════════════════════════════╗%reset% 24 | echo %blue_bg%║ ║%reset% 25 | echo %blue_bg%║* %gpu_info:~1% ║%reset% 26 | echo %blue_bg%║ ║%reset% 27 | echo %blue_bg%╚═══════════════════════════════════════════════╝%reset% 28 | echo. 29 | 30 | endlocal 31 | set /p gpu_choice=Enter number corresponding to your GPU: 32 | 33 | REM GPU menu - Backend 34 | REM Set the GPU choice in an environment variable for choise callback 35 | set "GPU_CHOICE=%gpu_choice%" 36 | 37 | REM Check the user's response 38 | if "%gpu_choice%"=="1" ( 39 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% GPU choice set to NVIDIA 40 | goto :install_alltalk_pre 41 | ) else if "%gpu_choice%"=="2" ( 42 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% GPU choice set to AMD 43 | goto :install_alltalk_pre 44 | ) else if "%gpu_choice%"=="0" ( 45 | goto :app_installer_voice_generation 46 | ) else ( 47 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Invalid input. Please enter a valid number.%reset% 48 | pause 49 | goto :install_alltalk 50 | ) 51 | :install_alltalk_pre 52 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing AllTalk... 53 | 54 | REM Check if the folder exists 55 | if not exist "%voice_generation_dir%" ( 56 | mkdir "%voice_generation_dir%" 57 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Created folder: "voice-generation" 58 | ) else ( 59 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO] "voice-generation" folder already exists.%reset% 60 | ) 61 | cd /d "%voice_generation_dir%" 62 | 63 | set max_retries=3 64 | set retry_count=0 65 | 66 | :retry_install_alltalk 67 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Cloning alltalk_tts repository... 68 | git clone https://github.com/erew123/alltalk_tts.git 69 | 70 | if %errorlevel% neq 0 ( 71 | set /A retry_count+=1 72 | echo %yellow_bg%[%time%]%reset% %yellow_fg_strong%[WARN] Retry %retry_count% of %max_retries%%reset% 73 | if %retry_count% lss %max_retries% goto :retry_install_alltalk 74 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Failed to clone repository after %max_retries% retries.%reset% 75 | pause 76 | goto :home 77 | ) 78 | cd /d "%alltalk_install_path%" 79 | 80 | REM Activate the Miniconda installation 81 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Miniconda environment... 82 | call "%miniconda_path%\Scripts\activate.bat" 83 | 84 | REM Create a Conda environment named alltalk 85 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Creating Conda environment: %cyan_fg_strong%alltalk%reset% 86 | call conda create -n alltalk python=3.11.5 -y 87 | 88 | REM Activate the alltalk environment 89 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Conda environment: %cyan_fg_strong%alltalk%reset% 90 | call conda activate alltalk 91 | 92 | REM Use the GPU choice made earlier to install requirements for alltalk 93 | if "%GPU_CHOICE%"=="1" ( 94 | echo %blue_bg%[%time%]%reset% %cyan_fg_strong%[alltalk]%reset% %blue_fg_strong%[INFO]%reset% Installing NVIDIA version of PyTorch in conda enviroment: %cyan_fg_strong%alltalk%reset% 95 | pip install torch==2.2.0+cu121 torchaudio==2.2.0+cu121 --upgrade --force-reinstall --extra-index-url https://download.pytorch.org/whl/cu121 96 | echo %blue_bg%[%time%]%reset% %cyan_fg_strong%[alltalk]%reset% %blue_fg_strong%[INFO]%reset% Installing deepspeed... 97 | curl -LO https://github.com/erew123/alltalk_tts/releases/download/DeepSpeed-14.0/deepspeed-0.14.0+ce78a63-cp311-cp311-win_amd64.whl 98 | pip install deepspeed-0.14.0+ce78a63-cp311-cp311-win_amd64.whl 99 | del deepspeed-0.14.0+ce78a63-cp311-cp311-win_amd64.whl 100 | goto :install_alltalk_final 101 | ) else if "%GPU_CHOICE%"=="2" ( 102 | echo %blue_bg%[%time%]%reset% %cyan_fg_strong%[alltalk]%reset% %blue_fg_strong%[INFO]%reset% Installing AMD version of PyTorch in conda enviroment: %cyan_fg_strong%alltalk%reset% 103 | pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.6 104 | goto :install_alltalk_final 105 | ) 106 | :install_alltalk_final 107 | echo %blue_bg%[%time%]%reset% %cyan_fg_strong%[alltalk]%reset% %blue_fg_strong%[INFO]%reset% Installing pip requirements from requirements_standalone.txt 108 | pip install -r system\requirements\requirements_standalone.txt 109 | 110 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%AllTalk installed successfully%reset% 111 | pause 112 | goto :app_installer_voice_generation -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Voice_Generation/install_rvc.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_rvc 4 | title STL [INSTALL RVC] 5 | cls 6 | echo %blue_fg_strong%/ Home / Install RVC%reset% 7 | echo --------------------------------------------------------------- 8 | REM GPU menu - Frontend 9 | echo What is your GPU? 10 | echo 1. NVIDIA 11 | echo 2. AMD 12 | echo 3. AMD/Intel DirectML 13 | echo 4. Intel Arc IPEX 14 | echo 0. Cancel 15 | 16 | setlocal enabledelayedexpansion 17 | chcp 65001 > nul 18 | REM Get GPU information 19 | set "gpu_info=" 20 | for /f "tokens=*" %%i in ('powershell -Command "Get-CimInstance Win32_VideoController | Select-Object -ExpandProperty Name -First 1"') do ( 21 | set "gpu_info=%%i" 22 | ) 23 | 24 | echo. 25 | echo %blue_bg%╔════ GPU INFO ═════════════════════════════════╗%reset% 26 | echo %blue_bg%║ ║%reset% 27 | echo %blue_bg%║* %gpu_info:~1% ║%reset% 28 | echo %blue_bg%║ ║%reset% 29 | echo %blue_bg%╚═══════════════════════════════════════════════╝%reset% 30 | echo. 31 | 32 | endlocal 33 | set /p gpu_choice=Enter number corresponding to your GPU: 34 | 35 | REM GPU menu - Backend 36 | REM Set the GPU choice in an environment variable for choise callback 37 | set "GPU_CHOICE=%gpu_choice%" 38 | 39 | REM Check the user's response 40 | if "%gpu_choice%"=="1" ( 41 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% GPU choice set to: NVIDIA 42 | goto :install_rvc_pre 43 | ) else if "%gpu_choice%"=="2" ( 44 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% GPU choice set to: AMD 45 | goto :install_rvc_pre 46 | ) else if "%gpu_choice%"=="3" ( 47 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% GPU choice set to: AMD/Intel DirectML 48 | goto :install_rvc_pre 49 | ) else if "%gpu_choice%"=="4" ( 50 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% GPU choice set to: Intel Arc IPEX 51 | goto :install_rvc_pre 52 | ) else if "%gpu_choice%"=="0" ( 53 | goto :app_installer_voice_generation 54 | ) else ( 55 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Invalid input. Please enter a valid number.%reset% 56 | pause 57 | goto :install_rvc 58 | ) 59 | :install_rvc_pre 60 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing RVC... 61 | 62 | REM Check if the folder exists 63 | if not exist "%voice_generation_dir%" ( 64 | mkdir "%voice_generation_dir%" 65 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Created folder: "voice-generation" 66 | ) else ( 67 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO] "voice-generation" folder already exists.%reset% 68 | ) 69 | cd /d "%voice_generation_dir%" 70 | 71 | set max_retries=3 72 | set retry_count=0 73 | 74 | :retry_install_rvc 75 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Cloning the Retrieval-based-Voice-Conversion-WebUI repository... 76 | git clone https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI.git 77 | 78 | if %errorlevel% neq 0 ( 79 | set /A retry_count+=1 80 | echo %yellow_bg%[%time%]%reset% %yellow_fg_strong%[WARN] Retry %retry_count% of %max_retries%%reset% 81 | if %retry_count% lss %max_retries% goto :retry_install_rvc 82 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Failed to clone repository after %max_retries% retries.%reset% 83 | pause 84 | goto :home 85 | ) 86 | cd /d "%rvc_install_path%" 87 | 88 | REM Run conda activate from the Miniconda installation 89 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Miniconda environment... 90 | call "%miniconda_path%\Scripts\activate.bat" 91 | 92 | REM Create a Conda environment named rvc 93 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Creating Conda environment: %cyan_fg_strong%rvc%reset% 94 | call conda create -n rvc python=3.10.9 -y 95 | 96 | REM Activate the rvc environment 97 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Conda environment: %cyan_fg_strong%rvc%reset% 98 | call conda activate rvc 99 | 100 | REM Downgrade pip to version 24.0.0 because fairseq from facebookresearch fails at pip-24.2 101 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Downgrading pip-24.2 to: %cyan_fg_strong%pip-24.0%reset% 102 | python -m pip install pip==24.0.0 103 | 104 | REM Use the GPU choice made earlier to install requirements for RVC 105 | if "%GPU_CHOICE%"=="1" ( 106 | echo %blue_bg%[%time%]%reset% %cyan_fg_strong%[rvc]%reset% %blue_fg_strong%[INFO]%reset% Installing NVIDIA version from requirements.txt in conda enviroment: %cyan_fg_strong%rvc%reset% 107 | pip install torch==2.2.1+cu121 torchaudio==2.2.1+cu121 --upgrade --force-reinstall --extra-index-url https://download.pytorch.org/whl/cu121 108 | pip install -r requirements.txt 109 | goto :install_rvc_final 110 | ) else if "%GPU_CHOICE%"=="2" ( 111 | echo %blue_bg%[%time%]%reset% %cyan_fg_strong%[rvc]%reset% %blue_fg_strong%[INFO]%reset% Installing AMD version from requirements-amd.txt in conda enviroment: %cyan_fg_strong%rvc%reset% 112 | pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.6 113 | pip install -r requirements-amd.txt 114 | goto :install_rvc_final 115 | ) else if "%GPU_CHOICE%"=="3" ( 116 | echo %blue_bg%[%time%]%reset% %cyan_fg_strong%[rvc]%reset% %blue_fg_strong%[INFO]%reset% Installing AMD/Intel DirectML version from requirements-dml.txt in conda enviroment: %cyan_fg_strong%rvc%reset% 117 | pip install torch torchvision torchaudio 118 | pip install -r requirements-dml.txt 119 | goto :install_rvc_final 120 | ) else if "%GPU_CHOICE%"=="4" ( 121 | echo %blue_bg%[%time%]%reset% %cyan_fg_strong%[rvc]%reset% %blue_fg_strong%[INFO]%reset% Installing Intel Arc IPEX version from requirements-ipex.txt in conda enviroment: %cyan_fg_strong%rvc%reset% 122 | pip install torch torchvision torchaudio 123 | pip install -r requirements-ipex.txt 124 | goto :install_rvc_final 125 | ) 126 | :install_rvc_final 127 | REM Install pip packages that are not in requirements list 128 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing pip modules for GUI 129 | pip install FreeSimpleGUI 130 | pip install sounddevice 131 | REM pip install python-dotenv 132 | 133 | 134 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%RVC successfully installed.%reset% 135 | echo %yellow_bg%[%time%]%reset% %yellow_fg_strong%[WARN] In order to start RVC correctly please install FFMPEG from: / Home / Toolbox / App Installer / Core Utilities / Install FFmpeg%reset% 136 | pause 137 | goto :app_installer_voice_generation -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Installer/Voice_Generation/install_xtts.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :install_xtts 4 | title STL [INSTALL XTTS] 5 | cls 6 | echo %blue_fg_strong%/ Home / Toolbox / App Installer / Voice Generation / Install XTTS%reset% 7 | echo --------------------------------------------------------------- 8 | REM GPU menu - Frontend 9 | echo What is your GPU? 10 | echo 1. NVIDIA 11 | echo 2. AMD 12 | echo 3. None CPU-only mode 13 | echo 0. Cancel 14 | 15 | setlocal enabledelayedexpansion 16 | chcp 65001 > nul 17 | REM Get GPU information 18 | set "gpu_info=" 19 | for /f "tokens=*" %%i in ('powershell -Command "Get-CimInstance Win32_VideoController | Select-Object -ExpandProperty Name -First 1"') do ( 20 | set "gpu_info=%%i" 21 | ) 22 | 23 | echo. 24 | echo %blue_bg%╔════ GPU INFO ═════════════════════════════════╗%reset% 25 | echo %blue_bg%║ ║%reset% 26 | echo %blue_bg%║* %gpu_info:~1% ║%reset% 27 | echo %blue_bg%║ ║%reset% 28 | echo %blue_bg%╚═══════════════════════════════════════════════╝%reset% 29 | echo. 30 | 31 | endlocal 32 | set /p gpu_choice=Enter number corresponding to your GPU: 33 | 34 | REM GPU menu - Backend 35 | REM Set the GPU choice in an environment variable for choise callback 36 | set "GPU_CHOICE=%gpu_choice%" 37 | 38 | REM Check the user's response 39 | if "%gpu_choice%"=="1" ( 40 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% GPU choice set to NVIDIA 41 | goto :install_xtts_pre 42 | ) else if "%gpu_choice%"=="2" ( 43 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% GPU choice set to AMD 44 | goto :install_xtts_pre 45 | ) else if "%gpu_choice%"=="3" ( 46 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Using CPU-only mode 47 | goto :install_xtts_pre 48 | ) else if "%gpu_choice%"=="0" ( 49 | goto :installer 50 | ) else ( 51 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Invalid input. Please enter a valid number.%reset% 52 | pause 53 | goto :install_xtts 54 | ) 55 | :install_xtts_pre 56 | REM Check if the folder exists 57 | if not exist "%voice_generation_dir%" ( 58 | mkdir "%voice_generation_dir%" 59 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Created folder: "voice-generation" 60 | ) else ( 61 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO] "voice-generation" folder already exists.%reset% 62 | ) 63 | cd /d "%voice_generation_dir%" 64 | 65 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Installing XTTS... 66 | 67 | REM Activate the Miniconda installation 68 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Miniconda environment... 69 | call "%miniconda_path%\Scripts\activate.bat" 70 | 71 | REM Create a Conda environment named xtts 72 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Creating Conda environment: %cyan_fg_strong%xtts%reset% 73 | call conda create -n xtts python=3.10 -y 74 | 75 | REM Activate the xtts environment 76 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Conda environment: %cyan_fg_strong%xtts%reset% 77 | call conda activate xtts 78 | 79 | REM Use the GPU choice made earlier to install requirements for XTTS 80 | if "%GPU_CHOICE%"=="1" ( 81 | echo %blue_bg%[%time%]%reset% %cyan_fg_strong%[xtts]%reset% %blue_fg_strong%[INFO]%reset% Installing NVIDIA version of PyTorch in conda enviroment: %cyan_fg_strong%xtts%reset% 82 | pip install torch==2.1.1+cu118 torchvision==0.16.1+cu118 torchaudio==2.1.1+cu118 --index-url https://download.pytorch.org/whl/cu118 83 | goto :install_xtts_final 84 | ) else if "%GPU_CHOICE%"=="2" ( 85 | echo %blue_bg%[%time%]%reset% %cyan_fg_strong%[xtts]%reset% %blue_fg_strong%[INFO]%reset% Installing AMD version of PyTorch in conda enviroment: %cyan_fg_strong%xtts%reset% 86 | pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.6 87 | goto :install_xtts_final 88 | ) else if "%GPU_CHOICE%"=="3" ( 89 | echo %blue_bg%[%time%]%reset% %cyan_fg_strong%[xtts]%reset% %blue_fg_strong%[INFO]%reset% Installing CPU-only version of PyTorch in conda enviroment: %cyan_fg_strong%xtts%reset% 90 | pip install torch torchvision torchaudio 91 | goto :install_xtts_final 92 | ) 93 | :install_xtts_final 94 | REM Clone the xtts-api-server repository for voice examples 95 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Cloning xtts-api-server repository... 96 | git clone https://github.com/daswer123/xtts-api-server.git 97 | cd /d "xtts-api-server" 98 | 99 | REM Create requirements-custom.txt to install pip requirements 100 | echo %blue_bg%[%time%]%reset% %cyan_fg_strong%[xtts]%reset% %blue_fg_strong%[INFO]%reset% Creating file: requirements-custom.txt%reset% 101 | echo xtts-api-server > requirements-custom.txt 102 | echo pydub >> requirements-custom.txt 103 | echo stream2sentence >> requirements-custom.txt 104 | echo spacy==3.7.4 >> requirements-custom.txt 105 | 106 | REM Install pip requirements 107 | echo %blue_bg%[%time%]%reset% %cyan_fg_strong%[xtts]%reset% %blue_fg_strong%[INFO]%reset% Installing pip requirements in conda enviroment: %cyan_fg_strong%xtts%reset% 108 | pip install -r requirements-custom.txt 109 | 110 | REM Create folders for xtts 111 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Creating xtts folders... 112 | mkdir "%xtts_install_path%" 113 | mkdir "%xtts_install_path%\speakers" 114 | mkdir "%xtts_install_path%\output" 115 | 116 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Adding voice examples to speakers directory... 117 | xcopy "%voice_generation_dir%\xtts-api-server\example\*" "%xtts_install_path%\speakers\" /y /e 118 | 119 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the xtts-api-server directory... 120 | rmdir /s /q "%voice_generation_dir%\xtts-api-server" 121 | 122 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%XTTS installed successfully%reset% 123 | pause 124 | goto :app_installer_voice_generation -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Launcher/Core_Utilities/start_extras.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :start_extras 4 | REM Run conda activate from the Miniconda installation 5 | call "%miniconda_path%\Scripts\activate.bat" 6 | 7 | REM Activate the extras environment 8 | call conda activate extras 9 | 10 | REM Start SillyTavern Extras with desired configurations 11 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Extras launched in a new window. 12 | 13 | REM Read modules-extras and find the extras_start_command line 14 | set "extras_start_command=" 15 | 16 | for /F "tokens=*" %%a in ('findstr /I "extras_start_command=" "%extras_modules_path%"') do ( 17 | set "%%a" 18 | ) 19 | 20 | set "extras_start_command=%extras_start_command:extras_start_command=%" 21 | start cmd /k "title SillyTavern Extras && cd /d %extras_install_path% && %extras_start_command%" 22 | goto :home -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Launcher/Core_Utilities/start_st.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | REM Check if the folder exists 4 | if not exist "%st_install_path%" ( 5 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Directory:%reset% %red_bg%SillyTavern%reset% %red_fg_strong%not found.%reset% 6 | echo %red_fg_strong%Please make sure SillyTavern is located in: %~dp0%reset% 7 | pause 8 | exit /b 1 9 | ) 10 | 11 | REM Check if Node.js is installed 12 | node --version > nul 2>&1 13 | if %errorlevel% neq 0 ( 14 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] node command not found in PATH.%reset% 15 | echo %red_fg_strong%Node.js is not installed or not found in the system PATH.%reset% 16 | echo %red_fg_strong%To install Node.js go to:%reset% %blue_bg%/ Toolbox / App Installer / Core Utilities / Install Node.js%reset% 17 | pause 18 | exit /b 1 19 | ) 20 | 21 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Running Node.js in: %cyan_fg_strong%%NODE_ENV% %reset% 22 | setlocal 23 | set "command=%~1" 24 | start /B cmd /C "%command%" 25 | for /f "tokens=2 delims=," %%a in ('tasklist /FI "IMAGENAME eq cmd.exe" /FO CSV /NH') do ( 26 | set "pid=%%a" 27 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Started process with PID: %cyan_fg_strong%!pid!%reset% 28 | echo !pid!>>"%log_dir%\pids.txt" 29 | goto :st_found_pid 30 | ) 31 | :st_found_pid 32 | endlocal 33 | 34 | REM Check if SSL info file exists and set the command accordingly 35 | set "sslPathsFound=false" 36 | if exist "%SSL_INFO_FILE%" ( 37 | for /f %%i in ('type "%SSL_INFO_FILE%"') do ( 38 | set "sslPathsFound=true" 39 | goto :ST_SSL_Start 40 | ) 41 | ) 42 | 43 | REM Debugging: Check auto-repair setting 44 | if not exist "%log_dir%\autorepair-setting.txt" ( 45 | echo NO > "%log_dir%\autorepair-setting.txt" 46 | ) 47 | 48 | REM Read and sanitize autorepair-setting.txt 49 | set "st_auto_repair=" 50 | for /f "tokens=*" %%a in ('type "%log_dir%\autorepair-setting.txt" 2^>nul ^| findstr /v "^$"') do set "st_auto_repair=%%a" 51 | 52 | REM Remove leading/trailing spaces and validate value 53 | 54 | set "st_auto_repair=!st_auto_repair: =!" 55 | if /i "!st_auto_repair!" neq "YES" if /i "!st_auto_repair!" neq "NO" ( 56 | set "st_auto_repair=NO" 57 | ) 58 | 59 | REM Conditional Logic Based on st_auto_repair 60 | if "%st_auto_repair%"=="YES" ( 61 | echo DEBUG: Entered the YES block 62 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Auto-repair process enabled [this can be toggled in the troubleshooting menu]. 63 | goto :ST_SSL_Start 64 | ) else ( 65 | echo DEBUG: Entered the NO block 66 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Auto-repair disabled [this can be toggled in the troubleshooting menu]. Launching SillyTavern normally... 67 | goto :fallback 68 | ) 69 | 70 | :ST_SSL_Start 71 | if "%sslPathsFound%"=="true" ( 72 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% SillyTavern opened with SSL in a new window. 73 | start cmd /k "title SillyTavern && cd /d %st_install_path% && call npm install --no-audit --no-fund --loglevel=error --no-progress --omit=dev && call %functions_dir%\Home\log_wrapper.bat ssl" 74 | ) else ( 75 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% SillyTavern opened in a new window. 76 | start cmd /k "title SillyTavern && cd /d %st_install_path% && call npm install --no-audit --no-fund --loglevel=error --no-progress --omit=dev && call %functions_dir%\Home\log_wrapper.bat" 77 | ) 78 | 79 | REM Clear the old log file if it exists 80 | if exist "%logs_st_console_path%" ( 81 | del "%logs_st_console_path%" 82 | ) 83 | REM Wait for log file to be created, timeout after 30 seconds (10 iterations of 3 seconds) 84 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Waiting for 30 seconds for SillyTavern to fully launch... 85 | set "counter=0" 86 | :wait_for_log 87 | timeout /t 3 > nul 88 | set /a counter+=1 89 | if not exist "%logs_st_console_path%" ( 90 | if %counter% lss 10 ( 91 | goto :wait_for_log 92 | ) else ( 93 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR]%reset% Log file not found, something went wrong. Launching ST with fallback method. 94 | goto :fallback 95 | ) 96 | ) 97 | 98 | goto :scan_log 99 | 100 | :fallback 101 | REM Fallback to %st_install_path% and start 102 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Starting SillyTavern from %st_install_path%... 103 | start cmd /k "title SillyTavern && cd /d %st_install_path% && call npm install --no-audit --no-fund --loglevel=error --no-progress --omit=dev && call Start.bat" 104 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% SillyTavern should now be launching in a new window, if you still receive errors please contact the launcher devs in the #launcher-help channel on discord. 105 | timeout /t 10 106 | exit /b 1 107 | 108 | :scan_log 109 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Log file found, scanning log for errors... 110 | 111 | :loop 112 | REM Use PowerShell to search for the error message 113 | powershell -Command "try { $content = Get-Content '%logs_st_console_path%' -Raw; if ($content -match 'Error: Cannot find module') { exit 1 } elseif ($content -match 'SillyTavern is listening' -or $content -match 'Go to' -or $content -match '\[\s*\r?\n\s*\x27') { exit 0 } else { exit 2 } } catch { exit 2 }" 114 | set "ps_errorlevel=%errorlevel%" 115 | 116 | if %ps_errorlevel% equ 0 ( 117 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%SillyTavern Launched Successfully. Returning home...%reset% 118 | timeout /t 10 119 | exit /b 0 120 | ) else if %ps_errorlevel% equ 1 ( 121 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Node.js Code: MODULE_NOT_FOUND%reset% 122 | goto :attemptnodefix 123 | ) else ( 124 | timeout /t 3 > nul 125 | goto :loop 126 | ) 127 | 128 | :attemptnodefix 129 | set /p "choice=Run troubleshooter to fix this error? (If yes, close any open SillyTavern Command Windows first) [Y/n]: " 130 | if /i "%choice%"=="" set choice=Y 131 | if /i "%choice%"=="Y" ( 132 | set "caller=home" 133 | call "%troubleshooting_dir%\remove_node_modules.bat" 134 | if %errorlevel% equ 0 goto :home 135 | ) 136 | exit /b 1 137 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Launcher/Core_Utilities/update_start_st.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | REM Check if the folder exists 4 | if not exist "%st_install_path%" ( 5 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Directory:%reset% %red_bg%SillyTavern%reset% %red_fg_strong%not found.%reset% 6 | echo %red_fg_strong%Please make sure SillyTavern is located in: %~dp0%reset% 7 | pause 8 | exit /b 1 9 | ) 10 | 11 | REM Check if Node.js is installed 12 | node --version > nul 2>&1 13 | if %errorlevel% neq 0 ( 14 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] node command not found in PATH.%reset% 15 | echo %red_fg_strong%Node.js is not installed or not found in the system PATH.%reset% 16 | echo %red_fg_strong%To install Node.js go to:%reset% %blue_bg%/ Toolbox / App Installer / Core Utilities / Install Node.js%reset% 17 | pause 18 | exit /b 1 19 | ) 20 | 21 | 22 | REM Update SillyTavern 23 | set max_retries=3 24 | set retry_count=0 25 | 26 | :retry_update_st 27 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Updating SillyTavern... 28 | cd /d "%st_install_path%" 29 | call git pull 30 | if %errorlevel% neq 0 ( 31 | set /A retry_count+=1 32 | echo %yellow_bg%[%time%]%reset% %yellow_fg_strong%[WARN] Retry %retry_count% of %max_retries%%reset% 33 | if %retry_count% lss %max_retries% goto :retry_update_st 34 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Failed to update SillyTavern repository after %max_retries% retries.%reset% 35 | pause 36 | goto :home 37 | ) 38 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%SillyTavern updated successfully.%reset% 39 | 40 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Running Node.js in: %cyan_fg_strong%%NODE_ENV% %reset% 41 | setlocal 42 | set "command=%~1" 43 | start /B cmd /C "%command%" 44 | for /f "tokens=2 delims=," %%a in ('tasklist /FI "IMAGENAME eq cmd.exe" /FO CSV /NH') do ( 45 | set "pid=%%a" 46 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Started process with PID: %cyan_fg_strong%!pid!%reset% 47 | echo !pid!>>"%log_dir%\pids.txt" 48 | goto :st_found_pid 49 | ) 50 | :st_found_pid 51 | endlocal 52 | 53 | REM Check if SSL info file exists and set the command accordingly 54 | set "sslPathsFound=false" 55 | if exist "%SSL_INFO_FILE%" ( 56 | for /f %%i in ('type "%SSL_INFO_FILE%"') do ( 57 | set "sslPathsFound=true" 58 | goto :ST_SSL_Start 59 | ) 60 | ) 61 | 62 | :ST_SSL_Start 63 | if "%sslPathsFound%"=="true" ( 64 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% SillyTavern opened with SSL in a new window. 65 | start cmd /k "title SillyTavern && cd /d %st_install_path% && call npm install --no-audit --no-fund --loglevel=error --no-progress --omit=dev && call %functions_dir%\Home\log_wrapper.bat ssl" 66 | ) else ( 67 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% SillyTavern opened in a new window. 68 | start cmd /k "title SillyTavern && cd /d %st_install_path% && call npm install --no-audit --no-fund --loglevel=error --no-progress --omit=dev && call %functions_dir%\Home\log_wrapper.bat" 69 | ) 70 | 71 | REM Clear the old log file if it exists 72 | if exist "%logs_st_console_path%" ( 73 | del "%logs_st_console_path%" 74 | ) 75 | REM Wait for log file to be created, timeout after 60 seconds (20 iterations of 3 seconds) 76 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Waiting for SillyTavern to fully launch... 77 | set "counter=0" 78 | :wait_for_log 79 | timeout /t 3 > nul 80 | set /a counter+=1 81 | if not exist "%logs_st_console_path%" ( 82 | if %counter% lss 20 ( 83 | goto :wait_for_log 84 | ) else ( 85 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR]%reset% Log file not found, something went wrong. Close all SillyTavern command windows and try again. 86 | pause 87 | goto :home 88 | ) 89 | ) 90 | 91 | 92 | goto :scan_log 93 | 94 | :scan_log 95 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Log file found, scanning log for errors... 96 | 97 | :loop 98 | REM Use PowerShell to search for the error message 99 | powershell -Command "try { $content = Get-Content '%logs_st_console_path%' -Raw; if ($content -match 'Error: Cannot find module') { exit 1 } elseif ($content -match 'SillyTavern is listening' -or $content -match 'Go to' -or $content -match '\[\s*\r?\n\s*\x27') { exit 0 } else { exit 2 } } catch { exit 2 }" 100 | set "ps_errorlevel=%errorlevel%" 101 | 102 | if %ps_errorlevel% equ 0 ( 103 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%SillyTavern Launched Successfully. Returning home...%reset% 104 | timeout /t 10 105 | exit /b 0 106 | ) else if %ps_errorlevel% equ 1 ( 107 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Node.js Code: MODULE_NOT_FOUND%reset% 108 | goto :attemptnodefix 109 | ) else ( 110 | timeout /t 3 > nul 111 | goto :loop 112 | ) 113 | 114 | :attemptnodefix 115 | set /p "choice=Run troubleshooter to fix this error? (If yes, close any open SillyTavern Command Windows first) [Y/n]: " 116 | if /i "%choice%"=="" set choice=Y 117 | if /i "%choice%"=="Y" ( 118 | set "caller=home" 119 | call "%troubleshooting_dir%\remove_node_modules.bat" 120 | if %errorlevel% equ 0 goto :home 121 | ) 122 | exit /b 1 -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Launcher/Image_Generation/start_comfyui.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :start_comfyui 4 | cd /d "%comfyui_install_path%" 5 | 6 | REM Run conda activate from the Miniconda installation 7 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Miniconda environment... 8 | call "%miniconda_path%\Scripts\activate.bat" 9 | 10 | REM Activate the comfyui environment 11 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Conda environment: %cyan_fg_strong%comfyui%reset% 12 | call conda activate comfyui 13 | 14 | REM Read modules-comfyui and find the comfyui_start_command line 15 | set "comfyui_start_command=" 16 | 17 | for /F "tokens=*" %%a in ('findstr /I "comfyui_start_command=" "%comfyui_modules_path%"') do ( 18 | set "%%a" 19 | ) 20 | 21 | if not defined comfyui_start_command ( 22 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] No modules enabled.%reset% 23 | echo %red_bg%Please make sure you enabled at least one of the modules from Edit comfyui Modules.%reset% 24 | echo. 25 | echo %blue_bg%We will redirect you to the Edit comfyui Modules menu.%reset% 26 | pause 27 | set "caller=editor_image_generation" 28 | if exist "%editor_image_generation_dir%\edit_comfyui_modules.bat" ( 29 | call %editor_image_generation_dir%\edit_comfyui_modules.bat 30 | goto :home 31 | ) else ( 32 | echo [%DATE% %TIME%] ERROR: edit_comfyui_modules.bat not found in: editor_image_generation_dir% >> %logs_stl_console_path% 33 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] edit_comfyui_modules.bat not found in: %editor_image_generation_dir%%reset% 34 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Running Automatic Repair... 35 | git pull 36 | pause 37 | goto :home 38 | ) 39 | ) 40 | 41 | set "comfyui_start_command=%comfyui_start_command:comfyui_start_command=%" 42 | 43 | REM Start ComfyUI with desired configurations 44 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% ComfyUI launched in a new window. 45 | start cmd /k "title comfyui && cd /d %comfyui_install_path% && %comfyui_start_command%" 46 | goto :home 47 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Launcher/Image_Generation/start_invokeai.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | REM Check if the folder exists 4 | if not exist "%invokeai_install_path%" ( 5 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Directory:%reset% %red_bg% %invokeai_install_path% %reset% %red_fg_strong%not found.%reset% 6 | pause 7 | exit /b 1 8 | ) 9 | 10 | :start_invokeai 11 | REM Activate the invokeai environment 12 | call conda activate invokeai 13 | 14 | REM Start InvokeAI 15 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% InvokeAI launched in a new window. 16 | 17 | start cmd /k "title InvokeAI && cd /d %invokeai_install_path% && invokeai-web" 18 | goto :home -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Launcher/Image_Generation/start_sdwebui.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :start_sdwebui 4 | cd /d "%sdwebui_install_path%" 5 | 6 | REM Run conda activate from the Miniconda installation 7 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Miniconda environment... 8 | call "%miniconda_path%\Scripts\activate.bat" 9 | 10 | REM Activate the sdwebui environment 11 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Conda environment: %cyan_fg_strong%sdwebui%reset% 12 | call conda activate sdwebui 13 | 14 | REM Read modules-sdwebui and find the sdwebui_start_command line 15 | set "sdwebui_start_command=" 16 | 17 | for /F "tokens=*" %%a in ('findstr /I "sdwebui_start_command=" "%sdwebui_modules_path%"') do ( 18 | set "%%a" 19 | ) 20 | 21 | if not defined sdwebui_start_command ( 22 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] No modules enabled.%reset% 23 | echo %red_bg%Please make sure you enabled at least one of the modules from Edit SDWEBUI Modules.%reset% 24 | echo. 25 | echo %blue_bg%We will redirect you to the Edit SDWEBUI Modules menu.%reset% 26 | pause 27 | set "caller=editor_image_generation" 28 | if exist "%editor_image_generation_dir%\edit_sdwebui_modules.bat" ( 29 | call %editor_image_generation_dir%\edit_sdwebui_modules.bat 30 | goto :home 31 | ) else ( 32 | echo [%DATE% %TIME%] ERROR: edit_sdwebui_modules.bat not found in: editor_image_generation_dir% >> %logs_stl_console_path% 33 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] edit_sdwebui_modules.bat not found in: %editor_image_generation_dir%%reset% 34 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Running Automatic Repair... 35 | git pull 36 | pause 37 | goto :home 38 | ) 39 | ) 40 | 41 | set "sdwebui_start_command=%sdwebui_start_command:sdwebui_start_command=%" 42 | 43 | REM Start Stable Diffusion WebUI with desired configurations 44 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Stable Diffusion WebUI launched in a new window. 45 | start cmd /k "title SDWEBUI && cd /d %sdwebui_install_path% && %sdwebui_start_command%" 46 | goto :home 47 | 48 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Launcher/Image_Generation/start_sdwebuiforge.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :start_sdwebuiforge 4 | cd /d "%sdwebuiforge_install_path%" 5 | 6 | REM Run conda activate from the Miniconda installation 7 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Miniconda environment... 8 | call "%miniconda_path%\Scripts\activate.bat" 9 | 10 | REM Activate the sdwebuiforge environment 11 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Activating Conda environment: %cyan_fg_strong%sdwebuiforge%reset% 12 | call conda activate sdwebuiforge 13 | 14 | REM Read modules-sdwebuiforge and find the sdwebuiforge_start_command line 15 | set "sdwebuiforge_start_command=" 16 | 17 | for /F "tokens=*" %%a in ('findstr /I "sdwebuiforge_start_command=" "%sdwebuiforge_modules_path%"') do ( 18 | set "%%a" 19 | ) 20 | 21 | if not defined sdwebuiforge_start_command ( 22 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] No modules enabled.%reset% 23 | echo %red_bg%Please make sure you enabled at least one of the modules from Edit SDWEBUI FORGE Modules.%reset% 24 | echo. 25 | echo %blue_bg%We will redirect you to the Edit SDWEBUI FORGE Modules menu.%reset% 26 | pause 27 | set "caller=editor_image_generation" 28 | if exist "%editor_image_generation_dir%\edit_sdwebuiforge_modules.bat" ( 29 | call %editor_image_generation_dir%\edit_sdwebuiforge_modules.bat 30 | goto :home 31 | ) else ( 32 | echo [%DATE% %TIME%] ERROR: edit_sdwebuiforge_modules.bat not found in: editor_image_generation_dir% >> %logs_stl_console_path% 33 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] edit_sdwebuiforge_modules.bat not found in: %editor_image_generation_dir%%reset% 34 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Running Automatic Repair... 35 | git pull 36 | pause 37 | goto :home 38 | ) 39 | ) 40 | 41 | set "sdwebuiforge_start_command=%sdwebuiforge_start_command:sdwebuiforge_start_command=%" 42 | 43 | REM Start Stable Diffusion WebUI with desired configurations 44 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Stable Diffusion WebUI launched in a new window. 45 | start cmd /k "title SDWEBUI FORGE && cd /d %sdwebuiforge_install_path% && %sdwebuiforge_start_command%" 46 | goto :home -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Launcher/Text_Completion/start_koboldcpp.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :start_koboldcpp 4 | REM Check if dev-koboldcpp directory exists 5 | if not exist "%koboldcpp_install_path%" ( 6 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] dev-koboldcpp directory not found in: %text_completion_dir%%reset% 7 | pause 8 | goto :home 9 | ) 10 | 11 | cd /d "%koboldcpp_install_path%" 12 | 13 | REM Check if koboldcpp file exists [koboldcpp NVIDIA] 14 | if exist "%koboldcpp_install_path%\koboldcpp.exe" ( 15 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% koboldcpp launched in a new window. 16 | start "" "koboldcpp.exe" 17 | goto :home 18 | ) 19 | 20 | REM Check if koboldcpp file exists [koboldcpp AMD] 21 | if exist "%koboldcpp_install_path%\koboldcpp_rocm.exe" ( 22 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% koboldcpp launched in a new window. 23 | start "" "koboldcpp_rocm.exe" 24 | goto :home 25 | ) -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Launcher/Text_Completion/start_tabbyapi.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :start_tabbyapi 4 | REM Read modules-tabbyapi and find the tabyapi_start_command line 5 | set "tabbyapi_start_command=" 6 | 7 | for /F "tokens=*" %%a in ('findstr /I "tabbyapi_start_command=" "%tabbyapi_modules_path%"') do ( 8 | set "%%a" 9 | ) 10 | 11 | if not defined tabbyapi_start_command ( 12 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] No modules enabled.%reset% 13 | echo %red_bg%Please make sure you enabled at least one of the modules from Edit tabbyapi Modules.%reset% 14 | echo. 15 | echo %blue_bg%We will redirect you to the Edit tabbyapi Modules menu.%reset% 16 | pause 17 | set "caller=editor_text_completion" 18 | if exist "%editor_text_completion_dir%\edit_tabbyapi_modules.bat" ( 19 | call %editor_text_completion_dir%\edit_tabbyapi_modules.bat 20 | goto :app_launcher_text_completion 21 | ) else ( 22 | echo [%DATE% %TIME%] ERROR: edit_tabbyapi_modules.bat not found in: %editor_text_completion_dir% >> %logs_stl_console_path% 23 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] edit_tabbyapi_modules.bat not found in: %editor_text_completion_dir%%reset% 24 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Running Automatic Repair... 25 | git pull 26 | pause 27 | goto :app_launcher_text_completion 28 | ) 29 | ) 30 | 31 | set "tabbyapi_start_command=%tabbyapi_start_command:tabbyapi_start_command=%" 32 | 33 | 34 | REM Run conda activate from the Miniconda installation 35 | call "%miniconda_path%\Scripts\activate.bat" 36 | 37 | REM Activate the extras environment 38 | call conda activate tabbyapi 39 | 40 | REM Start TabbyAPI with desired configurations 41 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% TabbyAPI launched in a new window. 42 | start cmd /k "title TabbyAPI && cd /d %tabbyapi_install_path% && %tabbyapi_start_command%" -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Launcher/Voice_Generation/start_alltalk.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :start_alltalk 4 | REM Activate the alltalk environment 5 | call conda activate alltalk 6 | 7 | REM Start AllTalk 8 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% AllTalk launched in a new window. 9 | start cmd /k "title AllTalk && cd /d %alltalk_install_path% && python script.py" 10 | goto :home 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Launcher/Voice_Generation/start_alltalk_v2.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :start_alltalk_v2 4 | REM Activate the alltalk environment 5 | call conda activate alltalkv2 6 | 7 | REM Start AllTalkV2 8 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% AllTalkV2 launched in a new window. 9 | start cmd /k "title AllTalkV2 && cd /d %alltalk_v2_install_path% && python script.py" 10 | goto :home -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Launcher/Voice_Generation/start_alltalk_v2_diag.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :start_alltalk_v2_diag 4 | REM Activate the alltalk environment 5 | call conda activate alltalkv2 6 | 7 | REM Start AllTalkV2 8 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% AllTalkV2 Diagnostics launched in a new window. 9 | start cmd /k "title AllTalkV2 && cd /d %alltalk_v2_install_path% && python diagnostics.py" 10 | goto :home -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Launcher/Voice_Generation/start_alltalk_v2_finetune.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :start_alltalk_v2_finetune 4 | REM Activate the alltalk environment 5 | call conda activate alltalkv2 6 | 7 | REM Start AllTalkV2 8 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% AllTalkV2 Finetune launched in a new window. 9 | start cmd /k "title AllTalkV2 && cd /d %alltalk_v2_install_path% && python finetune.py" 10 | goto :home -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Launcher/Voice_Generation/start_rvc.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :start_rvc 4 | REM Activate the alltalk environment 5 | call conda activate rvc 6 | 7 | REM Start RVC with desired configurations 8 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% RVC launched in a new window. 9 | start cmd /k "title RVC WEBUI && cd /d %rvc_install_path% && python infer-web.py --port 7897" 10 | goto :home 11 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Launcher/Voice_Generation/start_rvc_python.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :start_rvc_python 4 | REM Activate the rvc-python environment 5 | call conda activate rvc-python 6 | 7 | REM Start rvc-python 8 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% rvc-python launched in a new window. 9 | 10 | REM Read modules-rvc-python and find the rvc_python_start_command line 11 | set "rvc_python_start_command=" 12 | 13 | for /F "tokens=*" %%a in ('findstr /I "rvc_python_start_command=" "%rvc_python_modules_path%"') do ( 14 | set "%%a" 15 | ) 16 | 17 | 18 | if not defined rvc_python_start_command ( 19 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] No modules enabled.%reset% 20 | echo %red_bg%Please make sure you enabled at least one of the modules from Edit rvc-python Modules.%reset% 21 | echo. 22 | echo %blue_bg%We will redirect you to the Edit rvc-python Modules menu.%reset% 23 | pause 24 | set "caller=editor_image_generation" 25 | if exist "%editor_voice_generation_dir%\edit_rvc_python_modules.bat" ( 26 | call %editor_voice_generation_dir%\edit_rvc_python_modules.bat 27 | goto :home 28 | ) else ( 29 | echo [%DATE% %TIME%] ERROR: edit_rvc_python_modules.bat not found in: editor_voice_generation_dir% >> %logs_stl_console_path% 30 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] edit_rvc_python_modules.bat not found in: %editor_voice_generation_dir%%reset% 31 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Running Automatic Repair... 32 | git pull 33 | pause 34 | goto :home 35 | ) 36 | ) 37 | 38 | 39 | set "rvc_python_start_command=%rvc_python_start_command:rvc_python_start_command=%" 40 | start cmd /k "title RVC-Python && cd /d %rvc_python_install_path% && %rvc_python_start_command%" 41 | goto :home -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Launcher/Voice_Generation/start_rvc_realtime.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :start_rvc 4 | REM Activate the alltalk environment 5 | call conda activate rvc 6 | 7 | REM Start RVC with desired configurations 8 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% RVC launched in a new window. 9 | start cmd /k "title RVC REALTIME && cd /d %rvc_install_path% && python gui_v1.py" 10 | goto :home -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Launcher/Voice_Generation/start_xtts.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :start_xtts 4 | REM Activate the xtts environment 5 | call conda activate xtts 6 | 7 | REM Start XTTS 8 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% XTTS launched in a new window. 9 | 10 | REM Read modules-xtts and find the xtts_start_command line 11 | set "xtts_start_command=" 12 | 13 | for /F "tokens=*" %%a in ('findstr /I "xtts_start_command=" "%xtts_modules_path%"') do ( 14 | set "%%a" 15 | ) 16 | 17 | 18 | if not defined xtts_start_command ( 19 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] No modules enabled.%reset% 20 | echo %red_bg%Please make sure you enabled at least one of the modules from Edit XTTS Modules.%reset% 21 | echo. 22 | echo %blue_bg%We will redirect you to the Edit XTTS Modules menu.%reset% 23 | pause 24 | set "caller=editor_image_generation" 25 | if exist "%editor_voice_generation_dir%\edit_xtts_modules.bat" ( 26 | call %editor_voice_generation_dir%\edit_xtts_modules.bat 27 | goto :home 28 | ) else ( 29 | echo [%DATE% %TIME%] ERROR: edit_xtts_modules.bat not found in: editor_voice_generation_dir% >> %logs_stl_console_path% 30 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] edit_xtts_modules.bat not found in: %editor_voice_generation_dir%%reset% 31 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Running Automatic Repair... 32 | git pull 33 | pause 34 | goto :home 35 | ) 36 | ) 37 | 38 | 39 | set "xtts_start_command=%xtts_start_command:xtts_start_command=%" 40 | start cmd /k "title XTTSv2 API Server && cd /d %xtts_install_path% && %xtts_start_command%" 41 | goto :home -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Core_Utilities/uninstall_7zip.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_7zip 4 | title STL [UNINSTALL-7ZIP] 5 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstalling 7-Zip... 6 | winget uninstall --id 7zip.7zip 7 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%7-Zip has been uninstalled successfully.%reset% 8 | pause 9 | goto :app_uninstaller_core_utilities -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Core_Utilities/uninstall_cudatoolkit.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_cudatoolkit 4 | title STL [UNINSTALL-CUDATOOLKIT] 5 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstalling CUDA Toolkit... 6 | winget uninstall --id Nvidia.CUDA 7 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%CUDA Toolkit has been uninstalled successfully.%reset% 8 | pause 9 | goto :app_uninstaller_core_utilities -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Core_Utilities/uninstall_extras.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_extras 4 | title STL [UNINSTALL EXTRAS] 5 | setlocal enabledelayedexpansion 6 | chcp 65001 > nul 7 | 8 | REM Confirm with the user before proceeding 9 | echo. 10 | echo %red_bg%╔════ DANGER ZONE ══════════════════════════════════════════════════════════════════════════════╗%reset% 11 | echo %red_bg%║ WARNING: This will delete all data of Extras ║%reset% 12 | echo %red_bg%║ If you want to keep any data, make sure to create a backup before proceeding. ║%reset% 13 | echo %red_bg%╚═══════════════════════════════════════════════════════════════════════════════════════════════╝%reset% 14 | echo. 15 | set /p "confirmation=Are you sure you want to proceed? [Y/N]: " 16 | if /i "%confirmation%"=="Y" ( 17 | 18 | REM Remove the Conda environment 19 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the Conda enviroment: %cyan_fg_strong%extras%reset% 20 | call conda deactivate 21 | call conda remove --name extras --all -y 22 | call conda clean -a -y 23 | 24 | REM Remove the folder SillyTavern-extras 25 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the SillyTavern-extras directory... 26 | cd /d "%~dp0" 27 | rmdir /s /q "%extras_install_path%" 28 | 29 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Extras has been uninstalled successfully.%reset% 30 | pause 31 | goto :app_uninstaller_core_utilities 32 | ) else ( 33 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstall canceled. 34 | pause 35 | goto :app_uninstaller_core_utilities 36 | ) -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Core_Utilities/uninstall_ffmpeg.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_ffmpeg 4 | title STL [UNINSTALL-FFMPEG] 5 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstalling ffmpeg... 6 | rmdir /s /q "%ffmpeg_install_path%" 7 | 8 | setlocal EnableDelayedExpansion 9 | rem Get the current PATH value from the registry 10 | for /f "tokens=2*" %%A in ('reg query "HKCU\Environment" /v PATH') do set "current_path=%%B" 11 | 12 | rem Remove the path from the current PATH if it exists 13 | set "new_path=!current_path:%ffmpeg_path_bin%=!" 14 | 15 | REM Update the PATH value in the registry 16 | reg add "HKCU\Environment" /v PATH /t REG_EXPAND_SZ /d "!new_path!" /f 17 | 18 | REM Update the PATH value for the current session 19 | setx PATH "!new_path!" > nul 20 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%ffmpeg removed from PATH.%reset% 21 | endlocal 22 | 23 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%ffmpeg has been uninstalled successfully.%reset% 24 | goto :app_uninstaller_core_utilities -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Core_Utilities/uninstall_nodejs.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_nodejs 4 | title STL [UNINSTALL-NODEJS] 5 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstalling Node.js... 6 | winget uninstall --id OpenJS.NodeJS.LTS 7 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Node.js has been uninstalled successfully.%reset% 8 | goto :app_uninstaller_core_utilities -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Core_Utilities/uninstall_st.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_st 4 | title STL [UNINSTALL ST] 5 | setlocal enabledelayedexpansion 6 | chcp 65001 > nul 7 | 8 | REM Confirm with the user before proceeding 9 | echo. 10 | echo %red_bg%╔════ DANGER ZONE ══════════════════════════════════════════════════════════════════════════════╗%reset% 11 | echo %red_bg%║ WARNING: This will delete all data of SillyTavern ║%reset% 12 | echo %red_bg%║ If you want to keep any data, make sure to create a backup before proceeding. ║%reset% 13 | echo %red_bg%╚═══════════════════════════════════════════════════════════════════════════════════════════════╝%reset% 14 | echo. 15 | set /p "confirmation=Are you sure you want to proceed? [Y/N]: " 16 | if /i "%confirmation%"=="Y" ( 17 | 18 | REM Remove the folder SillyTavern 19 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the SillyTavern directory... 20 | cd /d "%~dp0" 21 | rmdir /s /q "%st_install_path%" 22 | 23 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%SillyTavern has been uninstalled successfully.%reset% 24 | pause 25 | goto :app_uninstaller_core_utilities 26 | ) else ( 27 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstall canceled. 28 | pause 29 | goto :app_uninstaller_core_utilities 30 | ) -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Core_Utilities/uninstall_tailscale.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_tailscale 4 | title STL [UNINSTALL-TAILSCALE] 5 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstalling Tailscale... 6 | winget uninstall --id tailscale.tailscale 7 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Tailscale has been uninstalled successfully.%reset% 8 | goto :app_uninstaller_core_utilities -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Core_Utilities/uninstall_vsbuildtools.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_vsbuildtools 4 | title STL [UNINSTALL-VSBUILDTOOLS] 5 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstalling Visual Studio BuildTools 2022... 6 | winget uninstall --id Microsoft.VisualStudio.2022.BuildTools 7 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Visual Studio BuildTools 2022 has been uninstalled successfully.%reset% 8 | pause 9 | goto :app_uninstaller_core_utilities -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Core_Utilities/uninstall_w64devkit.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_w64devkit 4 | title STL [UNINSTALL-VSBUILDTOOLS] 5 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstalling w64devkit... 6 | rmdir /s /q "%w64devkit_install_path%" 7 | 8 | setlocal EnableDelayedExpansion 9 | REM Get the current PATH value from the registry 10 | for /f "tokens=2*" %%A in ('reg query "HKCU\Environment" /v PATH') do set "current_path=%%B" 11 | 12 | REM Remove the path from the current PATH if it exists 13 | set "new_path=!current_path:%w64devkit_path_bin%=!" 14 | 15 | REM Update the PATH value in the registry 16 | reg add "HKCU\Environment" /v PATH /t REG_EXPAND_SZ /d "!new_path!" /f 17 | 18 | REM Update the PATH value for the current session 19 | setx PATH "!new_path!" > nul 20 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%w64devkit removed from PATH.%reset% 21 | endlocal 22 | 23 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%w64devkit has been uninstalled successfully.%reset% 24 | pause 25 | goto :app_uninstaller_core_utilities -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Core_Utilities/uninstall_yq.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_yq 4 | title STL [UNINSTALL-YQ] 5 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstalling yq... 6 | winget uninstall --id MikeFarah.yq 7 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%yq has been uninstalled successfully.%reset% 8 | pause 9 | goto :app_uninstaller_core_utilities -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Image_Generation/uninstall_comfyui.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_comfyui 4 | title STL [UNINSTALL COMFYUI] 5 | setlocal enabledelayedexpansion 6 | chcp 65001 > nul 7 | 8 | REM Confirm with the user before proceeding 9 | echo. 10 | echo %red_bg%╔════ DANGER ZONE ══════════════════════════════════════════════════════════════════════════════╗%reset% 11 | echo %red_bg%║ WARNING: This will delete all data of ComfyUI ║%reset% 12 | echo %red_bg%║ If you want to keep any data, make sure to create a backup before proceeding. ║%reset% 13 | echo %red_bg%╚═══════════════════════════════════════════════════════════════════════════════════════════════╝%reset% 14 | echo. 15 | set /p "confirmation=Are you sure you want to proceed? [Y/N]: " 16 | if /i "%confirmation%"=="Y" ( 17 | 18 | REM Remove the Conda environment 19 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the Conda enviroment: %cyan_fg_strong%comfyui%reset% 20 | call conda deactivate 21 | call conda remove --name comfyui --all -y 22 | call conda clean -a -y 23 | 24 | REM Remove the folder ComfyUI 25 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the ComfyUI directory... 26 | cd /d "%~dp0" 27 | rmdir /s /q "%comfyui_install_path%" 28 | 29 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%ComfyUI has been uninstalled successfully.%reset% 30 | pause 31 | goto :app_uninstaller_image_generation 32 | ) else ( 33 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstall canceled. 34 | pause 35 | goto :app_uninstaller_image_generation 36 | ) -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Image_Generation/uninstall_fooocus.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_fooocus 4 | title STL [UNINSTALL FOOOCUS] 5 | setlocal enabledelayedexpansion 6 | chcp 65001 > nul 7 | 8 | REM Confirm with the user before proceeding 9 | echo. 10 | echo %red_bg%╔════ DANGER ZONE ══════════════════════════════════════════════════════════════════════════════╗%reset% 11 | echo %red_bg%║ WARNING: This will delete all data of Fooocus ║%reset% 12 | echo %red_bg%║ If you want to keep any data, make sure to create a backup before proceeding. ║%reset% 13 | echo %red_bg%╚═══════════════════════════════════════════════════════════════════════════════════════════════╝%reset% 14 | echo. 15 | set /p "confirmation=Are you sure you want to proceed? [Y/N]: " 16 | if /i "%confirmation%"=="Y" ( 17 | 18 | REM Remove the Conda environment 19 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the Conda enviroment: %cyan_fg_strong%fooocus%reset% 20 | call conda deactivate 21 | call conda remove --name fooocus --all -y 22 | call conda clean -a -y 23 | 24 | REM Remove the folder Fooocus 25 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the Fooocus directory... 26 | cd /d "%~dp0" 27 | rmdir /s /q "%fooocus_install_path%" 28 | 29 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Fooocus has been uninstalled successfully.%reset% 30 | pause 31 | goto :app_uninstaller_image_generation 32 | ) else ( 33 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstall canceled. 34 | pause 35 | goto :app_uninstaller_image_generation 36 | ) 37 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Image_Generation/uninstall_invokeai.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_invokeai 4 | title STL [UNINSTALL INVOKEAI] 5 | setlocal enabledelayedexpansion 6 | chcp 65001 > nul 7 | 8 | REM Confirm with the user before proceeding 9 | echo. 10 | echo %red_bg%╔════ DANGER ZONE ══════════════════════════════════════════════════════════════════════════════╗%reset% 11 | echo %red_bg%║ WARNING: This will delete all data of InvokeAI ║%reset% 12 | echo %red_bg%║ If you want to keep any data, make sure to create a backup before proceeding. ║%reset% 13 | echo %red_bg%╚═══════════════════════════════════════════════════════════════════════════════════════════════╝%reset% 14 | echo. 15 | set /p "confirmation=Are you sure you want to proceed? [Y/N]: " 16 | if /i "%confirmation%"=="Y" ( 17 | 18 | REM Remove the Conda environment 19 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the Conda enviroment: %cyan_fg_strong%invokeai%reset% 20 | call conda deactivate 21 | call conda remove --name invokeai --all -y 22 | call conda clean -a -y 23 | 24 | REM Remove the folder InvokeAI 25 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the InvokeAI directory... 26 | cd /d "%~dp0" 27 | rmdir /s /q "%invokeai_install_path%" 28 | 29 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%InvokeAI has been uninstalled successfully.%reset% 30 | pause 31 | goto :app_uninstaller_image_generation 32 | ) else ( 33 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstall canceled. 34 | pause 35 | goto :app_uninstaller_image_generation 36 | ) -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Image_Generation/uninstall_ostris_aitoolkit.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_ostrisaitoolkit 4 | title STL [UNINSTALL OSTRIS AI TOOLKIT] 5 | setlocal enabledelayedexpansion 6 | chcp 65001 > nul 7 | 8 | REM Confirm with the user before proceeding 9 | echo. 10 | echo %red_bg%╔════ DANGER ZONE ══════════════════════════════════════════════════════════════════════════════╗%reset% 11 | echo %red_bg%║ WARNING: This will delete all data of Ostris AI Toolkit ║%reset% 12 | echo %red_bg%║ If you want to keep any data, make sure to create a backup before proceeding. ║%reset% 13 | echo %red_bg%╚═══════════════════════════════════════════════════════════════════════════════════════════════╝%reset% 14 | echo. 15 | set /p "confirmation=Are you sure you want to proceed? [Y/N]: " 16 | if /i "%confirmation%"=="Y" ( 17 | 18 | REM Remove the Conda environment 19 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the Conda enviroment: %cyan_fg_strong%ostrisaitoolkit%reset% 20 | call conda deactivate 21 | call conda remove --name ostrisaitoolkit --all -y 22 | call conda clean -a -y 23 | 24 | REM Remove the folder ai-toolkit 25 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the ai-toolkit directory... 26 | cd /d "%~dp0" 27 | rmdir /s /q "%ostrisaitoolkit_install_path%" 28 | 29 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Ostris AI Toolkit has been uninstalled successfully.%reset% 30 | pause 31 | goto :app_uninstaller_image_generation 32 | ) else ( 33 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstall canceled. 34 | pause 35 | goto :app_uninstaller_image_generation 36 | ) -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Image_Generation/uninstall_sdwebui.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_sdwebui 4 | title STL [UNINSTALL STABLE DIFUSSION WEBUI] 5 | setlocal enabledelayedexpansion 6 | chcp 65001 > nul 7 | 8 | REM Confirm with the user before proceeding 9 | echo. 10 | echo %red_bg%╔════ DANGER ZONE ══════════════════════════════════════════════════════════════════════════════╗%reset% 11 | echo %red_bg%║ WARNING: This will delete all data of Stable Diffusion web UI ║%reset% 12 | echo %red_bg%║ If you want to keep any data, make sure to create a backup before proceeding. ║%reset% 13 | echo %red_bg%╚═══════════════════════════════════════════════════════════════════════════════════════════════╝%reset% 14 | echo. 15 | set /p "confirmation=Are you sure you want to proceed? [Y/N]: " 16 | if /i "%confirmation%"=="Y" ( 17 | 18 | REM Remove the Conda environment 19 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the Conda enviroment: %cyan_fg_strong%sdwebui%reset% 20 | call conda deactivate 21 | call conda remove --name sdwebui --all -y 22 | call conda clean -a -y 23 | 24 | REM Remove the folder stable-diffusion-webui 25 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the stable-diffusion-webui directory... 26 | cd /d "%~dp0" 27 | rmdir /s /q "%sdwebui_install_path%" 28 | 29 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Stable Diffusion web UI has been uninstalled successfully.%reset% 30 | pause 31 | goto :app_uninstaller_image_generation 32 | ) else ( 33 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstall canceled. 34 | pause 35 | goto :app_uninstaller_image_generation 36 | ) -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Image_Generation/uninstall_sdwebuiforge.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_sdwebuiforge 4 | title STL [UNINSTALL SDWEBUI FORGE] 5 | setlocal enabledelayedexpansion 6 | chcp 65001 > nul 7 | 8 | REM Confirm with the user before proceeding 9 | echo. 10 | echo %red_bg%╔════ DANGER ZONE ══════════════════════════════════════════════════════════════════════════════╗%reset% 11 | echo %red_bg%║ WARNING: This will delete all data of Stable Diffusion web UI forge ║%reset% 12 | echo %red_bg%║ If you want to keep any data, make sure to create a backup before proceeding. ║%reset% 13 | echo %red_bg%╚═══════════════════════════════════════════════════════════════════════════════════════════════╝%reset% 14 | echo. 15 | set /p "confirmation=Are you sure you want to proceed? [Y/N]: " 16 | if /i "%confirmation%"=="Y" ( 17 | 18 | REM Remove the Conda environment 19 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the Conda enviroment: %cyan_fg_strong%sdwebuiforge%reset% 20 | call conda deactivate 21 | call conda remove --name sdwebuiforge --all -y 22 | call conda clean -a -y 23 | 24 | REM Remove the folder stable-diffusion-webui 25 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the stable-diffusion-webui-forge directory... 26 | cd /d "%~dp0" 27 | rmdir /s /q "%sdwebuiforge_install_path%" 28 | 29 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Stable Diffusion web UI forge has been uninstalled successfully.%reset% 30 | pause 31 | goto :app_uninstaller_image_generation 32 | ) else ( 33 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstall canceled. 34 | pause 35 | goto :app_uninstaller_image_generation 36 | ) -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Text_Completion/uninstall_koboldcpp.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_koboldcpp 4 | title STL [UNINSTALL KOBOLDCPP] 5 | setlocal enabledelayedexpansion 6 | chcp 65001 > nul 7 | 8 | REM Confirm with the user before proceeding 9 | echo. 10 | echo %red_bg%╔════ DANGER ZONE ══════════════════════════════════════════════════════════════════════════════╗%reset% 11 | echo %red_bg%║ WARNING: This will delete all data of koboldcpp ║%reset% 12 | echo %red_bg%║ If you want to keep any data, make sure to create a backup before proceeding. ║%reset% 13 | echo %red_bg%╚═══════════════════════════════════════════════════════════════════════════════════════════════╝%reset% 14 | echo. 15 | set /p "confirmation=Are you sure you want to proceed? [Y/N]: " 16 | if /i "%confirmation%"=="Y" ( 17 | 18 | REM Remove the Conda environment 19 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the Conda enviroment: %cyan_fg_strong%koboldcpp%reset% 20 | call conda deactivate 21 | call conda remove --name koboldcpp --all -y 22 | call conda clean -a -y 23 | 24 | REM Remove the folder koboldcpp 25 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the koboldcpp directory... 26 | cd /d "%~dp0" 27 | rmdir /s /q "%koboldcpp_install_path%" 28 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the w64devkit directory... 29 | rmdir /s /q "%w64devkit_install_path%" 30 | 31 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%koboldcpp has been uninstalled successfully.%reset% 32 | pause 33 | goto :app_uninstaller_text_completion 34 | ) else ( 35 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstall canceled. 36 | pause 37 | goto :app_uninstaller_text_completion 38 | ) 39 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Text_Completion/uninstall_llamacpp.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_llamacpp 4 | title STL [UNINSTALL LLAMACPP] 5 | setlocal enabledelayedexpansion 6 | chcp 65001 > nul 7 | 8 | REM Confirm with the user before proceeding 9 | echo. 10 | echo %red_bg%╔════ DANGER ZONE ══════════════════════════════════════════════════════════════════════════════╗%reset% 11 | echo %red_bg%║ WARNING: This will delete all data of llamacpp ║%reset% 12 | echo %red_bg%║ If you want to keep any data, make sure to create a backup before proceeding. ║%reset% 13 | echo %red_bg%╚═══════════════════════════════════════════════════════════════════════════════════════════════╝%reset% 14 | echo. 15 | set /p "confirmation=Are you sure you want to proceed? [Y/N]: " 16 | if /i "%confirmation%"=="Y" ( 17 | 18 | REM Remove the folder 19 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the llamacpp directory... 20 | cd /d "%~dp0" 21 | rmdir /s /q "%llamacpp_install_path%" 22 | 23 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%llamacpp has been uninstalled successfully.%reset% 24 | pause 25 | goto :app_uninstaller_text_completion 26 | ) else ( 27 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstall canceled. 28 | pause 29 | goto :app_uninstaller_text_completion 30 | ) -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Text_Completion/uninstall_ooba.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_ooba 4 | title STL [UNINSTALL OOBABOOGA] 5 | setlocal enabledelayedexpansion 6 | chcp 65001 > nul 7 | 8 | REM Confirm with the user before proceeding 9 | echo. 10 | echo %red_bg%╔════ DANGER ZONE ══════════════════════════════════════════════════════════════════════════════╗%reset% 11 | echo %red_bg%║ WARNING: This will delete all data of Text generation web UI oobabooga ║%reset% 12 | echo %red_bg%║ If you want to keep any data, make sure to create a backup before proceeding. ║%reset% 13 | echo %red_bg%╚═══════════════════════════════════════════════════════════════════════════════════════════════╝%reset% 14 | echo. 15 | set /p "confirmation=Are you sure you want to proceed? [Y/N]: " 16 | if /i "%confirmation%"=="Y" ( 17 | 18 | REM Remove the folder text-generation-webui 19 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the text-generation-webui directory... 20 | cd /d "%~dp0" 21 | rmdir /s /q "%ooba_install_path%" 22 | 23 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Text generation web UI oobabooga has been uninstalled successfully.%reset% 24 | pause 25 | goto :app_uninstaller_text_completion 26 | ) else ( 27 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstall canceled. 28 | pause 29 | goto :app_uninstaller_text_completion 30 | ) -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Text_Completion/uninstall_tabbyapi.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_tabbyapi 4 | title STL [UNINSTALL TABBYAPI] 5 | setlocal enabledelayedexpansion 6 | chcp 65001 > nul 7 | 8 | REM Confirm with the user before proceeding 9 | echo. 10 | echo %red_bg%╔════ DANGER ZONE ══════════════════════════════════════════════════════════════════════════════╗%reset% 11 | echo %red_bg%║ WARNING: This will delete all data of TabbyAPI ║%reset% 12 | echo %red_bg%║ If you want to keep any data, make sure to create a backup before proceeding. ║%reset% 13 | echo %red_bg%╚═══════════════════════════════════════════════════════════════════════════════════════════════╝%reset% 14 | echo. 15 | set /p "confirmation=Are you sure you want to proceed? [Y/N]: " 16 | if /i "%confirmation%"=="Y" ( 17 | 18 | REM Remove the Conda environment 19 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the Conda enviroment: %cyan_fg_strong%tabbyapi%reset% 20 | call conda deactivate 21 | call conda remove --name tabbyapi --all -y 22 | call conda clean -a -y 23 | 24 | REM Remove the folder tabbyAPI 25 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the tabbyAPI directory... 26 | cd /d "%~dp0" 27 | rmdir /s /q "%tabbyapi_install_path%" 28 | 29 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%TabbyAPI has been uninstalled successfully.%reset% 30 | pause 31 | goto :app_uninstaller_text_completion 32 | ) else ( 33 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstall canceled. 34 | pause 35 | goto :app_uninstaller_text_completion 36 | ) -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Voice_Generation/uninstall_alltalk.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_alltalk 4 | title STL [UNINSTALL ALLTALK] 5 | setlocal enabledelayedexpansion 6 | chcp 65001 > nul 7 | 8 | REM Confirm with the user before proceeding 9 | echo. 10 | echo %red_bg%╔════ DANGER ZONE ══════════════════════════════════════════════════════════════════════════════╗%reset% 11 | echo %red_bg%║ WARNING: This will delete all data of AllTalk ║%reset% 12 | echo %red_bg%║ If you want to keep any data, make sure to create a backup before proceeding. ║%reset% 13 | echo %red_bg%╚═══════════════════════════════════════════════════════════════════════════════════════════════╝%reset% 14 | echo. 15 | set /p "confirmation=Are you sure you want to proceed? [Y/N]: " 16 | if /i "%confirmation%"=="Y" ( 17 | 18 | REM Remove the Conda environment 19 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the Conda enviroment: %cyan_fg_strong%alltalk%reset% 20 | call conda deactivate 21 | call conda remove --name alltalk --all -y 22 | call conda clean -a -y 23 | 24 | REM Remove the folder 25 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the alltalk directory... 26 | cd /d "%~dp0" 27 | rmdir /s /q "%alltalk_install_path%" 28 | 29 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%AllTalk has been uninstalled successfully.%reset% 30 | pause 31 | goto :app_uninstaller_voice_generation 32 | ) else ( 33 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstall canceled. 34 | pause 35 | goto :app_uninstaller_voice_generation 36 | ) -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Voice_Generation/uninstall_alltalk_v2.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_alltalk_v2 4 | title STL [UNINSTALL ALLTALK V2] 5 | setlocal enabledelayedexpansion 6 | chcp 65001 > nul 7 | 8 | REM Confirm with the user before proceeding 9 | echo. 10 | echo %red_bg%╔════ DANGER ZONE ══════════════════════════════════════════════════════════════════════════════╗%reset% 11 | echo %red_bg%║ WARNING: This will delete all data of AllTalk V2 ║%reset% 12 | echo %red_bg%║ If you want to keep any data, make sure to create a backup before proceeding. ║%reset% 13 | echo %red_bg%╚═══════════════════════════════════════════════════════════════════════════════════════════════╝%reset% 14 | echo. 15 | set /p "confirmation=Are you sure you want to proceed? [Y/N]: " 16 | if /i "%confirmation%"=="Y" ( 17 | 18 | REM Remove the Conda environment 19 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the Conda enviroment: %cyan_fg_strong%alltalk%reset% 20 | call conda deactivate 21 | call conda remove --name alltalkv2 --all -y 22 | call conda clean -a -y 23 | 24 | REM Remove the folder 25 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the alltalk directory... 26 | cd /d "%~dp0" 27 | rmdir /s /q "%alltalk_v2_install_path%" 28 | 29 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%AllTalk V2 has been uninstalled successfully.%reset% 30 | pause 31 | goto :app_uninstaller_voice_generation 32 | ) else ( 33 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstall canceled. 34 | pause 35 | goto :app_uninstaller_voice_generation 36 | ) -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Voice_Generation/uninstall_rvc.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_rvc 4 | title STL [UNINSTALL RVC] 5 | setlocal enabledelayedexpansion 6 | chcp 65001 > nul 7 | 8 | REM Confirm with the user before proceeding 9 | echo. 10 | echo %red_bg%╔════ DANGER ZONE ══════════════════════════════════════════════════════════════════════════════╗%reset% 11 | echo %red_bg%║ WARNING: This will delete all data of RVC ║%reset% 12 | echo %red_bg%║ If you want to keep any data, make sure to create a backup before proceeding. ║%reset% 13 | echo %red_bg%╚═══════════════════════════════════════════════════════════════════════════════════════════════╝%reset% 14 | echo. 15 | set /p "confirmation=Are you sure you want to proceed? [Y/N]: " 16 | if /i "%confirmation%"=="Y" ( 17 | 18 | REM Remove the Conda environment 19 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the Conda enviroment: %cyan_fg_strong%rvc%reset% 20 | call conda deactivate 21 | call conda remove --name rvc --all -y 22 | call conda clean -a -y 23 | 24 | REM Remove the folder 25 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the Retrieval-based-Voice-Conversion-WebUI directory... 26 | cd /d "%~dp0" 27 | rmdir /s /q "%rvc_install_path%" 28 | 29 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%RVC has been uninstalled successfully.%reset% 30 | pause 31 | goto :app_uninstaller_voice_generation 32 | ) else ( 33 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstall canceled. 34 | pause 35 | goto :app_uninstaller_voice_generation 36 | ) -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Voice_Generation/uninstall_rvc_python.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_rvc_python 4 | title STL [UNINSTALL RVC-PYTHON] 5 | setlocal enabledelayedexpansion 6 | chcp 65001 > nul 7 | 8 | REM Confirm with the user before proceeding 9 | echo. 10 | echo %red_bg%╔════ DANGER ZONE ══════════════════════════════════════════════════════════════════════════════╗%reset% 11 | echo %red_bg%║ WARNING: This will delete all data of RVC-Python ║%reset% 12 | echo %red_bg%║ If you want to keep any data, make sure to create a backup before proceeding. ║%reset% 13 | echo %red_bg%╚═══════════════════════════════════════════════════════════════════════════════════════════════╝%reset% 14 | echo. 15 | set /p "confirmation=Are you sure you want to proceed? [Y/N]: " 16 | if /i "%confirmation%"=="Y" ( 17 | 18 | REM Remove the Conda environment 19 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the Conda enviroment: %cyan_fg_strong%rvc%reset% 20 | call conda deactivate 21 | call conda remove --name rvcpython --all -y 22 | call conda clean -a -y 23 | 24 | REM Remove the folder 25 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the rvc-python directory... 26 | cd /d "%~dp0" 27 | rmdir /s /q "%rvc_python_install_path%" 28 | 29 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%rvc-python has been uninstalled successfully.%reset% 30 | pause 31 | goto :app_uninstaller_voice_generation 32 | ) else ( 33 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstall canceled. 34 | pause 35 | goto :app_uninstaller_voice_generation 36 | ) -------------------------------------------------------------------------------- /bin/functions/Toolbox/App_Uninstaller/Voice_Generation/uninstall_xtts.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :uninstall_xtts 4 | title STL [UNINSTALL XTTS] 5 | setlocal enabledelayedexpansion 6 | chcp 65001 > nul 7 | 8 | REM Confirm with the user before proceeding 9 | echo. 10 | echo %red_bg%╔════ DANGER ZONE ══════════════════════════════════════════════════════════════════════════════╗%reset% 11 | echo %red_bg%║ WARNING: This will delete all data of XTTS ║%reset% 12 | echo %red_bg%║ If you want to keep any data, make sure to create a backup before proceeding. ║%reset% 13 | echo %red_bg%╚═══════════════════════════════════════════════════════════════════════════════════════════════╝%reset% 14 | echo. 15 | set /p "confirmation=Are you sure you want to proceed? [Y/N]: " 16 | if /i "%confirmation%"=="Y" ( 17 | 18 | REM Remove the Conda environment 19 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the Conda enviroment: %cyan_fg_strong%xtts%reset% 20 | call conda deactivate 21 | call conda remove --name xtts --all -y 22 | call conda clean -a -y 23 | 24 | REM Remove the folder 25 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing the xtts directory... 26 | cd /d "%~dp0" 27 | rmdir /s /q "%xtts_install_path%" 28 | 29 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%XTTS has been uninstalled successfully.%reset% 30 | pause 31 | goto :app_uninstaller_voice_generation 32 | ) else ( 33 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Uninstall canceled. 34 | pause 35 | goto :app_uninstaller_voice_generation 36 | ) -------------------------------------------------------------------------------- /bin/functions/Toolbox/Backup/create_backup.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | setlocal 3 | 4 | :create_backup 5 | title STL [CREATE BACKUP] 6 | cls 7 | echo %blue_fg_strong%/ Home / Toolbox / Backup / Create Backup%reset% 8 | echo --------------------------------------------------------------- 9 | 10 | REM Scan for user folders 11 | set "user_folders=" 12 | for /d %%d in ("%st_install_path%\data\*") do ( 13 | if /i not "%%~nxd"=="_storage" if /i not "%%~nxd"=="_uploads" ( 14 | set "user_folders=!user_folders!%%~nxd|" 15 | ) 16 | ) 17 | 18 | echo Detected accounts: 19 | echo ================================ 20 | REM Remove the trailing pipe character 21 | set "user_folders=%user_folders:~0,-1%" 22 | 23 | REM Split user_folders into an array 24 | set i=1 25 | set "user_count=0" 26 | for %%a in (%user_folders:|= %) do ( 27 | echo !i!. %cyan_fg_strong%%%a%reset% 28 | set "user_folder_!i!=%%a" 29 | set /a i+=1 30 | set /a user_count+=1 31 | ) 32 | echo ================================ 33 | 34 | REM If only one user folder is found, skip the selection 35 | if %user_count%==1 ( 36 | set "selected_user_folder=!user_folder_1!" 37 | goto skip_user_selection 38 | ) 39 | 40 | :select_user_folder 41 | REM Prompt user to select a folder 42 | echo 0. Cancel 43 | echo. 44 | set "selected_user_folder=" 45 | set /p user_choice="Select a folder to backup: " 46 | 47 | REM Check if the user wants to exit 48 | if "%user_choice%"=="0" ( 49 | exit /b 0 50 | ) 51 | 52 | REM Get the selected folder name 53 | for /l %%i in (1,1,%user_count%) do ( 54 | if "%user_choice%"=="%%i" set "selected_user_folder=!user_folder_%%i!" 55 | ) 56 | 57 | if "%selected_user_folder%"=="" ( 58 | echo %red_fg_strong%[ERROR] Invalid selection. Please enter a number between 1 and %user_count%, or press 0 to cancel.%reset% 59 | pause 60 | goto :create_backup 61 | ) 62 | 63 | :skip_user_selection 64 | REM Replace backslashes with double backslashes in st_install_path 65 | set "escaped_st_install_path=%st_install_path:\=\\%" 66 | 67 | REM Prompt user for custom name 68 | set "use_custom_name=N" 69 | set "custom_name=" 70 | set /p rename_choice="Give backup file a custom name? (Default is st_backup_DATE_TIME.7z) [Y/N]: " 71 | if /i "%rename_choice%"=="Y" ( 72 | set "use_custom_name=Y" 73 | set /p custom_name="Enter custom name for backup file (without extension): " 74 | ) else if "%rename_choice%"=="" ( 75 | set "use_custom_name=N" 76 | ) 77 | 78 | REM Get current date and time components 79 | for /f "tokens=2-4 delims=/ " %%a in ('echo %date%') do ( 80 | set "day=%%a" 81 | set "month=%%b" 82 | set "year=%%c" 83 | ) 84 | 85 | for /f "tokens=1-2 delims=:. " %%a in ('echo %time%') do ( 86 | set "hour=%%a" 87 | set "minute=%%b" 88 | ) 89 | 90 | REM Format the date and time 91 | set "formatted_date=%year%-%month%-%day%_%hour%-%minute%" 92 | 93 | REM Determine the backup file name 94 | if "%use_custom_name%"=="Y" ( 95 | set "backup_filename=st_backup_%custom_name%.7z" 96 | ) else ( 97 | set "backup_filename=st_backup_%formatted_date%.7z" 98 | ) 99 | 100 | REM Create a backup using 7zip 101 | 7z a "%st_backup_path%\%backup_filename%" "%st_install_path%\data\%selected_user_folder%\*" 102 | 103 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%Backup created at %st_backup_path%\%backup_filename%%reset% 104 | 105 | pause 106 | endlocal 107 | 108 | if "%caller%"=="home" ( 109 | exit /b 1 110 | ) else ( 111 | exit /b 0 112 | ) 113 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/Backup/restore_backup.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :restore_backup 4 | title STL [RESTORE BACKUP] 5 | cls 6 | echo %blue_fg_strong%^| ^> / Home / Toolbox / Backup / Restore Backup ^|%reset% 7 | echo %blue_fg_strong% ==============================================================%reset% 8 | echo. 9 | echo +==== Available backups ==================+ 10 | setlocal enabledelayedexpansion 11 | set "backup_count=0" 12 | 13 | for %%F in ("%st_backup_path%\st_backup_*.7z") do ( 14 | set /a "backup_count+=1" 15 | set "backup_files[!backup_count!]=%%~nF" 16 | echo !backup_count!. %cyan_fg_strong%%%~nF%reset% 17 | ) 18 | echo +=========================================+ 19 | echo %cyan_fg_strong% ______________________________________________________________%reset% 20 | echo %cyan_fg_strong%^| Menu Options: ^|%reset% 21 | echo 0. Cancel 22 | echo. 23 | echo %cyan_fg_strong% ______________________________________________________________%reset% 24 | echo %cyan_fg_strong%^| ^|%reset% 25 | set /p "restore_choice=%BS% Select backup to restore: " 26 | 27 | if "%restore_choice%"=="0" goto :backup 28 | 29 | if "%restore_choice%" geq "1" ( 30 | if "%restore_choice%" leq "%backup_count%" ( 31 | set "selected_backup=!backup_files[%restore_choice%]!" 32 | echo Restoring backup !selected_backup!... 33 | REM Extract the contents of the "data" folder directly into the existing "data" folder 34 | 7z x "%st_backup_path%\!selected_backup!.7z" -o"temp" -aoa 35 | xcopy /y /e "temp\data\*" "%st_install_path%\data\" 36 | rmdir /s /q "temp" 37 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%!selected_backup! restored successfully.%reset% 38 | ) else ( 39 | echo [%DATE% %TIME%] %log_invalidinput% >> %logs_stl_console_path% 40 | echo %red_bg%[%time%]%reset% %echo_invalidinput% 41 | ) 42 | ) else ( 43 | echo [%DATE% %TIME%] %log_invalidinput% >> %logs_stl_console_path% 44 | echo %red_bg%[%time%]%reset% %echo_invalidinput% 45 | ) 46 | 47 | pause 48 | 49 | if "%caller%"=="home" ( 50 | exit /b 1 51 | ) else ( 52 | exit /b 0 53 | ) -------------------------------------------------------------------------------- /bin/functions/Toolbox/Editor/Core_Utilities/edit_env_var.bat: -------------------------------------------------------------------------------- 1 | :edit_env_var 2 | start "" rundll32.exe sysdm.cpl,EditEnvironmentVariables 3 | goto :editor_core_utilities -------------------------------------------------------------------------------- /bin/functions/Toolbox/Editor/Core_Utilities/edit_extras_modules.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | REM ############################################################ 4 | REM ############## EDIT EXTRAS MODULES - FRONTEND ############## 5 | REM ############################################################ 6 | :edit_extras_modules 7 | title STL [EDIT EXTRAS MODULES] 8 | cls 9 | echo %blue_fg_strong%/ Home / Toolbox / Editor / Edit Extras Modules%reset% 10 | echo ------------------------------------------------------------- 11 | echo Choose extras modules to enable or disable (e.g., "1 2 4" to enable Cuda, RVC, and Caption) 12 | 13 | REM Display module options with colors based on their status 14 | call :printModule "1. Cuda (--cuda)" %cuda_trigger% 15 | call :printModule "2. RVC (--enable-modules=rvc --rvc-save-file --max-content-length=1000)" %rvc_trigger% 16 | call :printModule "3. talkinghead (--enable-modules=talkinghead --talkinghead-gpu)" %talkinghead_trigger% 17 | call :printModule "4. caption (--enable-modules=caption)" %caption_trigger% 18 | call :printModule "5. summarize (--enable-modules=summarize)" %summarize_trigger% 19 | call :printModule "6. listen (--listen)" %listen_trigger% 20 | call :printModule "7. whisper (--enable-modules=whisper-stt)" %whisper_trigger% 21 | call :printModule "8. Edge-tts (--enable-modules=edge-tts)" %edge_tts_trigger% 22 | call :printModule "9. Websearch (--enable-modules=websearch)" %websearch_trigger% 23 | echo 00. Quick Start Extras 24 | echo 0. Back 25 | 26 | set "python_command=" 27 | 28 | set /p module_choices=Choose modules to enable/disable: 29 | 30 | REM Handle the user's module choices and construct the Python command 31 | for %%i in (%module_choices%) do ( 32 | if "%%i"=="1" ( 33 | if "%cuda_trigger%"=="true" ( 34 | set "cuda_trigger=false" 35 | ) else ( 36 | set "cuda_trigger=true" 37 | ) 38 | 39 | ) else if "%%i"=="2" ( 40 | if "%rvc_trigger%"=="true" ( 41 | set "rvc_trigger=false" 42 | ) else ( 43 | set "rvc_trigger=true" 44 | ) 45 | 46 | ) else if "%%i"=="3" ( 47 | if "%talkinghead_trigger%"=="true" ( 48 | set "talkinghead_trigger=false" 49 | ) else ( 50 | set "talkinghead_trigger=true" 51 | ) 52 | 53 | ) else if "%%i"=="4" ( 54 | if "%caption_trigger%"=="true" ( 55 | set "caption_trigger=false" 56 | ) else ( 57 | set "caption_trigger=true" 58 | ) 59 | 60 | ) else if "%%i"=="5" ( 61 | if "%summarize_trigger%"=="true" ( 62 | set "summarize_trigger=false" 63 | ) else ( 64 | set "summarize_trigger=true" 65 | ) 66 | ) else if "%%i"=="6" ( 67 | if "%listen_trigger%"=="true" ( 68 | set "listen_trigger=false" 69 | ) else ( 70 | set "listen_trigger=true" 71 | ) 72 | 73 | ) else if "%%i"=="7" ( 74 | if "%whisper_trigger%"=="true" ( 75 | set "whisper_trigger=false" 76 | ) else ( 77 | set "whisper_trigger=true" 78 | ) 79 | 80 | ) else if "%%i"=="8" ( 81 | if "%edge_tts_trigger%"=="true" ( 82 | set "edge_tts_trigger=false" 83 | ) else ( 84 | set "edge_tts_trigger=true" 85 | ) 86 | 87 | ) else if "%%i"=="9" ( 88 | if "%websearch_trigger%"=="true" ( 89 | set "websearch_trigger=false" 90 | ) else ( 91 | set "websearch_trigger=true" 92 | ) 93 | 94 | ) else if "%%i"=="00" ( 95 | set "caller=edit_extras_modules" 96 | if exist "%app_launcher_core_utilities_dir%\start_extras.bat" ( 97 | call %app_launcher_core_utilities_dir%\start_extras.bat 98 | goto :eof 99 | ) else ( 100 | echo "start_extras.bat not found" 101 | ) 102 | ) else if "%%i"=="0" ( 103 | goto :exit_edit_extras_modules 104 | ) 105 | ) 106 | 107 | REM Save the module flags 108 | echo cuda_trigger=%cuda_trigger%>%extras_modules_path% 109 | echo rvc_trigger=%rvc_trigger%>>%extras_modules_path% 110 | echo talkinghead_trigger=%talkinghead_trigger%>>%extras_modules_path% 111 | echo caption_trigger=%caption_trigger%>>%extras_modules_path% 112 | echo summarize_trigger=%summarize_trigger%>>%extras_modules_path% 113 | echo listen_trigger=%listen_trigger%>>%extras_modules_path% 114 | echo whisper_trigger=%whisper_trigger%>>%extras_modules_path% 115 | echo edge_tts_trigger=%edge_tts_trigger%>>%extras_modules_path% 116 | echo websearch_trigger=%websearch_trigger%>>%extras_modules_path% 117 | 118 | 119 | REM remove modules_enable 120 | set "modules_enable=" 121 | 122 | REM Compile the Python command 123 | set "python_command=python server.py" 124 | if "%listen_trigger%"=="true" ( 125 | set "python_command=%python_command% --listen" 126 | ) 127 | if "%cuda_trigger%"=="true" ( 128 | set "python_command=%python_command% --cuda" 129 | ) 130 | if "%rvc_trigger%"=="true" ( 131 | set "python_command=%python_command% --rvc-save-file --max-content-length=1000" 132 | set "modules_enable=%modules_enable%rvc," 133 | ) 134 | if "%talkinghead_trigger%"=="true" ( 135 | set "python_command=%python_command% --talkinghead-gpu" 136 | set "modules_enable=%modules_enable%talkinghead," 137 | ) 138 | if "%caption_trigger%"=="true" ( 139 | set "modules_enable=%modules_enable%caption," 140 | ) 141 | if "%summarize_trigger%"=="true" ( 142 | set "modules_enable=%modules_enable%summarize," 143 | ) 144 | if "%whisper_trigger%"=="true" ( 145 | set "modules_enable=%modules_enable%whisper-stt," 146 | ) 147 | if "%edge_tts_trigger%"=="true" ( 148 | set "modules_enable=%modules_enable%edge-tts," 149 | ) 150 | if "%websearch_trigger%"=="true" ( 151 | set "modules_enable=%modules_enable%websearch," 152 | ) 153 | 154 | REM is modules_enable empty? 155 | if defined modules_enable ( 156 | REM remove last comma 157 | set "modules_enable=%modules_enable:~0,-1%" 158 | ) 159 | 160 | REM command completed 161 | if defined modules_enable ( 162 | set "python_command=%python_command% --enable-modules=%modules_enable%" 163 | ) 164 | 165 | REM Save the constructed Python command to modules-extras for testing 166 | echo extras_start_command=%python_command%>>%extras_modules_path% 167 | goto :edit_extras_modules 168 | 169 | REM Function to print module options with color based on their status 170 | :printModule 171 | if "%2"=="true" ( 172 | echo %green_fg_strong%%1 [Enabled]%reset% 173 | ) else ( 174 | echo %red_fg_strong%%1 [Disabled]%reset% 175 | ) 176 | exit /b 177 | 178 | :exit_edit_extras_modules 179 | goto :editor_core_utilities -------------------------------------------------------------------------------- /bin/functions/Toolbox/Editor/Core_Utilities/edit_st_config.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :edit_st_config 4 | start "" "%st_install_path%\config.yaml" 5 | goto :editor_core_utilities -------------------------------------------------------------------------------- /bin/functions/Toolbox/Editor/Image_Generation/edit_comfyui_modules.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | REM ############################################################ 4 | REM ############## EDIT COMFYUI MODULES - FRONTEND ############# 5 | REM ############################################################ 6 | :edit_comfyui_modules 7 | title STL [EDIT COMFYUI MODULES] 8 | cls 9 | echo %blue_fg_strong%/ Home / Toolbox / Editor / Image Generation / Edit comfyui Modules%reset% 10 | echo ------------------------------------------------------------- 11 | echo Choose comfyui modules to enable or disable (e.g., "2 3 5" to enable port, listen, and medvram) 12 | 13 | REM Display module options with colors based on their status 14 | call :printModule "1. Disable Auto Launch (--disable-auto-launch)" %comfyui_disableautolaunch_trigger% 15 | call :printModule "2. Port (--port 7969)" %comfyui_port_trigger% 16 | call :printModule "3. Listen (--listen)" %comfyui_listen_trigger% 17 | call :printModule "4. Low VRAM (--lowvram)" %comfyui_lowvram_trigger% 18 | call :printModule "5. Med VRAM (--medvram)" %comfyui_medvram_trigger% 19 | call :printModule "6. Use CPU Only (--cpu)" %comfyui_cpu_trigger% 20 | echo 00. Quick Start ComfyUI 21 | echo 0. Back 22 | 23 | set "python_command=" 24 | 25 | set /p comfyui_module_choices=Choose modules to enable/disable: 26 | 27 | REM Handle the user's module choices and construct the Python command 28 | for %%i in (%comfyui_module_choices%) do ( 29 | if "%%i"=="1" ( 30 | if "%comfyui_disableautolaunch_trigger%"=="true" ( 31 | set "comfyui_disableautolaunch_trigger=false" 32 | ) else ( 33 | set "comfyui_disableautolaunch_trigger=true" 34 | ) 35 | 36 | ) else if "%%i"=="2" ( 37 | if "%comfyui_port_trigger%"=="true" ( 38 | set "comfyui_port_trigger=false" 39 | ) else ( 40 | set "comfyui_port_trigger=true" 41 | ) 42 | 43 | ) else if "%%i"=="3" ( 44 | if "%comfyui_listen_trigger%"=="true" ( 45 | set "comfyui_listen_trigger=false" 46 | ) else ( 47 | set "comfyui_listen_trigger=true" 48 | ) 49 | 50 | 51 | ) else if "%%i"=="4" ( 52 | if "%comfyui_lowvram_trigger%"=="true" ( 53 | set "comfyui_lowvram_trigger=false" 54 | ) else ( 55 | set "comfyui_lowvram_trigger=true" 56 | ) 57 | 58 | ) else if "%%i"=="5" ( 59 | if "%comfyui_medvram_trigger%"=="true" ( 60 | set "comfyui_medvram_trigger=false" 61 | ) else ( 62 | set "comfyui_medvram_trigger=true" 63 | ) 64 | 65 | ) else if "%%i"=="6" ( 66 | if "%comfyui_cpu_trigger%"=="true" ( 67 | set "comfyui_cpu_trigger=false" 68 | ) else ( 69 | set "comfyui_cpu_trigger=true" 70 | ) 71 | 72 | ) else if "%%i"=="00" ( 73 | set "caller=app_launcher_image_generation" 74 | if exist "%app_launcher_image_generation_dir%\start_comfyui.bat" ( 75 | call %app_launcher_image_generation_dir%\start_comfyui.bat 76 | goto :home 77 | ) else ( 78 | echo [%DATE% %TIME%] ERROR: start_comfyui.bat not found in: app_launcher_image_generation_dir% >> %logs_stl_console_path% 79 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] start_comfyui.bat not found in: %app_launcher_image_generation_dir%%reset% 80 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Running Automatic Repair... 81 | git pull 82 | pause 83 | goto :edit_comfyui_modules 84 | ) 85 | 86 | ) else if "%%i"=="0" ( 87 | goto :editor_image_generation 88 | ) 89 | ) 90 | 91 | REM Save the module flags to modules-comfyui 92 | echo comfyui_disableautolaunch_trigger=%comfyui_disableautolaunch_trigger%>%comfyui_modules_path% 93 | echo comfyui_port_trigger=%comfyui_port_trigger%>>%comfyui_modules_path% 94 | echo comfyui_listen_trigger=%comfyui_listen_trigger%>>%comfyui_modules_path% 95 | echo comfyui_lowvram_trigger=%comfyui_lowvram_trigger%>>%comfyui_modules_path% 96 | echo comfyui_medvram_trigger=%comfyui_medvram_trigger%>>%comfyui_modules_path% 97 | echo comfyui_cpu_trigger=%comfyui_cpu_trigger%>>%comfyui_modules_path% 98 | 99 | REM remove modules_enable 100 | set "modules_enable=" 101 | 102 | REM Compile the Python command 103 | set "python_command=python main.py" 104 | if "%comfyui_disableautolaunch_trigger%"=="true" ( 105 | set "python_command=%python_command% --disable-auto-launch" 106 | ) 107 | 108 | 109 | if "%comfyui_port_trigger%"=="true" ( 110 | set "python_command=%python_command% --port 7969" 111 | ) 112 | 113 | if "%comfyui_listen_trigger%"=="true" ( 114 | set "python_command=%python_command% --listen" 115 | ) 116 | 117 | if "%comfyui_lowvram_trigger%"=="true" ( 118 | set "python_command=%python_command% --lowvram" 119 | ) 120 | 121 | if "%comfyui_medvram_trigger%"=="true" ( 122 | set "python_command=%python_command% --medvram" 123 | ) 124 | 125 | if "%comfyui_cpu_trigger%"=="true" ( 126 | set "python_command=%python_command% --cpu" 127 | ) 128 | 129 | REM is modules_enable empty? 130 | if defined modules_enable ( 131 | REM remove last comma 132 | set "modules_enable=%modules_enable:~0,-1%" 133 | ) 134 | 135 | REM command completed 136 | if defined modules_enable ( 137 | set "python_command=%python_command% --enable-modules=%modules_enable%" 138 | ) 139 | 140 | REM Save the constructed Python command to modules-comfyui for testing 141 | echo comfyui_start_command=%python_command%>>%comfyui_modules_path% 142 | goto :edit_comfyui_modules 143 | 144 | REM Function to print module options with color based on their status 145 | :printModule 146 | if "%2"=="true" ( 147 | echo %green_fg_strong%%1 [Enabled]%reset% 148 | ) else ( 149 | echo %red_fg_strong%%1 [Disabled]%reset% 150 | ) 151 | exit /b 152 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/Editor/Image_Generation/edit_fooocus_modules.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :edit_fooocus_modules 4 | echo COMING SOON 5 | pause 6 | goto :editor_image_generation 7 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/Editor/Text_Completion/edit_koboldcpp_modules.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :edit_koboldcpp_modules 4 | echo COMING SOON 5 | pause 6 | goto :editor_text_completion -------------------------------------------------------------------------------- /bin/functions/Toolbox/Editor/Text_Completion/edit_ooba_modules.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | REM ############################################################ 4 | REM ############## EDIT OOBA MODULES - FRONTEND ################ 5 | REM ############################################################ 6 | :edit_ooba_modules 7 | title STL [EDIT OOBA MODULES] 8 | cls 9 | echo %blue_fg_strong%/ Home / Toolbox / Editor / Text Completion / Edit OOBA Modules%reset% 10 | echo ------------------------------------------------------------- 11 | echo Choose OOBA modules to enable or disable (e.g., "1 2 4" to enable extensions openai, listen, and api-port) 12 | 13 | 14 | 15 | REM Display module options with colors based on their status 16 | call :printModule "1. extensions openai (--extensions openai)" %ooba_extopenai_trigger% 17 | call :printModule "2. listen (--listen)" %ooba_listen_trigger% 18 | call :printModule "3. listen-port (--listen-port 7910)" %ooba_listenport_trigger% 19 | call :printModule "4. api-port (--api-port 7911)" %ooba_apiport_trigger% 20 | call :printModule "5. autolaunch (--autolaunch)" %ooba_autolaunch_trigger% 21 | call :printModule "6. verbose (--verbose)" %ooba_verbose_trigger% 22 | 23 | echo 00. Quick Start Text generation web UI oobabooga 24 | echo 0. Back 25 | 26 | set "python_command=" 27 | 28 | set /p ooba_module_choices=Choose modules to enable/disable: 29 | 30 | REM Handle the user's module choices and construct the Python command 31 | for %%i in (%ooba_module_choices%) do ( 32 | if "%%i"=="1" ( 33 | if "%ooba_extopenai_trigger%"=="true" ( 34 | set "ooba_extopenai_trigger=false" 35 | ) else ( 36 | set "ooba_extopenai_trigger=true" 37 | ) 38 | 39 | ) else if "%%i"=="2" ( 40 | if "%ooba_listen_trigger%"=="true" ( 41 | set "ooba_listen_trigger=false" 42 | ) else ( 43 | set "ooba_listen_trigger=true" 44 | ) 45 | 46 | ) else if "%%i"=="3" ( 47 | if "%ooba_listenport_trigger%"=="true" ( 48 | set "ooba_listenport_trigger=false" 49 | ) else ( 50 | set "ooba_listenport_trigger=true" 51 | ) 52 | 53 | ) else if "%%i"=="4" ( 54 | if "%ooba_apiport_trigger%"=="true" ( 55 | set "ooba_apiport_trigger=false" 56 | ) else ( 57 | set "ooba_apiport_trigger=true" 58 | ) 59 | 60 | ) else if "%%i"=="5" ( 61 | if "%ooba_autolaunch_trigger%"=="true" ( 62 | set "ooba_autolaunch_trigger=false" 63 | ) else ( 64 | set "ooba_autolaunch_trigger=true" 65 | ) 66 | ) else if "%%i"=="6" ( 67 | if "%ooba_verbose_trigger%"=="true" ( 68 | set "ooba_verbose_trigger=false" 69 | ) else ( 70 | set "ooba_verbose_trigger=true" 71 | ) 72 | 73 | ) else if "%%i"=="00" ( 74 | goto :start_ooba 75 | 76 | ) else if "%%i"=="0" ( 77 | goto :editor_text_completion 78 | ) 79 | ) 80 | 81 | REM Save the module flags to modules-ooba 82 | echo ooba_extopenai_trigger=%ooba_extopenai_trigger%>%ooba_modules_path% 83 | echo ooba_listen_trigger=%ooba_listen_trigger%>>%ooba_modules_path% 84 | echo ooba_listenport_trigger=%ooba_listenport_trigger%>>%ooba_modules_path% 85 | echo ooba_apiport_trigger=%ooba_apiport_trigger%>>%ooba_modules_path% 86 | echo ooba_autolaunch_trigger=%ooba_autolaunch_trigger%>>%ooba_modules_path% 87 | echo ooba_verbose_trigger=%ooba_verbose_trigger%>>%ooba_modules_path% 88 | 89 | 90 | REM remove modules_enable 91 | set "modules_enable=" 92 | 93 | REM Compile the Python command 94 | set "python_command=start start_windows.bat" 95 | if "%ooba_extopenai_trigger%"=="true" ( 96 | set "python_command=%python_command% --extensions openai" 97 | ) 98 | if "%ooba_listen_trigger%"=="true" ( 99 | set "python_command=%python_command% --listen" 100 | ) 101 | if "%ooba_listenport_trigger%"=="true" ( 102 | set "python_command=%python_command% --listen-port 7910" 103 | ) 104 | if "%ooba_apiport_trigger%"=="true" ( 105 | set "python_command=%python_command% --api-port 7911" 106 | ) 107 | if "%ooba_autolaunch_trigger%"=="true" ( 108 | set "python_command=%python_command% --auto-launch" 109 | ) 110 | if "%ooba_verbose_trigger%"=="true" ( 111 | set "python_command=%python_command% --verbose" 112 | ) 113 | 114 | 115 | REM is modules_enable empty? 116 | if defined modules_enable ( 117 | REM remove last comma 118 | set "modules_enable=%modules_enable:~0,-1%" 119 | ) 120 | 121 | REM command completed 122 | if defined modules_enable ( 123 | set "python_command=%python_command% --enable-modules=%modules_enable%" 124 | ) 125 | 126 | REM Save the constructed Python command to modules-ooba for testing 127 | echo ooba_start_command=%python_command%>>%ooba_modules_path% 128 | goto :edit_ooba_modules 129 | 130 | REM Function to print module options with color based on their status 131 | :printModule 132 | if "%2"=="true" ( 133 | echo %green_fg_strong%%1 [Enabled]%reset% 134 | ) else ( 135 | echo %red_fg_strong%%1 [Disabled]%reset% 136 | ) 137 | exit /b -------------------------------------------------------------------------------- /bin/functions/Toolbox/Editor/Voice_Generation/edit_rvc_python_modules.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | REM ############################################################ 4 | REM ############## EDIT rvc-python MODULES - FRONTEND ########## 5 | REM ############################################################ 6 | :edit_rvc_python_modules 7 | title STL [EDIT RVC-PYTHON MODULES] 8 | cls 9 | echo %blue_fg_strong%/ Home / Toolbox / Editor / Voice Generation / Edit RVC-PYTHON Modules%reset% 10 | echo ------------------------------------------------------------- 11 | echo Choose RVC modules to enable or disable (e.g., "1 2 4" to enable CUDA, Harvest, and Preload Model) 12 | 13 | REM Display module options with colors based on their status 14 | call :printModule "1. CUDA (--device cuda:0)" %rvc_python_cuda_trigger% 15 | call :printModule "2. Harvest Method (--method harvest)" %rvc_python_harvest_trigger% 16 | call :printModule "3. Listen (--listen)" %rvc_python_listen_trigger% 17 | call :printModule "4. Preload Model (--preload-model)" %rvc_python_preload_trigger% 18 | echo 00. Quick Start RVC-Python 19 | echo 0. Back 20 | 21 | set "python_command=" 22 | 23 | set /p rvc_python_module_choices=Choose modules to enable/disable: 24 | 25 | REM Handle the user's module choices and construct the Python command 26 | for %%i in (%rvc_python_module_choices%) do ( 27 | if "%%i"=="1" ( 28 | if "%rvc_python_cuda_trigger%"=="true" ( 29 | set "rvc_python_cuda_trigger=false" 30 | ) else ( 31 | set "rvc_python_cuda_trigger=true" 32 | ) 33 | 34 | ) else if "%%i"=="2" ( 35 | if "%rvc_python_harvest_trigger%"=="true" ( 36 | set "rvc_python_harvest_trigger=false" 37 | ) else ( 38 | set "rvc_python_harvest_trigger=true" 39 | ) 40 | 41 | ) else if "%%i"=="3" ( 42 | if "%rvc_python_listen_trigger%"=="true" ( 43 | set "rvc_python_listen_trigger=false" 44 | ) else ( 45 | set "rvc_python_listen_trigger=true" 46 | ) 47 | 48 | ) else if "%%i"=="4" ( 49 | if "%rvc_python_preload_trigger%"=="true" ( 50 | set "rvc_python_preload_trigger=false" 51 | ) else ( 52 | set "rvc_python_preload_trigger=true" 53 | ) 54 | 55 | ) else if "%%i"=="00" ( 56 | set "caller=app_launcher_voice_generation" 57 | if exist "%app_launcher_voice_generation_dir%\start_rvc_python.bat" ( 58 | call %app_launcher_voice_generation_dir%\start_rvc_python.bat 59 | goto :home 60 | ) else ( 61 | echo [%DATE% %TIME%] ERROR: start_rvc_python.bat not found in: app_launcher_voice_generation_dir% >> %logs_stl_console_path% 62 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] start_rvc_python.bat not found in: %app_launcher_voice_generation_dir%%reset% 63 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Running Automatic Repair... 64 | git pull 65 | pause 66 | goto :edit_rvc_python_modules 67 | ) 68 | 69 | ) else if "%%i"=="0" ( 70 | goto :editor_voice_generation 71 | ) 72 | ) 73 | 74 | REM Save the module flags to rvc-python 75 | echo rvc_python_cuda_trigger=%rvc_python_cuda_trigger%>%rvc_python_modules_path% 76 | echo rvc_python_harvest_trigger=%rvc_python_harvest_trigger%>>%rvc_python_modules_path% 77 | echo rvc_python_listen_trigger=%rvc_python_listen_trigger%>>%rvc_python_modules_path% 78 | echo rvc_python_preload_trigger=%rvc_python_preload_trigger%>>%rvc_python_modules_path% 79 | 80 | REM remove modules_enable 81 | set "modules_enable=" 82 | 83 | REM Compile the Python command (default to API mode; adjust for CLI if needed) 84 | set "python_command=python -m rvc_python api" 85 | if "%rvc_python_cuda_trigger%"=="true" ( 86 | set "python_command=%python_command% --device cuda:0" 87 | ) else ( 88 | set "python_command=%python_command% --device cpu" 89 | ) 90 | if "%rvc_python_harvest_trigger%"=="true" ( 91 | set "python_command=%python_command% --method harvest" 92 | ) 93 | if "%rvc_python_listen_trigger%"=="true" ( 94 | set "python_command=%python_command% --listen" 95 | ) 96 | if "%rvc_python_preload_trigger%"=="true" ( 97 | set "python_command=%python_command% --preload-model default_model.pth" 98 | ) 99 | 100 | REM is modules_enable empty? 101 | if defined modules_enable ( 102 | REM remove last comma 103 | set "modules_enable=%modules_enable:~0,-1%" 104 | ) 105 | 106 | REM command completed 107 | if defined modules_enable ( 108 | set "python_command=%python_command% --enable-modules=%modules_enable%" 109 | ) 110 | 111 | REM Save the constructed Python command to rvc-python for testing 112 | echo rvc_python_start_command=%python_command%>>%rvc_python_modules_path% 113 | goto :edit_rvc_python_modules 114 | 115 | REM Function to print module options with color based on their status 116 | :printModule 117 | if "%2"=="true" ( 118 | echo %green_fg_strong%%1 [Enabled]%reset% 119 | ) else ( 120 | echo %red_fg_strong%%1 [Disabled]%reset% 121 | ) 122 | exit /b 123 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/Editor/Voice_Generation/edit_xtts_modules.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | REM ############################################################ 4 | REM ############## EDIT XTTS MODULES - FRONTEND ################ 5 | REM ############################################################ 6 | :edit_xtts_modules 7 | title STL [EDIT XTTS MODULES] 8 | cls 9 | echo %blue_fg_strong%/ Home / Toolbox / Editor / Edit XTTS Modules%reset% 10 | echo ------------------------------------------------------------- 11 | echo Choose XTTS modules to enable or disable (e.g., "1 2 4" to enable Cuda, hs, and cache) 12 | 13 | REM Display module options with colors based on their status 14 | call :printModule "1. cuda (--device cuda)" %xtts_cuda_trigger% 15 | call :printModule "2. hs (-hs 0.0.0.0)" %xtts_hs_trigger% 16 | call :printModule "3. deepspeed (--deepspeed)" %xtts_deepspeed_trigger% 17 | call :printModule "4. cache (--use-cache)" %xtts_cache_trigger% 18 | call :printModule "5. listen (--listen)" %xtts_listen_trigger% 19 | call :printModule "6. model (--model-source local)" %xtts_model_trigger% 20 | echo 00. Quick Start XTTS 21 | echo 0. Back 22 | 23 | set "python_command=" 24 | 25 | set /p xtts_module_choices=Choose modules to enable/disable: 26 | 27 | REM Handle the user's module choices and construct the Python command 28 | for %%i in (%xtts_module_choices%) do ( 29 | if "%%i"=="1" ( 30 | if "%xtts_cuda_trigger%"=="true" ( 31 | set "xtts_cuda_trigger=false" 32 | ) else ( 33 | set "xtts_cuda_trigger=true" 34 | ) 35 | 36 | ) else if "%%i"=="2" ( 37 | if "%xtts_hs_trigger%"=="true" ( 38 | set "xtts_hs_trigger=false" 39 | ) else ( 40 | set "xtts_hs_trigger=true" 41 | ) 42 | 43 | ) else if "%%i"=="3" ( 44 | if "%xtts_deepspeed_trigger%"=="true" ( 45 | set "xtts_deepspeed_trigger=false" 46 | ) else ( 47 | set "xtts_deepspeed_trigger=true" 48 | ) 49 | 50 | ) else if "%%i"=="4" ( 51 | if "%xtts_cache_trigger%"=="true" ( 52 | set "xtts_cache_trigger=false" 53 | ) else ( 54 | set "xtts_cache_trigger=true" 55 | ) 56 | 57 | ) else if "%%i"=="5" ( 58 | if "%xtts_listen_trigger%"=="true" ( 59 | set "xtts_listen_trigger=false" 60 | ) else ( 61 | set "xtts_listen_trigger=true" 62 | ) 63 | ) else if "%%i"=="6" ( 64 | if "%xtts_model_trigger%"=="true" ( 65 | set "xtts_model_trigger=false" 66 | ) else ( 67 | set "xtts_model_trigger=true" 68 | ) 69 | 70 | ) else if "%%i"=="00" ( 71 | goto :start_xtts 72 | 73 | ) else if "%%i"=="0" ( 74 | goto :editor_voice_generation 75 | ) 76 | ) 77 | 78 | REM Save the module flags to modules-xtts 79 | echo xtts_cuda_trigger=%xtts_cuda_trigger%>%xtts_modules_path% 80 | echo xtts_hs_trigger=%xtts_hs_trigger%>>%xtts_modules_path% 81 | echo xtts_deepspeed_trigger=%xtts_deepspeed_trigger%>>%xtts_modules_path% 82 | echo xtts_cache_trigger=%xtts_cache_trigger%>>%xtts_modules_path% 83 | echo xtts_listen_trigger=%xtts_listen_trigger%>>%xtts_modules_path% 84 | echo xtts_model_trigger=%xtts_model_trigger%>>%xtts_modules_path% 85 | 86 | REM remove modules_enable 87 | set "modules_enable=" 88 | 89 | REM Compile the Python command 90 | set "python_command=python -m xtts_api_server" 91 | if "%xtts_cuda_trigger%"=="true" ( 92 | set "python_command=%python_command% --device cuda" 93 | ) 94 | if "%xtts_hs_trigger%"=="true" ( 95 | set "python_command=%python_command% -hs 0.0.0.0" 96 | ) 97 | if "%xtts_deepspeed_trigger%"=="true" ( 98 | set "python_command=%python_command% --deepspeed" 99 | ) 100 | if "%xtts_cache_trigger%"=="true" ( 101 | set "python_command=%python_command% --use-cache" 102 | ) 103 | if "%xtts_listen_trigger%"=="true" ( 104 | set "python_command=%python_command% --listen" 105 | ) 106 | if "%xtts_model_trigger%"=="true" ( 107 | set "python_command=%python_command% --model-source local" 108 | ) 109 | 110 | REM is modules_enable empty? 111 | if defined modules_enable ( 112 | REM remove last comma 113 | set "modules_enable=%modules_enable:~0,-1%" 114 | ) 115 | 116 | REM command completed 117 | if defined modules_enable ( 118 | set "python_command=%python_command% --enable-modules=%modules_enable%" 119 | ) 120 | 121 | REM Save the constructed Python command to modules-xtts for testing 122 | echo xtts_start_command=%python_command%>>%xtts_modules_path% 123 | goto :edit_xtts_modules 124 | 125 | REM Function to print module options with color based on their status 126 | :printModule 127 | if "%2"=="true" ( 128 | echo %green_fg_strong%%1 [Enabled]%reset% 129 | ) else ( 130 | echo %red_fg_strong%%1 [Disabled]%reset% 131 | ) 132 | exit /b -------------------------------------------------------------------------------- /bin/functions/Toolbox/Troubleshooting/Support/discord.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | REM ############################################################ 4 | REM ############## DISCORD SERVERS - FRONTEND ################## 5 | REM ############################################################ 6 | :discord_servers_menu 7 | title STL [DISCORD SERVERS] 8 | cls 9 | echo %blue_fg_strong%^| ^> / Home / Troubleshooting ^& Support / Discord Servers ^|%reset% 10 | echo %blue_fg_strong% ==============================================================%reset% 11 | echo 1. Join SillyTavern 12 | echo %cyan_fg_strong% ______________________________________________________________%reset% 13 | echo %cyan_fg_strong%^| Discord - LLM Backends: ^|%reset% 14 | echo 2. Join TabbyAPI 15 | echo 3. Join KoboldAI 16 | echo 4. Join Text Generation WEBUI ooba 17 | echo %cyan_fg_strong% ______________________________________________________________%reset% 18 | echo %cyan_fg_strong%^| Discord - Cloud API: ^|%reset% 19 | echo 5. Join Mancer 20 | echo 6. Join OpenRouter 21 | echo 7. Join AI Horde 22 | echo %cyan_fg_strong% ______________________________________________________________%reset% 23 | echo %cyan_fg_strong%^| Discord - Model Devs ^& Research: ^|%reset% 24 | echo 8. Join TheBloke 25 | echo 9. Join PygmalionAI 26 | echo 10. Join Nous Research 27 | echo 11. Join RWKV 28 | echo 12. Join EleutherAI 29 | echo %cyan_fg_strong% ______________________________________________________________%reset% 30 | echo %cyan_fg_strong%^| Menu Options: ^|%reset% 31 | echo 0. Back 32 | 33 | echo %cyan_fg_strong% ______________________________________________________________%reset% 34 | echo %cyan_fg_strong%^| ^|%reset% 35 | 36 | REM Set the prompt with spaces 37 | set /p "discord_servers_choice=%BS% Choose Your Destiny: " 38 | 39 | 40 | REM ############## UPDATE MANAGER - BACKEND #################### 41 | if "%discord_servers_choice%"=="1" ( 42 | call :discord_sillytavern 43 | ) else if "%discord_servers_choice%"=="2" ( 44 | call :discord_tabbyapi 45 | ) else if "%discord_servers_choice%"=="3" ( 46 | call :discord_koboldai 47 | ) else if "%discord_servers_choice%"=="4" ( 48 | call :discord_textgenwebuiooba 49 | ) else if "%discord_servers_choice%"=="5" ( 50 | call :discord_mancer 51 | ) else if "%discord_servers_choice%"=="6" ( 52 | call :discord_openrouter 53 | ) else if "%discord_servers_choice%"=="7" ( 54 | call :discord_aihorde 55 | ) else if "%discord_servers_choice%"=="8" ( 56 | call :discord_thebloke 57 | ) else if "%discord_servers_choice%"=="9" ( 58 | call :discord_pygmalionai 59 | ) else if "%discord_servers_choice%"=="10" ( 60 | call :discord_nousresearch 61 | ) else if "%discord_servers_choice%"=="11" ( 62 | call :discord_rwkv 63 | ) else if "%discord_servers_choice%"=="12" ( 64 | call :discord_eleutherai 65 | ) else if "%discord_servers_choice%"=="0" ( 66 | goto :exit_discord_servers_menu 67 | ) else ( 68 | echo [%DATE% %TIME%] %log_invalidinput% >> %logs_stl_console_path% 69 | echo %red_bg%[%time%]%reset% %echo_invalidinput% 70 | pause 71 | ) 72 | 73 | goto :discord_servers_menu 74 | 75 | 76 | :discord_sillytavern 77 | start "" "https://discord.gg/sillytavern" 78 | goto :eof 79 | 80 | :discord_tabbyapi 81 | start "" "https://discord.gg/sYQxnuD7Fj" 82 | goto :eof 83 | 84 | :discord_koboldai 85 | start "" "https://discord.gg/UCyXV7NssH" 86 | goto :eof 87 | 88 | :discord_textgenwebuiooba 89 | start "" "https://discord.gg/jwZCF2dPQN" 90 | goto :eof 91 | 92 | :discord_mancer 93 | start "" "https://discord.gg/6DZaU9Gv9F" 94 | goto :eof 95 | 96 | :discord_openrouter 97 | start "" "https://discord.gg/H9tjZYgauh" 98 | goto :eof 99 | 100 | :discord_aihorde 101 | start "" "https://discord.gg/3DxrhksKzn" 102 | goto :eof 103 | 104 | :discord_thebloke 105 | start "" "https://discord.gg/Jq4vkcDakD" 106 | goto :eof 107 | 108 | :discord_pygmalionai 109 | start "" "https://discord.gg/pygmalionai" 110 | goto :eof 111 | 112 | :discord_nousresearch 113 | start "" "https://discord.gg/jqVphNsB4H" 114 | goto :eof 115 | 116 | :discord_rwkv 117 | start "" "https://discord.gg/bDSBUMeFpc" 118 | goto :eof 119 | 120 | :discord_eleutherai 121 | start "" "https://discord.gg/zBGx3azzUn" 122 | goto :eof 123 | 124 | :exit_discord_servers_menu 125 | goto :troubleshooting 126 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/Troubleshooting/detect_vpn.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | REM This script detects if a VPN is active by checking network adapters using netsh. 3 | 4 | REM Initialize variables 5 | set "vpnDetected=false" 6 | setlocal enabledelayedexpansion 7 | 8 | REM Create a troubleshooting log 9 | set "logfile=%log_dir%\troubleshooting_vpn_detection.log" 10 | echo Troubleshooting VPN detection log > "%logfile%" 11 | echo ================================== >> "%logfile%" 12 | netsh interface show interface >> "%logfile%" 13 | echo ================================== >> "%logfile%" 14 | 15 | REM Loop through netsh output and check for active VPN adapters 16 | for /f "skip=3 tokens=1,2,3,4,* delims= " %%a in ('netsh interface show interface') do ( 17 | set "adminState=%%a" 18 | set "state=%%b" 19 | set "type=%%c" 20 | set "name=%%d %%e %%f" 21 | 22 | REM Only check connected interfaces 23 | if /i "!state!"=="Connected" ( 24 | echo Checking interface: !name! >> "%logfile%" 25 | if /i "!name:VPN=!" NEQ "!name!" ( 26 | set "vpnDetected=true" 27 | echo Detected VPN adapter: !name! >> "%logfile%" 28 | goto :vpn_found 29 | ) 30 | if /i "!name:Virtual Private=!" NEQ "!name!" ( 31 | set "vpnDetected=true" 32 | echo Detected VPN adapter: !name! >> "%logfile%" 33 | goto :vpn_found 34 | ) 35 | if /i "!name:TAP-Windows Adapter V9=!" NEQ "!name!" ( 36 | set "vpnDetected=true" 37 | echo Detected VPN adapter: !name! >> "%logfile%" 38 | goto :vpn_found 39 | ) 40 | if /i "!name:WireGuard Tunnel=!" NEQ "!name!" ( 41 | set "vpnDetected=true" 42 | echo Detected VPN adapter: !name! >> "%logfile%" 43 | goto :vpn_found 44 | ) 45 | if /i "!name:Mullvad=!" NEQ "!name!" ( 46 | set "vpnDetected=true" 47 | echo Detected VPN adapter: !name! >> "%logfile%" 48 | goto :vpn_found 49 | ) 50 | if /i "!name:OpenVPN Wintun=!" NEQ "!name!" ( 51 | set "vpnDetected=true" 52 | echo Detected VPN adapter: !name! >> "%logfile%" 53 | goto :vpn_found 54 | ) 55 | if /i "!name:ProtonVPN=!" NEQ "!name!" ( 56 | set "vpnDetected=true" 57 | echo Detected VPN adapter: !name! >> "%logfile%" 58 | goto :vpn_found 59 | ) 60 | if /i "!name:TunnelBear=!" NEQ "!name!" ( 61 | set "vpnDetected=true" 62 | echo Detected VPN adapter: !name! >> "%logfile%" 63 | goto :vpn_found 64 | ) 65 | if /i "!name:ExpressVPN=!" NEQ "!name!" ( 66 | set "vpnDetected=true" 67 | echo Detected VPN adapter: !name! >> "%logfile%" 68 | goto :vpn_found 69 | ) 70 | if /i "!name:SurfShark=!" NEQ "!name!" ( 71 | set "vpnDetected=true" 72 | echo Detected VPN adapter: !name! >> "%logfile%" 73 | goto :vpn_found 74 | ) 75 | ) 76 | ) 77 | 78 | :vpn_found 79 | if "%vpnDetected%"=="true" ( 80 | echo VPN Status: %yellow_fg_strong%VPN detected. Local IP access and NodeJS install issues possible.%reset% 81 | ) else ( 82 | echo VPN Status: %green_fg_strong%No VPN detected.%reset% 83 | ) 84 | 85 | endlocal 86 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/Troubleshooting/export_dxdiag.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :export_dxdiag 4 | REM Create the logs folder if it doesn't exist 5 | if not exist "%log_dir%" ( 6 | mkdir "%log_dir%" 7 | ) 8 | 9 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Exporting DirectX Diagnostic Tool information... 10 | dxdiag /t "%log_dir%\dxdiag_info.txt" 11 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%You can find the dxdiag_info.txt at: "%log_dir%\dxdiag_info.txt"%reset% 12 | pause 13 | 14 | if "%caller%"=="home" ( 15 | exit /b 1 16 | ) else ( 17 | exit /b 0 18 | ) 19 | 20 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/Troubleshooting/fetch_st_version.js: -------------------------------------------------------------------------------- 1 | const { getVersion } = require('./util.js'); 2 | 3 | getVersion().then(version => { 4 | console.log(JSON.stringify(version)); 5 | }).catch(err => { 6 | console.error('Error getting version:', err); 7 | }); 8 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/Troubleshooting/fetch_title.js: -------------------------------------------------------------------------------- 1 | var x = new ActiveXObject("Microsoft.XMLHTTP"); 2 | var url = WScript.Arguments(0); 3 | var timeout = 5000; // 5 seconds timeout 4 | var startTime = new Date().getTime(); 5 | 6 | x.open("GET", url, false); 7 | x.setRequestHeader('User-Agent', 'XMLHTTP/1.0'); 8 | 9 | try { 10 | x.send(''); 11 | while (x.readyState != 4) { 12 | if (new Date().getTime() - startTime > timeout) { 13 | throw new Error("Request timed out"); 14 | } 15 | WScript.Sleep(50); 16 | } 17 | 18 | if (x.status == 200) { 19 | var responseText = x.responseText; 20 | var matches = responseText.match(/<title>(.*?)<\/title>/i); 21 | if (matches && matches[1]) { 22 | WScript.Echo(matches[1]); 23 | } else { 24 | WScript.Echo("Title tag not found"); 25 | } 26 | } else if (x.status == 404) { 27 | WScript.Echo("No User Accessible Web Application running on port, May be an API (404 Not Found)"); 28 | } else { 29 | WScript.Echo("HTTP Error: " + x.status); 30 | } 31 | } catch (e) { 32 | WScript.Echo(e.message); 33 | } 34 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/Troubleshooting/find_app_port.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | REM Function to find and display the application using the specified port 4 | :find_app_port 5 | cls 6 | setlocal EnableDelayedExpansion 7 | 8 | if "%~1"=="" ( 9 | set /p port_choice="(0 to cancel)Insert port number: " 10 | ) else ( 11 | set "port_choice=%~1" 12 | ) 13 | 14 | if "%port_choice%"=="0" goto :troubleshooting 15 | 16 | REM Check if the input is a number 17 | set "valid=true" 18 | for /f "delims=0123456789" %%i in ("!port_choice!") do set "valid=false" 19 | if "!valid!"=="false" ( 20 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Invalid input: Not a number.%reset% 21 | pause 22 | goto :troubleshooting 23 | ) 24 | 25 | REM Check if the port is within range 26 | if !port_choice! gtr 65535 ( 27 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Port out of range. There are only 65,535 possible port numbers.%reset% 28 | echo [0-1023]: These ports are reserved for system services or commonly used protocols. 29 | echo [1024-49151]: These ports can be used by user processes or applications. 30 | echo [49152-65535]: These ports are available for use by any application or service on the system. 31 | pause 32 | goto :troubleshooting 33 | ) 34 | 35 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Searching for application using port: !port_choice!... 36 | for /f "tokens=5" %%a in ('netstat -aon ^| findstr /r "\<!port_choice!\>"') do ( 37 | set pid=%%a 38 | ) 39 | 40 | if defined pid ( 41 | for /f "tokens=2*" %%b in ('tasklist /fi "PID eq !pid!" /fo list ^| find "Image Name"') do ( 42 | set app_name=%%c 43 | echo Application Name: %cyan_fg_strong%!app_name!%reset% 44 | echo PID of Port !port_choice!: %cyan_fg_strong%!pid!%reset% 45 | 46 | REM Fetch the page title for the specified port 47 | call :fetch_page_title !port_choice! 48 | if defined PAGE_TITLE ( 49 | echo Title of Application: %cyan_fg_strong%!PAGE_TITLE!%reset% 50 | ) else ( 51 | echo %yellow_bg%[%time%]%reset% %yellow_fg_strong%[WARN]%reset% Could not retrieve page title. 52 | ) 53 | ) 54 | ) else ( 55 | echo %yellow_bg%[%time%]%reset% %yellow_fg_strong%[WARN]%reset% Port: !port_choice! not found. 56 | ) 57 | endlocal 58 | pause 59 | goto :port_exit 60 | 61 | :fetch_page_title 62 | setlocal 63 | set "PORT=%1" 64 | set "URL=http://localhost:%PORT%" 65 | 66 | REM Use JScript to fetch and parse the title 67 | for /f "delims=" %%I in ('cscript /nologo "%troubleshooting_dir%\fetch_title.js" "%URL%"') do ( 68 | set "PAGE_TITLE=%%I" 69 | ) 70 | 71 | endlocal & set "PAGE_TITLE=%PAGE_TITLE%" 72 | goto :EOF 73 | 74 | :port_exit 75 | if "%caller%"=="home" ( 76 | exit /b 1 77 | ) else ( 78 | exit /b 0 79 | ) 80 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/Troubleshooting/fix_github_conflicts.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :fix_github_conflicts 4 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Trying to resolve unresolved conflicts in the working directory or unmerged files... 5 | cd /d "%st_install_path%" 6 | git merge --abort 7 | git reset --hard 8 | git pull --rebase --autostash 9 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Done. 10 | pause 11 | 12 | if "%caller%"=="home" ( 13 | exit /b 1 14 | ) else ( 15 | exit /b 0 16 | ) 17 | 18 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/Troubleshooting/gpu_info.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | REM Initialize variables 4 | setlocal enabledelayedexpansion 5 | set /a iteration=0 6 | set /a last_VRAM=0 7 | set "last_GPU=Unknown" 8 | set "GPU_name=Unknown" 9 | set "VRAM=Unknown" 10 | set "primary_gpu_found=false" 11 | 12 | REM Detect GPU and store name, excluding integrated GPUs if discrete GPUs are found 13 | for /f "tokens=*" %%f in ('powershell -Command "Get-CimInstance Win32_VideoController | Select-Object -ExpandProperty Name"') do ( 14 | REM If GPU name is blank, set it; else, if it is not blank and does not equal the current value of f, 15 | REM move gpu name to last_gpu and set gpu_name to the new value. 16 | if /i "!GPU_name!" equ "" ( 17 | set "GPU_name=%%f" 18 | ) else if "!GPU_name!" neq "%%f" ( 19 | set "last_GPU=!GPU_name!" 20 | set "GPU_name=%%f" 21 | ) 22 | 23 | REM Run PowerShell command to retrieve VRAM size and divide by 1GB 24 | for /f "usebackq tokens=*" %%i in (`powershell -Command "$qwMemorySize = (Get-ItemProperty -Path 'HKLM:\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0*' -Name HardwareInformation.qwMemorySize -ErrorAction SilentlyContinue).'HardwareInformation.qwMemorySize'; if ($null -ne $qwMemorySize -and $qwMemorySize -is [array]) { $qwMemorySize = [double]$qwMemorySize[!iteration!] } else { $qwMemorySize = [double]$qwMemorySize }; if ($null -ne $qwMemorySize) { [math]::Round($qwMemorySize/1GB) } else { 'Property not found' }"`) do ( 25 | set "VRAM=%%i" 26 | ) 27 | 28 | REM Iterate to move through the objects in the PowerShell script 29 | set /a iteration=!iteration!+1 30 | 31 | REM Update VRAM and GPU name only if current VRAM is greater than last_VRAM 32 | if /i !VRAM! gtr !last_VRAM! ( 33 | set /a last_VRAM=!VRAM! 34 | set "last_GPU=!GPU_name!" 35 | ) 36 | ) 37 | 38 | REM Restore the GPU name and VRAM to the one with the highest VRAM 39 | set "GPU_name=!last_GPU!" 40 | set "VRAM=!last_VRAM!" 41 | 42 | REM Display GPU name and VRAM 43 | echo GPU: %cyan_fg_strong%!GPU_name!%reset% - VRAM: %cyan_fg_strong%!VRAM!%reset% GB 44 | endlocal -------------------------------------------------------------------------------- /bin/functions/Toolbox/Troubleshooting/home_port_check.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | setlocal enabledelayedexpansion 3 | 4 | REM Set the log file 5 | set "log_file=%log_dir%\port_8000_status.txt" 6 | 7 | REM Function to check the application using port 8000 8 | :check_port_8000 9 | setlocal EnableDelayedExpansion 10 | 11 | REM Initialize variables 12 | set "port_choice=8000" 13 | set "pid=" 14 | set "app_name=" 15 | set "PAGE_TITLE=" 16 | 17 | for /f "tokens=5" %%a in ('netstat -aon ^| findstr /r "\<!port_choice!\>"') do ( 18 | set "pid=%%a" 19 | ) 20 | 21 | if defined pid ( 22 | if "!pid!" neq "0" ( 23 | for /f "tokens=2*" %%b in ('tasklist /fi "PID eq !pid!" /fo list ^| find "Image Name"') do ( 24 | set "app_name=%%c" 25 | 26 | REM Fetch the page title for the specified port 27 | call :fetch_page_title !port_choice! 28 | if "!PAGE_TITLE!"=="The server returned an invalid or unrecognized response" ( 29 | set "portStatus=Port Status: %red_fg_strong%8000 in Use: App title not found, may be using HTTPS%reset%" 30 | ) else if defined PAGE_TITLE ( 31 | set "portStatus=Port Status: %red_fg_strong%8000 in Use: !PAGE_TITLE!%reset%" 32 | ) else ( 33 | set "portStatus=Port Status: %red_fg_strong%8000 in Use: !app_name!%reset%" 34 | ) 35 | ) 36 | ) else ( 37 | set "portStatus=Port Status: %green_fg_strong%8000 not in use%reset%" 38 | ) 39 | ) else ( 40 | set "portStatus=Port Status: %green_fg_strong%8000 not in use%reset%" 41 | ) 42 | 43 | echo !portStatus! 44 | 45 | endlocal 46 | goto :EOF 47 | 48 | :fetch_page_title 49 | setlocal 50 | set "PORT=%1" 51 | 52 | REM Attempt HTTP first 53 | set "URL=http://localhost:%PORT%" 54 | 55 | for /f "delims=" %%I in ('cscript /nologo "%troubleshooting_dir%\fetch_title.js" "%URL%" 2^>^&1') do ( 56 | set "PAGE_TITLE=%%I" 57 | ) 58 | 59 | REM Log if HTTP fails and do not attempt HTTPS 60 | if "!PAGE_TITLE!"=="The server returned an invalid or unrecognized response" ( 61 | set "PAGE_TITLE=App title not found, may be using HTTPS" 62 | ) else ( 63 | if "!PAGE_TITLE!"=="The download of the specified resource has failed." ( 64 | set "PAGE_TITLE=App title not found, may be using HTTPS" 65 | ) 66 | ) 67 | 68 | REM Log if PAGE_TITLE is not retrieved 69 | if not defined PAGE_TITLE ( 70 | set "PAGE_TITLE=Could not find App Title" 71 | ) 72 | 73 | endlocal & set "PAGE_TITLE=%PAGE_TITLE%" 74 | goto :EOF 75 | 76 | REM Call the function to check port 8000 77 | call :check_port_8000 78 | 79 | pause 80 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/Troubleshooting/onboarding_flow.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :onboarding_flow 4 | title STL [ONBOARDING FLOW] 5 | cls 6 | echo %blue_fg_strong%/ Home / Toolbox / Troubleshooting / Set Onboarding Flow%reset% 7 | echo --------------------------------------------------------------- 8 | 9 | REM Scan for user folders 10 | set "user_folders=" 11 | for /d %%d in ("%st_install_path%\data\*") do ( 12 | if /i not "%%~nxd"=="_storage" if /i not "%%~nxd"=="_uploads" ( 13 | set "user_folders=!user_folders!%%~nxd|" 14 | ) 15 | ) 16 | 17 | REM Remove the trailing pipe character 18 | set "user_folders=%user_folders:~0,-1%" 19 | 20 | REM Split user_folders into an array 21 | setlocal enabledelayedexpansion 22 | set i=1 23 | set "user_count=0" 24 | for %%a in (%user_folders:|= %) do ( 25 | echo !i!. %%a 26 | set "user_folder_!i!=%%a" 27 | set /a i+=1 28 | set /a user_count+=1 29 | ) 30 | 31 | REM If only one user folder is found, skip the selection 32 | if %user_count%==1 ( 33 | set "selected_user_folder=!user_folder_1!" 34 | goto skip_user_selection 35 | ) 36 | 37 | :select_user_folder 38 | REM Prompt user to select a folder 39 | echo 0. Cancel 40 | set "selected_user_folder=" 41 | set /p user_choice="Select a folder to apply the setting: " 42 | 43 | REM Check if the user wants to exit 44 | if "%user_choice%"=="0" ( 45 | if "%caller%"=="home" ( 46 | exit /b 1 47 | ) else ( 48 | exit /b 0 49 | ) 50 | ) 51 | 52 | REM Get the selected folder name 53 | for /l %%i in (1,1,%user_count%) do ( 54 | if "%user_choice%"=="%%i" set "selected_user_folder=!user_folder_%%i!" 55 | ) 56 | 57 | if "%selected_user_folder%"=="" ( 58 | echo %red_fg_strong%[ERROR] Invalid selection. Please enter a number between 1 and %user_count%, or press 0 to cancel.%reset% 59 | pause 60 | goto :onboarding_flow 61 | ) 62 | 63 | :skip_user_selection 64 | REM Replace backslashes with double backslashes in st_install_path 65 | set "escaped_st_install_path=%st_install_path:\=\\%" 66 | 67 | REM Get the current value of the Onboarding Flow setting using Node.js 68 | for /f "tokens=*" %%i in ('node -e "const fs = require(`fs`); const path = require(`path`); const settingsPath = path.join(`%escaped_st_install_path%`, `data`, `%selected_user_folder%`, `settings.json`); const settings = JSON.parse(fs.readFileSync(settingsPath, `utf-8`)); console.log(settings.firstRun);"') do ( 69 | set "current_onboarding_value=%%i" 70 | ) 71 | 72 | echo %blue_fg_strong%[INFO]%reset% Current Onboarding Flow value is: %yellow_fg_strong% %current_onboarding_value% %reset% 73 | 74 | REM Toggle the value 75 | if /i "%current_onboarding_value%"=="true" ( 76 | set "new_onboarding_value=false" 77 | ) else ( 78 | set "new_onboarding_value=true" 79 | ) 80 | 81 | echo %blue_fg_strong%[INFO]%reset% New Onboarding Flow value will be: %green_fg_strong% %new_onboarding_value% %reset% 82 | 83 | REM Prompt for confirmation to toggle the value 84 | set /p confirm="Do you want to toggle the Onboarding Flow value to %new_onboarding_value%? (Y/N): " 85 | if /i "%confirm%"=="Y" ( 86 | REM Update settings.json in the selected user folder using Node.js 87 | node -e "const fs = require(`fs`); const path = require(`path`); const settingsPath = path.join(`%escaped_st_install_path%`, `data`, `%selected_user_folder%`, `settings.json`); const settings = JSON.parse(fs.readFileSync(settingsPath, `utf-8`)); settings.firstRun = %new_onboarding_value%; fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2)); console.log('Saving...');" 88 | echo %green_fg_strong%[INFO]%reset% Onboarding flow updated for user: %selected_user_folder% to: %green_fg_strong%%new_onboarding_value%%reset%. 89 | ) else ( 90 | echo %blue_fg_strong%[INFO]%reset% No changes made. 91 | ) 92 | 93 | pause 94 | if "%caller%"=="home" ( 95 | exit /b 1 96 | ) else ( 97 | exit /b 0 98 | ) 99 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/Troubleshooting/remove_node_modules.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :remove_node_modules 4 | cd /d "%st_install_path%" 5 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Removing node_modules folder... 6 | rmdir /s /q "node_modules" 7 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% node_modules successfully removed. 8 | pause 9 | 10 | if "%caller%"=="home" ( 11 | exit /b 1 12 | ) else ( 13 | exit /b 0 14 | ) 15 | -------------------------------------------------------------------------------- /bin/functions/Toolbox/Troubleshooting/remove_npm_cache.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :remove_npm_cache 4 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Clearing npm cache... 5 | npm cache clean --force 6 | if %errorlevel% neq 0 ( 7 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Could not clear npm cache.%reset% 8 | echo Please try again. 9 | pause 10 | goto :npm_exit 11 | ) 12 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%npm cache cleared successfully.%reset% 13 | pause 14 | 15 | :npm_exit 16 | if "%caller%"=="home" ( 17 | exit /b 1 18 | ) else ( 19 | exit /b 0 20 | ) -------------------------------------------------------------------------------- /bin/functions/Toolbox/Troubleshooting/remove_pip_cache.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :remove_pip_cache 4 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% Clearing pip cache... 5 | pip cache purge 6 | if %errorlevel% neq 0 ( 7 | echo %red_bg%[%time%]%reset% %red_fg_strong%[ERROR] Could not clear pip cache.%reset% 8 | echo Please try again. 9 | pause 10 | goto :pip_exit 11 | ) 12 | echo %blue_bg%[%time%]%reset% %blue_fg_strong%[INFO]%reset% %green_fg_strong%pip cache cleared successfully.%reset% 13 | pause 14 | 15 | :pip_exit 16 | if "%caller%"=="home" ( 17 | exit /b 1 18 | ) else ( 19 | exit /b 0 20 | ) -------------------------------------------------------------------------------- /bin/functions/Toolbox/Troubleshooting/restart_stl.bat: -------------------------------------------------------------------------------- 1 | echo Restarting launcher... 2 | timeout /t 3 3 | cd /d %stl_root% 4 | start %stl_root%Launcher.bat 5 | exit -------------------------------------------------------------------------------- /st-launcher.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SillyTavern/SillyTavern-Launcher/c61a0f1c9cc397e9d3e329d1ec063b65f2a15003/st-launcher.ico -------------------------------------------------------------------------------- /st.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SillyTavern/SillyTavern-Launcher/c61a0f1c9cc397e9d3e329d1ec063b65f2a15003/st.ico --------------------------------------------------------------------------------