Browse Source

Merge pull request #4795 from open-webui/dev

0.3.15
Timothy Jaeryang Baek 8 months ago
parent
commit
847ca66001
54 changed files with 148 additions and 29 deletions
  1. 13 0
      CHANGELOG.md
  2. 2 1
      backend/apps/images/main.py
  3. 3 1
      backend/apps/images/utils/comfyui.py
  4. 7 2
      backend/apps/webui/main.py
  5. 2 2
      package-lock.json
  6. 1 1
      package.json
  7. 26 15
      src/lib/components/admin/Settings/Images.svelte
  8. 4 2
      src/lib/components/chat/Chat.svelte
  9. 9 0
      src/lib/components/chat/Messages.svelte
  10. 16 3
      src/lib/components/chat/Messages/MultiResponseMessages.svelte
  11. 8 0
      src/lib/components/chat/ModelSelector/Selector.svelte
  12. 9 1
      src/lib/components/common/ImagePreview.svelte
  13. 1 0
      src/lib/i18n/locales/ar-BH/translation.json
  14. 1 0
      src/lib/i18n/locales/bg-BG/translation.json
  15. 1 0
      src/lib/i18n/locales/bn-BD/translation.json
  16. 1 0
      src/lib/i18n/locales/ca-ES/translation.json
  17. 1 0
      src/lib/i18n/locales/ceb-PH/translation.json
  18. 1 0
      src/lib/i18n/locales/de-DE/translation.json
  19. 1 0
      src/lib/i18n/locales/dg-DG/translation.json
  20. 1 0
      src/lib/i18n/locales/en-GB/translation.json
  21. 1 0
      src/lib/i18n/locales/en-US/translation.json
  22. 1 0
      src/lib/i18n/locales/es-ES/translation.json
  23. 1 0
      src/lib/i18n/locales/fa-IR/translation.json
  24. 1 0
      src/lib/i18n/locales/fi-FI/translation.json
  25. 1 0
      src/lib/i18n/locales/fr-CA/translation.json
  26. 1 0
      src/lib/i18n/locales/fr-FR/translation.json
  27. 1 0
      src/lib/i18n/locales/he-IL/translation.json
  28. 1 0
      src/lib/i18n/locales/hi-IN/translation.json
  29. 1 0
      src/lib/i18n/locales/hr-HR/translation.json
  30. 1 0
      src/lib/i18n/locales/id-ID/translation.json
  31. 1 0
      src/lib/i18n/locales/it-IT/translation.json
  32. 1 0
      src/lib/i18n/locales/ja-JP/translation.json
  33. 1 0
      src/lib/i18n/locales/ka-GE/translation.json
  34. 1 0
      src/lib/i18n/locales/ko-KR/translation.json
  35. 1 0
      src/lib/i18n/locales/lt-LT/translation.json
  36. 1 0
      src/lib/i18n/locales/ms-MY/translation.json
  37. 1 0
      src/lib/i18n/locales/nb-NO/translation.json
  38. 1 0
      src/lib/i18n/locales/nl-NL/translation.json
  39. 1 0
      src/lib/i18n/locales/pa-IN/translation.json
  40. 1 0
      src/lib/i18n/locales/pl-PL/translation.json
  41. 1 0
      src/lib/i18n/locales/pt-BR/translation.json
  42. 1 0
      src/lib/i18n/locales/pt-PT/translation.json
  43. 1 0
      src/lib/i18n/locales/ro-RO/translation.json
  44. 1 0
      src/lib/i18n/locales/ru-RU/translation.json
  45. 1 0
      src/lib/i18n/locales/sr-RS/translation.json
  46. 1 0
      src/lib/i18n/locales/sv-SE/translation.json
  47. 1 0
      src/lib/i18n/locales/th-TH/translation.json
  48. 1 0
      src/lib/i18n/locales/tk-TW/translation.json
  49. 1 0
      src/lib/i18n/locales/tr-TR/translation.json
  50. 1 0
      src/lib/i18n/locales/uk-UA/translation.json
  51. 1 0
      src/lib/i18n/locales/vi-VN/translation.json
  52. 1 0
      src/lib/i18n/locales/zh-CN/translation.json
  53. 1 0
      src/lib/i18n/locales/zh-TW/translation.json
  54. 7 1
      src/routes/(app)/+layout.svelte

+ 13 - 0
CHANGELOG.md

@@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file.
 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 
 
+## [0.3.15] - 2024-08-21
+
+### Added
+
+- **🔗 Temporary Chat Activation**: Integrated a new URL parameter 'temporary-chat=true' to enable temporary chat sessions directly through the URL.
+- **🌄 ComfyUI Seed Node Support**: Introduced seed node support in ComfyUI for image generation, allowing users to specify node IDs for randomized seed assignment.
+
+### Fixed
+
+- **🛠️ Tools and Functions**: Resolved a critical issue where Tools and Functions were not properly functioning, restoring full capability and reliability to these essential features.
+- **🔘 Chat Action Button in Many Model Chat**: Fixed the malfunctioning of chat action buttons in many model chat environments, ensuring a smoother and more responsive user interaction.
+- **⏪ Many Model Chat Compatibility**: Restored backward compatibility for many model chats.
+
 ## [0.3.14] - 2024-08-21
 ## [0.3.14] - 2024-08-21
 
 
 ### Added
 ### Added

+ 2 - 1
backend/apps/images/main.py

@@ -298,7 +298,8 @@ def get_models(user=Depends(get_verified_user)):
 
 
             for node in app.state.config.COMFYUI_WORKFLOW_NODES:
             for node in app.state.config.COMFYUI_WORKFLOW_NODES:
                 if node["type"] == "model":
                 if node["type"] == "model":
-                    model_node_id = node["node_ids"][0]
+                    if node["node_ids"]:
+                        model_node_id = node["node_ids"][0]
                     break
                     break
 
 
             if model_node_id:
             if model_node_id:

+ 3 - 1
backend/apps/images/utils/comfyui.py

@@ -133,7 +133,7 @@ async def comfyui_generate_image(
                     else random.randint(0, 18446744073709551614)
                     else random.randint(0, 18446744073709551614)
                 )
                 )
                 for node_id in node.node_ids:
                 for node_id in node.node_ids:
-                    workflow[node.node_id]["inputs"]["seed"] = seed
+                    workflow[node_id]["inputs"][node.key] = seed
         else:
         else:
             for node_id in node.node_ids:
             for node_id in node.node_ids:
                 workflow[node_id]["inputs"][node.key] = node.value
                 workflow[node_id]["inputs"][node.key] = node.value
