如何更新 SillyTavern

在下文中找到你的操作系统,并按照说明更新 ST。


Linux/Termux 或 MacOS

你一定是通过 git 安装的,因此只需在 SillyTavern 目录中执行 git pull 即可。

  • cd SillyTavern 进入正确的文件夹。
  • git pull 获取更新。
  • ./start.shbash 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 安装,以下是进行更新的繁琐流程:

  1. 下载新的发布版 zip。
  2. 将其解压到当前 ST 安装目录之外的一个文件夹中。
  3. 按你操作系统的常规设置流程安装 NodeJS 依赖。
  4. 根据需要从旧 ST 安装中复制以下文件/文件夹(*):

    (*)"根据需要" = "如果你创建了与这些文件夹相关的任何自定义内容"。

    从 >=1.12.0 更新

    /data 目录和 config.yaml 文件从一个安装复制到另一个安装。如果你有需要保留的服务器级扩展(为"所有用户"安装),还需复制 /public/scripts/extensions/third-party 目录。

    从 <1.12.0 更新到 >1.12.0

    1.12.0 包含一个自动迁移流程。以下步骤仅在迁移被中断或出错时需要执行。

  5. 至少运行一次更新后的服务器安装,以创建 /data/default-user 目录。
  6. 根据需要将文件从旧 /public 转移到新的 /data/default-user

    这些文件夹都不是必需的,因此只需复制你需要的内容。

    注意:请勿复制整个 /PUBLIC/ 文件夹

    这样做可能破坏新安装,并导致新功能不可用。

    plaintext
    Assets
    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/
  7. 复制这些文件夹/文件后,将它们粘贴到新安装的 /data/default-user 文件夹中(secrets.json 放入文件夹根目录)。
  8. 使用适合你操作系统的方法再次启动 SillyTavern,并祈祷你操作正确。
  9. 如果一切显示正常,你就可以安全地删除旧的 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

  1. 打开终端窗口并导航到你的 docker 目录 cd SillyTavern/docker
  2. 使用 docker compose down 删除你的容器
  3. 从缓存中删除 SillyTavern docker 镜像 docker rmi ghcr.io/sillytavern/sillytavern:latest(如果你的目标是 staging 分支,请将 sillytavern:latest 替换为 sillytavern:staging。)
  4. 使用 sudo docker compose up -d 重建容器

如果一切顺利,docker 将开始重新下载镜像,你很快就能恢复运行。如果遇到任何问题,请参阅本指南的下一节。

常见更新问题

我使用 Docker,更新后我的所有数据都不见了!

你必须按照 Docker 容器迁移指南 操作 ,以为 1.12.0 中引入的新数据模型更新卷映射。

运行 docker 命令时出现 Permission denied

这是一个 Linux 问题,表明你的权限设置不正确。有两种方法可以解决:

  1. 简单方法:如果你的用户拥有 sudo 权限,只需在命令前加上 sudo 前缀(例如:sudo docker compose down
  2. 正规方法:修复你的权限。这取决于你使用的 Linux 版本。网上有大量指南可帮助你解决此问题。