sillytavern 1.11.8 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (307) hide show
  1. package/.dockerignore +2 -1
  2. package/.eslintrc.js +12 -1
  3. package/.github/readme.md +1 -1
  4. package/.github/workflows/check-merge-conflicts.yml +1 -0
  5. package/.github/workflows/docker-publish.yml +1 -0
  6. package/Dockerfile +3 -13
  7. package/Update-Instructions.txt +12 -6
  8. package/config.yaml +22 -2
  9. package/default/config.yaml +22 -2
  10. package/default/content/index.json +137 -6
  11. package/default/content/presets/context/ChatML-Names.json +12 -0
  12. package/default/content/presets/context/Llama-3-Instruct-Names.json +12 -0
  13. package/default/content/presets/context/Phi.json +12 -0
  14. package/default/content/presets/instruct/ChatML-Names.json +24 -0
  15. package/default/content/presets/instruct/Llama-3-Instruct-Names.json +24 -0
  16. package/default/content/presets/instruct/Phi.json +24 -0
  17. package/default/content/presets/openai/Default.json +1 -0
  18. package/default/content/presets/textgen/Universal-Creative.json +2 -2
  19. package/default/content/presets/textgen/Universal-Light.json +2 -2
  20. package/default/content/presets/textgen/Universal-Super-Creative.json +2 -2
  21. package/{public → default/content}/settings.json +9 -12
  22. package/default/content/themes/Cappuccino.json +35 -0
  23. package/default/content/themes/Dark Lite.json +35 -0
  24. package/default/scaffold/README.md +26 -0
  25. package/docker/docker-compose.yml +1 -2
  26. package/docker/docker-entrypoint.sh +1 -30
  27. package/index.d.ts +20 -0
  28. package/jsconfig.json +5 -2
  29. package/package.json +13 -4
  30. package/plugins.js +75 -0
  31. package/post-install.js +2 -27
  32. package/public/css/accounts.css +5 -0
  33. package/public/css/brands.min.css +6 -0
  34. package/public/css/extensions-panel.css +4 -0
  35. package/public/css/fontawesome.min.css +9 -0
  36. package/public/css/login.css +44 -0
  37. package/public/css/mobile-styles.css +6 -0
  38. package/public/css/select2-overrides.css +75 -0
  39. package/public/css/solid.min.css +6 -0
  40. package/public/css/st-tailwind.css +21 -1
  41. package/public/css/tags.css +4 -2
  42. package/public/css/toggle-dependent.css +8 -9
  43. package/public/css/world-info.css +68 -2
  44. package/public/global.d.ts +1360 -0
  45. package/public/img/groq.svg +48 -0
  46. package/public/img/infermaticai.svg +40 -0
  47. package/public/img/logo.png +0 -0
  48. package/public/index.html +779 -449
  49. package/public/lib/epub.min.js +1 -0
  50. package/public/lib/eventemitter.js +40 -0
  51. package/public/lib/jszip.min.js +13 -0
  52. package/public/locales/ar-sa.json +8 -10
  53. package/public/locales/de-de.json +2 -4
  54. package/public/locales/es-es.json +1 -5
  55. package/public/locales/fr-fr.json +3 -5
  56. package/public/locales/is-is.json +3 -5
  57. package/public/locales/it-it.json +2 -4
  58. package/public/locales/ja-jp.json +3 -5
  59. package/public/locales/ko-kr.json +27 -6
  60. package/public/locales/lang.json +1 -0
  61. package/public/locales/nl-nl.json +2 -4
  62. package/public/locales/pt-pt.json +2 -4
  63. package/public/locales/ru-ru.json +228 -34
  64. package/public/locales/uk-ua.json +0 -2
  65. package/public/locales/vi-vn.json +5 -7
  66. package/public/locales/zh-cn.json +0 -2
  67. package/public/locales/zh-tw.json +1192 -0
  68. package/public/login.html +88 -0
  69. package/public/script.js +832 -919
  70. package/public/scripts/PromptManager.js +4 -3
  71. package/public/scripts/RossAscends-mods.js +12 -5
  72. package/public/scripts/authors-note.js +61 -8
  73. package/public/scripts/autocomplete/AutoComplete.js +792 -0
  74. package/public/scripts/autocomplete/AutoCompleteFuzzyScore.js +16 -0
  75. package/public/scripts/autocomplete/AutoCompleteNameResult.js +44 -0
  76. package/public/scripts/autocomplete/AutoCompleteOption.js +206 -0
  77. package/public/scripts/autocomplete/AutoCompleteSecondaryNameResult.js +5 -0
  78. package/public/scripts/autocomplete/BlankAutoCompleteOption.js +29 -0
  79. package/public/scripts/autocomplete/MacroAutoCompleteOption.js +44 -0
  80. package/public/scripts/backgrounds.js +20 -7
  81. package/public/scripts/bulk-edit.js +1 -10
  82. package/public/scripts/char-data.js +97 -0
  83. package/public/scripts/chats.js +830 -21
  84. package/public/scripts/constants.js +14 -0
  85. package/public/scripts/extensions/assets/character.html +9 -0
  86. package/public/scripts/extensions/assets/index.js +50 -2
  87. package/public/scripts/extensions/assets/market.html +19 -0
  88. package/public/scripts/extensions/assets/style.css +51 -0
  89. package/public/scripts/extensions/assets/window.html +4 -0
  90. package/public/scripts/extensions/attachments/buttons.html +9 -0
  91. package/public/scripts/extensions/attachments/fandom-scrape.html +51 -0
  92. package/public/scripts/extensions/attachments/files-dropped.html +8 -0
  93. package/public/scripts/extensions/attachments/index.js +15 -0
  94. package/public/scripts/extensions/attachments/manager.html +128 -0
  95. package/public/scripts/extensions/attachments/manifest.json +11 -0
  96. package/public/scripts/extensions/attachments/mediawiki-scrape.html +54 -0
  97. package/public/scripts/extensions/attachments/move-attachment.html +8 -0
  98. package/public/scripts/extensions/attachments/notepad.html +10 -0
  99. package/public/scripts/extensions/attachments/style.css +39 -0
  100. package/public/scripts/extensions/attachments/web-scrape.html +3 -0
  101. package/public/scripts/extensions/attachments/youtube-scrape.html +20 -0
  102. package/public/scripts/extensions/caption/index.js +73 -11
  103. package/public/scripts/extensions/expressions/index.js +93 -27
  104. package/public/scripts/extensions/expressions/settings.html +6 -5
  105. package/public/scripts/extensions/expressions/style.css +0 -1
  106. package/public/scripts/extensions/gallery/index.js +23 -3
  107. package/public/scripts/extensions/memory/index.js +102 -40
  108. package/public/scripts/extensions/memory/settings.html +42 -42
  109. package/public/scripts/extensions/quick-reply/html/qrEditor.html +20 -4
  110. package/public/scripts/extensions/quick-reply/index.js +12 -5
  111. package/public/scripts/extensions/quick-reply/src/QuickReply.js +156 -15
  112. package/public/scripts/extensions/quick-reply/src/QuickReplySet.js +52 -8
  113. package/public/scripts/extensions/quick-reply/src/SlashCommandHandler.js +328 -41
  114. package/public/scripts/extensions/quick-reply/style.css +168 -6
  115. package/public/scripts/extensions/quick-reply/style.less +163 -8
  116. package/public/scripts/extensions/regex/dropdown.html +4 -4
  117. package/public/scripts/extensions/regex/editor.html +25 -18
  118. package/public/scripts/extensions/regex/engine.js +3 -23
  119. package/public/scripts/extensions/regex/index.js +23 -4
  120. package/public/scripts/extensions/regex/scriptTemplate.html +5 -5
  121. package/public/scripts/extensions/shared.js +0 -1
  122. package/public/scripts/extensions/stable-diffusion/index.js +90 -19
  123. package/public/scripts/extensions/token-counter/index.js +10 -3
  124. package/public/scripts/extensions/translate/index.js +27 -3
  125. package/public/scripts/extensions/tts/alltalk.js +2 -2
  126. package/public/scripts/extensions/tts/edge.js +129 -22
  127. package/public/scripts/extensions/tts/index.js +66 -4
  128. package/public/scripts/extensions/vectors/index.js +459 -19
  129. package/public/scripts/extensions/vectors/settings.html +131 -6
  130. package/public/scripts/extensions.js +12 -0
  131. package/public/scripts/filters.js +145 -29
  132. package/public/scripts/group-chats.js +9 -6
  133. package/public/scripts/i18n.js +26 -11
  134. package/public/scripts/instruct-mode.js +7 -4
  135. package/public/scripts/loader.js +2 -5
  136. package/public/scripts/login.js +276 -0
  137. package/public/scripts/logprobs.js +2 -2
  138. package/public/scripts/macros.js +21 -0
  139. package/public/scripts/openai.js +243 -30
  140. package/public/scripts/personas.js +344 -8
  141. package/public/scripts/power-user.js +330 -46
  142. package/public/scripts/preset-manager.js +35 -3
  143. package/public/scripts/samplerSelect.js +441 -0
  144. package/public/scripts/scrapers.js +509 -0
  145. package/public/scripts/secrets.js +7 -2
  146. package/public/scripts/slash-commands/SlashCommand.js +379 -0
  147. package/public/scripts/slash-commands/SlashCommandAbortController.js +28 -0
  148. package/public/scripts/slash-commands/SlashCommandArgument.js +121 -0
  149. package/public/scripts/slash-commands/SlashCommandAutoCompleteNameResult.js +179 -0
  150. package/public/scripts/slash-commands/SlashCommandBrowser.js +148 -0
  151. package/public/scripts/slash-commands/SlashCommandClosure.js +272 -0
  152. package/public/scripts/slash-commands/SlashCommandClosureExecutor.js +7 -0
  153. package/public/scripts/slash-commands/SlashCommandClosureResult.js +9 -0
  154. package/public/scripts/slash-commands/SlashCommandCommandAutoCompleteOption.js +37 -0
  155. package/public/scripts/slash-commands/SlashCommandEnumAutoCompleteOption.js +34 -0
  156. package/public/scripts/slash-commands/SlashCommandEnumValue.js +13 -0
  157. package/public/scripts/slash-commands/SlashCommandExecutor.js +45 -0
  158. package/public/scripts/slash-commands/SlashCommandNamedArgumentAssignment.js +12 -0
  159. package/public/scripts/slash-commands/SlashCommandNamedArgumentAutoCompleteOption.js +32 -0
  160. package/public/scripts/slash-commands/SlashCommandParser.js +957 -0
  161. package/public/scripts/slash-commands/SlashCommandParserError.js +50 -0
  162. package/public/scripts/slash-commands/SlashCommandQuickReplyAutoCompleteOption.js +40 -0
  163. package/public/scripts/slash-commands/SlashCommandScope.js +114 -0
  164. package/public/scripts/slash-commands/SlashCommandUnnamedArgumentAssignment.js +11 -0
  165. package/public/scripts/slash-commands/SlashCommandVariableAutoCompleteOption.js +40 -0
  166. package/public/scripts/slash-commands.js +1384 -404
  167. package/public/scripts/sse-stream.js +2 -2
  168. package/public/scripts/tags.js +438 -93
  169. package/public/scripts/templates/admin.html +115 -0
  170. package/public/scripts/templates/changeName.html +5 -0
  171. package/public/scripts/templates/changePassword.html +14 -0
  172. package/public/scripts/templates/deleteUser.html +26 -0
  173. package/public/scripts/templates/macros.html +5 -0
  174. package/public/scripts/templates/resetSettings.html +13 -0
  175. package/public/scripts/templates/snapshotsView.html +31 -0
  176. package/public/scripts/templates/userProfile.html +97 -0
  177. package/public/scripts/templates/userReset.html +18 -0
  178. package/public/scripts/templates/welcome.html +2 -1
  179. package/public/scripts/textgen-models.js +109 -1
  180. package/public/scripts/textgen-settings.js +99 -56
  181. package/public/scripts/tokenizers.js +41 -2
  182. package/public/scripts/user.js +888 -0
  183. package/public/scripts/utils.js +345 -10
  184. package/public/scripts/variables.js +1194 -94
  185. package/public/scripts/world-info.js +1021 -180
  186. package/public/style.css +898 -18
  187. package/public/webfonts/fa-brands-400.ttf +0 -0
  188. package/public/webfonts/fa-brands-400.woff2 +0 -0
  189. package/public/webfonts/fa-solid-900.ttf +0 -0
  190. package/public/webfonts/fa-solid-900.woff2 +0 -0
  191. package/recover.js +62 -0
  192. package/server.js +162 -95
  193. package/src/additional-headers.js +86 -22
  194. package/src/constants.js +106 -27
  195. package/src/endpoints/anthropic.js +1 -1
  196. package/src/endpoints/assets.js +53 -20
  197. package/src/endpoints/avatars.js +4 -4
  198. package/src/endpoints/backends/chat-completions.js +38 -47
  199. package/src/endpoints/backends/scale-alt.js +43 -18
  200. package/src/endpoints/backends/text-completions.js +17 -2
  201. package/src/endpoints/backgrounds.js +12 -11
  202. package/src/endpoints/characters.js +386 -311
  203. package/src/endpoints/chats.js +107 -92
  204. package/src/endpoints/classify.js +12 -4
  205. package/src/endpoints/content-manager.js +312 -98
  206. package/src/endpoints/extensions.js +13 -13
  207. package/src/endpoints/files.js +53 -3
  208. package/src/endpoints/google.js +2 -1
  209. package/src/endpoints/groups.js +13 -14
  210. package/src/endpoints/horde.js +5 -5
  211. package/src/endpoints/images.js +7 -8
  212. package/src/endpoints/moving-ui.js +1 -2
  213. package/src/endpoints/novelai.js +4 -4
  214. package/src/endpoints/openai.js +8 -8
  215. package/src/endpoints/presets.js +14 -14
  216. package/src/endpoints/quick-replies.js +2 -3
  217. package/src/endpoints/secrets.js +48 -84
  218. package/src/endpoints/serpapi.js +89 -3
  219. package/src/endpoints/settings.js +179 -30
  220. package/src/endpoints/sprites.js +14 -10
  221. package/src/endpoints/stable-diffusion.js +22 -23
  222. package/src/endpoints/stats.js +74 -76
  223. package/src/endpoints/themes.js +2 -3
  224. package/src/endpoints/thumbnails.js +88 -51
  225. package/src/endpoints/tokenizers.js +221 -45
  226. package/src/endpoints/translate.js +6 -6
  227. package/src/endpoints/users-admin.js +255 -0
  228. package/src/endpoints/users-private.js +257 -0
  229. package/src/endpoints/users-public.js +199 -0
  230. package/src/endpoints/vectors.js +116 -33
  231. package/src/endpoints/worldinfo.js +8 -7
  232. package/src/express-common.js +22 -1
  233. package/src/middleware/multerMonkeyPatch.js +30 -0
  234. package/src/middleware/whitelist.js +15 -19
  235. package/src/polyfill.js +2 -0
  236. package/src/prompt-converters.js +67 -0
  237. package/src/tokenizers/llama3.json +1 -0
  238. package/src/users.js +742 -0
  239. package/src/util.js +46 -35
  240. package/src/vectors/cohere-vectors.js +65 -0
  241. package/src/{embedding.js → vectors/embedding.js} +1 -1
  242. package/src/{makersuite-vectors.js → vectors/makersuite-vectors.js} +7 -5
  243. package/src/{nomicai-vectors.js → vectors/nomicai-vectors.js} +7 -5
  244. package/src/{openai-vectors.js → vectors/openai-vectors.js} +8 -6
  245. package/start.sh +4 -7
  246. package/.github/workflows/update-docs.yml +0 -43
  247. package/default/content/default_CodingSensei.png +0 -0
  248. package/default/content/default_FluxTheCat.png +0 -0
  249. package/default/settings.json +0 -633
  250. package/public/NovelAI Settings/.gitkeep +0 -0
  251. package/public/OpenAI Settings/.gitkeep +0 -0
  252. package/public/TextGen Settings/.gitkeep +0 -0
  253. package/public/User Avatars/README.md +0 -1
  254. package/public/assets/ambient/.placeholder +0 -1
  255. package/public/assets/bgm/.placeholder +0 -1
  256. package/public/assets/blip/.placeholder +0 -1
  257. package/public/assets/live2d/.placeholder +0 -1
  258. package/public/assets/temp/.placeholder +0 -0
  259. package/public/assets/vrm/animation/.placeholder +0 -1
  260. package/public/assets/vrm/model/.placeholder +0 -1
  261. package/public/characters/.gitkeep +0 -8
  262. package/public/chats/.gitkeep +0 -5
  263. package/public/context/.gitkeep +0 -0
  264. package/public/css/fontawesome.css +0 -8488
  265. package/public/css/solid.css +0 -24
  266. package/public/group chats/.gitkeep +0 -1
  267. package/public/groups/.gitkeep +0 -1
  268. package/public/instruct/.gitkeep +0 -0
  269. package/public/themes/.gitkeep +0 -0
  270. package/public/themes/Default (Dark) 1.7.1.json +0 -21
  271. package/public/themes/Ross v2.json +0 -21
  272. package/public/user/.gitkeep +0 -0
  273. package/public/worlds/README.md +0 -1
  274. /package/{public/KoboldAI Settings → data}/.gitkeep +0 -0
  275. /package/{public → default/content}/backgrounds/__transparent.png +0 -0
  276. /package/{public → default/content}/backgrounds/_black.jpg +0 -0
  277. /package/{public → default/content}/backgrounds/_white.jpg +0 -0
  278. /package/{public → default/content}/backgrounds/bedroom clean.jpg +0 -0
  279. /package/{public → default/content}/backgrounds/bedroom cyberpunk.jpg +0 -0
  280. /package/{public → default/content}/backgrounds/bedroom red.jpg +0 -0
  281. /package/{public → default/content}/backgrounds/bedroom tatami.jpg +0 -0
  282. /package/{public → default/content}/backgrounds/cityscape medieval market.jpg +0 -0
  283. /package/{public → default/content}/backgrounds/cityscape medieval night.jpg +0 -0
  284. /package/{public → default/content}/backgrounds/cityscape postapoc.jpg +0 -0
  285. /package/{public → default/content}/backgrounds/forest treehouse fireworks air baloons (by kallmeflocc).jpg +0 -0
  286. /package/{public → default/content}/backgrounds/japan classroom side.jpg +0 -0
  287. /package/{public → default/content}/backgrounds/japan classroom.jpg +0 -0
  288. /package/{public → default/content}/backgrounds/japan path cherry blossom.jpg +0 -0
  289. /package/{public → default/content}/backgrounds/japan university.jpg +0 -0
  290. /package/{public → default/content}/backgrounds/landscape autumn great tree.jpg +0 -0
  291. /package/{public → default/content}/backgrounds/landscape beach day.png +0 -0
  292. /package/{public → default/content}/backgrounds/landscape beach night.jpg +0 -0
  293. /package/{public → default/content}/backgrounds/landscape mountain lake.jpg +0 -0
  294. /package/{public → default/content}/backgrounds/landscape postapoc.jpg +0 -0
  295. /package/{public → default/content}/backgrounds/landscape winter lake house.jpg +0 -0
  296. /package/{public → default/content}/backgrounds/royal.jpg +0 -0
  297. /package/{public → default/content}/backgrounds/tavern day.jpg +0 -0
  298. /package/{public/movingUI → default/content/presets/moving-ui}/Black Magic Time.json +0 -0
  299. /package/{public/movingUI → default/content/presets/moving-ui}/Default.json +0 -0
  300. /package/{public/QuickReplies → default/content/presets/quick-replies}/Default.json +0 -0
  301. /package/src/{claude.json → tokenizers/claude.json} +0 -0
  302. /package/src/{sentencepiece → tokenizers}/llama.model +0 -0
  303. /package/src/{sentencepiece → tokenizers}/mistral.model +0 -0
  304. /package/src/{sentencepiece → tokenizers}/nerdstash.model +0 -0
  305. /package/src/{sentencepiece → tokenizers}/nerdstash_v2.model +0 -0
  306. /package/src/{sentencepiece → tokenizers}/yi.model +0 -0
  307. /package/src/{extras-vectors.js → vectors/extras-vectors.js} +0 -0