@@ -147,6 +147,8 @@ async def comfyui_generate_image(
         return None
         return None
 
 
     try:
     try:
+        log.info("Sending workflow to WebSocket server.")
+        log.info(f"Workflow: {workflow}")
         images = await asyncio.to_thread(get_images, ws, workflow, client_id, base_url)
         images = await asyncio.to_thread(get_images, ws, workflow, client_id, base_url)
     except Exception as e:
     except Exception as e:
         log.exception(f"Error while receiving images: {e}")
         log.exception(f"Error while receiving images: {e}")

+ 7 - 2
backend/apps/webui/main.py

@@ -280,6 +280,10 @@ async def generate_function_chat_completion(form_data, user):
     files = metadata.get("files", [])
     files = metadata.get("files", [])
     tool_ids = metadata.get("tool_ids", [])
     tool_ids = metadata.get("tool_ids", [])
 
 
+    # Check if tool_ids is None
+    if tool_ids is None:
+        tool_ids = []
+
     __event_emitter__ = None
     __event_emitter__ = None
     __event_call__ = None
     __event_call__ = None
     __task__ = None
     __task__ = None
@@ -301,9 +305,10 @@ async def generate_function_chat_completion(form_data, user):
         "__messages__": form_data["messages"],
         "__messages__": form_data["messages"],
         "__files__": files,
         "__files__": files,
     }
     }
-    configured_tools = get_tools(app, tool_ids, user, tools_params)
 
 
-    extra_params["__tools__"] = configured_tools
+    tools = get_tools(app, tool_ids, user, tools_params)
+    extra_params["__tools__"] = tools
+
     if model_info:
     if model_info:
         if model_info.base_model_id:
         if model_info.base_model_id:
             form_data["model"] = model_info.base_model_id
             form_data["model"] = model_info.base_model_id

+ 2 - 2
package-lock.json

