From f138c7857eb83e3dccacfd7deb11df05238e4198 Mon Sep 17 00:00:00 2001 From: hashcoko Date: Mon, 27 Nov 2023 23:21:38 +0900 Subject: [PATCH 01/14] Update strength parameter in setDatabase function Signed-off-by: hashcoko --- src/ts/storage/database.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ts/storage/database.ts b/src/ts/storage/database.ts index 11b280c3..736b8e94 100644 --- a/src/ts/storage/database.ts +++ b/src/ts/storage/database.ts @@ -253,7 +253,7 @@ export function setDatabase(data:Database){ sm:true, sm_dyn:true, noise:0.0, - strength:0.3, + strength:0.6, image:"" } } From 0b52c04ee7b1ddf94e4a15808f15ba59afd3e154 Mon Sep 17 00:00:00 2001 From: hashcoko Date: Tue, 28 Nov 2023 00:50:06 +0900 Subject: [PATCH 02/14] Fix image generation prompt and add warning message for NovelAI users Signed-off-by: hashcoko --- src/lang/en.ts | 11 +++-------- src/lang/ko.ts | 11 +++-------- src/lib/Setting/Pages/AdvancedSettings.svelte | 3 +++ src/ts/process/stableDiff.ts | 2 +- src/ts/translator/translator.ts | 1 + 5 files changed, 11 insertions(+), 17 deletions(-) diff --git a/src/lang/en.ts b/src/lang/en.ts index bfea2e23..648a9843 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -49,14 +49,7 @@ export const languageEnglish = { loreorder: "If insert Order is higher, it will effect the model more, and it will more lessly cuted when activated lore are many.", bias:"bias is a key-value data which modifies the likelihood of string appearing.\nit can be -100 to 100, higher values will be more likely to appear, and lower values will be more unlikely to appear \nWarning: if the tokenizer is wrong, it not work properly.", emotion: "Emotion Images option shows image depending at character's emotion which is analized by character's response. you must input emotion name as words *(like joy, happy, fear and etc.)* .emotion named **neutral** will be default emotion if it exists. must be more then 3 images to work properly.", - imggen: "Image Generation option generates and shows image from external program. the image is generated by image prompt, which is made by analizing current chat. \n\n image generation is analized based on key-value arguments, which are configarable in below." - + "\n\Zn**'always'** key applys always, and dosen't changes. **'negative'** key applys always in negative value for image generation." - + "\n\nobjects with other key's value will change according to the key's name as the chat progresses." - + "\n\nIf a key has a special character in front of its name, it has a special effect." - + "\n- if the key starts with **|**, the key's value will not change." - + "\n- if the key starts with **$**, the key's value will more likely to change." - + "\n\nwhen the image is first generated, you can only change it by modifying 'Current Image Generation Data' in below.", - + imggen: "After analyzing the chat, apply the prompt to {{slot}}.", regexScript: "Regex Script is a custom script that replaces string that matches IN to OUT.\n\nThere four type options." + "\n\n- **Modify Input** modifys user's input" + "\n\n- **Modify Output** modifys character's output" @@ -457,4 +450,6 @@ export const languageEnglish = { imgGenPrompt: "Image Generation Prompt", imgGenNegatives: "Image Generation Negative Prompt", imgGenInstructions: "Image Generation Instructions", + usePlainFetchWarn: "Please disable this option when using NovelAI, as it can cause CORS errors when using NovelAI." + } \ No newline at end of file diff --git a/src/lang/ko.ts b/src/lang/ko.ts index 741ef536..edb9e5e5 100644 --- a/src/lang/ko.ts +++ b/src/lang/ko.ts @@ -177,13 +177,7 @@ export const languageKorean = { loreorder: "순서가 높을수록 모델에 더 많은 영향을 미치며, 활성화된 로어가 많을 때 잘리지 않습니다.", bias:"바이어스는 문자열이 나타날 가능성을 수정하는 키-값 데이터로, -100에서 100까지 가능하며 값이 클수록 나타날 가능성이 높고, 값이 작을수록 나타날 가능성이 낮습니다 \n경고: 토큰라이저가 잘못되면 제대로 작동하지 않습니다.", emotion: "감정 이미지 옵션은 캐릭터의 반응으로 분석된 캐릭터의 감정에 따라 이미지를 표시합니다. 감정 이름은 단어 *(예시: joy, happy, fear 등)* 로 입력해야 하며, **neutral** 이라는 이름의 감정이 존재하면 기본 감정이 됩니다. 제대로 작동하려면 이미지가 3개 이상이어야 합니다.", - imggen: "이미지 생성 옵션은 외부 프로그램에서 이미지를 생성하고 생성한 이미지를 표시합니다. 이미지는 현재 채팅을 분석하여 만든 이미지 프롬프트에 의해 생성됩니다. \n이미지 생성은 아래에서 구성할 수 있는 키-값 인수를 기반으로 분석됩니다." - + "\n\n**'always'** 키는 언제나 들어가며, 바뀌지 않습니다. **'negative'** 키는 항상 이미지 생성의 네거티브 값으로 들어갑니다." - + "\n\n채팅이 진행됨에 따라 키의 이름에 따라 값이 변경됩니다." - + "\n\n키의 이름에 다음과 같은 문자가 있다면 특수효과가 있습니다." - + "\n- 키의 이름이 **|** 로 시작할 시, 값은 고정됩니다." - + "\n- 키의 이름이 **$** 로 시작할 시, 값은 더 자주 변합니다." - + "\n\n이미지가 처음 생성된 이후부터는 '현재 이미지 생성 데이터'를 수정하여 변경할 수 있습니다.", + imggen: "채팅을 분석한 후 프롬프트를 {{slot}}에 적용합니다.", experimental: "실험적 기능입니다. 불안정할 수 있습니다.", regexScript: "정규식 스크립트는 IN에 매칭되는 텍스트를 OUT으로 변경하는 스크립트입니다.\n\n네가지 옵션이 있습니다." + "\n\n- **입력문 수정** 유저의 입력을 수정합니다" @@ -407,5 +401,6 @@ export const languageKorean = { seed: "시드", charjs: "캐릭터JS", depthPrompt: "깊이 프롬프트", - largePortrait: "세로 이미지" + largePortrait: "세로 이미지", + usePlainFetchWarn: "NovelAI 사용 시 CORS 오류가 발생할 수 있으므로, NovelAI를 사용할 때는 이 옵션을 비활성화해 주세요." } \ No newline at end of file diff --git a/src/lib/Setting/Pages/AdvancedSettings.svelte b/src/lib/Setting/Pages/AdvancedSettings.svelte index c17c9bb1..d6f6bdec 100644 --- a/src/lib/Setting/Pages/AdvancedSettings.svelte +++ b/src/lib/Setting/Pages/AdvancedSettings.svelte @@ -61,6 +61,9 @@
+ {#if $DataBase.usePlainFetch} + {language.usePlainFetchWarn} + {/if}
diff --git a/src/ts/process/stableDiff.ts b/src/ts/process/stableDiff.ts index 26f6f077..8cbc3433 100644 --- a/src/ts/process/stableDiff.ts +++ b/src/ts/process/stableDiff.ts @@ -134,7 +134,7 @@ export async function generateAIImage(genPrompt:string, currentChar:character, n base64img = Buffer.from(await readImage(db.NAIImgConfig.image)).toString('base64'); } - let seed = Math.floor(Math.random() * 100000000000) + let seed = Math.floor(Math.random() * 10000000000) reqlist = { body: { "action": "img2img", diff --git a/src/ts/translator/translator.ts b/src/ts/translator/translator.ts index 8432a36f..e16864ac 100644 --- a/src/ts/translator/translator.ts +++ b/src/ts/translator/translator.ts @@ -100,6 +100,7 @@ async function translateMain(text:string, arg:{from:string, to:string, host:stri let db = get(DataBase) if(db.translatorType === 'deepl'){ + //deepl raise error 525 because of cloudflare let url = db.deeplOptions.freeApi ? "https://api-free.deepl.com/v2/translate" : "https://api.deepl.com/v2/translate" const f = await globalFetch(url, { headers: { From 5aed85698813575150a0ba83116a7d11189cfba8 Mon Sep 17 00:00:00 2001 From: hashcoko Date: Tue, 28 Nov 2023 02:13:31 +0900 Subject: [PATCH 03/14] Update hotkey.ts to display the name of the selected preset Signed-off-by: hashcoko --- src/ts/hotkey.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ts/hotkey.ts b/src/ts/hotkey.ts index 54b2934b..75a9677d 100644 --- a/src/ts/hotkey.ts +++ b/src/ts/hotkey.ts @@ -70,7 +70,7 @@ function changeToPreset(num:number){ let db = get(DataBase) let pres = db.botPresets if(pres.length > num){ - alertToast(`Changed to Preset ${num+1}`) + alertToast(`Changed to Preset ${num+1} || Preset name : ${pres[num].name}`) changeToPreset2(num) } } From 422a0105187c30869a81ba01fd428a9ef8f6924c Mon Sep 17 00:00:00 2001 From: hashcoko Date: Tue, 28 Nov 2023 02:50:59 +0900 Subject: [PATCH 04/14] add submodel translate Signed-off-by: hashcoko --- src/lib/ChatScreens/ChatScreen.svelte | 5 +++ src/lib/Setting/Pages/LanguageSettings.svelte | 10 ++++-- src/ts/storage/database.ts | 6 +++- src/ts/translator/translator.ts | 34 +++++++++++++++++++ 4 files changed, 52 insertions(+), 3 deletions(-) diff --git a/src/lib/ChatScreens/ChatScreen.svelte b/src/lib/ChatScreens/ChatScreen.svelte index 01fe227f..8c6b64f2 100644 --- a/src/lib/ChatScreens/ChatScreen.svelte +++ b/src/lib/ChatScreens/ChatScreen.svelte @@ -12,6 +12,11 @@ import VisualNovelMain from "../VisualNovel/VisualNovelMain.svelte"; let openChatList = false + $:{ + if ($DataBase.translatorType === 'submodel'){ + $DataBase.useStreaming = false + } + } const wallPaper = `background: url(${defaultWallpaper})` const externalStyles = ("background: " + ($DataBase.textScreenColor ? ($DataBase.textScreenColor + '80') : "rgba(0,0,0,0.8)") + ';\n') diff --git a/src/lib/Setting/Pages/LanguageSettings.svelte b/src/lib/Setting/Pages/LanguageSettings.svelte index 5b50227a..6ef683ff 100644 --- a/src/lib/Setting/Pages/LanguageSettings.svelte +++ b/src/lib/Setting/Pages/LanguageSettings.svelte @@ -3,14 +3,14 @@ import { changeLanguage, language } from "src/lang"; import { DataBase } from "src/ts/storage/database"; import { sleep } from "src/ts/util"; - import Help from "src/lib/Others/Help.svelte"; import OptionInput from "src/lib/UI/GUI/OptionInput.svelte"; import SelectInput from "src/lib/UI/GUI/SelectInput.svelte"; import { alertNormal } from "src/ts/alert"; import { downloadFile } from "src/ts/storage/globalApi"; import { languageEnglish } from "src/lang/en"; - import TextInput from "src/lib/UI/GUI/TextInput.svelte"; + import TextInput from "src/lib/UI/GUI/TextInput.svelte"; let langChanged = false +

{language.language}

@@ -56,6 +56,7 @@ Google DeepL + Use submodel {#if $DataBase.translatorType === 'deepl'} @@ -67,6 +68,11 @@
+ {:else if $DataBase.translatorType === 'submodel'} + Translate Prompt + + Response streaming is disabled when using submodels. + Translation sends a lot of requests at once, so don't use it at reverse proxy. {/if} diff --git a/src/ts/storage/database.ts b/src/ts/storage/database.ts index 7be52f40..e17f9892 100644 --- a/src/ts/storage/database.ts +++ b/src/ts/storage/database.ts @@ -309,6 +309,9 @@ export function setDatabase(data:Database){ if(!data.formatingOrder.includes('personaPrompt')){ data.formatingOrder.splice(data.formatingOrder.indexOf('main'),0,'personaPrompt') } + if(checkNullish(data.translatorprompt)){ + data.translatorprompt = "" + } data.selectedPersona ??= 0 data.personaPrompt ??= '' data.personas ??= [{ @@ -519,13 +522,14 @@ export interface Database{ mancerHeader:string emotionProcesser:'submodel'|'embedding', showMenuChatList?:boolean, - translatorType:'google'|'deepl'|'none', + translatorType:'google'|'deepl'|'submodel'|'none', NAIadventure?:boolean, NAIappendName?:boolean, deeplOptions:{ key:string, freeApi:boolean } + translatorprompt:string localStopStrings?:string[] autofillRequestUrl:boolean customProxyRequestModel:string diff --git a/src/ts/translator/translator.ts b/src/ts/translator/translator.ts index e16864ac..94dad744 100644 --- a/src/ts/translator/translator.ts +++ b/src/ts/translator/translator.ts @@ -3,6 +3,8 @@ import { translatorPlugin } from "../plugins/plugins" import { DataBase } from "../storage/database" import { globalFetch } from "../storage/globalApi" import { alertError } from "../alert" +import type { OpenAIChat } from "../process" +import { requestChatData } from "../process/request" let cache={ origin: [''], @@ -120,7 +122,39 @@ async function translateMain(text:string, arg:{from:string, to:string, host:stri } + if(db.translatorType === 'submodel'){ + const defaulttranslateprompt = `You need to translate the entered sentence from ${arg.from.toLocaleUpperCase()} to ${arg.to.toLocaleUpperCase()}. You must not write any words other than the translated sentence.` + + const translateprompt = (db.translatorprompt === '')? defaulttranslateprompt : db.translatorprompt + + const promptbody:OpenAIChat[] = [ + { + role:'system', + content: translateprompt + }, + { + role: 'user', + content: text + }, + ] + const rq = await requestChatData({ + formated: promptbody, + temperature: 0.2, + maxTokens: 500, + bias: {} + }, 'submodel') + + if(rq.type === 'fail' || rq.type === 'streaming' || rq.type === 'multiline'){ + alertError(`${rq.result}`) + return false + } + + const r = rq.result + console.log(r) + + return r + } const url = `https://${arg.host}/translate_a/single?client=gtx&dt=t&sl=${arg.from}&tl=${arg.to}&q=` + encodeURIComponent(text) From 9432b6360628c5424fe4ef7e240a47e032eb5e0b Mon Sep 17 00:00:00 2001 From: hashcoko Date: Tue, 28 Nov 2023 03:00:39 +0900 Subject: [PATCH 05/14] Change NAI sampler Textinput to SelectInput Signed-off-by: hashcoko --- src/lib/Setting/Pages/OtherBotSettings.svelte | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/lib/Setting/Pages/OtherBotSettings.svelte b/src/lib/Setting/Pages/OtherBotSettings.svelte index 9d425fe9..3c6b8b8f 100644 --- a/src/lib/Setting/Pages/OtherBotSettings.svelte +++ b/src/lib/Setting/Pages/OtherBotSettings.svelte @@ -13,7 +13,12 @@ import Button from "src/lib/UI/GUI/Button.svelte"; import { getCharImage } from "src/ts/characters"; import Arcodion from "src/lib/UI/Arcodion.svelte"; - + $:{ + if ($DataBase.NAIImgConfig.sampler === 'ddim_v3'){ + $DataBase.NAIImgConfig.sm = false + $DataBase.NAIImgConfig.sm_dyn = false + } + }

{language.otherBots}

@@ -76,7 +81,15 @@ Height Sampler - + + Euler + Euler Ancestral + DPM++ 2S Ancestral + DPM++ 2M + DPM++ SDE + DPM++ 2S + DDIM + steps CFG scale From 5983e3883fa0983423dd52e07ef0dcd8ff1e73de Mon Sep 17 00:00:00 2001 From: hashcoko Date: Tue, 28 Nov 2023 03:45:34 +0900 Subject: [PATCH 06/14] [Fix] NAI TTS Cors ERR Signed-off-by: hashcoko --- .gitignore | 2 +- src/lib/ChatScreens/ChatScreen.svelte | 8 ++++---- src/ts/process/tts.ts | 10 ++++++---- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 5104888b..32292255 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,7 @@ yarn-debug.log* yarn-error.log* pnpm-debug.log* lerna-debug.log* - +package-lock.json node_modules dist/ save/ diff --git a/src/lib/ChatScreens/ChatScreen.svelte b/src/lib/ChatScreens/ChatScreen.svelte index 8c6b64f2..1bf64441 100644 --- a/src/lib/ChatScreens/ChatScreen.svelte +++ b/src/lib/ChatScreens/ChatScreen.svelte @@ -12,11 +12,11 @@ import VisualNovelMain from "../VisualNovel/VisualNovelMain.svelte"; let openChatList = false - $:{ - if ($DataBase.translatorType === 'submodel'){ - $DataBase.useStreaming = false - } + + if ($DataBase.translatorType === 'submodel'){ + $DataBase.useStreaming = false } + const wallPaper = `background: url(${defaultWallpaper})` const externalStyles = ("background: " + ($DataBase.textScreenColor ? ($DataBase.textScreenColor + '80') : "rgba(0,0,0,0.8)") + ';\n') diff --git a/src/ts/process/tts.ts b/src/ts/process/tts.ts index f6d3a0d8..34795c25 100644 --- a/src/ts/process/tts.ts +++ b/src/ts/process/tts.ts @@ -141,15 +141,16 @@ export async function sayTTS(character:character,text:string) { } case 'novelai': { const audioContext = new AudioContext(); - const response = await fetch(`https://api.novelai.net/ai/generate-voice?text=${text}&voice=-1&seed=${character.naittsConfig.voice}&opus=false&version=${character.naittsConfig.version}`, { + const response = await globalFetch(`https://api.novelai.net/ai/generate-voice?text=${text}&voice=-1&seed=${character.naittsConfig.voice}&opus=false&version=${character.naittsConfig.version}`, { method: 'GET', headers: { "Authorization": "Bearer " + db.NAIApiKey, - } + }, + rawResponse: true }); - if (response.status === 200 && response.headers.get('content-type') === 'audio/mpeg') { - const audioBuffer = await response.arrayBuffer(); + if (response.ok) { + const audioBuffer = response.data.buffer; audioContext.decodeAudioData(audioBuffer, (decodedData) => { const sourceNode = audioContext.createBufferSource(); sourceNode.buffer = decodedData; @@ -158,6 +159,7 @@ export async function sayTTS(character:character,text:string) { }); } else { alertError("Error fetching or decoding audio data"); + console.log(response); } break; } From 70adcedc46852189501ffef3022b4ff3666c32cc Mon Sep 17 00:00:00 2001 From: hashcoko Date: Tue, 28 Nov 2023 03:57:09 +0900 Subject: [PATCH 07/14] Fix conditional rendering in OtherBotSettings.svelte Signed-off-by: hashcoko --- src/lib/Setting/Pages/OtherBotSettings.svelte | 2 +- src/ts/process/tts.ts | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/lib/Setting/Pages/OtherBotSettings.svelte b/src/lib/Setting/Pages/OtherBotSettings.svelte index 3c6b8b8f..7a773940 100644 --- a/src/lib/Setting/Pages/OtherBotSettings.svelte +++ b/src/lib/Setting/Pages/OtherBotSettings.svelte @@ -95,7 +95,7 @@ CFG scale - {#if !$DataBase.NAII2I} + {#if !$DataBase.NAII2I || $DataBase.NAIImgConfig.sampler === 'ddim_v3'} {/if} diff --git a/src/ts/process/tts.ts b/src/ts/process/tts.ts index 34795c25..9c29dde1 100644 --- a/src/ts/process/tts.ts +++ b/src/ts/process/tts.ts @@ -159,7 +159,6 @@ export async function sayTTS(character:character,text:string) { }); } else { alertError("Error fetching or decoding audio data"); - console.log(response); } break; } From 704ece2a15a8816a950b6ab21df2c5efd7bfc28d Mon Sep 17 00:00:00 2001 From: hashcoko Date: Tue, 28 Nov 2023 13:33:24 +0900 Subject: [PATCH 08/14] fixRequest things that weren't covered in the last pull request. Signed-off-by: hashcoko --- src/lib/ChatScreens/ChatScreen.svelte | 5 --- src/lib/Setting/Pages/LanguageSettings.svelte | 7 ---- src/ts/storage/database.ts | 4 --- src/ts/translator/translator.ts | 34 ------------------- 4 files changed, 50 deletions(-) diff --git a/src/lib/ChatScreens/ChatScreen.svelte b/src/lib/ChatScreens/ChatScreen.svelte index 1bf64441..01fe227f 100644 --- a/src/lib/ChatScreens/ChatScreen.svelte +++ b/src/lib/ChatScreens/ChatScreen.svelte @@ -12,11 +12,6 @@ import VisualNovelMain from "../VisualNovel/VisualNovelMain.svelte"; let openChatList = false - - if ($DataBase.translatorType === 'submodel'){ - $DataBase.useStreaming = false - } - const wallPaper = `background: url(${defaultWallpaper})` const externalStyles = ("background: " + ($DataBase.textScreenColor ? ($DataBase.textScreenColor + '80') : "rgba(0,0,0,0.8)") + ';\n') diff --git a/src/lib/Setting/Pages/LanguageSettings.svelte b/src/lib/Setting/Pages/LanguageSettings.svelte index 85bdfcf8..bd73266e 100644 --- a/src/lib/Setting/Pages/LanguageSettings.svelte +++ b/src/lib/Setting/Pages/LanguageSettings.svelte @@ -69,13 +69,6 @@ - {:else if $DataBase.translatorType === 'submodel'} - Translate Prompt - - Response streaming is disabled when using submodels. - Translation sends a lot of requests at once, so don't use it at reverse proxy. - {/if} - {#if $DataBase.translatorType === 'llm'} {language.translationPrompt} diff --git a/src/ts/storage/database.ts b/src/ts/storage/database.ts index e4b4aac4..388f31bf 100644 --- a/src/ts/storage/database.ts +++ b/src/ts/storage/database.ts @@ -309,9 +309,6 @@ export function setDatabase(data:Database){ if(!data.formatingOrder.includes('personaPrompt')){ data.formatingOrder.splice(data.formatingOrder.indexOf('main'),0,'personaPrompt') } - if(checkNullish(data.translatorprompt)){ - data.translatorprompt = "" - } data.selectedPersona ??= 0 data.personaPrompt ??= '' data.personas ??= [{ @@ -530,7 +527,6 @@ export interface Database{ key:string, freeApi:boolean } - translatorprompt:string localStopStrings?:string[] autofillRequestUrl:boolean customProxyRequestModel:string diff --git a/src/ts/translator/translator.ts b/src/ts/translator/translator.ts index d63cca5d..2dd52d51 100644 --- a/src/ts/translator/translator.ts +++ b/src/ts/translator/translator.ts @@ -125,40 +125,6 @@ async function translateMain(text:string, arg:{from:string, to:string, host:stri return f.data.translations[0].text } - - if(db.translatorType === 'submodel'){ - - const defaulttranslateprompt = `You need to translate the entered sentence from ${arg.from.toLocaleUpperCase()} to ${arg.to.toLocaleUpperCase()}. You must not write any words other than the translated sentence.` - - const translateprompt = (db.translatorprompt === '')? defaulttranslateprompt : db.translatorprompt - - const promptbody:OpenAIChat[] = [ - { - role:'system', - content: translateprompt - }, - { - role: 'user', - content: text - }, - ] - const rq = await requestChatData({ - formated: promptbody, - temperature: 0.2, - maxTokens: 500, - bias: {} - }, 'submodel') - - if(rq.type === 'fail' || rq.type === 'streaming' || rq.type === 'multiline'){ - alertError(`${rq.result}`) - return false - } - - const r = rq.result - console.log(r) - - return r - } const url = `https://${arg.host}/translate_a/single?client=gtx&dt=t&sl=${arg.from}&tl=${arg.to}&q=` + encodeURIComponent(text) From 6dbd0f5526db0b123080c359f23bccb95feb0110 Mon Sep 17 00:00:00 2001 From: hashcoko Date: Tue, 28 Nov 2023 13:43:24 +0900 Subject: [PATCH 09/14] Fix conditional rendering in LanguageSettings.svelte Signed-off-by: hashcoko --- src/lib/Setting/Pages/LanguageSettings.svelte | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/Setting/Pages/LanguageSettings.svelte b/src/lib/Setting/Pages/LanguageSettings.svelte index bd73266e..e680b8c4 100644 --- a/src/lib/Setting/Pages/LanguageSettings.svelte +++ b/src/lib/Setting/Pages/LanguageSettings.svelte @@ -68,7 +68,8 @@
- + {/if} + {#if $DataBase.translatorType === 'llm'} {language.translationPrompt} From a183a702a6a1fb1a70cd4237abc38334d622b592 Mon Sep 17 00:00:00 2001 From: hashcoko Date: Tue, 28 Nov 2023 15:24:13 +0900 Subject: [PATCH 10/14] Add check for empty text in sayTTS function Signed-off-by: hashcoko --- src/ts/process/tts.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ts/process/tts.ts b/src/ts/process/tts.ts index 07d3c09b..708c9e97 100644 --- a/src/ts/process/tts.ts +++ b/src/ts/process/tts.ts @@ -149,6 +149,9 @@ export async function sayTTS(character:character,text:string) { } case 'novelai': { const audioContext = new AudioContext(); + if(text === ''){ + alertError(language.errors.emptyText) + } const response = await globalFetch(`https://api.novelai.net/ai/generate-voice?text=${text}&voice=-1&seed=${character.naittsConfig.voice}&opus=false&version=${character.naittsConfig.version}`, { method: 'GET', headers: { From 99302d9b764e451ffb9a52dd8319e7e7a7f3ef58 Mon Sep 17 00:00:00 2001 From: hashcoko Date: Tue, 28 Nov 2023 15:26:18 +0900 Subject: [PATCH 11/14] Fix error handling in sayTTS function Signed-off-by: hashcoko --- src/ts/process/tts.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ts/process/tts.ts b/src/ts/process/tts.ts index 708c9e97..b7718bab 100644 --- a/src/ts/process/tts.ts +++ b/src/ts/process/tts.ts @@ -150,7 +150,8 @@ export async function sayTTS(character:character,text:string) { case 'novelai': { const audioContext = new AudioContext(); if(text === ''){ - alertError(language.errors.emptyText) + alertError(language.errors.emptyText); + break; } const response = await globalFetch(`https://api.novelai.net/ai/generate-voice?text=${text}&voice=-1&seed=${character.naittsConfig.voice}&opus=false&version=${character.naittsConfig.version}`, { method: 'GET', From 712e000349fd4bf6b5dc0464fc9da45f60e5c06d Mon Sep 17 00:00:00 2001 From: hashcoko Date: Tue, 28 Nov 2023 16:31:48 +0900 Subject: [PATCH 12/14] [Fix] inlay emotion image Signed-off-by: hashcoko --- src/lang/en.ts | 1 + src/lib/SideBars/CharConfig.svelte | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/src/lang/en.ts b/src/lang/en.ts index e019d514..b24fdf57 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -22,6 +22,7 @@ export const languageEnglish = { onlyOneChat: 'There must be least one chat', alreadyCharInGroup: "There is already a character with the same name in the group.", noUserIcon: "You must set your icon first.", + emptyText: "Text is empty.", }, showHelp: "Show Help", help:{ diff --git a/src/lib/SideBars/CharConfig.svelte b/src/lib/SideBars/CharConfig.svelte index d7e048ee..cccc6249 100644 --- a/src/lib/SideBars/CharConfig.svelte +++ b/src/lib/SideBars/CharConfig.svelte @@ -397,6 +397,12 @@ { if(currentChar.type === 'character'){ + if(currentChar.data.inlayViewScreen || currentChar.data.additionalAssets === undefined){ + currentChar.data.additionalAssets = [] + }else if(!currentChar.data.inlayViewScreen || currentChar.data.additionalAssets.length === 0){ + currentChar.data.additionalAssets = undefined + } + currentChar.data = updateInlayScreen(currentChar.data) } }}/> From 308ff456f8199a97ddc0f5526a0b0a7e8c4e74a6 Mon Sep 17 00:00:00 2001 From: hashcoko Date: Tue, 28 Nov 2023 16:38:38 +0900 Subject: [PATCH 13/14] Remove source lang from deepl requests for different language translations. Signed-off-by: hashcoko --- src/ts/translator/translator.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/ts/translator/translator.ts b/src/ts/translator/translator.ts index 2dd52d51..0304be8d 100644 --- a/src/ts/translator/translator.ts +++ b/src/ts/translator/translator.ts @@ -107,7 +107,6 @@ async function translateMain(text:string, arg:{from:string, to:string, host:stri if(db.translatorType === 'deepl'){ const body = { text: [text], - source_lang: arg.from.toLocaleUpperCase(), target_lang: arg.to.toLocaleUpperCase(), } let url = db.deeplOptions.freeApi ? "https://api-free.deepl.com/v2/translate" : "https://api.deepl.com/v2/translate" From 2dd0ff79f5eb5296e36563985b17b24d230e8014 Mon Sep 17 00:00:00 2001 From: hashcoko Date: Tue, 28 Nov 2023 16:52:57 +0900 Subject: [PATCH 14/14] add web deepL warning Signed-off-by: hashcoko --- src/lang/en.ts | 1 + src/lib/Setting/Pages/BotSettings.svelte | 4 ++-- src/lib/Setting/Pages/LanguageSettings.svelte | 6 ++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/lang/en.ts b/src/lang/en.ts index b24fdf57..07a05730 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -453,4 +453,5 @@ export const languageEnglish = { imgGenInstructions: "Image Generation Instructions", usePlainFetchWarn: "Please disable this option when using NovelAI, as it can cause CORS errors when using NovelAI.", translationPrompt: "Translation Prompt", + webdeeplwarn: "This option is not recommended for use with web version, as it can cause CORS errors.", } \ No newline at end of file diff --git a/src/lib/Setting/Pages/BotSettings.svelte b/src/lib/Setting/Pages/BotSettings.svelte index 3298d8b5..6969cbeb 100644 --- a/src/lib/Setting/Pages/BotSettings.svelte +++ b/src/lib/Setting/Pages/BotSettings.svelte @@ -20,8 +20,8 @@ import OptionInput from "src/lib/UI/GUI/OptionInput.svelte"; import { openRouterModels } from "src/ts/model/openrouter"; import { novelLogin } from "src/ts/process/models/nai"; - import { alertConfirm } from "src/ts/alert"; - import OobaSettings from "./OobaSettings.svelte"; + import { alertConfirm } from "src/ts/alert"; + import OobaSettings from "./OobaSettings.svelte"; let tokens = { mainPrompt: 0, diff --git a/src/lib/Setting/Pages/LanguageSettings.svelte b/src/lib/Setting/Pages/LanguageSettings.svelte index e680b8c4..c123ed2b 100644 --- a/src/lib/Setting/Pages/LanguageSettings.svelte +++ b/src/lib/Setting/Pages/LanguageSettings.svelte @@ -6,7 +6,7 @@ import OptionInput from "src/lib/UI/GUI/OptionInput.svelte"; import SelectInput from "src/lib/UI/GUI/SelectInput.svelte"; import { alertNormal } from "src/ts/alert"; - import { downloadFile } from "src/ts/storage/globalApi"; + import { downloadFile, isTauri } from "src/ts/storage/globalApi"; import { languageEnglish } from "src/lang/en"; import TextInput from "src/lib/UI/GUI/TextInput.svelte"; import TextAreaInput from "src/lib/UI/GUI/TextAreaInput.svelte"; @@ -61,7 +61,9 @@ {#if $DataBase.translatorType === 'deepl'} - + {#if !isTauri} + {language.webdeeplwarn} + {/if} {language.deeplKey}