package/.dockerignore CHANGED
@@ -4,6 +4,7 @@ npm-debug.log
4
4
  readme*
5
5
  Start.bat
6
6
  /dist
7
- /backups/
7
+ /backups
8
8
  cloudflared.exe
9
9
  access.log
10
+ /data
package/.eslintrc.js CHANGED
@@ -42,11 +42,22 @@ module.exports = {
42
42
  showdownKatex: 'readonly',
43
43
  SVGInject: 'readonly',
44
44
  toastr: 'readonly',
45
+ Readability: 'readonly',
46
+ isProbablyReaderable: 'readonly',
47
+ ePub: 'readonly',
45
48
  },
46
49
  },
47
50
  ],
48
51
  // There are various vendored libraries that shouldn't be linted
49
- ignorePatterns: ['public/lib/**/*', '*.min.js', 'src/ai_horde/**/*'],
52
+ ignorePatterns: [
53
+ 'public/lib/**/*',
54
+ '*.min.js',
55
+ 'src/ai_horde/**/*',
56
+ 'plugins/**/*',
57
+ 'data/**/*',
58
+ 'backups/**/*',
59
+ 'node_modules/**/*',
60
+ ],
50
61
  rules: {
51
62
  'no-unused-vars': ['error', { args: 'none' }],
52
63
  'no-control-regex': 'off',
package/.github/readme.md CHANGED
@@ -326,7 +326,7 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
326
326
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
327
327
  GNU Affero General Public License for more details.**
328
328
 
329
- * TAI Base by Humi: Unknown license
329
+ * TAI Base by Humi: MIT
330
330
  * Cohee's modifications and derived code: AGPL v3
331
331
  * RossAscends' additions: AGPL v3
332
332
  * Portions of CncAnon's TavernAITurbo mod: Unknown license
@@ -6,6 +6,7 @@ on:
6
6
  - staging
7
7
  jobs:
8
8
  check-conflicts:
9
+ if: github.repository == 'SillyTavern/SillyTavern'
9
10
  runs-on: ubuntu-latest
10
11
  steps:
11
12
  - uses: mschilde/auto-label-merge-conflicts@master
@@ -21,6 +21,7 @@ env:
21
21
 
22
22
  jobs:
23
23
  build:
24
+ if: github.repository == 'SillyTavern/SillyTavern'
24
25
  runs-on: ubuntu-latest
25
26
 
26
27
  steps:
package/Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- FROM node:19.1.0-alpine3.16
1
+ FROM node:lts-alpine3.18
2
2
 
3
3
  # Arguments
4
4
  ARG APP_HOME=/home/node/app
@@ -26,19 +26,9 @@ COPY . ./
26
26
 
27
27
  # Copy default chats, characters and user avatars to <folder>.default folder
28
28
  RUN \
29
- IFS="," RESOURCES="assets,backgrounds,user,context,instruct,QuickReplies,movingUI,themes,characters,chats,groups,group chats,User Avatars,worlds,OpenAI Settings,NovelAI Settings,KoboldAI Settings,TextGen Settings" && \
30
- \
31
- echo "*** Store default $RESOURCES in <folder>.default ***" && \
32
- for R in $RESOURCES; do mv "public/$R" "public/$R.default"; done || true && \
33
- \
34
- echo "*** Create symbolic links to config directory ***" && \
35
- for R in $RESOURCES; do ln -s "../config/$R" "public/$R"; done || true && \
36
- \
37
- rm -f "config.yaml" "public/settings.json" || true && \
29
+ rm -f "config.yaml" || true && \
38
30
  ln -s "./config/config.yaml" "config.yaml" || true && \
39
- ln -s "../config/settings.json" "public/settings.json" || true && \
40
- mkdir "config" || true && \
41
- mkdir -p "public/user" || true
31
+ mkdir "config" || true
42
32
 
43
33
  # Cleanup unnecessary files
44
34
  RUN \
@@ -33,7 +33,14 @@ If you insist on installing via a zip, here is the tedious process for doing the
33
33
  2. Unzip it into a folder OUTSIDE of your current ST installation.
34
34
  3. Do the usual setup procedure for your OS to install the NodeJS requirements.
35
35
 
36
- 4. Copy the following files/folders as necessary(*) from your old ST installation:
36
+ 4a. Updating 1.12.0 and above
37
+
38
+ Copy the user data directory from your data root into the data root of the new install.
39
+
40
+ By default: /data/default-user
41
+
42
+ 4a. Migrating from <1.12.0 to >=1.20.0
43
+ Copy the following files/folders as necessary(*) from your old ST installation:
37
44
 
38
45
  - Assets
39
46
  - Backgrounds
@@ -54,16 +61,15 @@ If you insist on installing via a zip, here is the tedious process for doing the
54
61
  - Worlds
55
62
  - User
56
63
  - settings.json
57
- - secrets.json <---- this one is in the base folder, not /public/
64
+ - secrets.json <---- This one is in the base folder, not /public/
58
65
 
59
66
  (*) 'As necessary' = "If you made any custom content related to those folders".
60
67
  None of the folders are mandatory, so only copy what you need.
61
68
 
62
69
  **NB: DO NOT COPY THE ENTIRE /PUBLIC/ FOLDER.**
63
70
  Doing so could break the new install and prevent new features from being present.
71
+ Paste those items into the /data/default-user folder of the new install.
64
72
 
65
- 5. Paste those items into the /Public/ folder of the new install.
66
-
67
- 6. Start SillyTavern once again with the method appropriate to your OS, and pray you got it right.
73
+ 5. Start SillyTavern once again with the method appropriate to your OS, and pray you got it right.
68
74
 
69
- 7. If everything shows up, you can safely delete the old ST folder.
75
+ 6. If everything shows up, you can safely delete the old ST folder.
package/config.yaml CHANGED
@@ -1,10 +1,16 @@
1
- # -- NETWORK CONFIGURATION --
1
+ # -- DATA CONFIGURATION --
2
+ # Root directory for user data storage
3
+ dataRoot: ./data
4
+ # -- SERVER CONFIGURATION --
2
5
  # Listen for incoming connections
3
6
  listen: false
4
7
  # Server port
5
8
  port: 8000
9
+ # -- SECURITY CONFIGURATION --
6
10
  # Toggle whitelist mode
7
11
  whitelistMode: true
12
+ # Whitelist will also verify IP in X-Forwarded-For / X-Real-IP headers
13
+ enableForwardedWhitelist: true
8
14
  # Whitelist of allowed IP addresses
9
15
  whitelist:
10
16
  - 127.0.0.1
@@ -16,7 +22,15 @@ basicAuthUser:
16
22
  password: "password"
17
23
  # Enables CORS proxy middleware
18
24
  enableCorsProxy: false
19
- # Disable security checks - NOT RECOMMENDED
25
+ # Enable multi-user mode
26
+ enableUserAccounts: false
27
+ # Enable discreet login mode: hides user list on the login screen
28
+ enableDiscreetLogin: false
29
+ # Used to sign session cookies. Will be auto-generated if not set
30
+ cookieSecret: ''
31
+ # Disable CSRF protection - NOT RECOMMENDED
32
+ disableCsrfProtection: false
33
+ # Disable startup security checks - NOT RECOMMENDED
20
34
  securityOverride: false
21
35
  # -- ADVANCED CONFIGURATION --
22
36
  # Open the browser automatically
@@ -34,6 +48,12 @@ allowKeysExposure: false
34
48
  skipContentCheck: false
35
49
  # Disable automatic chats backup
36
50
  disableChatBackup: false
51
+ # Allowed hosts for card downloads
52
+ whitelistImportDomains:
53
+ - localhost
54
+ - cdn.discordapp.com
55
+ - files.catbox.moe
56
+ - raw.githubusercontent.com
37
57
  # API request overrides (for KoboldAI and Text Completion APIs)
38
58
  ## Note: host includes the port number if it's not the default (80 or 443)
39
59
  ## Format is an array of objects:
@@ -1,10 +1,16 @@
1
- # -- NETWORK CONFIGURATION --
1
+ # -- DATA CONFIGURATION --
2
+ # Root directory for user data storage
3
+ dataRoot: ./data
4
+ # -- SERVER CONFIGURATION --
2
5
  # Listen for incoming connections
3
6
  listen: false
4
7
  # Server port
5
8
  port: 8000
9
+ # -- SECURITY CONFIGURATION --
6
10
  # Toggle whitelist mode
7
11
  whitelistMode: true
12
+ # Whitelist will also verify IP in X-Forwarded-For / X-Real-IP headers
13
+ enableForwardedWhitelist: true
8
14
  # Whitelist of allowed IP addresses
9
15
  whitelist:
10
16
  - 127.0.0.1
@@ -16,7 +22,15 @@ basicAuthUser:
16
22
  password: "password"
17
23
  # Enables CORS proxy middleware
18
24
  enableCorsProxy: false
19
- # Disable security checks - NOT RECOMMENDED
25
+ # Enable multi-user mode
26
+ enableUserAccounts: false
27
+ # Enable discreet login mode: hides user list on the login screen
28
+ enableDiscreetLogin: false
29
+ # Used to sign session cookies. Will be auto-generated if not set
30
+ cookieSecret: ''
31
+ # Disable CSRF protection - NOT RECOMMENDED
32
+ disableCsrfProtection: false
33
+ # Disable startup security checks - NOT RECOMMENDED
20
34
  securityOverride: false
21
35
  # -- ADVANCED CONFIGURATION --
22
36
  # Open the browser automatically
@@ -34,6 +48,12 @@ allowKeysExposure: false
34
48
  skipContentCheck: false
35
49
  # Disable automatic chats backup
36
50
  disableChatBackup: false
51
+ # Allowed hosts for card downloads
52
+ whitelistImportDomains:
53
+ - localhost
54
+ - cdn.discordapp.com
55
+ - files.catbox.moe
56
+ - raw.githubusercontent.com
37
57
  # API request overrides (for KoboldAI and Text Completion APIs)
38
58
  ## Note: host includes the port number if it's not the default (80 or 443)
39
59
  ## Format is an array of objects:
@@ -1,14 +1,110 @@
1
1
  [
2
2
  {
3
- "filename": "default_Seraphina.png",
4
- "type": "character"
3
+ "filename": "settings.json",
4
+ "type": "settings"
5
5
  },
6
6
  {
7
- "filename": "default_CodingSensei.png",
8
- "type": "character"
7
+ "filename": "themes/Dark Lite.json",
8
+ "type": "theme"
9
+ },
10
+ {
11
+ "filename": "themes/Cappuccino.json",
12
+ "type": "theme"
13
+ },
14
+ {
15
+ "filename": "backgrounds/__transparent.png",
16
+ "type": "background"
17
+ },
18
+ {
19
+ "filename": "backgrounds/_black.jpg",
20
+ "type": "background"
21
+ },
22
+ {
23
+ "filename": "backgrounds/_white.jpg",
24
+ "type": "background"
25
+ },
26
+ {
27
+ "filename": "backgrounds/bedroom clean.jpg",
28
+ "type": "background"
29
+ },
30
+ {
31
+ "filename": "backgrounds/bedroom cyberpunk.jpg",
32
+ "type": "background"
33
+ },
34
+ {
35
+ "filename": "backgrounds/bedroom red.jpg",
36
+ "type": "background"
37
+ },
38
+ {
39
+ "filename": "backgrounds/bedroom tatami.jpg",
40
+ "type": "background"
41
+ },
42
+ {
43
+ "filename": "backgrounds/cityscape medieval market.jpg",
44
+ "type": "background"
45
+ },
46
+ {
47
+ "filename": "backgrounds/cityscape medieval night.jpg",
48
+ "type": "background"
49
+ },
50
+ {
51
+ "filename": "backgrounds/cityscape postapoc.jpg",
52
+ "type": "background"
53
+ },
54
+ {
55
+ "filename": "backgrounds/forest treehouse fireworks air baloons (by kallmeflocc).jpg",
56
+ "type": "background"
57
+ },
58
+ {
59
+ "filename": "backgrounds/japan classroom side.jpg",
60
+ "type": "background"
61
+ },
62
+ {
63
+ "filename": "backgrounds/japan classroom.jpg",
64
+ "type": "background"
65
+ },
66
+ {
67
+ "filename": "backgrounds/japan path cherry blossom.jpg",
68
+ "type": "background"
69
+ },
70
+ {
71
+ "filename": "backgrounds/japan university.jpg",
72
+ "type": "background"
73
+ },
74
+ {
75
+ "filename": "backgrounds/landscape autumn great tree.jpg",
76
+ "type": "background"
77
+ },
78
+ {
79
+ "filename": "backgrounds/landscape beach day.png",
80
+ "type": "background"
81
+ },
82
+ {
83
+ "filename": "backgrounds/landscape beach night.jpg",
84
+ "type": "background"
85
+ },
86
+ {
87
+ "filename": "backgrounds/landscape mountain lake.jpg",
88
+ "type": "background"
9
89
  },
10
90
  {
11
- "filename": "default_FluxTheCat.png",
91
+ "filename": "backgrounds/landscape postapoc.jpg",
92
+ "type": "background"
93
+ },
94
+ {
95
+ "filename": "backgrounds/landscape winter lake house.jpg",
96
+ "type": "background"
97
+ },
98
+ {
99
+ "filename": "backgrounds/royal.jpg",
100
+ "type": "background"
101
+ },
102
+ {
103
+ "filename": "backgrounds/tavern day.jpg",
104
+ "type": "background"
105
+ },
106
+ {
107
+ "filename": "default_Seraphina.png",
12
108
  "type": "character"
13
109
  },
14
110
  {
@@ -211,7 +307,6 @@
211
307
  "filename": "presets/novel/Writers-Daemon-Kayra.json",
212
308
  "type": "novel_preset"
213
309
  },
214
-
215
310
  {
216
311
  "filename": "presets/textgen/Asterism.json",
217
312
  "type": "textgen_preset"
@@ -436,6 +531,10 @@
436
531
  "filename": "presets/context/Llama 3 Instruct.json",
437
532
  "type": "context"
438
533
  },
534
+ {
535
+ "filename": "presets/context/Phi.json",
536
+ "type": "context"
537
+ },
439
538
  {
440
539
  "filename": "presets/instruct/Adventure.json",
441
540
  "type": "instruct"
@@ -527,5 +626,37 @@
527
626
  {
528
627
  "filename": "presets/instruct/Llama 3 Instruct.json",
529
628
  "type": "instruct"
629
+ },
630
+ {
631
+ "filename": "presets/instruct/Phi.json",
632
+ "type": "instruct"
633
+ },
634
+ {
635
+ "filename": "presets/moving-ui/Default.json",
636
+ "type": "moving_ui"
637
+ },
638
+ {
639
+ "filename": "presets/moving-ui/Black Magic Time.json",
640
+ "type": "moving_ui"
641
+ },
642
+ {
643
+ "filename": "presets/quick-replies/Default.json",
644
+ "type": "quick_replies"
645
+ },
646
+ {
647
+ "filename": "presets/instruct/Llama-3-Instruct-Names.json",
648
+ "type": "instruct"
649
+ },
650
+ {
651
+ "filename": "presets/instruct/ChatML-Names.json",
652
+ "type": "instruct"
653
+ },
654
+ {
655
+ "filename": "presets/context/Llama-3-Instruct-Names.json",
656
+ "type": "context"
657
+ },
658
+ {
659
+ "filename": "presets/context/ChatML-Names.json",
660
+ "type": "context"
530
661
  }
531
662
  ]
@@ -0,0 +1,12 @@
1
+ {
2
+ "story_string": "<|im_start|>system\n{{#if system}}{{system}}\n{{/if}}{{#if wiBefore}}{{wiBefore}}\n{{/if}}{{#if description}}{{description}}\n{{/if}}{{#if personality}}{{char}}'s personality: {{personality}}\n{{/if}}{{#if scenario}}Scenario: {{scenario}}\n{{/if}}{{#if wiAfter}}{{wiAfter}}\n{{/if}}{{#if persona}}{{persona}}\n{{/if}}{{trim}}<|im_end|>",
3
+ "example_separator": "",
4
+ "chat_start": "",
5
+ "use_stop_strings": false,
6
+ "allow_jailbreak": false,
7
+ "always_force_name2": true,
8
+ "trim_sentences": false,
9
+ "include_newline": false,
10
+ "single_line": false,
11
+ "name": "ChatML-Names"
12
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "story_string": "<|start_header_id|>system<|end_header_id|>\n\n{{#if system}}{{system}}\n{{/if}}{{#if wiBefore}}{{wiBefore}}\n{{/if}}{{#if description}}{{description}}\n{{/if}}{{#if personality}}{{char}}'s personality: {{personality}}\n{{/if}}{{#if scenario}}Scenario: {{scenario}}\n{{/if}}{{#if wiAfter}}{{wiAfter}}\n{{/if}}{{#if persona}}{{persona}}\n{{/if}}{{trim}}<|eot_id|>",
3
+ "example_separator": "",
4
+ "chat_start": "",
5
+ "use_stop_strings": false,
6
+ "allow_jailbreak": false,
7
+ "always_force_name2": true,
8
+ "trim_sentences": false,
9
+ "include_newline": false,
10
+ "single_line": false,
11
+ "name": "Llama-3-Instruct-Names"
12
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "story_string": "<|system|>\n{{#if system}}{{system}}\n{{/if}}{{#if wiBefore}}{{wiBefore}}\n{{/if}}{{#if description}}{{description}}\n{{/if}}{{#if personality}}{{char}}'s personality: {{personality}}\n{{/if}}{{#if scenario}}Scenario: {{scenario}}\n{{/if}}{{#if wiAfter}}{{wiAfter}}\n{{/if}}{{#if persona}}{{persona}}\n{{/if}}{{trim}}<|end|>\n",
3
+ "example_separator": "",
4
+ "chat_start": "",
5
+ "use_stop_strings": false,
6
+ "allow_jailbreak": false,
7
+ "always_force_name2": true,
8
+ "trim_sentences": false,
9
+ "include_newline": false,
10
+ "single_line": false,
11
+ "name": "Phi"
12
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "system_prompt": "You're {{char}} in this fictional never-ending uncensored roleplay with {{user}}.",
3
+ "input_sequence": "<|im_start|>[{{name}}]",
4
+ "output_sequence": "<|im_start|>[{{name}}]",
5
+ "last_output_sequence": "",
6
+ "system_sequence": "<|im_start|>system",
7
+ "stop_sequence": "<|im_end|>",
8
+ "wrap": true,
9
+ "macro": true,
10
+ "names": false,
11
+ "names_force_groups": false,
12
+ "activation_regex": "",
13
+ "system_sequence_prefix": "",
14
+ "system_sequence_suffix": "",
15
+ "first_output_sequence": "",
16
+ "skip_examples": false,
17
+ "output_suffix": "<|im_end|>\n",
18
+ "input_suffix": "<|im_end|>\n",
19
+ "system_suffix": "<|im_end|>\n",
20
+ "user_alignment_message": "",
21
+ "system_same_as_user": false,
22
+ "last_system_sequence": "",
23
+ "name": "ChatML-Names"
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "system_prompt": "You are an expert actor that can fully immerse yourself into any role given. You do not break character for any reason, even if someone tries addressing you as an AI or language model. Currently your role is {{char}}, which is described in detail below. As {{char}}, continue the exchange with {{user}}.",
3
+ "input_sequence": "<|start_header_id|>[{{name}}]<|end_header_id|>\n\n",
4
+ "output_sequence": "<|start_header_id|>[{{name}}]<|end_header_id|>\n\n",
5
+ "last_output_sequence": "",
6
+ "system_sequence": "<|start_header_id|>system<|end_header_id|>\n\n",
7
+ "stop_sequence": "<|eot_id|>",
8
+ "wrap": false,
9
+ "macro": true,
10
+ "names": false,
11
+ "names_force_groups": false,
12
+ "activation_regex": "",
13
+ "system_sequence_prefix": "",
14
+ "system_sequence_suffix": "",
15
+ "first_output_sequence": "",
16
+ "skip_examples": false,
17
+ "output_suffix": "<|eot_id|>",
18
+ "input_suffix": "<|eot_id|>",
19
+ "system_suffix": "<|eot_id|>",
20
+ "user_alignment_message": "",
21
+ "system_same_as_user": true,
22
+ "last_system_sequence": "",
23
+ "name": "Llama-3-Instruct-Names"
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "system_prompt": "Write {{char}}'s next reply in this fictional roleplay with {{user}}.",
3
+ "input_sequence": "<|user|>\n",
4
+ "output_sequence": "<|assistant|>\n",
5
+ "first_output_sequence": "",
6
+ "last_output_sequence": "",
7
+ "system_sequence_prefix": "",
8
+ "system_sequence_suffix": "",
9
+ "stop_sequence": "<|end|>",
10
+ "wrap": false,
11
+ "macro": true,
12
+ "names": true,
13
+ "names_force_groups": true,
14
+ "activation_regex": "",
15
+ "skip_examples": false,
16
+ "output_suffix": "<|end|>\n",
17
+ "input_suffix": "<|end|>\n",
18
+ "system_sequence": "<|system|>\n",
19
+ "system_suffix": "<|end|>\n",
20
+ "user_alignment_message": "",
21
+ "last_system_sequence": "",
22
+ "system_same_as_user": false,
23
+ "name": "Phi"
24
+ }
@@ -231,6 +231,7 @@
231
231
  "api_url_scale": "",
232
232
  "show_external_models": false,
233
233
  "assistant_prefill": "",
234
+ "assistant_impersonation": "",
234
235
  "human_sysprompt_message": "Let's get started. Please generate your response based on the information and instructions provided above.",
235
236
  "use_ai21_tokenizer": false,
236
237
  "use_google_tokenizer": false,
@@ -33,8 +33,8 @@
33
33
  "negative_prompt": "",
34
34
  "grammar_string": "",
35
35
  "banned_tokens": "",
36
- "ignore_eos_token_aphrodite": false,
37
- "spaces_between_special_tokens_aphrodite": true,
36
+ "ignore_eos_token": false,
37
+ "spaces_between_special_tokens": true,
38
38
  "type": "ooba",
39
39
  "legacy_api": false,
40
40
  "sampler_order": [
@@ -33,8 +33,8 @@
33
33
  "negative_prompt": "",
34
34
  "grammar_string": "",
35
35
  "banned_tokens": "",
36
- "ignore_eos_token_aphrodite": false,
37
- "spaces_between_special_tokens_aphrodite": true,
36
+ "ignore_eos_token": false,
37
+ "spaces_between_special_tokens": true,
38
38
  "type": "ooba",
39
39
  "legacy_api": false,
40
40
  "sampler_order": [
@@ -33,8 +33,8 @@
33
33
  "negative_prompt": "",
34
34
  "grammar_string": "",
35
35
  "banned_tokens": "",
36
- "ignore_eos_token_aphrodite": false,
37
- "spaces_between_special_tokens_aphrodite": true,
36
+ "ignore_eos_token": false,
37
+ "spaces_between_special_tokens": true,
38
38
  "type": "ooba",
39
39
  "legacy_api": false,
40
40
  "sampler_order": [
@@ -95,7 +95,7 @@
95
95
  "user_prompt_bias": "",
96
96
  "show_user_prompt_bias": true,
97
97
  "markdown_escape_strings": "",
98
- "fast_ui_mode": false,
98
+ "fast_ui_mode": true,
99
99
  "avatar_style": 0,
100
100
  "chat_display": 0,
101
101
  "chat_width": 50,
@@ -115,16 +115,17 @@
115
115
  "italics_text_color": "rgba(145, 145, 145, 1)",
116
116
  "underline_text_color": "rgba(188, 231, 207, 1)",
117
117
  "quote_text_color": "rgba(225, 138, 36, 1)",
118
+ "chat_tint_color": "rgba(23, 23, 23, 1)",
118
119
  "blur_tint_color": "rgba(23, 23, 23, 1)",
119
- "user_mes_blur_tint_color": "rgba(0, 0, 0, 0.9)",
120
- "bot_mes_blur_tint_color": "rgba(0, 0, 0, 0.9)",
120
+ "user_mes_blur_tint_color": "rgba(30, 30, 30, 0.9)",
121
+ "bot_mes_blur_tint_color": "rgba(30, 30, 30, 0.9)",
121
122
  "shadow_color": "rgba(0, 0, 0, 1)",
122
123
  "waifuMode": false,
123
124
  "movingUI": false,
124
125
  "movingUIState": {},
125
126
  "movingUIPreset": "Default",
126
127
  "noShadows": true,
127
- "theme": "Default (Dark) 1.7.1",
128
+ "theme": "Dark Lite",
128
129
  "auto_swipe": false,
129
130
  "auto_swipe_minimum_length": 0,
130
131
  "auto_swipe_blacklist": [],
@@ -139,7 +140,7 @@
139
140
  "hotswap_enabled": true,
140
141
  "timer_enabled": false,
141
142
  "timestamps_enabled": true,
142
- "timestamp_model_icon": false,
143
+ "timestamp_model_icon": true,
143
144
  "mesIDDisplay_enabled": false,
144
145
  "max_context_unlocked": false,
145
146
  "prefer_character_prompt": true,
@@ -193,7 +194,8 @@
193
194
  "encode_tags": false,
194
195
  "enableLabMode": false,
195
196
  "enableZenSliders": false,
196
- "ui_mode": 1
197
+ "ui_mode": 1,
198
+ "forbid_external_media": true
197
199
  },
198
200
  "extension_settings": {
199
201
  "apiUrl": "http://localhost:5100",
@@ -385,14 +387,8 @@
385
387
  }
386
388
  ],
387
389
  "tag_map": {
388
- "default_FluxTheCat.png": [
389
- "1345561466591"
390
- ],
391
390
  "default_Seraphina.png": [
392
391
  "1345561466591"
393
- ],
394
- "default_CodingSensei.png": [
395
- "1345561466591"
396
392
  ]
397
393
  },
398
394
  "nai_settings": {
@@ -628,6 +624,7 @@
628
624
  "show_external_models": false,
629
625
  "proxy_password": "",
630
626
  "assistant_prefill": "",
627
+ "assistant_impersonation": "",
631
628
  "use_ai21_tokenizer": false
632
629
  }
633
630
  }
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "Cappuccino",
3
+ "blur_strength": 3,
4
+ "main_text_color": "rgba(255, 255, 255, 1)",
5
+ "italics_text_color": "rgba(230, 210, 190, 1)",
6
+ "underline_text_color": "rgba(205, 180, 160, 1)",
7
+ "quote_text_color": "rgba(165, 140, 115, 1)",
8
+ "blur_tint_color": "rgba(34, 30, 32, 0.95)",
9
+ "chat_tint_color": "rgba(50, 45, 50, 0.75)",
10
+ "user_mes_blur_tint_color": "rgba(34, 30, 32, 0.75)",
11
+ "bot_mes_blur_tint_color": "rgba(34, 30, 32, 0.75)",
12
+ "shadow_color": "rgba(0, 0, 0, 0.3)",
13
+ "shadow_width": 1,
14
+ "border_color": "rgba(80, 80, 80, 0.89)",
15
+ "font_scale": 1,
16
+ "fast_ui_mode": false,
17
+ "waifuMode": false,
18
+ "avatar_style": 0,
19
+ "chat_display": 1,
20
+ "noShadows": false,
21
+ "chat_width": 50,
22
+ "timer_enabled": false,
23
+ "timestamps_enabled": true,
24
+ "timestamp_model_icon": true,
25
+ "mesIDDisplay_enabled": true,
26
+ "message_token_count_enabled": false,
27
+ "expand_message_actions": false,
28
+ "enableZenSliders": false,
29
+ "enableLabMode": false,
30
+ "hotswap_enabled": true,
31
+ "custom_css": "",
32
+ "bogus_folders": true,
33
+ "reduced_motion": false,
34
+ "compact_input_area": true
35
+ }