@@ -1,12 +1,12 @@
 {
 {
 	"name": "open-webui",
 	"name": "open-webui",
-	"version": "0.3.14",
+	"version": "0.3.15",
 	"lockfileVersion": 3,
 	"lockfileVersion": 3,
 	"requires": true,
 	"requires": true,
 	"packages": {
 	"packages": {
 		"": {
 		"": {
 			"name": "open-webui",
 			"name": "open-webui",
-			"version": "0.3.14",
+			"version": "0.3.15",
 			"dependencies": {
 			"dependencies": {
 				"@codemirror/lang-javascript": "^6.2.2",
 				"@codemirror/lang-javascript": "^6.2.2",
 				"@codemirror/lang-python": "^6.1.6",
 				"@codemirror/lang-python": "^6.1.6",

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
 {
 	"name": "open-webui",
 	"name": "open-webui",
-	"version": "0.3.14",
+	"version": "0.3.15",
 	"private": true,
 	"private": true,
 	"scripts": {
 	"scripts": {
 		"dev": "npm run pyodide:fetch && vite dev --host",
 		"dev": "npm run pyodide:fetch && vite dev --host",

+ 26 - 15
src/lib/components/admin/Settings/Images.svelte

@@ -27,7 +27,7 @@
 
 
 	let models = null;
 	let models = null;
 
 
-	let workflowNodes = [
+	let requiredWorkflowNodes = [
 		{
 		{
 			type: 'prompt',
 			type: 'prompt',
 			key: 'text',
 			key: 'text',
@@ -52,6 +52,11 @@
 			type: 'steps',
 			type: 'steps',
 			key: 'steps',
 			key: 'steps',
 			node_ids: ''
 			node_ids: ''
+		},
+		{
+			type: 'seed',
+			key: 'seed',
+			node_ids: ''
 		}
 		}
 	];
 	];
 
 
@@ -101,11 +106,12 @@
 		}
 		}
 
 
 		if (config?.comfyui?.COMFYUI_WORKFLOW) {
 		if (config?.comfyui?.COMFYUI_WORKFLOW) {
-			config.comfyui.COMFYUI_WORKFLOW_NODES = workflowNodes.map((node) => {
+			config.comfyui.COMFYUI_WORKFLOW_NODES = requiredWorkflowNodes.map((node) => {
 				return {
 				return {
 					type: node.type,
 					type: node.type,
 					key: node.key,
 					key: node.key,
-					node_ids: node.node_ids.split(',').map((id) => id.trim())
+					node_ids:
+						node.node_ids.trim() === '' ? [] : node.node_ids.split(',').map((id) => id.trim())
 				};
 				};
 			});
 			});
 		}
 		}
@@ -150,15 +156,17 @@
 				);
 				);
 			}
 			}
 
 
-			if ((config?.comfyui?.COMFYUI_WORKFLOW_NODES ?? []).length >= 5) {
-				workflowNodes = config.comfyui.COMFYUI_WORKFLOW_NODES.map((node) => {
-					return {
-						type: node.type,
-						key: node.key,
-						node_ids: node.node_ids.join(',')
-					};
-				});
-			}
+			requiredWorkflowNodes = requiredWorkflowNodes.map((node) => {
+				const n = config.comfyui.COMFYUI_WORKFLOW_NODES.find((n) => n.type === node.type) ?? node;
+
+				console.log(n);
+
+				return {
+					type: n.type,
+					key: n.key,
+					node_ids: typeof n.node_ids === 'string' ? n.node_ids : n.node_ids.join(',')
+				};
+			});
 
 
 			const imageConfigRes = await getImageGenerationConfig(localStorage.token).catch((error) => {
 			const imageConfigRes = await getImageGenerationConfig(localStorage.token).catch((error) => {
 				toast.error(error);
 				toast.error(error);
@@ -414,13 +422,13 @@
 							<div class=" mb-2 text-sm font-medium">{$i18n.t('ComfyUI Workflow Nodes')}</div>
 							<div class=" mb-2 text-sm font-medium">{$i18n.t('ComfyUI Workflow Nodes')}</div>
 
 
 							<div class="text-xs flex flex-col gap-1.5">
 							<div class="text-xs flex flex-col gap-1.5">
-								{#each workflowNodes as node}
+								{#each requiredWorkflowNodes as node}
 									<div class="flex w-full items-center border dark:border-gray-850 rounded-lg">
 									<div class="flex w-full items-center border dark:border-gray-850 rounded-lg">
 										<div class="flex-shrink-0">
 										<div class="flex-shrink-0">
 											<div
 											<div
 												class=" capitalize line-clamp-1 font-medium px-3 py-1 w-20 text-center rounded-l-lg bg-green-500/10 text-green-700 dark:text-green-200"
 												class=" capitalize line-clamp-1 font-medium px-3 py-1 w-20 text-center rounded-l-lg bg-green-500/10 text-green-700 dark:text-green-200"
 											>
 											>
-												{node.type}
+												{node.type}{node.type === 'prompt' ? '*' : ''}
 											</div>
 											</div>
 										</div>
 										</div>
 										<div class="">
 										<div class="">
@@ -443,13 +451,16 @@
 													class="w-full py-1 px-4 rounded-r-lg text-xs bg-transparent outline-none"
 													class="w-full py-1 px-4 rounded-r-lg text-xs bg-transparent outline-none"
 													placeholder="Node Ids"
 													placeholder="Node Ids"
 													bind:value={node.node_ids}
 													bind:value={node.node_ids}
-													required
 												/>
 												/>
 											</Tooltip>
 											</Tooltip>
 										</div>
 										</div>
 									</div>
 									</div>
 								{/each}
 								{/each}
 							</div>
 							</div>
+
+							<div class="mt-2 text-xs text-right text-gray-400 dark:text-gray-500">
+								{$i18n.t('*Prompt node ID(s) are required for image generation')}
+							</div>
 						</div>
 						</div>
 					{/if}
 					{/if}
 				{:else if config?.engine === 'openai'}
 				{:else if config?.engine === 'openai'}

+ 4 - 2
src/lib/components/chat/Chat.svelte

@@ -270,9 +270,11 @@
 	//////////////////////////
 	//////////////////////////
 
 
 	const initNewChat = async () => {
 	const initNewChat = async () => {
-		window.history.replaceState(history.state, '', `/`);
-		await chatId.set('');
+		if ($page.url.pathname.includes('/c/')) {
+			window.history.replaceState(history.state, '', `/`);
+		}
 
 
+		await chatId.set('');
 		autoScroll = true;
 		autoScroll = true;
 
 
 		title = '';
 		title = '';

+ 9 - 0
src/lib/components/chat/Messages.svelte

@@ -386,6 +386,15 @@
 										{continueGeneration}
 										{continueGeneration}
 										{mergeResponses}
 										{mergeResponses}
 										{regenerateResponse}
 										{regenerateResponse}
+										on:action={async (e) => {
+											console.log('action', e);
+											if (typeof e.detail === 'string') {
+												await chatActionHandler(chatId, e.detail, message.model, message.id);
+											} else {
+												const { id, event } = e.detail;
+												await chatActionHandler(chatId, id, message.model, message.id, event);
+											}
+										}}
 										on:change={async () => {
 										on:change={async () => {
 											await updateChatById(localStorage.token, chatId, {
 											await updateChatById(localStorage.token, chatId, {
 												messages: messages,
 												messages: messages,

+ 16 - 3
src/lib/components/chat/Messages/MultiResponseMessages.svelte

@@ -91,9 +91,19 @@
 
 
 		groupedMessages = parentMessage?.models.reduce((a, model, modelIdx) => {
 		groupedMessages = parentMessage?.models.reduce((a, model, modelIdx) => {
 			// Find all messages that are children of the parent message and have the same model
 			// Find all messages that are children of the parent message and have the same model
-			const modelMessages = parentMessage?.childrenIds
+			let modelMessages = parentMessage?.childrenIds
 				.map((id) => history.messages[id])
 				.map((id) => history.messages[id])
-				.filter((m) => m.modelIdx === modelIdx);
+				.filter((m) => m?.modelIdx === modelIdx);
+
+			if (modelMessages.length === 0) {
+				modelMessages = parentMessage?.childrenIds
+					.map((id) => history.messages[id])
+					.filter((m) => m?.model === model);
+
+				modelMessages.forEach((m) => {
+					m.modelIdx = modelIdx;
+				});
+			}
 
 
 			return {
 			return {
 				...a,
 				...a,
@@ -186,6 +196,9 @@
 										await tick();
 										await tick();
 										groupedMessagesIdx[modelIdx] = groupedMessages[modelIdx].messages.length - 1;
 										groupedMessagesIdx[modelIdx] = groupedMessages[modelIdx].messages.length - 1;
 									}}
 									}}
+									on:action={async (e) => {
+										dispatch('action', e.detail);
+									}}
 									on:save={async (e) => {
 									on:save={async (e) => {
 										console.log('save', e);
 										console.log('save', e);
 
 
@@ -208,7 +221,7 @@
 	{#if !readOnly && isLastMessage}
 	{#if !readOnly && isLastMessage}
 		{#if !Object.keys(groupedMessages).find((modelIdx) => {
 		{#if !Object.keys(groupedMessages).find((modelIdx) => {
 			const { messages } = groupedMessages[modelIdx];
 			const { messages } = groupedMessages[modelIdx];
-			return !messages[groupedMessagesIdx[modelIdx]].done;
+			return !messages[groupedMessagesIdx[modelIdx]]?.done ?? false;
 		})}
 		})}
 			<div class="flex justify-end">
 			<div class="flex justify-end">
 				<div class="w-full">
 				<div class="w-full">

+ 8 - 0
src/lib/components/chat/ModelSelector/Selector.svelte

@@ -533,6 +533,14 @@
 							setTimeout(() => {
 							setTimeout(() => {
 								newChatButton?.click();
 								newChatButton?.click();
 							}, 0);
 							}, 0);
+
+							// add 'temporary-chat=true' to the URL
+							if ($temporaryChatEnabled) {
+								history.replaceState(null, '', '?temporary-chat=true');
+							} else {
+								history.replaceState(null, '', location.pathname);
+							}
+
 							show = false;
 							show = false;
 						}}
 						}}
 					>
 					>

+ 9 - 1
src/lib/components/common/ImagePreview.svelte

@@ -1,5 +1,5 @@
 <script lang="ts">
 <script lang="ts">
-	import { onMount } from 'svelte';
+	import { onDestroy, onMount } from 'svelte';
 
 
 	export let show = false;
 	export let show = false;
 	export let src = '';
 	export let src = '';
@@ -45,6 +45,14 @@
 		document.body.removeChild(previewElement);
 		document.body.removeChild(previewElement);
 		document.body.style.overflow = 'unset';
 		document.body.style.overflow = 'unset';
 	}
 	}
+
+	onDestroy(() => {
+		show = false;
+
+		if (previewElement) {
+			document.body.removeChild(previewElement);
+		}
+	});
 </script>
 </script>
 
 
 {#if show}
 {#if show}

+ 1 - 0
src/lib/i18n/locales/ar-BH/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} ...يفكر",
 	"{{modelName}} is thinking...": "{{modelName}} ...يفكر",
 	"{{user}}'s Chats": "دردشات {{user}}",
 	"{{user}}'s Chats": "دردشات {{user}}",
 	"{{webUIName}} Backend Required": "{{webUIName}} مطلوب",
 	"{{webUIName}} Backend Required": "{{webUIName}} مطلوب",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "يتم استخدام نموذج المهمة عند تنفيذ مهام مثل إنشاء عناوين للدردشات واستعلامات بحث الويب",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "يتم استخدام نموذج المهمة عند تنفيذ مهام مثل إنشاء عناوين للدردشات واستعلامات بحث الويب",
 	"a user": "مستخدم",
 	"a user": "مستخدم",
 	"About": "عن",
 	"About": "عن",

+ 1 - 0
src/lib/i18n/locales/bg-BG/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} мисли ...",
 	"{{modelName}} is thinking...": "{{modelName}} мисли ...",
 	"{{user}}'s Chats": "{{user}}'s чатове",
 	"{{user}}'s Chats": "{{user}}'s чатове",
 	"{{webUIName}} Backend Required": "{{webUIName}} Изисква се Бекенд",
 	"{{webUIName}} Backend Required": "{{webUIName}} Изисква се Бекенд",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Моделът на задачите се използва при изпълнение на задачи като генериране на заглавия за чатове и заявки за търсене в мрежата",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Моделът на задачите се използва при изпълнение на задачи като генериране на заглавия за чатове и заявки за търсене в мрежата",
 	"a user": "потребител",
 	"a user": "потребител",
 	"About": "Относно",
 	"About": "Относно",

+ 1 - 0
src/lib/i18n/locales/bn-BD/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} চিন্তা করছে...",
 	"{{modelName}} is thinking...": "{{modelName}} চিন্তা করছে...",
 	"{{user}}'s Chats": "{{user}}র চ্যাটস",
 	"{{user}}'s Chats": "{{user}}র চ্যাটস",
 	"{{webUIName}} Backend Required": "{{webUIName}} ব্যাকএন্ড আবশ্যক",
 	"{{webUIName}} Backend Required": "{{webUIName}} ব্যাকএন্ড আবশ্যক",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "চ্যাট এবং ওয়েব অনুসন্ধান প্রশ্নের জন্য শিরোনাম তৈরি করার মতো কাজগুলি সম্পাদন করার সময় একটি টাস্ক মডেল ব্যবহার করা হয়",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "চ্যাট এবং ওয়েব অনুসন্ধান প্রশ্নের জন্য শিরোনাম তৈরি করার মতো কাজগুলি সম্পাদন করার সময় একটি টাস্ক মডেল ব্যবহার করা হয়",
 	"a user": "একজন ব্যাবহারকারী",
 	"a user": "একজন ব্যাবহারকারী",
 	"About": "সম্পর্কে",
 	"About": "সম্পর্কে",

+ 1 - 0
src/lib/i18n/locales/ca-ES/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} està pensant...",
 	"{{modelName}} is thinking...": "{{modelName}} està pensant...",
 	"{{user}}'s Chats": "Els xats de {{user}}",
 	"{{user}}'s Chats": "Els xats de {{user}}",
 	"{{webUIName}} Backend Required": "El Backend de {{webUIName}} és necessari",
 	"{{webUIName}} Backend Required": "El Backend de {{webUIName}} és necessari",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Un model de tasca s'utilitza quan es realitzen tasques com ara generar títols per a xats i consultes de cerca per a la web",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Un model de tasca s'utilitza quan es realitzen tasques com ara generar títols per a xats i consultes de cerca per a la web",
 	"a user": "un usuari",
 	"a user": "un usuari",
 	"About": "Sobre",
 	"About": "Sobre",

+ 1 - 0
src/lib/i18n/locales/ceb-PH/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} hunahunaa...",
 	"{{modelName}} is thinking...": "{{modelName}} hunahunaa...",
 	"{{user}}'s Chats": "",
 	"{{user}}'s Chats": "",
 	"{{webUIName}} Backend Required": "Backend {{webUIName}} gikinahanglan",
 	"{{webUIName}} Backend Required": "Backend {{webUIName}} gikinahanglan",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
 	"a user": "usa ka user",
 	"a user": "usa ka user",
 	"About": "Mahitungod sa",
 	"About": "Mahitungod sa",

+ 1 - 0
src/lib/i18n/locales/de-DE/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} denkt nach...",
 	"{{modelName}} is thinking...": "{{modelName}} denkt nach...",
 	"{{user}}'s Chats": "{{user}}s Unterhaltungen",
 	"{{user}}'s Chats": "{{user}}s Unterhaltungen",
 	"{{webUIName}} Backend Required": "{{webUIName}}-Backend erforderlich",
 	"{{webUIName}} Backend Required": "{{webUIName}}-Backend erforderlich",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Aufgabenmodelle können Unterhaltungstitel oder Websuchanfragen generieren.",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Aufgabenmodelle können Unterhaltungstitel oder Websuchanfragen generieren.",
 	"a user": "ein Benutzer",
 	"a user": "ein Benutzer",
 	"About": "Über",
 	"About": "Über",

+ 1 - 0
src/lib/i18n/locales/dg-DG/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} is thinkin'...",
 	"{{modelName}} is thinking...": "{{modelName}} is thinkin'...",
 	"{{user}}'s Chats": "",
 	"{{user}}'s Chats": "",
 	"{{webUIName}} Backend Required": "{{webUIName}} Backend Much Required",
 	"{{webUIName}} Backend Required": "{{webUIName}} Backend Much Required",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
 	"a user": "such user",
 	"a user": "such user",
 	"About": "Much About",
 	"About": "Much About",

+ 1 - 0
src/lib/i18n/locales/en-GB/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "",
 	"{{modelName}} is thinking...": "",
 	"{{user}}'s Chats": "",
 	"{{user}}'s Chats": "",
 	"{{webUIName}} Backend Required": "",
 	"{{webUIName}} Backend Required": "",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
 	"a user": "",
 	"a user": "",
 	"About": "",
 	"About": "",

+ 1 - 0
src/lib/i18n/locales/en-US/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "",
 	"{{modelName}} is thinking...": "",
 	"{{user}}'s Chats": "",
 	"{{user}}'s Chats": "",
 	"{{webUIName}} Backend Required": "",
 	"{{webUIName}} Backend Required": "",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
 	"a user": "",
 	"a user": "",
 	"About": "",
 	"About": "",

+ 1 - 0
src/lib/i18n/locales/es-ES/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} está pensando...",
 	"{{modelName}} is thinking...": "{{modelName}} está pensando...",
 	"{{user}}'s Chats": "{{user}}'s Chats",
 	"{{user}}'s Chats": "{{user}}'s Chats",
 	"{{webUIName}} Backend Required": "{{webUIName}} Servidor Requerido",
 	"{{webUIName}} Backend Required": "{{webUIName}} Servidor Requerido",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Un modelo de tareas se utiliza cuando se realizan tareas como la generación de títulos para chats y consultas de búsqueda web",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Un modelo de tareas se utiliza cuando se realizan tareas como la generación de títulos para chats y consultas de búsqueda web",
 	"a user": "un usuario",
 	"a user": "un usuario",
 	"About": "Sobre nosotros",
 	"About": "Sobre nosotros",

+ 1 - 0
src/lib/i18n/locales/fa-IR/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} در حال فکر کردن است...",
 	"{{modelName}} is thinking...": "{{modelName}} در حال فکر کردن است...",
 	"{{user}}'s Chats": "{{user}} چت ها",
 	"{{user}}'s Chats": "{{user}} چت ها",
 	"{{webUIName}} Backend Required": "بکند {{webUIName}} نیاز است.",
 	"{{webUIName}} Backend Required": "بکند {{webUIName}} نیاز است.",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "یک مدل وظیفه هنگام انجام وظایف مانند تولید عناوین برای چت ها و نمایش های جستجوی وب استفاده می شود.",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "یک مدل وظیفه هنگام انجام وظایف مانند تولید عناوین برای چت ها و نمایش های جستجوی وب استفاده می شود.",
 	"a user": "یک کاربر",
 	"a user": "یک کاربر",
 	"About": "درباره",
 	"About": "درباره",

+ 1 - 0
src/lib/i18n/locales/fi-FI/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} miettii...",
 	"{{modelName}} is thinking...": "{{modelName}} miettii...",
 	"{{user}}'s Chats": "{{user}}:n keskustelut",
 	"{{user}}'s Chats": "{{user}}:n keskustelut",
 	"{{webUIName}} Backend Required": "{{webUIName}} backend vaaditaan",
 	"{{webUIName}} Backend Required": "{{webUIName}} backend vaaditaan",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Tehtävämallia käytetään tehtävien suorittamiseen, kuten otsikoiden luomiseen keskusteluille ja verkkohakukyselyille",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Tehtävämallia käytetään tehtävien suorittamiseen, kuten otsikoiden luomiseen keskusteluille ja verkkohakukyselyille",
 	"a user": "käyttäjä",
 	"a user": "käyttäjä",
 	"About": "Tietoja",
 	"About": "Tietoja",

+ 1 - 0
src/lib/i18n/locales/fr-CA/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} est en train de réfléchir...",
 	"{{modelName}} is thinking...": "{{modelName}} est en train de réfléchir...",
 	"{{user}}'s Chats": "Discussions de {{user}}",
 	"{{user}}'s Chats": "Discussions de {{user}}",
 	"{{webUIName}} Backend Required": "Backend {{webUIName}} requis",
 	"{{webUIName}} Backend Required": "Backend {{webUIName}} requis",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Un modèle de tâche est utilisé lors de l’exécution de tâches telles que la génération de titres pour les conversations et les requêtes de recherche sur le web.",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Un modèle de tâche est utilisé lors de l’exécution de tâches telles que la génération de titres pour les conversations et les requêtes de recherche sur le web.",
 	"a user": "un utilisateur",
 	"a user": "un utilisateur",
 	"About": "À propos",
 	"About": "À propos",

+ 1 - 0
src/lib/i18n/locales/fr-FR/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} est en train de réfléchir...",
 	"{{modelName}} is thinking...": "{{modelName}} est en train de réfléchir...",
 	"{{user}}'s Chats": "Discussions de {{user}}",
 	"{{user}}'s Chats": "Discussions de {{user}}",
 	"{{webUIName}} Backend Required": "Backend {{webUIName}} requis",
 	"{{webUIName}} Backend Required": "Backend {{webUIName}} requis",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Un modèle de tâche est utilisé lors de l’exécution de tâches telles que la génération de titres pour les conversations et les requêtes de recherche sur le web.",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Un modèle de tâche est utilisé lors de l’exécution de tâches telles que la génération de titres pour les conversations et les requêtes de recherche sur le web.",
 	"a user": "un utilisateur",
 	"a user": "un utilisateur",
 	"About": "À propos",
 	"About": "À propos",

+ 1 - 0
src/lib/i18n/locales/he-IL/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} חושב...",
 	"{{modelName}} is thinking...": "{{modelName}} חושב...",
 	"{{user}}'s Chats": "צ'אטים של {{user}}",
 	"{{user}}'s Chats": "צ'אטים של {{user}}",
 	"{{webUIName}} Backend Required": "נדרש Backend של {{webUIName}}",
 	"{{webUIName}} Backend Required": "נדרש Backend של {{webUIName}}",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "מודל משימה משמש בעת ביצוע משימות כגון יצירת כותרות עבור צ'אטים ושאילתות חיפוש באינטרנט",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "מודל משימה משמש בעת ביצוע משימות כגון יצירת כותרות עבור צ'אטים ושאילתות חיפוש באינטרנט",
 	"a user": "משתמש",
 	"a user": "משתמש",
 	"About": "אודות",
 	"About": "אודות",

+ 1 - 0
src/lib/i18n/locales/hi-IN/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} सोच रहा है...",
 	"{{modelName}} is thinking...": "{{modelName}} सोच रहा है...",
 	"{{user}}'s Chats": "{{user}} की चैट",
 	"{{user}}'s Chats": "{{user}} की चैट",
 	"{{webUIName}} Backend Required": "{{webUIName}} बैकएंड आवश्यक",
 	"{{webUIName}} Backend Required": "{{webUIName}} बैकएंड आवश्यक",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "चैट और वेब खोज क्वेरी के लिए शीर्षक उत्पन्न करने जैसे कार्य करते समय कार्य मॉडल का उपयोग किया जाता है",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "चैट और वेब खोज क्वेरी के लिए शीर्षक उत्पन्न करने जैसे कार्य करते समय कार्य मॉडल का उपयोग किया जाता है",
 	"a user": "एक उपयोगकर्ता",
 	"a user": "एक उपयोगकर्ता",
 	"About": "हमारे बारे में",
 	"About": "हमारे बारे में",

+ 1 - 0
src/lib/i18n/locales/hr-HR/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} razmišlja...",
 	"{{modelName}} is thinking...": "{{modelName}} razmišlja...",
 	"{{user}}'s Chats": "Razgovori korisnika {{user}}",
 	"{{user}}'s Chats": "Razgovori korisnika {{user}}",
 	"{{webUIName}} Backend Required": "{{webUIName}} Backend je potreban",
 	"{{webUIName}} Backend Required": "{{webUIName}} Backend je potreban",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Model zadatka koristi se pri izvođenju zadataka kao što su generiranje naslova za razgovore i upite za pretraživanje weba",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Model zadatka koristi se pri izvođenju zadataka kao što su generiranje naslova za razgovore i upite za pretraživanje weba",
 	"a user": "korisnik",
 	"a user": "korisnik",
 	"About": "O aplikaciji",
 	"About": "O aplikaciji",

+ 1 - 0
src/lib/i18n/locales/id-ID/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} sedang berpikir...",
 	"{{modelName}} is thinking...": "{{modelName}} sedang berpikir...",
 	"{{user}}'s Chats": "Obrolan {{user}}",
 	"{{user}}'s Chats": "Obrolan {{user}}",
 	"{{webUIName}} Backend Required": "{{webUIName}} Diperlukan Backend",
 	"{{webUIName}} Backend Required": "{{webUIName}} Diperlukan Backend",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Model tugas digunakan saat melakukan tugas seperti membuat judul untuk obrolan dan kueri penelusuran web",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Model tugas digunakan saat melakukan tugas seperti membuat judul untuk obrolan dan kueri penelusuran web",
 	"a user": "seorang pengguna",
 	"a user": "seorang pengguna",
 	"About": "Tentang",
 	"About": "Tentang",

+ 1 - 0
src/lib/i18n/locales/it-IT/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} sta pensando...",
 	"{{modelName}} is thinking...": "{{modelName}} sta pensando...",
 	"{{user}}'s Chats": "{{user}} Chat",
 	"{{user}}'s Chats": "{{user}} Chat",
 	"{{webUIName}} Backend Required": "{{webUIName}} Backend richiesto",
 	"{{webUIName}} Backend Required": "{{webUIName}} Backend richiesto",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Un modello di attività viene utilizzato durante l'esecuzione di attività come la generazione di titoli per chat e query di ricerca Web",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Un modello di attività viene utilizzato durante l'esecuzione di attività come la generazione di titoli per chat e query di ricerca Web",
 	"a user": "un utente",
 	"a user": "un utente",
 	"About": "Informazioni",
 	"About": "Informazioni",

+ 1 - 0
src/lib/i18n/locales/ja-JP/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} は思考中です...",
 	"{{modelName}} is thinking...": "{{modelName}} は思考中です...",
 	"{{user}}'s Chats": "{{user}} のチャット",
 	"{{user}}'s Chats": "{{user}} のチャット",
 	"{{webUIName}} Backend Required": "{{webUIName}} バックエンドが必要です",
 	"{{webUIName}} Backend Required": "{{webUIName}} バックエンドが必要です",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "タスクモデルは、チャットやWeb検索クエリのタイトルの生成などのタスクを実行するときに使用されます",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "タスクモデルは、チャットやWeb検索クエリのタイトルの生成などのタスクを実行するときに使用されます",
 	"a user": "ユーザー",
 	"a user": "ユーザー",
 	"About": "概要",
 	"About": "概要",

+ 1 - 0
src/lib/i18n/locales/ka-GE/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} ფიქრობს...",
 	"{{modelName}} is thinking...": "{{modelName}} ფიქრობს...",
 	"{{user}}'s Chats": "{{user}}-ის ჩათები",
 	"{{user}}'s Chats": "{{user}}-ის ჩათები",
 	"{{webUIName}} Backend Required": "{{webUIName}} საჭიროა ბექენდი",
 	"{{webUIName}} Backend Required": "{{webUIName}} საჭიროა ბექენდი",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "დავალების მოდელი გამოიყენება ისეთი ამოცანების შესრულებისას, როგორიცაა ჩეთების სათაურების გენერირება და ვებ – ძიების მოთხოვნები",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "დავალების მოდელი გამოიყენება ისეთი ამოცანების შესრულებისას, როგორიცაა ჩეთების სათაურების გენერირება და ვებ – ძიების მოთხოვნები",
 	"a user": "მომხმარებელი",
 	"a user": "მომხმარებელი",
 	"About": "შესახებ",
 	"About": "შესახებ",

+ 1 - 0
src/lib/i18n/locales/ko-KR/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} 모델이 생각 중입니다....",
 	"{{modelName}} is thinking...": "{{modelName}} 모델이 생각 중입니다....",
 	"{{user}}'s Chats": "{{user}}의 채팅",
 	"{{user}}'s Chats": "{{user}}의 채팅",
 	"{{webUIName}} Backend Required": "{{webUIName}} 백엔드가 필요합니다.",
 	"{{webUIName}} Backend Required": "{{webUIName}} 백엔드가 필요합니다.",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "작업 모델은 채팅 및 웹 검색 쿼리에 대한 제목 생성 등의 작업 수행 시 사용됩니다.",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "작업 모델은 채팅 및 웹 검색 쿼리에 대한 제목 생성 등의 작업 수행 시 사용됩니다.",
 	"a user": "사용자",
 	"a user": "사용자",
 	"About": "정보",
 	"About": "정보",

+ 1 - 0
src/lib/i18n/locales/lt-LT/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} mąsto...",
 	"{{modelName}} is thinking...": "{{modelName}} mąsto...",
 	"{{user}}'s Chats": "{{user}} susirašinėjimai",
 	"{{user}}'s Chats": "{{user}} susirašinėjimai",
 	"{{webUIName}} Backend Required": "{{webUIName}} būtinas serveris",
 	"{{webUIName}} Backend Required": "{{webUIName}} būtinas serveris",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Užduočių modelis naudojamas pokalbių pavadinimų ir paieškos užklausų generavimui.",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Užduočių modelis naudojamas pokalbių pavadinimų ir paieškos užklausų generavimui.",
 	"a user": "naudotojas",
 	"a user": "naudotojas",
 	"About": "Apie",
 	"About": "Apie",

