diff --git a/colab/GPU.ipynb b/colab/GPU.ipynb index 74bbee704..d5c24d77b 100644 --- a/colab/GPU.ipynb +++ b/colab/GPU.ipynb @@ -20,6 +20,7 @@ "outputs": [], "source": [ "#@markdown Enables hosting of extensions backend for SillyTavern Extras\n", + "use_cpu = False #@param {type:\"boolean\"}\n", "extras_enable_captioning = True #@param {type:\"boolean\"}\n", "#@markdown Loads the image captioning module\n", "Captions_Model = \"Salesforce/blip-image-captioning-large\" #@param [ \"Salesforce/blip-image-captioning-large\", \"Salesforce/blip-image-captioning-base\" ]\n", @@ -37,6 +38,13 @@ "#@markdown * Qiliang/bart-large-cnn-samsum-ChatGPT_v3 - summarization model optimized for chats\n", "#@markdown * Qiliang/bart-large-cnn-samsum-ElectrifAi_v10 - nice results so far, but still being evaluated\n", "#@markdown * distilbart-xsum-12-3 - faster, but pretty basic alternative\n", + "extras_enable_tts = True #@param {type:\"boolean\"}\n", + "#@markdown Enables Silero text-to-speech module\n", + "extras_enable_sd = True #@param {type:\"boolean\"}\n", + "#@markdown Enables SD picture generation\n", + "SD_Model = \"ckpt/anything-v4.5-vae-swapped\" #@param [ \"ckpt/anything-v4.5-vae-swapped\", \"ckpt/sd15\" ]\n", + "#@markdown * ckpt/anything-v4.5-vae-swapped - anime style model\n", + "#@markdown * ckpt/sd15 - base SD 1.5\n", "\n", "import subprocess\n", "\n", @@ -44,7 +52,8 @@ "# SillyTavern extras\n", "extras_url = '(disabled)'\n", "params = []\n", - "params.append('--cpu')\n", + "if use_cpu:\n", + " params.append('--cpu')\n", "params.append('--share')\n", "ExtrasModules = []\n", "\n", @@ -54,10 +63,15 @@ " ExtrasModules.append('summarize')\n", "if (extras_enable_emotions):\n", " ExtrasModules.append('classify')\n", + "if (extras_enable_sd):\n", + " ExtrasModules.append('sd')\n", + "if (extras_enable_tts):\n", + " ExtrasModules.append('tts')\n", "\n", "params.append(f'--classification-model={Emotions_Model}')\n", "params.append(f'--summarization-model={Memory_Model}')\n", "params.append(f'--captioning-model={Captions_Model}')\n", + "params.append(f'--sd-model={SD_Model}')\n", "params.append(f'--enable-modules={\",\".join(ExtrasModules)}')\n", "\n", "\n", @@ -65,7 +79,7 @@ "!git clone https://github.com/Cohee1207/SillyTavern-extras\n", "%cd /SillyTavern-extras\n", "!npm install -g localtunnel\n", - "!pip install -r requirements.txt\n", + "!pip install -r requirements-complete.txt\n", "!pip install tensorflow==2.11\n", "\n", "\n", @@ -76,7 +90,8 @@ "print('processId:', extras_process.pid)\n", "while True:\n", " line = extras_process.stdout.readline().decode().strip()\n", - " print(line)\n" + " if line != None and line != '':\n", + " print(line)\n" ] } ], diff --git a/public/scripts/extensions/tts/manifest.json b/public/scripts/extensions/tts/manifest.json index 573fe647a..ccd63edf6 100644 --- a/public/scripts/extensions/tts/manifest.json +++ b/public/scripts/extensions/tts/manifest.json @@ -2,10 +2,12 @@ "display_name": "TTS", "loading_order": 10, "requires": [], - "optional": [], + "optional": [ + "tts" + ], "js": "index.js", "css": "style.css", "author": "Ouoertheo#7264", "version": "1.0.0", "homePage": "None" -} +} \ No newline at end of file diff --git a/public/scripts/extensions/tts/silerotts.js b/public/scripts/extensions/tts/silerotts.js index c39e67052..7b00e78e1 100644 --- a/public/scripts/extensions/tts/silerotts.js +++ b/public/scripts/extensions/tts/silerotts.js @@ -1,3 +1,5 @@ +import { getApiUrl, modules } from "../../extensions.js" + export { SileroTtsProvider } class SileroTtsProvider { @@ -17,7 +19,8 @@ class SileroTtsProvider { let html = ` - A simple Python Silero TTS Server can be found here. + + Use SillyTavern Extras API or Silero TTS Server. ` return html } @@ -43,8 +46,19 @@ class SileroTtsProvider { throw `Invalid setting passed to TTS Provider: ${key}` } } + + const apiCheckInterval = setInterval(() => { + // Use Extras API if TTS support is enabled + if (modules.includes('tts')) { + const baseUrl = new URL(getApiUrl()); + baseUrl.pathname = '/api/tts'; + this.settings.provider_endpoint = baseUrl.toString(); + $('#silero_tts_endpoint').val(this.settings.provider_endpoint); + clearInterval(apiCheckInterval); + } + }, 2000); - $('#silero_tts_endpoint').text(this.settings.provider_endpoint) + $('#silero_tts_endpoint').val(this.settings.provider_endpoint) console.info("Settings loaded") } diff --git a/public/scripts/poe.js b/public/scripts/poe.js index be3b021e3..3e2568a19 100644 --- a/public/scripts/poe.js +++ b/public/scripts/poe.js @@ -99,7 +99,7 @@ async function generatePoe(type, finalPrompt, signal) { if (poe_settings.auto_jailbreak && !auto_jailbroken) { for (let retryNumber = 0; retryNumber < MAX_RETRIES_FOR_ACTIVATION; retryNumber++) { - const reply = await sendMessage(poe_settings.jailbreak_message, false); + const reply = await sendMessage(substituteParams(poe_settings.jailbreak_message), false); if (reply.toLowerCase().includes(poe_settings.jailbreak_response.toLowerCase())) { auto_jailbroken = true;