ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

SillyTavern 加载提速实操指南:8 处调整让大角色库打开快 3 倍

SillyTavern 加载提速实操指南:8 处调整让大角色库打开快 3 倍 SillyTavern 加载提速实操指南8 处调整让大角色库打开快 3 倍【免费下载链接】SillyTavernLLM Frontend for Power Users.项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern凌晨两点你正和角色聊到关键剧情切到角色库页面却转了十几秒圈消息发出去半天没有回音。这类卡顿多数不在模型身上而是 SillyTavern 的静态资源加载、角色卡读取和网络配置没调对。这篇文章带你完整做一轮 SillyTavern 性能优化先确认瓶颈在哪再按难度分三档动手改改动范围限定在一个配置文件和两个源码文件里一个下午可以全部完成。动手之前先花十分钟做一轮快速排查确认瓶颈到底卡在哪一层。SillyTavern 性能优化 实践场景酒馆主题默认背景快速体检清单先定位 SillyTavern 卡在哪 打开浏览器 DevToolsF12按顺序核对下面 5 项首次打开静态资源慢→ Network 面板里首次加载大量 .js / .css 很慢刷新却显示 (from disk cache)大概率是静态资源没有缓存策略。角色库打开转圈→ 几百张卡片的角色库加载慢大概率是全部卡片一次性读取懒加载开关没开。消息保存慢→ 保存请求 Time 超过 1 秒且请求体有几 MB大概率是请求体过大又没有压缩。本地模型首条回复慢→ 重启后只有第一条回复慢、之后恢复正常大概率是模型被反复加载进内存。Lighthouse 跑分低→ 跑一次 Performance 报告重点看 Largest Contentful Paint 和 Total Blocking Time两项都高就是首屏资源问题。分档优化路径SillyTavern 性能优化按难度分三档上面 5 项分别对应三类改法纯配置开关、网络行为设置、源码微调。按你能承受的风险挑一档开始。今天就能做的零风险5 分钟内以下 3 项都是 default/config.yaml 里的一行开关改完重启服务。开启角色卡懒加载原理和长电商页的懒加载一样滚动到才加载卡片数据。角色卡的内存缓存与磁盘缓存已经内置在 src/endpoints/characters.js打开开关即可performance: lazyLoadCharacters: true预期效果500 张卡片规模的角色库打开耗时从几秒降到 1 秒内。调低头像缩略图质量96×144 的小头像用 95 质量的 JPG 属于过度压缩降到 80 肉眼几乎看不出差别体积能明显减小thumbnails: quality: 80 format: jpg预期效果角色库里的头像缩略图体积减小约三分之一切换页面跟着变快。开启请求体压缩聊天历史保存时请求体可达几 MB。SillyTavern 内置了请求压缩能力前端逻辑在 public/scripts/request-compression.js开关在服务端配置里performance: requestCompression: enabled: true预期效果聊天保存类请求在链路上的体积降到约四分之一Time 从秒级降到几百毫秒。SillyTavern 性能优化赛博朋克卧室背景展示静态资源加载场景花一个下午能搞定的改配置 / 引依赖这一档改动的是服务端对外连接行为改完需要留点时间观察日志。打开全局 keep-alive 复用 API 连接src/server-main.js 里会根据这个配置创建全局 HTTP Agent开启后 SillyTavern 转发请求到后端 API 时复用连接不再每次重新握手enableKeepAlive: true预期效果本地网络下每次 API 响应减少几十毫秒并发场景下差距更明显。配置文件注释里也写了如果之后日志出现 ECONNRESET把它改回 false 并检查网络环境。给 CORS 预检加缓存跨域部署才需要跨域部署时浏览器每个真实请求前都会先发一次 OPTIONS 预检。设置maxAge让浏览器缓存预检结果cors: maxAge: 600预期效果10 分钟内预检请求从每分钟几百次降到个位数弱网下响应速度感知提升明显。关掉用不到的扩展模型自动下载SillyTavern 的扩展体系会按需从 HuggingFace 下载 ONNX 模型情绪识别、图像描述等首次下载很慢。用不到就关掉extensions: models: autoDownload: false预期效果启动流程不再被模型下载拖住扩展面板加载也更轻。需要动源码的改逻辑 / 加模块这两处都改 src/server-main.js动手前先备份文件每改一处验证一次。给 compression 中间件加过滤条件现在的app.use(compression())会对所有超过 1KB 的响应做 gzip而 PNG / JPG 本身已是压缩格式再压一遍是白烧 CPU// src/server-main.js app.use(compression({ filter: (req, res) { const type res.getHeader(content-type) || ; return /json|javascript|css|text/.test(type); }, }));预期效果图片响应不再走压缩CPU 占用下降可支撑更多并发文本类接口响应速度基本不变。给字体资源加浏览器缓存当前express.static托管 public/ 时用的是空选项{}。NotoSans 字体文件基本不变可以在它前面加一条专用缓存路由// src/server-main.js放在 express.static(public) 之前 app.use(/webfonts, express.static(path.join(serverDirectory, public/webfonts), { maxAge: 7d, }));预期效果第二次访问时字体传输量降到接近 0首屏 LCP 相应缩短。效果复查用两个面板验证提速SillyTavern 性能优化 复查冬季湖畔背景用于验证静态资源加载验证方法简单且可复现Network 面板对比DevTools → Network勾选 Disable cache 后强制刷新记录 Transfer Size 和 Time 两列的总量优化前后各测一次。Lighthouse 分数对比优化前后各跑一次 Performance 报告对比 Performance 分数和 Largest Contentful Paint 两个数字。下表是在小规格云服务器2 vCPU / 4GB上的示例数据你的环境数值会有差异指标示例数据优化前优化后角色库打开500 张卡约 2~3 秒约 0.5~1 秒首访静态资源传输量约 1.5~2 MB约 0.8~1 MB二次访问字体资源约 1~1.5 MB接近 0聊天保存请求体3MB 历史约 3 MB约 0.5~1 MB哪一项没达到预期就回到体检清单里找它对应的瓶颈项单独再查。避坑提醒改之前先看完 ⚠️装了第三方扩展就先别开懒加载—— 部分扩展读取浅层卡片数据可能报错。正确做法开启后观察是哪个扩展报错定位不了就把lazyLoadCharacters改回 false。缩略图质量只对新缩略图生效—— 旧缓存不会自动变小。正确做法改完后清空数据目录下的 thumbnails 目录里的旧图让它们按新质量重新生成。requestCompression 的 minPayloadSize 别改成 0—— 压缩一个几百字节的小请求反而让体积变大、速度变慢。正确做法保持默认 256kb 阈值够大才压。行动清单按这个顺序动手打开 default/config.yaml把performance.lazyLoadCharacters设为 true 并重启服务这是大角色库提速的第一步。同文件把thumbnails.quality改为 80清空数据目录下的旧缩略图。开启performance.requestCompression.enabled发一条消息观察保存请求是否变快。跨域或多用户部署的话补上cors.maxAge和enableKeepAlive。以上都不够时再改 src/server-main.js 里的 compression 过滤条件和 webfonts 缓存两处。改完记得跑一遍 Lighthouse看看 Performance 分数比体检那次涨了多少。【免费下载链接】SillyTavernLLM Frontend for Power Users.项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表