+ 1 - 0
src/lib/i18n/locales/ms-MY/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} sedang berfikir...",
 	"{{modelName}} is thinking...": "{{modelName}} sedang berfikir...",
 	"{{user}}'s Chats": "Perbualan {{user}}",
 	"{{user}}'s Chats": "Perbualan {{user}}",
 	"{{webUIName}} Backend Required": "{{webUIName}} Backend diperlukan",
 	"{{webUIName}} Backend Required": "{{webUIName}} Backend diperlukan",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Model tugas digunakan semasa melaksanakan tugas seperti menjana tajuk untuk perbualan dan pertanyaan carian web.",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Model tugas digunakan semasa melaksanakan tugas seperti menjana tajuk untuk perbualan dan pertanyaan carian web.",
 	"a user": "seorang pengguna",
 	"a user": "seorang pengguna",
 	"About": "Mengenai",
 	"About": "Mengenai",

+ 1 - 0
src/lib/i18n/locales/nb-NO/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} tenker...",
 	"{{modelName}} is thinking...": "{{modelName}} tenker...",
 	"{{user}}'s Chats": "{{user}}s samtaler",
 	"{{user}}'s Chats": "{{user}}s samtaler",
 	"{{webUIName}} Backend Required": "{{webUIName}} Backend kreves",
 	"{{webUIName}} Backend Required": "{{webUIName}} Backend kreves",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "En oppgavemodell brukes når du utfører oppgaver som å generere titler for samtaler og websøkeforespørsler",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "En oppgavemodell brukes når du utfører oppgaver som å generere titler for samtaler og websøkeforespørsler",
 	"a user": "en bruker",
 	"a user": "en bruker",
 	"About": "Om",
 	"About": "Om",

