From 454994a7bdf149089ad6c959cc12d8fbef6e84a4 Mon Sep 17 00:00:00 2001
From: RossAscends <124905043+RossAscends@users.noreply.github.com>
Date: Wed, 17 May 2023 03:55:23 +0900
Subject: [PATCH 1/8] Update readme.md with SD/TTS info
---
readme.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/readme.md b/readme.md
index 5b6a380fe..000bd927d 100644
--- a/readme.md
+++ b/readme.md
@@ -65,6 +65,8 @@ Get in touch with the developers directly:
* Character emotional expressions
* Auto-Summary of the chat history
* Sending images to chat, and the AI interpreting the content.
+ * Stable Diffusion image generation (5 chat-related presets plus 'free mode')
+ * Text-to-speech for AI response messages (via ElevenLabs, Silero, or the OS's System TTS)
## UI Extensions 🚀
@@ -76,6 +78,8 @@ Get in touch with the developers directly:
| D&D Dice | A set of 7 classic D&D dice for all your dice rolling needs.
*I used to roll the dice.
Feel the fear in my enemies' eyes* | None |
|
| Author's Note | Built-in extension that allows you to append notes that will be added to the context and steer the story and character in a specific direction. Because it's sent after the character description, it has a lot of weight. Thanks Aliážµ#2222 for pitching the idea! | None |  |
| Character Backgrounds | Built-in extension to assign unique backgrounds to specific chats or groups. | None |
|
+| Stable Diffusion | Use local of cloud-based Stable Diffusion webUI API to generate images. 5 presets included ('you', 'your face', 'me', 'the story', and 'the last message'. Free mode also supported via `/sd (anything_here_)` command in the chat input bar. Most common StableDiffusion generation settings are customizable within the SillyTavern UI. | None |
|
+| Text-to-Speech | AI-generated voice will read back character messages on demand, or automatically read new messages they arrive. Supports ElevenLabs, Silero, and your device's TTS service. | None |
|
## UI/CSS/Quality of Life tweaks by RossAscends
From fde5f7af84f15f5fef95bf898305365850d13eae Mon Sep 17 00:00:00 2001
From: RossAscends <124905043+RossAscends@users.noreply.github.com>
Date: Wed, 17 May 2023 04:00:05 +0900
Subject: [PATCH 2/8] Update readme.md with SD/TSS images
---
readme.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/readme.md b/readme.md
index 000bd927d..1687c59f2 100644
--- a/readme.md
+++ b/readme.md
@@ -78,8 +78,8 @@ Get in touch with the developers directly:
| D&D Dice | A set of 7 classic D&D dice for all your dice rolling needs.
*I used to roll the dice.
Feel the fear in my enemies' eyes* | None |
|
| Author's Note | Built-in extension that allows you to append notes that will be added to the context and steer the story and character in a specific direction. Because it's sent after the character description, it has a lot of weight. Thanks Aliážµ#2222 for pitching the idea! | None |  |
| Character Backgrounds | Built-in extension to assign unique backgrounds to specific chats or groups. | None |
|
-| Stable Diffusion | Use local of cloud-based Stable Diffusion webUI API to generate images. 5 presets included ('you', 'your face', 'me', 'the story', and 'the last message'. Free mode also supported via `/sd (anything_here_)` command in the chat input bar. Most common StableDiffusion generation settings are customizable within the SillyTavern UI. | None |
|
-| Text-to-Speech | AI-generated voice will read back character messages on demand, or automatically read new messages they arrive. Supports ElevenLabs, Silero, and your device's TTS service. | None |
|
+| Stable Diffusion | Use local of cloud-based Stable Diffusion webUI API to generate images. 5 presets included ('you', 'your face', 'me', 'the story', and 'the last message'. Free mode also supported via `/sd (anything_here_)` command in the chat input bar. Most common StableDiffusion generation settings are customizable within the SillyTavern UI. | None |
|
+| Text-to-Speech | AI-generated voice will read back character messages on demand, or automatically read new messages they arrive. Supports ElevenLabs, Silero, and your device's TTS service. | None |
|
## UI/CSS/Quality of Life tweaks by RossAscends
From a656783b156c9799d34af61f1bdfcfc9b6a60231 Mon Sep 17 00:00:00 2001
From: SillyLossy
Date: Wed, 17 May 2023 01:13:35 +0300
Subject: [PATCH 3/8] Upgrade tensorflow in colab
---
colab/GPU.ipynb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/colab/GPU.ipynb b/colab/GPU.ipynb
index caf939c44..194ba8dea 100644
--- a/colab/GPU.ipynb
+++ b/colab/GPU.ipynb
@@ -98,7 +98,7 @@
"!git clone https://github.com/Cohee1207/tts_samples\n",
"!npm install -g localtunnel\n",
"!pip install -r requirements-complete.txt\n",
- "!pip install tensorflow==2.11\n",
+ "!pip install tensorflow==2.12\n",
"\n",
"\n",
"cmd = f\"python server.py {' '.join(params)}\"\n",
From db439be897b2002482e54bea170f648e254e0181 Mon Sep 17 00:00:00 2001
From: RossAscends <124905043+RossAscends@users.noreply.github.com>
Date: Thu, 18 May 2023 14:48:31 +0900
Subject: [PATCH 4/8] add black and white backgrounds
---
public/backgrounds/_black.jpg | Bin 0 -> 8049 bytes
public/backgrounds/_white.jpg | Bin 0 -> 7635 bytes
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 public/backgrounds/_black.jpg
create mode 100644 public/backgrounds/_white.jpg
diff --git a/public/backgrounds/_black.jpg b/public/backgrounds/_black.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a451bc161f641ffc1ee52c854dce378fff0b3545
GIT binary patch
literal 8049
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
Date: Thu, 18 May 2023 17:44:12 -0500
Subject: [PATCH 5/8] Update docker-compose.yml to reflect sillytavern name
---
docker/docker-compose.yml | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 59b67738d..cb100b1a1 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -1,12 +1,12 @@
version: "3"
services:
- tavernai:
+ sillytavern:
build: ..
- container_name: tavernai
- hostname: tavernai
- image: tavernai/tavernai:latest
+ container_name: sillytavern
+ hostname: sillytavern
+ image: cohee1207/sillytavern:latest
ports:
- "8000:8000"
volumes:
- "./config:/home/node/app/config"
- restart: unless-stopped
\ No newline at end of file
+ restart: unless-stopped
From 3e4e1ba96a7efa96ac7ba79124d576198831af9a Mon Sep 17 00:00:00 2001
From: ramblingcoder
Date: Thu, 18 May 2023 18:09:41 -0500
Subject: [PATCH 6/8] Update docker-compose.yml
---
docker/docker-compose.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index cb100b1a1..9b91526c4 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -9,4 +9,5 @@ services:
- "8000:8000"
volumes:
- "./config:/home/node/app/config"
+ - "./config.conf:/home/node/app/config.conf"
restart: unless-stopped
From 7e59745dfc13abe8e70aafaa7857da769a245d4d Mon Sep 17 00:00:00 2001
From: unknown <92774204+nai-degen@users.noreply.github.com>
Date: Fri, 19 May 2023 03:17:42 -0500
Subject: [PATCH 7/8] buffers partial SSE messages from Readable
---
public/scripts/openai.js | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/public/scripts/openai.js b/public/scripts/openai.js
index e8053b44a..82a0c7849 100644
--- a/public/scripts/openai.js
+++ b/public/scripts/openai.js
@@ -555,13 +555,19 @@ async function sendOpenAIRequest(type, openai_msgs_tosend, signal) {
const decoder = new TextDecoder();
const reader = response.body.getReader();
let getMessage = "";
+ let messageBuffer = "";
while (true) {
const { done, value } = await reader.read();
let response = decoder.decode(value);
tryParseStreamingError(response);
-
- let eventList = response.split("\n");
+
+ // ReadableStream's buffer is not guaranteed to contain full SSE messages as they arrive in chunks
+ // We need to buffer chunks until we have one or more full messages (separated by double newlines)
+ messageBuffer += response;
+ let eventList = messageBuffer.split("\n\n");
+ // Last element will be an empty string or a leftover partial message
+ messageBuffer = eventList.pop();
for (let event of eventList) {
if (!event.startsWith("data"))
From 74d99e09da81562450cbb2570f52cdb10cd3db34 Mon Sep 17 00:00:00 2001
From: SillyLossy
Date: Fri, 19 May 2023 11:56:28 +0300
Subject: [PATCH 8/8] Bump package version
---
package-lock.json | 4 ++--
package.json | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 5ff863658..140910cfa 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "sillytavern",
- "version": "1.5.3",
+ "version": "1.5.4",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "sillytavern",
- "version": "1.5.3",
+ "version": "1.5.4",
"license": "AGPL-3.0",
"dependencies": {
"@dqbd/tiktoken": "^1.0.2",
diff --git a/package.json b/package.json
index 3fa8d0b97..de95cb74a 100644
--- a/package.json
+++ b/package.json
@@ -40,7 +40,7 @@
"type": "git",
"url": "https://github.com/Cohee1207/SillyTavern.git"
},
- "version": "1.5.3",
+ "version": "1.5.4",
"scripts": {
"start": "node server.js"
},