SillyTavern 完整调优:让聊天等待从数秒降到秒内
2026/9/22 0:49:38 网站建设 项目流程

SillyTavern 完整调优:让聊天等待从数秒降到秒内

【免费下载链接】SillyTavernLLM Frontend for Power Users.项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern

你刚发完一句话,光标闪了三秒对面才回过来;角色库攒了几百张卡,打开角色列表还要再转一圈。这不是网络的问题——SillyTavern 的性能调优,大部分动作发生在default/config.yaml里的几个开关上。服务器侧的卡片解析、请求体传输、出站连接复用,都有现成的配置项,默认值偏保守,手动打开就能见效。

SillyTavern 默认酒馆背景场景

体检:你大概率中招的 3 个表现

角色列表转圈卡库一大,服务器默认对每张 PNG 内嵌卡做完整解析(图片里的 base64 数据被解码成卡片 JSON),列表接口把全部解析完才返回。卡越多,等得越久。

保存设置转圈保存设置、导出聊天备份走的是大 payload 请求,默认请求体不压缩,几百 KB 的数据原样推给服务器,弱网下这一步最明显。

回复来得慢半拍服务器每次向模型 API 发起生成请求都新建 TCP 连接,握手和 TLS 协商每轮都付一次钱,多轮对话的等待被一点点拉长。

🔧 动手改:按文件位置分四块

四处改动全在default/config.yaml,改完重启服务器生效。

在 config.yaml 里开启角色卡懒加载

default/config.yamlperformance块。懒加载(lazy load,就是列表先只拿缩略数据,点进哪个角色才完整解析哪张卡)专门针对大卡库,useDiskCache和内存缓存默认已开,不用动:

performance: lazyLoadCharacters: true # 默认 false,列表先返回浅层卡数据 memoryCacheCapacity: '100mb' # 保持默认,解析过的卡留内存 useDiskCache: true # 默认已开,不用动

改完你会看到:角色列表接口明显先返回,点开某个角色时才按需加载完整卡片数据;重复打开同一张卡直接命中内存/磁盘缓存(缓存在data/_cache下),不再重新解析。

让设置和聊天保存请求走 gzip

同一个performance块下的requestCompression,默认是关的:

performance: requestCompression: enabled: true # 默认 false minPayloadSize: '256kb' # 小请求不压缩,省 CPU

改完你会看到:DevTools 里保存设置、备份聊天的请求体积明显变小,弱网下保存完成得更快。小于256kb的请求不受影响。

复用通往模型 API 的 TCP 连接

config.yaml顶层的enableKeepAlive。这个开关控制 Node 出站 HTTP 代理(也就是服务器发给 KoboldCpp、Ollama、OpenAI 等 API 的请求)是否复用已建立的连接,实现见 src/server-main.js:

enableKeepAlive: true # 默认 false,复用出站 HTTP/HTTPS 连接

改完你会看到:连续多轮生成之间不再每轮重握手,回复首 token 的等待稳定地短一截。

SillyTavern 聊天背景与调优场景

把头像缩略图压成低质量 JPG

thumbnails块。头像列表页的图量全靠缩略图,默认quality 95偏高:

thumbnails: format: "jpg" # 保持 jpg,别改 png quality: 80 # 默认 95,降到 80 肉眼几乎无差

改完你会看到:角色列表的缩略图流量整体下降。注意新参数只影响新生成的缩略图,需要把用户数据目录下的thumbnails文件夹清掉,重启后自动重建。

✅ 自测:5 分钟确认没白改

改前各量一次基线,改后再量,格式照抄:

  • 角色列表首请求耗时旧值 → 新值(↓ XX%)。怎么量:DevTools → Network → 过滤api/characters,刷新后看第一条请求的 duration。
  • 保存设置请求体积旧值 → 新值(↓ XX%)。怎么量:DevTools → Network → 点保存设置那条请求 → Payload 标签,对比改前后的大小。
  • 点开角色的加载时间旧值 → 新值(↓ XX%)。怎么量:角色列表点一张卡,Network 里看对应api/characters请求的 TTFB。

SillyTavern 调优后自测场景

⚠️ 踩坑提醒

cacheBuster 反向操作→ 开了cacheBuster.enabled后,每次首载会用Clear-Site-Data头把浏览器缓存清光,等于每次打开都是冷启动 → 保持默认 false,只在"上传的图片浏览器里死活不更新"时临时用。

keep-alive 与部分代理环境冲突→ 开启后偶发 ECONNRESET 或请求中断(配置注释里明确写了这是 Node 18 之后行为的已知问题)→ 把enableKeepAlive改回 false 重启即可,这是官方给的排障路径。

懒加载和个别扩展不兼容→ 开lazyLoadCharacters后某扩展读不到完整卡数据 → 配置注释已提示此风险,扩展报错就单独关掉懒加载。缩略图同理:改了参数不删thumbnails目录,会误以为没生效。

收尾

📌 你动的是default/config.yaml里的4 个开关:懒加载、请求压缩、连接复用、缩略图质量从95 降到 80

改完后角色列表先回浅层数据、大保存请求走 gzip,具体降了多少,看上面 Network 面板里你记下的两个箭头数字。

每个开关的官方语义在 default/config.yaml 的注释里都有说明,缩略图与缓存机制可看 src/endpoints/thumbnails.js 和 src/endpoints/characters.js。

【免费下载链接】SillyTavernLLM Frontend for Power Users.项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询