+ 1 - 0
src/lib/i18n/locales/nl-NL/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} is aan het denken...",
 	"{{modelName}} is thinking...": "{{modelName}} is aan het denken...",
 	"{{user}}'s Chats": "{{user}}'s Chats",
 	"{{user}}'s Chats": "{{user}}'s Chats",
 	"{{webUIName}} Backend Required": "{{webUIName}} Backend Verlpicht",
 	"{{webUIName}} Backend Required": "{{webUIName}} Backend Verlpicht",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Een taakmodel wordt gebruikt bij het uitvoeren van taken zoals het genereren van titels voor chats en zoekopdrachten op internet",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Een taakmodel wordt gebruikt bij het uitvoeren van taken zoals het genereren van titels voor chats en zoekopdrachten op internet",
 	"a user": "een gebruiker",
 	"a user": "een gebruiker",
 	"About": "Over",
 	"About": "Over",

+ 1 - 0
src/lib/i18n/locales/pa-IN/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} ਸੋਚ ਰਿਹਾ ਹੈ...",
 	"{{modelName}} is thinking...": "{{modelName}} ਸੋਚ ਰਿਹਾ ਹੈ...",
 	"{{user}}'s Chats": "{{user}} ਦੀਆਂ ਗੱਲਾਂ",
 	"{{user}}'s Chats": "{{user}} ਦੀਆਂ ਗੱਲਾਂ",
 	"{{webUIName}} Backend Required": "{{webUIName}} ਬੈਕਐਂਡ ਲੋੜੀਂਦਾ ਹੈ",
 	"{{webUIName}} Backend Required": "{{webUIName}} ਬੈਕਐਂਡ ਲੋੜੀਂਦਾ ਹੈ",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "ਚੈਟਾਂ ਅਤੇ ਵੈੱਬ ਖੋਜ ਪੁੱਛਗਿੱਛਾਂ ਵਾਸਤੇ ਸਿਰਲੇਖ ਤਿਆਰ ਕਰਨ ਵਰਗੇ ਕਾਰਜ ਾਂ ਨੂੰ ਕਰਦੇ ਸਮੇਂ ਇੱਕ ਕਾਰਜ ਮਾਡਲ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "ਚੈਟਾਂ ਅਤੇ ਵੈੱਬ ਖੋਜ ਪੁੱਛਗਿੱਛਾਂ ਵਾਸਤੇ ਸਿਰਲੇਖ ਤਿਆਰ ਕਰਨ ਵਰਗੇ ਕਾਰਜ ਾਂ ਨੂੰ ਕਰਦੇ ਸਮੇਂ ਇੱਕ ਕਾਰਜ ਮਾਡਲ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ",
 	"a user": "ਇੱਕ ਉਪਭੋਗਤਾ",
 	"a user": "ਇੱਕ ਉਪਭੋਗਤਾ",
 	"About": "ਬਾਰੇ",
 	"About": "ਬਾਰੇ",

