{language.otherBots}
{#if submenu !== -1}
{
submenu = 0
}} class="p-2 flex-1 border-r border-darkborderc" class:bg-darkbutton={submenu === 0}>
{language.longTermMemory}
{
submenu = 1
}} class="p2 flex-1 border-r border-darkborderc" class:bg-darkbutton={submenu === 1}>
TTS
{
submenu = 2
}} class="p-2 flex-1 border-r border-darkborderc" class:bg-darkbutton={submenu === 2}>
{language.emotionImage}
{
submenu = 3
}} class="p-2 flex-1" class:bg-darkbutton={submenu === 3}>
{language.imageGeneration}
{/if}
{#if submenu === 3 || submenu === -1}
{language.imageGeneration} {language.provider}
None
Stable Diffusion WebUI
Novel AI
Dall-E
Stability API
Fal.ai
ComfyUI
{#if DBState.db.sdProvider === 'comfy'}
ComfyUI (Legacy)
{/if}
{#if DBState.db.sdProvider === 'webui'}
You must use WebUI with --api flag
You must use WebUI without agpl license or use unmodified version with agpl license to observe the contents of the agpl license.
{#if !isTauri}
You are using web version. you must use ngrok or other tunnels to use your local webui.
{/if}
WebUI {language.providerURL}
Steps
CFG Scale
Width
Height
Sampler
{#if DBState.db.sdConfig.enable_hr === true}
denoising_strength
hr_scale
Upscaler
{/if}
{/if}
{#if DBState.db.sdProvider === 'novelai'}
Novel AI {language.providerURL}
API Key
Model
{
DBState.db.NAIImgModel = imageModel;
}}>
Choose...
nai-diffusion-4-full
nai-diffusion-4-curated-preview
nai-diffusion-3
nai-diffusion-furry-3
nai-diffusion-2
Width
Height
Sampler
{#if DBState.db.NAIImgModel === 'nai-diffusion-4-full'
|| DBState.db.NAIImgModel === 'nai-diffusion-4-curated-preview'}
(Recommended)Euler Ancestral
(Recommended)DPM++ 2S Ancestral
(Recommended)DPM++ 2M SDE
(Other)Euler
(Other)DPM++ 2M
(Other)DPM++ SDE
{:else}
Euler
Euler Ancestral
DPM++ 2S Ancestral
DPM++ 2M
DPM++ SDE
DPM++ 2S
DDIM
{/if}
steps
CFG scale
Noise Schedule
karras
exponential
polyexponential
{#if !DBState.db.NAII2I || DBState.db.NAIImgConfig.sampler !== 'ddim_v3'}
{:else if DBState.db.NAIImgModel === 'nai-diffusion-4-full'
|| DBState.db.NAIImgModel === 'nai-diffusion-4-curated-preview'}
{/if}
{#if DBState.db.NAIImgModel === 'nai-diffusion-4-full'
|| DBState.db.NAIImgModel === 'nai-diffusion-4-curated-preview'}
Prompt Guidance Rescale
{/if}
{#if DBState.db.NAII2I}
Strength
{DBState.db.NAIImgConfig.strength}
Noise
{DBState.db.NAIImgConfig.noise}
Base image
{
const img = await selectSingleFile([
'jpg',
'jpeg',
'png',
'webp'
])
if(!img){
return null
}
const saveId = await saveAsset(img.data)
DBState.db.NAIImgConfig.image = saveId
}}>
{#if DBState.db.NAIImgConfig.image === ''}
{:else}
{#await getCharImage(DBState.db.NAIImgConfig.image, 'css')}
{:then im}
{/await}
{/if}
{/if}
Vibe
{
const file = await selectSingleFile(['naiv4vibe'])
if(!file){
return null
}
try {
const vibeData = JSON.parse(new TextDecoder().decode(file.data))
if (vibeData.version !== 1 || vibeData.identifier !== "novelai-vibe-transfer") {
alertError("Invalid vibe file. Version must be 1.")
return
}
// Store the vibe data
DBState.db.NAIImgConfig.vibe_data = vibeData
// Set the thumbnail as preview image for display
if (vibeData.thumbnail) {
// Clear the array and add the thumbnail
DBState.db.NAIImgConfig.reference_image_multiple = [];
// Set default model selection based on current model
if (DBState.db.NAIImgModel.includes('nai-diffusion-4-full')) {
DBState.db.NAIImgConfig.vibe_model_selection = 'v4full';
} else if (DBState.db.NAIImgModel.includes('nai-diffusion-4-curated')) {
DBState.db.NAIImgConfig.vibe_model_selection = 'v4curated';
}
// Set InfoExtracted to the first value for the selected model
const selectedModel = DBState.db.NAIImgConfig.vibe_model_selection;
if (selectedModel && vibeData.encodings[selectedModel]) {
const encodings = vibeData.encodings[selectedModel];
const firstKey = Object.keys(encodings)[0];
if (firstKey) {
DBState.db.NAIImgConfig.InfoExtracted = Number(encodings[firstKey].params.information_extracted);
}
}
}
// Initialize reference_strength_multiple if not set
if (!DBState.db.NAIImgConfig.reference_strength_multiple || !Array.isArray(DBState.db.NAIImgConfig.reference_strength_multiple)) {
DBState.db.NAIImgConfig.reference_strength_multiple = [0.7];
}
} catch (error) {
alertError("Error parsing vibe file: " + error)
}
}}>
Upload Vibe
{#if DBState.db.NAIImgConfig.vibe_data}
{
DBState.db.NAIImgConfig.vibe_data = undefined;
DBState.db.NAIImgConfig.vibe_model_selection = undefined;
}}
class="absolute top-2 right-2 bg-red-500 hover:bg-red-700 text-white font-bold py-1 px-2 rounded"
>
Delete
Vibe Model
{
// When vibe model changes, set InfoExtracted to the first value
if (DBState.db.NAIImgConfig.vibe_data?.encodings &&
DBState.db.NAIImgConfig.vibe_model_selection &&
DBState.db.NAIImgConfig.vibe_data.encodings[DBState.db.NAIImgConfig.vibe_model_selection]) {
const encodings = DBState.db.NAIImgConfig.vibe_data.encodings[DBState.db.NAIImgConfig.vibe_model_selection];
const firstKey = Object.keys(encodings)[0];
if (firstKey) {
DBState.db.NAIImgConfig.InfoExtracted = Number(encodings[firstKey].params.information_extracted);
}
}
}}>
{#if DBState.db.NAIImgConfig.vibe_data.encodings?.v4full}
nai-diffusion-4-full
{/if}
{#if DBState.db.NAIImgConfig.vibe_data.encodings?.v4curated}
nai-diffusion-4-curated
{/if}
Information Extracted
{#if DBState.db.NAIImgConfig.vibe_model_selection && DBState.db.NAIImgConfig.vibe_data.encodings[DBState.db.NAIImgConfig.vibe_model_selection]}
{#each Object.entries(DBState.db.NAIImgConfig.vibe_data.encodings[DBState.db.NAIImgConfig.vibe_model_selection]) as [key, value]}
{value.params.information_extracted}
{/each}
{/if}
Reference Strength Multiple
{/if}
{/if}
{#if DBState.db.sdProvider === 'dalle'}
OpenAI API Key
Dall-E Quality
Standard
HD
{/if}
{#if DBState.db.sdProvider === 'stability'}
Stability API Key
Stability Model
SD Ultra
SD Core
SD3 Large
SD3 Medium
{#if DBState.db.stabilityModel === 'core'}
SD Core Style
Unspecified
3D Model
Analog Film
Anime
Cinematic
Comic Book
Digital Art
Enhance
Fantasy Art
Isometric
Line Art
Low Poly
Modeling Compound
Neon Punk
Origami
Photographic
Pixel Art
Tile Texture
{/if}
{/if}
{#if DBState.db.sdProvider === 'comfyui'}
ComfyUI {language.providerURL}
Workflow
Timeout (sec)
{/if}
{#if DBState.db.sdProvider === 'comfy'}
The first image generated by the prompt will be selected.
{#if !isTauri}
"Please run comfyUI with --enable-cors-header."
{/if}
ComfyUI {language.providerURL}
Workflow
Positive Text Node: ID
Positive Text Node: Input Field Name
Negative Text Node: ID
Positive Text Node: Input Field Name
Timeout (sec)
{/if}
{#if DBState.db.sdProvider === 'fal'}
Fal.ai API Key
Width
Height
Model
Flux[Dev]
Flux[Dev] with Lora
Flux[Pro]
Flux[Schnell]
{#if DBState.db.falModel === 'fal-ai/flux-lora'}
Lora Model URL
Lora Weight
{/if}
{/if}
{/if}
{#if submenu === 1 || submenu === -1}
Auto Speech
ElevenLabs API key
VOICEVOX URL
OpenAI Key
NovelAI API key
Huggingface Key
fish-speech API Key
{/if}
{#if submenu === 2 || submenu === -1}
{language.emotionMethod}
Ax. Model
MiniLM-L6-v2
{/if}
{#if submenu === 0 || submenu === -1}
{language.type}
{
//@ts-ignore
const value = v.target.value
if (value === 'supaMemory'){
DBState.db.supaModelType = 'distilbart'
DBState.db.memoryAlgorithmType = 'supaMemory'
DBState.db.hypav2 = false
DBState.db.hanuraiEnable = false
DBState.db.hypaV3 = false
} else if (value === 'hanuraiMemory'){
DBState.db.supaModelType = 'none'
DBState.db.memoryAlgorithmType = 'hanuraiMemory'
DBState.db.hypav2 = false
DBState.db.hanuraiEnable = true
DBState.db.hypaV3 = false
} else if (value === 'hypaV2') {
DBState.db.supaModelType = 'distilbart'
DBState.db.memoryAlgorithmType = 'hypaMemoryV2'
DBState.db.hypav2= true
DBState.db.hanuraiEnable = false
DBState.db.hypaV3 = false
} else if (value === 'hypaV3') {
DBState.db.supaModelType = 'subModel'
DBState.db.memoryAlgorithmType = 'hypaMemoryV3'
DBState.db.hypav2 = false
DBState.db.hanuraiEnable = false
DBState.db.hypaV3 = true
DBState.db.hypaV3Settings.memoryTokensRatio = 0.2
DBState.db.hypaV3Settings.extraSummarizationRatio = 0
DBState.db.hypaV3Settings.maxChatsPerSummary = 4
DBState.db.hypaV3Settings.recentMemoryRatio = 0.4
DBState.db.hypaV3Settings.similarMemoryRatio = 0.4
DBState.db.hypaV3Settings.enableSimilarityCorrection = false
DBState.db.hypaV3Settings.preserveOrphanedMemory = false
DBState.db.hypaV3Settings.processRegexScript = false
DBState.db.hypaV3Settings.doNotSummarizeUserMessage = false
} else {
DBState.db.supaModelType = 'none'
DBState.db.memoryAlgorithmType = 'none'
DBState.db.hypav2 = false
DBState.db.hanuraiEnable = false
DBState.db.hypaV3 = false
}
}}>
None
{language.SuperMemory}
{language.HypaMemory} V2
{language.hanuraiMemory}
{language.HypaMemory} V3
{#if DBState.db.hanuraiEnable}
{language.hanuraiDesc}
Chunk Size
{:else if DBState.db.hypav2}
{language.hypaV2Desc}
{language.SuperMemory} {language.model}
distilbart-cnn-6-6 (Free/Local)
OpenAI 3.5 Turbo Instruct
{language.submodel}
{#if DBState.db.supaModelType === 'davinci' || DBState.db.supaModelType === 'curie' || DBState.db.supaModelType === 'instruct35'}
{language.SuperMemory} OpenAI Key
{/if}
{language.summarizationPrompt}
{language.hypaChunkSize}
{language.hypaAllocatedTokens}
{:else if DBState.db.hypaV3}
{language.hypaV3Settings.descriptionLabel}
{language.SuperMemory} {language.model}
distilbart-cnn-6-6 (Free/Local)
{language.submodel}
{language.summarizationPrompt}
{#await getMaxMemoryRatio() then maxMemoryRatio}
{language.hypaV3Settings.maxMemoryTokensRatioLabel}
{:catch error}
{language.hypaV3Settings.maxMemoryTokensRatioError}
{/await}
{language.hypaV3Settings.memoryTokensRatioLabel}
{language.hypaV3Settings.extraSummarizationRatioLabel}
{language.hypaV3Settings.maxChatsPerSummaryLabel}
{language.hypaV3Settings.recentMemoryRatioLabel}
{language.hypaV3Settings.similarMemoryRatioLabel}
{language.hypaV3Settings.randomMemoryRatioLabel}
{:else if (DBState.db.supaModelType !== 'none' && DBState.db.hypav2 === false && DBState.db.hypaV3 === false)}
{language.supaDesc}
{language.SuperMemory} {language.model}
distilbart-cnn-6-6 (Free/Local)
OpenAI 3.5 Turbo Instruct
{language.submodel}
{language.maxSupaChunkSize}
{#if DBState.db.supaModelType === 'davinci' || DBState.db.supaModelType === 'curie' || DBState.db.supaModelType === 'instruct35'}
{language.SuperMemory} OpenAI Key
{/if}
{#if DBState.db.supaModelType !== 'none'}
{language.SuperMemory} Prompt
{/if}
{/if}
{language.embedding}
{#if 'gpu' in navigator}
Nomic Embed Text v1.5 (GPU)
BGE Small English (GPU)
BGE Medium 3 (GPU)
{/if}
MiniLM L6 v2 (CPU)
Nomic Embed Text v1.5 (CPU)
BGE Small English (CPU)
BGE Medium 3 (CPU)
OpenAI text-embedding-3-small
OpenAI text-embedding-3-large
OpenAI Ada
Custom (OpenAI-compatible)
{#if DBState.db.hypaModel === 'openai3small' || DBState.db.hypaModel === 'openai3large' || DBState.db.hypaModel === 'ada'}
OpenAI API Key
{/if}
{#if DBState.db.hypaModel === 'custom'}
URL
Key/Password
Request Model
{/if}
{/if}