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 | image | | 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 | ![image](https://user-images.githubusercontent.com/128647114/230311637-d809cd9b-af66-4dd1-a310-7a27e847c011.png) | | Character Backgrounds | Built-in extension to assign unique backgrounds to specific chats or groups. | None | image | +| 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 | image | +| 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 | image | ## 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 | image | | 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 | ![image](https://user-images.githubusercontent.com/128647114/230311637-d809cd9b-af66-4dd1-a310-7a27e847c011.png) | | Character Backgrounds | Built-in extension to assign unique backgrounds to specific chats or groups. | None | image | -| 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 | image | -| 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 | image | +| 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 | image | +| 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 | image | ## 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" },