+ 1 - 0
src/lib/i18n/locales/pl-PL/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} myśli...",
 	"{{modelName}} is thinking...": "{{modelName}} myśli...",
 	"{{user}}'s Chats": "{{user}} - czaty",
 	"{{user}}'s Chats": "{{user}} - czaty",
 	"{{webUIName}} Backend Required": "Backend {{webUIName}} wymagane",
 	"{{webUIName}} Backend Required": "Backend {{webUIName}} wymagane",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Model zadań jest używany podczas wykonywania zadań, takich jak generowanie tytułów czatów i zapytań wyszukiwania w Internecie",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Model zadań jest używany podczas wykonywania zadań, takich jak generowanie tytułów czatów i zapytań wyszukiwania w Internecie",
 	"a user": "użytkownik",
 	"a user": "użytkownik",
 	"About": "O nas",
 	"About": "O nas",

+ 1 - 0
src/lib/i18n/locales/pt-BR/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} está pensando...",
 	"{{modelName}} is thinking...": "{{modelName}} está pensando...",
 	"{{user}}'s Chats": "Chats de {{user}}",
 	"{{user}}'s Chats": "Chats de {{user}}",
 	"{{webUIName}} Backend Required": "Backend {{webUIName}} necessário",
 	"{{webUIName}} Backend Required": "Backend {{webUIName}} necessário",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Um modelo de tarefa é usado ao realizar tarefas como gerar títulos para chats e consultas de pesquisa na web",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Um modelo de tarefa é usado ao realizar tarefas como gerar títulos para chats e consultas de pesquisa na web",
 	"a user": "um usuário",
 	"a user": "um usuário",
 	"About": "Sobre",
 	"About": "Sobre",

