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.yaml的performance块。懒加载(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),仅供参考