SillyTavern

安装

Docker

1.使用你的包管理器安装 Git

1
2
3
4
5
6
7
8
# Debian(Ubuntu/Pop! OS 等)
sudo apt install git

# Arch Linux(Manjaro/EndeavourOS 等)
sudo pacman -S git

# Fedora、Red Hat Enterprise Linux(RHEL)等
sudo dnf install git

2.克隆 SillyTavern 仓库。

1
2
3
4
5
# 发布版(稳定分支)
git clone https://github.com/SillyTavern/SillyTavern && cd SillyTavern/docker

# 预发布版(开发分支)
git clone https://github.com/SillyTavern/SillyTavern -b staging && cd SillyTavern/docker

3.在 SillyTavern/docker 文件夹中运行以下命令执行 docker compose

1
2
# 后台运行
docker compose up -d

4.执行以下 Docker 命令以获取 SillyTavern Docker 容器的 IP

1
docker network inspect docker_default

你应该会收到类似以下的输出。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
[
    {
        "Name": "docker_default",
        "IPAM": {
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        }
    }
]

记下你在 Gateway 中看到的 IP,因为这将非常重要。


5.编辑 config.yaml

1
vim config/config.yaml

找到 whitelist。你应该会看到类似以下内容。

1
2
whitelist:
    - 127.0.0.1

127.0.0.1 下方添加新的一行,并输入你从 Docker 复制的 IP。之后应该看起来类似以下内容。

1
2
3
whitelist:
    - 127.0.0.1
    - 172.18.0.1
提示
如果 Docker 是部署在服务器上,并且您计划从其他主机访问该服务器上的 Docker 服务,请确保将这些外部主机的 IP 地址加入到 whitelist 中。

6.重启 Docker 容器以应用新配置。

1
2
docker compose down
docker compose up -d

7.打开一个新的浏览器,访问 http://localhost:8000。你应该会在几秒钟内看到 SillyTavern 加载。

插件

Live2D

安装

/images/documents/SillyTavern/5.png
(图5)
/images/documents/SillyTavern/4.png
(图4)

Live2D 模型资源:


使用 docker 方式启动,将 Live2D 模型放到 SillyTavern/docker/data/账号/assets/live2d 目录下。

/images/documents/SillyTavern/6.png
(图6)

进阶设置

基本设置
/images/documents/SillyTavern/7.png
(图7)
  • Enabled:勾选此复选框以激活扩展,使您的 Live2D 模型能够在 SillyTavern 中进行交互。
  • Follow cursor:勾选此复选框以使 Live2D 模型跟随您的光标,前提是该模型支持此功能。
  • Auto-send interaction:勾选此复选框以在您点击具有映射消息的区域时自动触发角色互动
调试设置
/images/documents/SillyTavern/8.png
(图8)

这些设置帮助您控制 Live2D 模型的行为和可见性,用于调试目的。

  • 动画前重置模型:选中此复选框可在任何动画之前重新加载模型。这会强制动画开始,并允许您根据需要多次点击。某些模型可能需要此功能以确保动画从兼容状态开始。
  • 显示模型框架:选中此复选框可显示模型框架,使您更容易识别在哪里点击来拖动模型。如果有点击区域,也会显示出来。将鼠标悬停在点击区域上会显示其名称。
  • 重新加载按钮:点击此按钮可重新加载所有 live2d 模型。如果出现故障时使用。
模型设置
/images/documents/SillyTavern/9.png
(图9)
  • Model scale (模型缩放):使用滑块调整模型的大小,使其变大或变小。
  • Model center X offset (模型中心 X 偏移):使用滑块更改模型相对于窗口中心的水平位置。
  • Model center Y offset (模型中心 Y 偏移):使用滑块调整模型相对于窗口中心的垂直位置。
  • Model-Eyey offset:调整垂直方向上眼睛注视焦点(eye focus)的偏移量。这个设置允许用户指定模型在垂直方向上眼睛注视的位置,数值范围是从 0100,其中:0 表示眼睛聚焦在最顶部,100 表示眼睛聚焦在最底部,默认值为 45,这通常意味着默认情况下眼睛聚焦位置偏向中间靠上一点。