+ 1 - 0
src/lib/i18n/locales/pt-PT/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} está a pensar...",
 	"{{modelName}} is thinking...": "{{modelName}} está a pensar...",
 	"{{user}}'s Chats": "{{user}}'s Chats",
 	"{{user}}'s Chats": "{{user}}'s Chats",
 	"{{webUIName}} Backend Required": "{{webUIName}} Backend Necessário",
 	"{{webUIName}} Backend Required": "{{webUIName}} Backend Necessário",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Um modelo de tarefa é usado ao executar tarefas como gerar títulos para bate-papos e consultas de pesquisa na Web",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Um modelo de tarefa é usado ao executar tarefas como gerar títulos para bate-papos e consultas de pesquisa na Web",
 	"a user": "um utilizador",
 	"a user": "um utilizador",
 	"About": "Acerca de",
 	"About": "Acerca de",

+ 1 - 0
src/lib/i18n/locales/ro-RO/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} gândește...",
 	"{{modelName}} is thinking...": "{{modelName}} gândește...",
 	"{{user}}'s Chats": "Conversațiile lui {{user}}",
 	"{{user}}'s Chats": "Conversațiile lui {{user}}",
 	"{{webUIName}} Backend Required": "Este necesar backend-ul {{webUIName}}",
 	"{{webUIName}} Backend Required": "Este necesar backend-ul {{webUIName}}",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Un model de sarcină este utilizat pentru realizarea unor sarcini precum generarea de titluri pentru conversații și interogări de căutare pe web",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Un model de sarcină este utilizat pentru realizarea unor sarcini precum generarea de titluri pentru conversații și interogări de căutare pe web",
 	"a user": "un utilizator",
 	"a user": "un utilizator",
 	"About": "Despre",
 	"About": "Despre",

+ 1 - 0
src/lib/i18n/locales/ru-RU/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} думает...",
 	"{{modelName}} is thinking...": "{{modelName}} думает...",
 	"{{user}}'s Chats": "Чаты {{user}}'а",
 	"{{user}}'s Chats": "Чаты {{user}}'а",
 	"{{webUIName}} Backend Required": "Необходимо подключение к серверу {{webUIName}}",
 	"{{webUIName}} Backend Required": "Необходимо подключение к серверу {{webUIName}}",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Модель задач используется при выполнении таких задач, как генерация заголовков для чатов и поисковых запросов в Интернете",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Модель задач используется при выполнении таких задач, как генерация заголовков для чатов и поисковых запросов в Интернете",
 	"a user": "пользователь",
 	"a user": "пользователь",
 	"About": "О программе",
 	"About": "О программе",

+ 1 - 0
src/lib/i18n/locales/sr-RS/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} размишља...",
 	"{{modelName}} is thinking...": "{{modelName}} размишља...",
 	"{{user}}'s Chats": "Ћаскања корисника {{user}}",
 	"{{user}}'s Chats": "Ћаскања корисника {{user}}",
 	"{{webUIName}} Backend Required": "Захтева се {{webUIName}} позадинац",
 	"{{webUIName}} Backend Required": "Захтева се {{webUIName}} позадинац",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Модел задатка се користи приликом извршавања задатака као што су генерисање наслова за ћаскања и упите за Веб претрагу",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Модел задатка се користи приликом извршавања задатака као што су генерисање наслова за ћаскања и упите за Веб претрагу",
 	"a user": "корисник",
 	"a user": "корисник",
 	"About": "О нама",
 	"About": "О нама",

+ 1 - 0
src/lib/i18n/locales/sv-SE/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} tänker...",
 	"{{modelName}} is thinking...": "{{modelName}} tänker...",
 	"{{user}}'s Chats": "{{user}}s Chats",
 	"{{user}}'s Chats": "{{user}}s Chats",
 	"{{webUIName}} Backend Required": "{{webUIName}} Backend krävs",
 	"{{webUIName}} Backend Required": "{{webUIName}} Backend krävs",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "En uppgiftsmodell används när du utför uppgifter som att generera titlar för chattar och webbsökningsfrågor",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "En uppgiftsmodell används när du utför uppgifter som att generera titlar för chattar och webbsökningsfrågor",
 	"a user": "en användare",
 	"a user": "en användare",
 	"About": "Om",
 	"About": "Om",

