如何更新 SillyTavern
在下文中找到你的操作系统,并按照说明更新 ST。
如需安装说明,请参阅安装页面。
本指南假定你已经至少安装并运行过一次 SillyTavern。
Linux/Termux 或 MacOS
你一定是通过 git 安装的,因此只需在 SillyTavern 目录中执行 git pull 即可。
cd SillyTavern进入正确的文件夹。git pull获取更新。./start.sh或bash start.sh启动 ST。
Windows
首先尝试运行位于你的 SillyTavern 安装根目录下的
UpdateAndStart.bat。
如果失败,请返回此处继续阅读。
方法 1 - GIT
我们始终推荐用户使用 git 进行安装。原因如下:
当你通过 git clone 安装后,更新所需做的全部操作就是在 ST 文件夹中打开命令行并输入 git pull。
此外,如果命令提示符出现问题(且你已安装 GitHub Desktop),你可以使用 Repository 菜单并选择 Pull。
更新会自动且安全地应用。
"救命,我最初是通过 Zip 安装的,现在想改为 Git 安装"
你选择了一条明智的道路。
由于你的安装是通过 Zip 完成的,你需要使用 git 重新安装一次。
幸好我们有关于如何操作的说明。
在你使用 git 将全新的 SillyTavern 安装到另一个不同的文件夹后,请返回本页面,并继续执行下方"Zip 更新"说明中的第 4 步。
方法 2 - ZIP
如果你坚持通过 zip 安装,以下是进行更新的繁琐流程:
- 下载新的发布版 zip。
- 将其解压到当前 ST 安装目录之外的一个文件夹中。
- 按你操作系统的常规设置流程安装 NodeJS 依赖。
-
根据需要从旧 ST 安装中复制以下文件/文件夹(*):
(*)"根据需要" = "如果你创建了与这些文件夹相关的任何自定义内容"。
从 >=1.12.0 更新
将
/data目录和config.yaml文件从一个安装复制到另一个安装。如果你有需要保留的服务器级扩展(为"所有用户"安装),还需复制/public/scripts/extensions/third-party目录。从 <1.12.0 更新到 >1.12.0
1.12.0 包含一个自动迁移流程。以下步骤仅在迁移被中断或出错时才需要执行。
- 至少运行一次更新后的服务器安装,以创建
/data/default-user目录。 -
根据需要将文件从旧
/public转移到新的/data/default-user。这些文件夹都不是必需的,因此只需复制你需要的内容。
注意:请勿复制整个 /PUBLIC/ 文件夹
这样做可能破坏新安装,并导致新功能不可用。
plaintextAssets Backgrounds Characters Chats Context Groups Group chats Instruct movingUI KoboldAI Settings NovelAI Settings OpenAI Settings QuickReplies TextGen Settings (textgen = ooba) Themes User Avatars Worlds User settings.json secrets.json <---- this one is in the base folder, not /public/ - 复制这些文件夹/文件后,将它们粘贴到新安装的 /data/default-user 文件夹中(secrets.json 放入文件夹根目录)。
- 使用适合你操作系统的方法再次启动 SillyTavern,并祈祷你操作正确。
- 如果一切显示正常,你就可以安全地删除旧的 ST 文件夹了。
常见更新问题
"There are unresolved conflicts in the working directory."
这意味着你修改了在远程仓库中已发生变更的默认文件(例如预设设置)。
要解决此问题,请在终端中运行以下命令。请谨慎使用,因为它可能造成破坏性影响。如有需要,务必先做好备份。
git merge --abort
git reset --hard
git pull --rebase --autostash
文件更改导致 git pull 失败
- 如果你修改了 SillyTavern 系统文件,
git pull可能无法正常工作。 - 有时一次更新可能需要我们更改某个重要文件,这可能导致同样的问题。
- 通常是默认预设文件或
package-lock.json。 - 这种情况下,你可以尝试将文件移动到其他文件夹(或删除该文件),然后执行
git pull。 - 另一种解决方案是使用
git pull --rebase --autostash
报错:启动服务器时出现 Error: Cannot find module "***"
- 这意味着 SillyTavern 新增了一个 npm 包依赖。
- 在 SillyTavern 目录中运行
npm install以修复此问题。所提供的 Start.bat 和 start.sh 脚本会自动执行此操作。 - 没有帮助?删除 node_modules 文件夹
Windows
rmdir /s /q node_modules
npm cache clean --force
npm install
Unix/Linux
rm -rf node_modules
npm cache clean --force
npm install
Docker
- 打开终端窗口并导航到你的 docker 目录
cd SillyTavern/docker - 使用
docker compose down删除你的容器 - 从缓存中删除 SillyTavern docker 镜像
docker rmi ghcr.io/sillytavern/sillytavern:latest(如果你的目标是 staging 分支,请将sillytavern:latest替换为sillytavern:staging。) - 使用
sudo docker compose up -d重建容器
如果一切顺利,docker 将开始重新下载镜像,你很快就能恢复运行。如果遇到任何问题,请参阅本指南的下一节。
常见更新问题
我使用 Docker,更新后我的所有数据都不见了!
你必须按照 Docker 容器迁移指南 操作 ,以为 1.12.0 中引入的新数据模型更新卷映射。
运行 docker 命令时出现 Permission denied
这是一个 Linux 问题,表明你的权限设置不正确。有两种方法可以解决:
- 简单方法:如果你的用户拥有 sudo 权限,只需在命令前加上
sudo前缀(例如:sudo docker compose down) - 正规方法:修复你的权限。这取决于你使用的 Linux 版本。网上有大量指南可帮助你解决此问题。