模型动画
/images/documents/SillyTavern/10.png
(图10)
  • Starter animation:从列表中选择表情和动作,这些将在与角色开始聊天时播放。如果您需要隐藏角色一段时间以达到完美效果,还可以添加延迟,在此期间模型将不可见。
  • Default Animations:从列表中选择表情和动作,这些将在角色发送消息时播放。使用分类表情扩展时使用回退动画。
备注
  1. 当您在列表中选择动画时,动画将播放。
  2. 使用重播按钮重新播放所选动画。
  3. 某些模型将表情定义为动作。
  4. 如果列表中没有显示任何内容,可能是您的模型设置文件中没有定义表情/动作。
点击区域映射
/images/documents/SillyTavern/11.png
(图11)

Default click animation (默认点击动画):从列表中选择表情和动作,这些将在您点击模型时播放。您还可以设置一条将作为用户消息发送的消息。

备注
  1. 某些模型没有点击区域,但默认点击对所有模型都有效。
  2. 如果您点击未映射的点击区域或点击任何点击区域之外,将触发默认点击。
模型说话
/images/documents/SillyTavern/12.png
(图12)
  • Param mouth open Y id (嘴部开启Y参数ID):从列表中选择对应模型嘴部 Y 值的参数 ID。并非所有模型都有,名称可能因模型而异。通常是类似 "PARAM_MOUTH_OPEN_Y""ParamMouthOpenY" 的名称。从列表中选择元素时检查模型;它会尝试运行说话动画。如果嘴巴动了,就说明选对了!
  • Mouth movement speed (嘴部移动速度):调整滑块以更改嘴部动画的移动速度。
  • Time per character (每个字符的时间):设置每个字符的持续时间。说话动画的持续时间将是此时间乘以消息的字符数
备注
  1. 当您在列表中选择动画时,动画将播放。
  2. 使用重播按钮重新播放所选动画。
  3. 某些模型将表情定义为动作。
  4. 如果列表中没有显示任何内容,可能是您的模型设置文件中没有定义表情/动作。
模型光标动画
/images/documents/SillyTavern/13.png
(图13)
  • Param Angle X (参数角度 X):用于控制模型在 X 轴方向上的角度变化。
  • Param Angle Y (参数角度 Y):用于控制模型在 Y 轴方向上的角度变化。
  • Param Angle Z (参数角度 Z):用于控制模型在 Z 轴方向上的角度变化。
  • Param Body Angle X (参数身体角度 X):用于控制模型身体在 X 轴方向上的角度变化。
  • Param Breath (参数呼吸):用于控制模型的呼吸动作,模拟自然的呼吸效果。
  • Param Eye Ball X (参数眼球 X):用于控制模型眼球在 X 轴方向上的移动,模拟眼睛水平方向的转动。
  • Param Eye Ball Y (参数眼球 Y):用于控制模型眼球在 Y 轴方向上的移动,模拟眼睛垂直方向的转动。
分类表情映射
/images/documents/SillyTavern/14.png
(图14)

Select expression:选择表情 Select motion:选择动作

admiration(赞赏)、amusement(娱乐)、anger(愤怒)、annoyance(烦恼)、approval(认可)、caring(关心)、confusion(困惑)、curiosity(好奇)、desire(欲望)、disappointment(失望)、disapproval(不赞成)、disgust(厌恶)、embarrassment(尴尬)、excitement(兴奋)、fear(恐惧)、gratitude(感激)、grief(悲伤)、joy(喜悦)、love(爱)、nervousness(紧张)、optimism(乐观)、pride(自豪)、realization(意识到)、relief(宽慰)、remorse(懊悔)、sadness(悲伤)、surprise(惊讶)、neutral(中立)

在扩展中安装 Web Search 插件。

/images/documents/SillyTavern/15.png
(图15)
/images/documents/SillyTavern/16.png
(图16)