+ 1 - 0
src/lib/i18n/locales/th-TH/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} กำลังคิด...",
 	"{{modelName}} is thinking...": "{{modelName}} กำลังคิด...",
 	"{{user}}'s Chats": "การสนทนาของ {{user}}",
 	"{{user}}'s Chats": "การสนทนาของ {{user}}",
 	"{{webUIName}} Backend Required": "ต้องการ Backend ของ {{webUIName}}",
 	"{{webUIName}} Backend Required": "ต้องการ Backend ของ {{webUIName}}",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "ใช้โมเดลงานเมื่อทำงานเช่นการสร้างหัวข้อสำหรับการสนทนาและการค้นหาเว็บ",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "ใช้โมเดลงานเมื่อทำงานเช่นการสร้างหัวข้อสำหรับการสนทนาและการค้นหาเว็บ",
 	"a user": "ผู้ใช้",
 	"a user": "ผู้ใช้",
 	"About": "เกี่ยวกับ",
 	"About": "เกี่ยวกับ",

+ 1 - 0
src/lib/i18n/locales/tk-TW/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "",
 	"{{modelName}} is thinking...": "",
 	"{{user}}'s Chats": "",
 	"{{user}}'s Chats": "",
 	"{{webUIName}} Backend Required": "",
 	"{{webUIName}} Backend Required": "",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
 	"a user": "",
 	"a user": "",
 	"About": "",
 	"About": "",

+ 1 - 0
src/lib/i18n/locales/tr-TR/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} düşünüyor...",
 	"{{modelName}} is thinking...": "{{modelName}} düşünüyor...",
 	"{{user}}'s Chats": "{{user}} Sohbetleri",
 	"{{user}}'s Chats": "{{user}} Sohbetleri",
 	"{{webUIName}} Backend Required": "{{webUIName}} Arkayüz Gerekli",
 	"{{webUIName}} Backend Required": "{{webUIName}} Arkayüz Gerekli",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Bir görev modeli, sohbetler ve web arama sorguları için başlık oluşturma gibi görevleri yerine getirirken kullanılır",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Bir görev modeli, sohbetler ve web arama sorguları için başlık oluşturma gibi görevleri yerine getirirken kullanılır",
 	"a user": "bir kullanıcı",
 	"a user": "bir kullanıcı",
 	"About": "Hakkında",
 	"About": "Hakkında",

+ 1 - 0
src/lib/i18n/locales/uk-UA/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} думає...",
 	"{{modelName}} is thinking...": "{{modelName}} думає...",
 	"{{user}}'s Chats": "Чати {{user}}а",
 	"{{user}}'s Chats": "Чати {{user}}а",
 	"{{webUIName}} Backend Required": "Необхідно підключення бекенду {{webUIName}}",
 	"{{webUIName}} Backend Required": "Необхідно підключення бекенду {{webUIName}}",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Модель задач використовується при виконанні таких завдань, як генерація заголовків для чатів та пошукових запитів в Інтернеті",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Модель задач використовується при виконанні таких завдань, як генерація заголовків для чатів та пошукових запитів в Інтернеті",
 	"a user": "користувача",
 	"a user": "користувача",
 	"About": "Про програму",
 	"About": "Про програму",

+ 1 - 0
src/lib/i18n/locales/vi-VN/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} đang suy nghĩ...",
 	"{{modelName}} is thinking...": "{{modelName}} đang suy nghĩ...",
 	"{{user}}'s Chats": "{{user}}'s Chats",
 	"{{user}}'s Chats": "{{user}}'s Chats",
 	"{{webUIName}} Backend Required": "{{webUIName}} Yêu cầu Backend",
 	"{{webUIName}} Backend Required": "{{webUIName}} Yêu cầu Backend",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Mô hình tác vụ được sử dụng khi thực hiện các tác vụ như tạo tiêu đề cho cuộc trò chuyện và truy vấn tìm kiếm trên web",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Mô hình tác vụ được sử dụng khi thực hiện các tác vụ như tạo tiêu đề cho cuộc trò chuyện và truy vấn tìm kiếm trên web",
 	"a user": "người sử dụng",
 	"a user": "người sử dụng",
 	"About": "Giới thiệu",
 	"About": "Giới thiệu",

+ 1 - 0
src/lib/i18n/locales/zh-CN/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} 正在思考...",
 	"{{modelName}} is thinking...": "{{modelName}} 正在思考...",
 	"{{user}}'s Chats": "{{user}} 的对话记录",
 	"{{user}}'s Chats": "{{user}} 的对话记录",
 	"{{webUIName}} Backend Required": "需要 {{webUIName}} 后端",
 	"{{webUIName}} Backend Required": "需要 {{webUIName}} 后端",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "任务模型用于执行生成对话标题和网络搜索查询等任务",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "任务模型用于执行生成对话标题和网络搜索查询等任务",
 	"a user": "用户",
 	"a user": "用户",
 	"About": "关于",
 	"About": "关于",

+ 1 - 0
src/lib/i18n/locales/zh-TW/translation.json

@@ -9,6 +9,7 @@
 	"{{modelName}} is thinking...": "{{modelName}} 正在思考...",
 	"{{modelName}} is thinking...": "{{modelName}} 正在思考...",
 	"{{user}}'s Chats": "{{user}} 的對話",
 	"{{user}}'s Chats": "{{user}} 的對話",
 	"{{webUIName}} Backend Required": "需要 {{webUIName}} 後端",
 	"{{webUIName}} Backend Required": "需要 {{webUIName}} 後端",
+	"*Prompt node ID(s) are required for image generation": "",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "執行產生對話標題和網頁搜尋查詢等任務時會使用任務模型",
 	"A task model is used when performing tasks such as generating titles for chats and web search queries": "執行產生對話標題和網頁搜尋查詢等任務時會使用任務模型",
 	"a user": "一位使用者",
 	"a user": "一位使用者",
 	"About": "關於",
 	"About": "關於",

+ 7 - 1
src/routes/(app)/+layout.svelte

@@ -32,7 +32,8 @@
 		config,
 		config,
 		showCallOverlay,
 		showCallOverlay,
 		tools,
 		tools,
-		functions
+		functions,
+		temporaryChatEnabled
 	} from '$lib/stores';
 	} from '$lib/stores';
 
 
 	import SettingsModal from '$lib/components/chat/SettingsModal.svelte';
 	import SettingsModal from '$lib/components/chat/SettingsModal.svelte';
@@ -40,6 +41,7 @@
 	import ChangelogModal from '$lib/components/ChangelogModal.svelte';
 	import ChangelogModal from '$lib/components/ChangelogModal.svelte';
 	import AccountPending from '$lib/components/layout/Overlay/AccountPending.svelte';
 	import AccountPending from '$lib/components/layout/Overlay/AccountPending.svelte';
 	import { getFunctions } from '$lib/apis/functions';
 	import { getFunctions } from '$lib/apis/functions';
+	import { page } from '$app/stores';
 
 
 	const i18n = getContext('i18n');
 	const i18n = getContext('i18n');
 
 
@@ -177,6 +179,10 @@
 				showChangelog.set(localStorage.version !== $config.version);
 				showChangelog.set(localStorage.version !== $config.version);
 			}
 			}
 
 
+			if ($page.url.searchParams.get('temporary-chat') === 'true') {
+				temporaryChatEnabled.set(true);
+			}
+
 			await tick();
 			await tick();
 		}
 		}