要更自然地包含搜索结果,请用 ` 包裹搜索查询,例如:Tell me about the `latest Ryan Gosling movie`,将产生搜索查询 latest Ryan Gosling movie

疑问解答

Live2D 被聊天界面挡住

/images/documents/SillyTavern/1.png
(图1)
/images/documents/SillyTavern/2.png
(图2)

开启多用户模式

多用户模式,修改 confi.yaml 文件。

  • enableUserAccounts: true
  • enableDiscreetLogin: true
  • basicAuthMode: false

默认登录的是 default-user 用户,创建一个新的用户,假设为 admin,将 admin 的账户设为管理员权限。

登录 admin 的账户禁用 default-user 用户。

/images/documents/SillyTavern/17.png
(图17)

修改登录界面主题

login.html 放到 /public 目录下,如果是 docker 方式部署,还需要修改 docker-compose.yml 文件。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
services:
  sillytavern:
    build: ..
    container_name: sillytavern
    hostname: sillytavern
    image: ghcr.io/sillytavern/sillytavern:latest
    environment:
      - NODE_ENV=production
      - FORCE_COLOR=1
    ports:
      - "8000:8000"
    volumes:
      - "./config:/home/node/app/config"
      - "./data:/home/node/app/data"
      - "./plugins:/home/node/app/plugins"
      - "./extensions:/home/node/app/public/scripts/extensions/third-party"
      - "../public/login.html:/home/node/app/public/login.html"     # 将 login.html 挂载到容器内
    restart: unless-stopped

Docker方式部署安装新的包

我尝试将 package-lock.jsonpackage.json 挂载到容器内,没有效果。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
services:
  sillytavern:
    build: ..
    container_name: sillytavern
    hostname: sillytavern
    image: ghcr.io/sillytavern/sillytavern:latest
    environment:
      - NODE_ENV=production
      - FORCE_COLOR=1
    ports:
      - "8000:8000"
    volumes:
      - "./config:/home/node/app/config"
      - "./data:/home/node/app/data"
      - "./plugins:/home/node/app/plugins"
      - "./extensions:/home/node/app/public/scripts/extensions/third-party"
      - "../package-lock.json:/home/node/app/package-lock.json" # 挂载
      - "../package.json:/home/node/app/package.json"   # 挂载
      - "./docker-entrypoint.sh:/home/node/app/docker-entrypoint.sh"    # 挂载
    restart: unless-stopped

容器启动时会执行 docker-entrypoint.sh,修改 docker-entrypoint.sh,并 chmod 777 ./docker-entrypoint.sh 赋予权限。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#!/bin/sh

if [ ! -e "config/config.yaml" ]; then
    echo "Resource not found, copying from defaults: config.yaml"
    cp -r "default/config.yaml" "config/config.yaml"
fi

# Execute postinstall to auto-populate config.yaml with missing values
npm run postinstall

npm install xxx     # 安装新的包

# Start the server
exec node server.js --listen "$@"

在哪里可以找到旧的背景图?

下载地址:背景图

获取角色卡

社区

  • SillyTavern(Discord):酒馆官方频道,全英文社区,跟中文社区的氛围和内容有很大的区别,英语好且有兴趣了解国外酒馆发展的朋友可以留意。
  • 类脑(Discord):酒馆最大的中文社区,资源包括预设、插件、人物卡等所有与类脑相关的内容。新人必须仔细阅读新人必看文档,遵守社区公约。
  • 旅程(Discord):类脑的分部,继承了类脑绝大多数板块,分类更清晰、更简洁。由于类脑的部分板块已经关闭,因此旅程很快会逐步取代类脑的地位,成为最大的酒馆中文社区(可能)。
  • 自由AI阵线(Discord):专注于本地化模型的社区,有许多微调的模型发布,对自己的GPU有信心的,不想用在线API的,可以关注。
  • 拟人(Discord):一个独立新生社区,对新人很友好,内容也非常丰富,讲道理现在酒馆社区好像变多了,可能这就是AI发展的必然趋势吧。

人物卡:单独的人物卡获取,无需混社区。但是大部分是英文卡,自己拿 AI 翻一下开头,就可以顺利输出中文了。

  • character-tavern(Web):一个优秀的酒馆人物卡网站,无需注册,没有广告,UI优秀。
  • Chub AI(Web):同样优秀的酒馆人物卡网站,标签清晰,无需注册,没有广告

预设更新:以防止有人无法进入社区获取预设,这里提供一些长期更新的预设站点。

  • ny预设:claude和gemini的专用破限,效果不错,破限强大。

提示 “External media haas been blocked” 怎么办?

这是插图卡(卡内自带插图),你需要按照以下流程关闭一个选项。

/images/documents/SillyTavern/3.png
(图3)

提示 “clould not import characters”

这是由于您下载错角色卡导致的,请保证您下载的角色卡是角色卡,而不是封面,部分作者会将封面(无法使用)作为首楼图片,你需要保存正确的角色卡。


0%