diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml
index c14b00a3809..1bcd456842d 100644
--- a/.github/workflows/sync.yml
+++ b/.github/workflows/sync.yml
@@ -50,5 +50,5 @@ jobs:

[lobechat]: https://github.com/lobehub/lobe-chat
- [tutorial-zh-CN]: https://github.com/lobehub/lobe-chat/wiki/Upstream-Sync.zh-CN
- [tutorial-en-US]: https://github.com/lobehub/lobe-chat/wiki/Upstream-Sync
+ [tutorial-zh-CN]: https://lobehub.com/zh/docs/self-hosting/advanced/upstream-sync
+ [tutorial-en-US]: https://lobehub.com/docs/self-hosting/advanced/upstream-sync
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c51305245ee..d1154549307 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,56 @@
# Changelog
+### [Version 1.141.4](https://github.com/lobehub/lobe-chat/compare/v1.141.3...v1.141.4)
+
+Released on **2025-10-22**
+
+#### ♻ Code Refactoring
+
+- **misc**: Fix model runtime cost calculate with CNY.
+
+
+
+
+Improvements and Fixes
+
+#### Code refactoring
+
+- **misc**: Fix model runtime cost calculate with CNY, closes [#9834](https://github.com/lobehub/lobe-chat/issues/9834) ([2e911ea](https://github.com/lobehub/lobe-chat/commit/2e911ea))
+
+
+
+
+
+[](#readme-top)
+
+
+
+### [Version 1.141.3](https://github.com/lobehub/lobe-chat/compare/v1.141.2...v1.141.3)
+
+Released on **2025-10-22**
+
+#### 💄 Styles
+
+- **misc**: Update i18n.
+
+
+
+
+Improvements and Fixes
+
+#### Styles
+
+- **misc**: Update i18n, closes [#9832](https://github.com/lobehub/lobe-chat/issues/9832) ([80b0999](https://github.com/lobehub/lobe-chat/commit/80b0999))
+
+
+
+
+
+[](#readme-top)
+
+
+
### [Version 1.141.2](https://github.com/lobehub/lobe-chat/compare/v1.141.1...v1.141.2)
Released on **2025-10-21**
diff --git a/README.md b/README.md
index d3ec6778c55..55ca3c87e2d 100644
--- a/README.md
+++ b/README.md
@@ -902,7 +902,7 @@ This project is [LobeHub Community License](./LICENSE) licensed.
[github-release-shield]: https://img.shields.io/github/v/release/lobehub/lobe-chat?color=369eff&labelColor=black&logo=github&style=flat-square
[github-releasedate-link]: https://github.com/lobehub/lobe-chat/releases
[github-releasedate-shield]: https://img.shields.io/github/release-date/lobehub/lobe-chat?labelColor=black&style=flat-square
-[github-stars-link]: https://github.com/lobehub/lobe-chat/network/stargazers
+[github-stars-link]: https://github.com/lobehub/lobe-chat/stargazers
[github-stars-shield]: https://img.shields.io/github/stars/lobehub/lobe-chat?color=ffcb47&labelColor=black&style=flat-square
[github-trending-shield]: https://trendshift.io/api/badge/repositories/2256
[github-trending-url]: https://trendshift.io/repositories/2256
diff --git a/README.zh-CN.md b/README.zh-CN.md
index 072f3e448b7..97959575e38 100644
--- a/README.zh-CN.md
+++ b/README.zh-CN.md
@@ -923,7 +923,7 @@ This project is [LobeHub Community License](./LICENSE) licensed.
[github-release-shield]: https://img.shields.io/github/v/release/lobehub/lobe-chat?color=369eff&labelColor=black&logo=github&style=flat-square
[github-releasedate-link]: https://github.com/lobehub/lobe-chat/releases
[github-releasedate-shield]: https://img.shields.io/github/release-date/lobehub/lobe-chat?labelColor=black&style=flat-square
-[github-stars-link]: https://github.com/lobehub/lobe-chat/network/stargazers
+[github-stars-link]: https://github.com/lobehub/lobe-chat/stargazers
[github-stars-shield]: https://img.shields.io/github/stars/lobehub/lobe-chat?color=ffcb47&labelColor=black&style=flat-square
[github-trending-shield]: https://trendshift.io/api/badge/repositories/2256
[github-trending-url]: https://trendshift.io/repositories/2256
diff --git a/changelog/v1.json b/changelog/v1.json
index b7ad0227827..5ad52a199eb 100644
--- a/changelog/v1.json
+++ b/changelog/v1.json
@@ -1,4 +1,18 @@
[
+ {
+ "children": {
+ "improvements": ["Fix model runtime cost calculate with CNY."]
+ },
+ "date": "2025-10-22",
+ "version": "1.141.4"
+ },
+ {
+ "children": {
+ "improvements": ["Update i18n."]
+ },
+ "date": "2025-10-22",
+ "version": "1.141.3"
+ },
{
"children": {},
"date": "2025-10-21",
diff --git a/locales/ar/error.json b/locales/ar/error.json
index fd83802dd6c..0af939dbe64 100644
--- a/locales/ar/error.json
+++ b/locales/ar/error.json
@@ -81,6 +81,12 @@
"522": "نعتذر، انتهت مهلة الاتصال بالخادم، ولم يتمكن من الاستجابة لطلبك في الوقت المناسب. قد يكون ذلك بسبب عدم استقرار الشبكة أو أن الخادم غير متاح مؤقتًا. يرجى المحاولة لاحقًا، نحن نبذل جهدًا لاستعادة الخدمة.",
"524": "نعتذر، انتهت مهلة الخادم أثناء انتظار الرد، قد يكون ذلك بسبب بطء الاستجابة، يرجى المحاولة لاحقًا.",
"AgentRuntimeError": "حدث خطأ في تشغيل نموذج Lobe اللغوي، يرجى التحقق من المعلومات التالية أو إعادة المحاولة",
+ "ComfyUIBizError": "حدث خطأ أثناء طلب خدمة ComfyUI، يرجى التحقق من المعلومات التالية أو المحاولة مرة أخرى",
+ "ComfyUIEmptyResult": "لم يتم إنشاء أي صورة من قبل ComfyUI، يرجى التحقق من إعدادات النموذج أو المحاولة مرة أخرى",
+ "ComfyUIModelError": "فشل تحميل نموذج ComfyUI، يرجى التحقق من وجود ملف النموذج",
+ "ComfyUIServiceUnavailable": "فشل الاتصال بخدمة ComfyUI، يرجى التأكد من أن ComfyUI يعمل بشكل صحيح أو التحقق من صحة عنوان الخدمة",
+ "ComfyUIUploadFailed": "فشل تحميل الصورة إلى ComfyUI، يرجى التحقق من الاتصال بالخادم أو المحاولة مرة أخرى",
+ "ComfyUIWorkflowError": "فشل تنفيذ سير العمل في ComfyUI، يرجى التحقق من إعدادات سير العمل",
"ConnectionCheckFailed": "الاستجابة فارغة، يرجى التحقق من أن عنوان وكيل الـ API لا ينتهي بـ `/v1`",
"CreateMessageError": "عذرًا، لم يتم إرسال الرسالة بشكل صحيح، يرجى نسخ المحتوى وإعادة إرساله، بعد تحديث الصفحة لن يتم الاحتفاظ بهذه الرسالة",
"ExceededContextWindow": "المحتوى المطلوب الحالي يتجاوز الطول الذي يمكن للنموذج معالجته، يرجى تقليل كمية المحتوى ثم إعادة المحاولة",
@@ -100,6 +106,7 @@
"InvalidAccessCode": "كلمة المرور غير صحيحة أو فارغة، يرجى إدخال كلمة مرور الوصول الصحيحة أو إضافة مفتاح API مخصص",
"InvalidBedrockCredentials": "فشلت مصادقة Bedrock، يرجى التحقق من AccessKeyId/SecretAccessKey وإعادة المحاولة",
"InvalidClerkUser": "عذرًا، لم تقم بتسجيل الدخول بعد، يرجى تسجيل الدخول أو التسجيل للمتابعة",
+ "InvalidComfyUIArgs": "تكوين ComfyUI غير صحيح، يرجى التحقق من إعدادات ComfyUI ثم المحاولة مرة أخرى",
"InvalidGithubToken": "رمز وصول شخصية GitHub غير صحيح أو فارغ، يرجى التحقق من رمز وصول GitHub الشخصي والمحاولة مرة أخرى",
"InvalidOllamaArgs": "تكوين Ollama غير صحيح، يرجى التحقق من تكوين Ollama وإعادة المحاولة",
"InvalidProviderAPIKey": "{{provider}} مفتاح API غير صحيح أو فارغ، يرجى التحقق من مفتاح API {{provider}} الخاص بك وحاول مرة أخرى",
@@ -149,6 +156,11 @@
"title": "استخدام مفتاح API {{name}} المخصص"
},
"closeMessage": "إغلاق الرسالة",
+ "comfyui": {
+ "description": "يرجى إدخال معلومات المصادقة الصحيحة لـ {{name}} للبدء في إنشاء الصور",
+ "modifyBaseUrl": "تعديل عنوان خدمة Comfy UI",
+ "title": "تأكيد معلومات المصادقة الخاصة بـ {{name}}"
+ },
"confirm": "تأكيد وإعادة المحاولة",
"oauth": {
"description": "فتح المسؤول توثيق تسجيل الدخول الموحد، انقر فوق الزر أدناه لتسجيل الدخول وفتح التطبيق",
diff --git a/locales/ar/modelProvider.json b/locales/ar/modelProvider.json
index 41b02a574f9..535768b5d8e 100644
--- a/locales/ar/modelProvider.json
+++ b/locales/ar/modelProvider.json
@@ -82,6 +82,58 @@
"title": "رقم حساب Cloudflare / عنوان URL API"
}
},
+ "comfyui": {
+ "apiKey": {
+ "desc": "مفتاح API المطلوب لمصادقة Bearer Token",
+ "placeholder": "يرجى إدخال مفتاح API",
+ "required": "يرجى إدخال مفتاح API",
+ "title": "مفتاح API"
+ },
+ "authType": {
+ "desc": "اختر طريقة المصادقة مع خادم ComfyUI",
+ "options": {
+ "basic": "اسم المستخدم/كلمة المرور",
+ "bearer": "Bearer (مفتاح API)",
+ "custom": "رؤوس مخصصة",
+ "none": "لا حاجة للمصادقة"
+ },
+ "placeholder": "يرجى اختيار نوع المصادقة",
+ "title": "نوع المصادقة"
+ },
+ "baseURL": {
+ "desc": "عنوان الوصول إلى واجهة ComfyUI على الويب",
+ "placeholder": "http://127.0.0.1:8000",
+ "required": "يرجى إدخال عنوان خدمة ComfyUI",
+ "title": "عنوان خدمة ComfyUI"
+ },
+ "checker": {
+ "desc": "اختبار ما إذا كان الاتصال مهيأ بشكل صحيح",
+ "title": "فحص الاتصال"
+ },
+ "customHeaders": {
+ "addButton": "إضافة رأس طلب",
+ "deleteTooltip": "حذف رأس الطلب هذا",
+ "desc": "رؤوس الطلب المطلوبة لطريقة المصادقة المخصصة، بتنسيق زوج مفتاح-قيمة",
+ "duplicateKeyError": "لا يمكن تكرار أسماء رؤوس الطلب",
+ "keyPlaceholder": "اسم المفتاح",
+ "required": "يرجى إدخال رؤوس الطلب المخصصة",
+ "title": "رؤوس الطلب المخصصة",
+ "valuePlaceholder": "القيمة"
+ },
+ "password": {
+ "desc": "كلمة المرور المطلوبة للمصادقة الأساسية",
+ "placeholder": "يرجى إدخال كلمة المرور",
+ "required": "يرجى إدخال كلمة المرور",
+ "title": "كلمة المرور"
+ },
+ "title": "ComfyUI",
+ "username": {
+ "desc": "اسم المستخدم المطلوب للمصادقة الأساسية",
+ "placeholder": "يرجى إدخال اسم المستخدم",
+ "required": "يرجى إدخال اسم المستخدم",
+ "title": "اسم المستخدم"
+ }
+ },
"createNewAiProvider": {
"apiKey": {
"placeholder": "يرجى إدخال مفتاح API الخاص بك",
diff --git a/locales/ar/models.json b/locales/ar/models.json
index 746b230494f..43c8fc3d4a1 100644
--- a/locales/ar/models.json
+++ b/locales/ar/models.json
@@ -866,6 +866,39 @@
"cohere/embed-v4.0": {
"description": "نموذج يسمح بتصنيف النصوص أو الصور أو المحتوى المختلط أو تحويلها إلى تمثيلات مضمنة."
},
+ "comfyui/flux-dev": {
+ "description": "FLUX.1 Dev - نموذج تحويل النص إلى صورة عالي الجودة، يولّد الصور خلال 10 إلى 50 خطوة، مناسب للإبداع الفني وإنتاج الأعمال الفنية الراقية"
+ },
+ "comfyui/flux-kontext-dev": {
+ "description": "FLUX.1 Kontext-dev - نموذج لتحرير الصور، يدعم تعديل الصور الحالية بناءً على التعليمات النصية، ويتيح التعديلات الموضعية ونقل الأسلوب"
+ },
+ "comfyui/flux-krea-dev": {
+ "description": "FLUX.1 Krea-dev - نموذج تحويل النص إلى صورة معزز بالأمان، تم تطويره بالتعاون مع Krea، ويحتوي على مرشحات أمان مدمجة"
+ },
+ "comfyui/flux-schnell": {
+ "description": "FLUX.1 Schnell - نموذج فائق السرعة لتحويل النص إلى صورة، يولّد صوراً عالية الجودة خلال 1 إلى 4 خطوات فقط، مثالي للتطبيقات الفورية والنماذج الأولية السريعة"
+ },
+ "comfyui/stable-diffusion-15": {
+ "description": "Stable Diffusion 1.5 - نموذج تحويل النص إلى صورة الكلاسيكي بدقة 512x512، مناسب للنماذج الأولية السريعة والتجارب الإبداعية"
+ },
+ "comfyui/stable-diffusion-35": {
+ "description": "Stable Diffusion 3.5 - الجيل الجديد من نماذج تحويل النص إلى صورة، يدعم نسختي Large وMedium، يتطلب ملف ترميز CLIP خارجي، ويوفر جودة صور ممتازة وتطابقاً دقيقاً مع الكلمات المفتاحية"
+ },
+ "comfyui/stable-diffusion-35-inclclip": {
+ "description": "Stable Diffusion 3.5 - نسخة مدمجة مع مشفرات CLIP/T5، لا يتطلب ملفات ترميز خارجية، مناسب لنماذج مثل sd3.5_medium_incl_clips، ويستهلك موارد أقل"
+ },
+ "comfyui/stable-diffusion-custom": {
+ "description": "نموذج مخصص لتحويل النص إلى صورة باستخدام Stable Diffusion، يجب تسمية ملف النموذج بـ custom_sd_lobe.safetensors، وإذا كان هناك VAE يجب تسميته بـ custom_sd_vae_lobe.safetensors، ويجب وضع الملفات في المجلدات المحددة حسب متطلبات Comfy"
+ },
+ "comfyui/stable-diffusion-custom-refiner": {
+ "description": "نموذج مخصص لتحويل الصورة إلى صورة باستخدام SDXL، يجب تسمية ملف النموذج بـ custom_sd_lobe.safetensors، وإذا كان هناك VAE يجب تسميته بـ custom_sd_vae_lobe.safetensors، ويجب وضع الملفات في المجلدات المحددة حسب متطلبات Comfy"
+ },
+ "comfyui/stable-diffusion-refiner": {
+ "description": "نموذج SDXL لتحويل الصورة إلى صورة، يتيح تحويل الصور بجودة عالية بناءً على صورة الإدخال، ويدعم نقل الأسلوب، ترميم الصور، والتحولات الإبداعية"
+ },
+ "comfyui/stable-diffusion-xl": {
+ "description": "نموذج SDXL لتحويل النص إلى صورة، يدعم توليد صور عالية الدقة تصل إلى 1024x1024، ويوفر جودة صور أفضل وتفاصيل أدق"
+ },
"command": {
"description": "نموذج حواري يتبع التعليمات، يظهر جودة عالية وموثوقية أكبر في المهام اللغوية، ويتميز بطول سياق أطول مقارنة بنموذجنا الأساسي للتوليد."
},
diff --git a/locales/ar/providers.json b/locales/ar/providers.json
index da23235ce8b..b89db2ba3cd 100644
--- a/locales/ar/providers.json
+++ b/locales/ar/providers.json
@@ -35,9 +35,6 @@
"cerebras": {
"description": "Cerebras هو نظام استدلال ذكاء اصطناعي يعتمد على نظام CS-3 المخصص، ويهدف إلى تقديم أسرع خدمات النماذج اللغوية الكبيرة (LLM) في العالم مع استجابة فورية وقدرة معالجة عالية. تم تصميمه خصيصًا للقضاء على التأخير وتسريع سير العمل المعقد للذكاء الاصطناعي مثل توليد الشيفرات في الوقت الحقيقي والمهام التفاعلية."
},
- "cerebras": {
- "description": "Cerebras هو نظام استدلال ذكاء اصطناعي يعتمد على نظام CS-3 المخصص، ويهدف إلى تقديم أسرع خدمات النماذج اللغوية الكبيرة (LLM) في العالم مع استجابة فورية وقدرة معالجة عالية. تم تصميمه خصيصًا للقضاء على التأخير وتسريع سير العمل المعقد للذكاء الاصطناعي مثل توليد الشيفرات في الوقت الحقيقي والمهام التفاعلية."
- },
"cloudflare": {
"description": "تشغيل نماذج التعلم الآلي المدفوعة بوحدات معالجة الرسوميات بدون خادم على شبكة Cloudflare العالمية."
},
@@ -47,6 +44,9 @@
"cometapi": {
"description": "CometAPI هو منصة خدمات توفر واجهات متعددة لنماذج الذكاء الاصطناعي المتقدمة، تدعم OpenAI وAnthropic وGoogle والمزيد، مناسبة لمتطلبات التطوير والتطبيق المتنوعة. يمكن للمستخدمين اختيار النموذج والسعر الأمثل وفقًا لاحتياجاتهم، مما يعزز تجربة الذكاء الاصطناعي."
},
+ "comfyui": {
+ "description": "محرك سير عمل قوي ومفتوح المصدر لتوليد الصور والفيديو والصوت، يدعم نماذج متقدمة مثل SD وFLUX وQwen وHunyuan وWAN، ويوفر إمكانيات تحرير سير العمل عبر العقد والنشر الخاص."
+ },
"deepseek": {
"description": "DeepSeek هي شركة تركز على أبحاث وتطبيقات تقنيات الذكاء الاصطناعي، حيث يجمع نموذجها الأحدث DeepSeek-V2.5 بين قدرات الحوار العامة ومعالجة الشيفرات، وقد حقق تحسينات ملحوظة في محاذاة تفضيلات البشر، ومهام الكتابة، واتباع التعليمات."
},
diff --git a/locales/bg-BG/error.json b/locales/bg-BG/error.json
index 897f4ab3d3e..d0554c3f9bf 100644
--- a/locales/bg-BG/error.json
+++ b/locales/bg-BG/error.json
@@ -81,6 +81,12 @@
"522": "Съжаляваме, времето за свързване на сървъра изтече, без да успее да отговори на вашето искане навреме. Може да е поради нестабилна мрежа или сървърът временно не е достъпен. Моля, опитайте отново по-късно, ние работим за възстановяване на услугата.",
"524": "Съжаляваме, сървърът изтече времето за изчакване, докато чакаше отговор, вероятно поради бавен отговор. Моля, опитайте отново по-късно.",
"AgentRuntimeError": "Грешка при изпълнение на времето за изпълнение на езиковия модел Lobe. Моля, отстранете неизправностите или опитайте отново въз основа на следната информация.",
+ "ComfyUIBizError": "Възникна грешка при заявката към услугата ComfyUI. Моля, проверете информацията по-долу или опитайте отново.",
+ "ComfyUIEmptyResult": "ComfyUI не генерира изображение. Моля, проверете конфигурацията на модела или опитайте отново.",
+ "ComfyUIModelError": "Неуспешно зареждане на модела в ComfyUI. Моля, проверете дали файлът на модела съществува.",
+ "ComfyUIServiceUnavailable": "Неуспешна връзка с услугата ComfyUI. Моля, уверете се, че ComfyUI работи правилно и че адресът на услугата е коректно конфигуриран.",
+ "ComfyUIUploadFailed": "Неуспешно качване на изображение в ComfyUI. Моля, проверете връзката със сървъра или опитайте отново.",
+ "ComfyUIWorkflowError": "Грешка при изпълнение на работния процес в ComfyUI. Моля, проверете конфигурацията на работния процес.",
"ConnectionCheckFailed": "Заявката върна празен отговор. Моля, проверете дали адресът на API проксито не завършва с `/v1`.",
"CreateMessageError": "Съжалявам, съобщението не можа да бъде изпратено успешно. Моля, копирайте съдържанието и го изпратете отново. След опресняване на страницата, това съобщение няма да бъде запазено.",
"ExceededContextWindow": "Текущото съдържание на заявката надвишава дължината, която моделът може да обработи. Моля, намалете обема на съдържанието и опитайте отново.",
@@ -100,6 +106,7 @@
"InvalidAccessCode": "Невалиден или празен код за достъп. Моля, въведете правилния код за достъп или добавете персонализиран API ключ.",
"InvalidBedrockCredentials": "Удостоверяването на Bedrock е неуспешно. Моля, проверете AccessKeyId/SecretAccessKey и опитайте отново.",
"InvalidClerkUser": "很抱歉,你当前尚未登录,请先登录或注册账号后继续操作",
+ "InvalidComfyUIArgs": "Неправилна конфигурация на ComfyUI. Моля, проверете настройките и опитайте отново.",
"InvalidGithubToken": "GitHub Личният Достъпен Токен е неправилен или е празен. Моля, проверете Личния Достъпен Токен на GitHub и опитайте отново.",
"InvalidOllamaArgs": "Невалидна конфигурация на Ollama, моля, проверете конфигурацията на Ollama и опитайте отново",
"InvalidProviderAPIKey": "{{provider}} API ключ е невалиден или липсва, моля проверете {{provider}} API ключа и опитайте отново",
@@ -149,6 +156,11 @@
"title": "Използване на персонализиран {{name}} API ключ"
},
"closeMessage": "Затвори съобщението",
+ "comfyui": {
+ "description": "Моля, въведете валидна удостоверителна информация за {{name}}, за да започнете с генерирането на изображения.",
+ "modifyBaseUrl": "Промяна на адреса на услугата Comfy UI",
+ "title": "Потвърдете удостоверителната си информация за {{name}}"
+ },
"confirm": "Потвърди и опитай отново",
"oauth": {
"description": "Администраторът е активирал унифицирано удостоверяване за вход. Щракнете върху бутона по-долу, за да влезете и отключите приложението.",
diff --git a/locales/bg-BG/modelProvider.json b/locales/bg-BG/modelProvider.json
index 5f6f695a3d2..9bf1182c638 100644
--- a/locales/bg-BG/modelProvider.json
+++ b/locales/bg-BG/modelProvider.json
@@ -82,6 +82,58 @@
"title": "ID на Cloudflare / API адрес"
}
},
+ "comfyui": {
+ "apiKey": {
+ "desc": "API ключ, необходим за удостоверяване с Bearer Token",
+ "placeholder": "Моля, въведете API ключ",
+ "required": "Моля, въведете API ключ",
+ "title": "API ключ"
+ },
+ "authType": {
+ "desc": "Изберете метод за удостоверяване със сървъра ComfyUI",
+ "options": {
+ "basic": "Потребителско име/Парола",
+ "bearer": "Bearer (API ключ)",
+ "custom": "Потребителски HTTP хедъри",
+ "none": "Без удостоверяване"
+ },
+ "placeholder": "Моля, изберете тип удостоверяване",
+ "title": "Тип удостоверяване"
+ },
+ "baseURL": {
+ "desc": "Уеб адрес за достъп до ComfyUI",
+ "placeholder": "http://127.0.0.1:8000",
+ "required": "Моля, въведете адреса на услугата ComfyUI",
+ "title": "Адрес на услугата ComfyUI"
+ },
+ "checker": {
+ "desc": "Проверете дали връзката е конфигурирана правилно",
+ "title": "Проверка на свързаността"
+ },
+ "customHeaders": {
+ "addButton": "Добавяне на хедър",
+ "deleteTooltip": "Изтриване на този хедър",
+ "desc": "HTTP хедъри, необходими за потребителски метод на удостоверяване, във формат ключ-стойност",
+ "duplicateKeyError": "Ключовете на хедърите не трябва да се повтарят",
+ "keyPlaceholder": "Ключ",
+ "required": "Моля, въведете потребителски HTTP хедър",
+ "title": "Потребителски HTTP хедъри",
+ "valuePlaceholder": "Стойност"
+ },
+ "password": {
+ "desc": "Парола, необходима за базово удостоверяване",
+ "placeholder": "Моля, въведете парола",
+ "required": "Моля, въведете парола",
+ "title": "Парола"
+ },
+ "title": "ComfyUI",
+ "username": {
+ "desc": "Потребителско име, необходимо за базово удостоверяване",
+ "placeholder": "Моля, въведете потребителско име",
+ "required": "Моля, въведете потребителско име",
+ "title": "Потребителско име"
+ }
+ },
"createNewAiProvider": {
"apiKey": {
"placeholder": "Моля, въведете вашия API ключ",
diff --git a/locales/bg-BG/models.json b/locales/bg-BG/models.json
index 3f582802892..7cbe19e8cec 100644
--- a/locales/bg-BG/models.json
+++ b/locales/bg-BG/models.json
@@ -866,6 +866,39 @@
"cohere/embed-v4.0": {
"description": "Модел, който позволява класифициране на текст, изображения или смесено съдържание или преобразуването им във вграждания."
},
+ "comfyui/flux-dev": {
+ "description": "FLUX.1 Dev - Висококачествен текст-към-изображение модел, генерира изображения за 10-50 стъпки, подходящ за художествено творчество и създаване на изкуство"
+ },
+ "comfyui/flux-kontext-dev": {
+ "description": "FLUX.1 Kontext-dev - Модел за редактиране на изображения, поддържа модификации на съществуващи изображения чрез текстови инструкции, включително локални промени и трансфер на стил"
+ },
+ "comfyui/flux-krea-dev": {
+ "description": "FLUX.1 Krea-dev - Подобрен и сигурен текст-към-изображение модел, разработен в сътрудничество с Krea, с вградена система за безопасно филтриране"
+ },
+ "comfyui/flux-schnell": {
+ "description": "FLUX.1 Schnell - Ултрабърз текст-към-изображение модел, генерира висококачествени изображения само за 1-4 стъпки, идеален за приложения в реално време и бързо прототипиране"
+ },
+ "comfyui/stable-diffusion-15": {
+ "description": "Stable Diffusion 1.5 текст-към-изображение модел, класическа генерация с резолюция 512x512, подходящ за бързо прототипиране и творчески експерименти"
+ },
+ "comfyui/stable-diffusion-35": {
+ "description": "Stable Diffusion 3.5 - ново поколение текст-към-изображение модел, предлага се във версии Large и Medium, изисква външен CLIP енкодер файл, осигурява изключително качество на изображенията и висока точност на съвпадение с подадените подсказки"
+ },
+ "comfyui/stable-diffusion-35-inclclip": {
+ "description": "Stable Diffusion 3.5 с вграден CLIP/T5 енкодер, не изисква външни енкодер файлове, подходящ за модели като sd3.5_medium_incl_clips, с по-ниска консумация на ресурси"
+ },
+ "comfyui/stable-diffusion-custom": {
+ "description": "Персонализиран SD текст-към-изображение модел. Името на модела трябва да бъде custom_sd_lobe.safetensors, ако има VAE, използвайте custom_sd_vae_lobe.safetensors. Файловете на модела трябва да бъдат поставени в съответната папка според изискванията на Comfy"
+ },
+ "comfyui/stable-diffusion-custom-refiner": {
+ "description": "Персонализиран SDXL изображение-към-изображение модел. Името на модела трябва да бъде custom_sd_lobe.safetensors, ако има VAE, използвайте custom_sd_vae_lobe.safetensors. Файловете на модела трябва да бъдат поставени в съответната папка според изискванията на Comfy"
+ },
+ "comfyui/stable-diffusion-refiner": {
+ "description": "SDXL изображение-към-изображение модел, извършва висококачествено преобразуване на изображения въз основа на входно изображение, поддържа трансфер на стил, възстановяване на изображения и креативни трансформации"
+ },
+ "comfyui/stable-diffusion-xl": {
+ "description": "SDXL текст-към-изображение модел, поддържа генериране на изображения с висока резолюция 1024x1024, осигурява по-добро качество и детайлност"
+ },
"command": {
"description": "Диалогов модел, следващ инструкции, който показва високо качество и надеждност в езиковите задачи, с по-дълга контекстна дължина в сравнение с нашия основен генеративен модел."
},
diff --git a/locales/bg-BG/providers.json b/locales/bg-BG/providers.json
index c7fe97287ad..60e878f94f2 100644
--- a/locales/bg-BG/providers.json
+++ b/locales/bg-BG/providers.json
@@ -35,9 +35,6 @@
"cerebras": {
"description": "Cerebras е AI платформа за извеждане, базирана на специализираната си система CS-3, създадена да предоставя най-бързите в света услуги за големи езикови модели (LLM) с незабавен отговор и висок капацитет на обработка. Тя е проектирана да елиминира закъсненията и да ускори сложни AI работни процеси, като генериране на код в реално време и изпълнение на агентски задачи."
},
- "cerebras": {
- "description": "Cerebras е AI платформа за извеждане, базирана на специализираната си система CS-3, създадена да предоставя най-бързите в света услуги за големи езикови модели (LLM) с незабавен отговор и висок капацитет на обработка. Тя е проектирана да елиминира закъсненията и да ускори сложни AI работни процеси, като генериране на код в реално време и изпълнение на агентски задачи."
- },
"cloudflare": {
"description": "Работа с модели на машинно обучение, задвижвани от безсървърни GPU, в глобалната мрежа на Cloudflare."
},
@@ -47,6 +44,9 @@
"cometapi": {
"description": "CometAPI е платформа за услуги, която предоставя множество интерфейси за водещи големи модели, поддържайки OpenAI, Anthropic, Google и други, подходяща за разнообразни нужди на разработка и приложение. Потребителите могат гъвкаво да избират най-добрия модел и цена според своите изисквания, подпомагайки подобряването на AI изживяването."
},
+ "comfyui": {
+ "description": "Мощен open-source енджин за създаване на изображения, видео и аудио чрез работни потоци, поддържащ напреднали модели като SD FLUX, Qwen, Hunyuan, WAN и други, с възможности за редактиране на работни потоци чрез възли и за частно внедряване."
+ },
"deepseek": {
"description": "DeepSeek е компания, специализирана в изследвания и приложения на технологии за изкуствен интелект, чийто най-нов модел DeepSeek-V2.5 комбинира способности за общи диалози и обработка на код, постигайки значителни подобрения в съответствието с човешките предпочитания, писателските задачи и следването на инструкции."
},
diff --git a/locales/de-DE/error.json b/locales/de-DE/error.json
index 71308af294a..5ce529e8286 100644
--- a/locales/de-DE/error.json
+++ b/locales/de-DE/error.json
@@ -81,6 +81,12 @@
"522": "Es tut uns leid, die Serververbindung hat aufgrund einer Zeitüberschreitung nicht rechtzeitig auf Ihre Anfrage reagiert. Möglicherweise ist das Netzwerk instabil oder der Server vorübergehend nicht erreichbar. Bitte versuchen Sie es später erneut, wir arbeiten daran, den Dienst wiederherzustellen.",
"524": "Es tut uns leid, der Server hat beim Warten auf eine Antwort eine Zeitüberschreitung erreicht, möglicherweise aufgrund einer langsamen Antwort. Bitte versuchen Sie es später erneut.",
"AgentRuntimeError": "Es ist ein Fehler bei der Ausführung des Lobe-Sprachmodells aufgetreten. Bitte überprüfen Sie die folgenden Informationen oder versuchen Sie es erneut.",
+ "ComfyUIBizError": "Fehler bei der Anfrage an den ComfyUI-Dienst. Bitte überprüfe die folgenden Informationen oder versuche es erneut.",
+ "ComfyUIEmptyResult": "ComfyUI hat kein Bild generiert. Bitte überprüfe die Modellkonfiguration oder versuche es erneut.",
+ "ComfyUIModelError": "Laden des ComfyUI-Modells fehlgeschlagen. Bitte überprüfe, ob die Modellsdatei vorhanden ist.",
+ "ComfyUIServiceUnavailable": "Verbindung zum ComfyUI-Dienst fehlgeschlagen. Bitte stelle sicher, dass ComfyUI ordnungsgemäß läuft und die Dienstadresse korrekt konfiguriert ist.",
+ "ComfyUIUploadFailed": "Hochladen des Bildes zu ComfyUI fehlgeschlagen. Bitte überprüfe die Serververbindung oder versuche es erneut.",
+ "ComfyUIWorkflowError": "Ausführung des ComfyUI-Workflows fehlgeschlagen. Bitte überprüfe die Workflow-Konfiguration.",
"ConnectionCheckFailed": "Die Anfrage brachte eine leere Antwort zurück. Bitte überprüfen Sie, ob die API-Proxy-Adresse am Ende nicht mit `/v1` endet.",
"CreateMessageError": "Es tut uns leid, die Nachricht konnte nicht erfolgreich gesendet werden. Bitte kopieren Sie den Inhalt und senden Sie ihn erneut. Nach dem Aktualisieren der Seite wird diese Nachricht nicht gespeichert.",
"ExceededContextWindow": "Der aktuelle Anfrageinhalt überschreitet die von dem Modell verarbeitbare Länge. Bitte reduzieren Sie die Menge des Inhalts und versuchen Sie es erneut.",
@@ -100,6 +106,7 @@
"InvalidAccessCode": "Das Passwort ist ungültig oder leer. Bitte geben Sie das richtige Zugangspasswort ein oder fügen Sie einen benutzerdefinierten API-Schlüssel hinzu.",
"InvalidBedrockCredentials": "Die Bedrock-Authentifizierung ist fehlgeschlagen. Bitte überprüfen Sie AccessKeyId/SecretAccessKey und versuchen Sie es erneut.",
"InvalidClerkUser": "Entschuldigung, du bist derzeit nicht angemeldet. Bitte melde dich an oder registriere ein Konto, um fortzufahren.",
+ "InvalidComfyUIArgs": "ComfyUI-Konfiguration ist ungültig. Bitte überprüfe die Einstellungen und versuche es erneut.",
"InvalidGithubToken": "Der persönliche Zugriffstoken für Github ist ungültig oder leer. Bitte überprüfen Sie den persönlichen Zugriffstoken für Github und versuchen Sie es erneut.",
"InvalidOllamaArgs": "Ollama-Konfiguration ist ungültig. Bitte überprüfen Sie die Ollama-Konfiguration und versuchen Sie es erneut.",
"InvalidProviderAPIKey": "{{provider}} API-Schlüssel ist ungültig oder leer. Bitte überprüfen Sie den {{provider}} API-Schlüssel und versuchen Sie es erneut.",
@@ -149,6 +156,11 @@
"title": "Verwenden Sie Ihren benutzerdefinierten {{name}} API-Schlüssel"
},
"closeMessage": "Hinweis schließen",
+ "comfyui": {
+ "description": "Bitte gib die korrekten {{name}}-Authentifizierungsinformationen ein, um mit der Bildgenerierung zu beginnen.",
+ "modifyBaseUrl": "ComfyUI-Dienstadresse ändern",
+ "title": "Bestätige deine {{name}}-Authentifizierungsinformationen"
+ },
"confirm": "Bestätigen und erneut versuchen",
"oauth": {
"description": "Der Administrator hat die einheitliche Anmeldeauthentifizierung aktiviert. Klicken Sie unten auf die Schaltfläche, um sich anzumelden und die App zu entsperren.",
diff --git a/locales/de-DE/modelProvider.json b/locales/de-DE/modelProvider.json
index 56d0481e73b..dcc63b5ce56 100644
--- a/locales/de-DE/modelProvider.json
+++ b/locales/de-DE/modelProvider.json
@@ -82,6 +82,58 @@
"title": "Cloudflare-Kundenkennung / API-Adresse"
}
},
+ "comfyui": {
+ "apiKey": {
+ "desc": "API-Schlüssel für die Authentifizierung mit Bearer-Token",
+ "placeholder": "Bitte API-Schlüssel eingeben",
+ "required": "Bitte API-Schlüssel eingeben",
+ "title": "API-Schlüssel"
+ },
+ "authType": {
+ "desc": "Wählen Sie die Authentifizierungsmethode für den ComfyUI-Server",
+ "options": {
+ "basic": "Benutzername/Passwort",
+ "bearer": "Bearer (API-Schlüssel)",
+ "custom": "Benutzerdefinierte Header",
+ "none": "Keine Authentifizierung erforderlich"
+ },
+ "placeholder": "Bitte Authentifizierungstyp wählen",
+ "title": "Authentifizierungstyp"
+ },
+ "baseURL": {
+ "desc": "Webadresse für den Zugriff auf ComfyUI",
+ "placeholder": "http://127.0.0.1:8000",
+ "required": "Bitte ComfyUI-Serveradresse eingeben",
+ "title": "ComfyUI-Serveradresse"
+ },
+ "checker": {
+ "desc": "Verbindung testen, um die Konfiguration zu überprüfen",
+ "title": "Verbindungsprüfung"
+ },
+ "customHeaders": {
+ "addButton": "Header hinzufügen",
+ "deleteTooltip": "Diesen Header löschen",
+ "desc": "Erforderliche Header für benutzerdefinierte Authentifizierung im Schlüssel-Wert-Format",
+ "duplicateKeyError": "Header-Schlüssel dürfen nicht doppelt sein",
+ "keyPlaceholder": "Schlüssel",
+ "required": "Bitte benutzerdefinierte Header eingeben",
+ "title": "Benutzerdefinierte Header",
+ "valuePlaceholder": "Wert"
+ },
+ "password": {
+ "desc": "Passwort für die Basis-Authentifizierung",
+ "placeholder": "Bitte Passwort eingeben",
+ "required": "Bitte Passwort eingeben",
+ "title": "Passwort"
+ },
+ "title": "ComfyUI",
+ "username": {
+ "desc": "Benutzername für die Basis-Authentifizierung",
+ "placeholder": "Bitte Benutzernamen eingeben",
+ "required": "Bitte Benutzernamen eingeben",
+ "title": "Benutzername"
+ }
+ },
"createNewAiProvider": {
"apiKey": {
"placeholder": "Bitte geben Sie Ihren API-Schlüssel ein",
diff --git a/locales/de-DE/models.json b/locales/de-DE/models.json
index 996da2bb65d..87026029eaa 100644
--- a/locales/de-DE/models.json
+++ b/locales/de-DE/models.json
@@ -866,6 +866,39 @@
"cohere/embed-v4.0": {
"description": "Ein Modell, das es ermöglicht, Text, Bilder oder gemischte Inhalte zu klassifizieren oder in Einbettungen umzuwandeln."
},
+ "comfyui/flux-dev": {
+ "description": "FLUX.1 Dev – Hochwertiges Text-zu-Bild-Modell, erzeugt Bilder in 10–50 Schritten, ideal für kreative Arbeiten und künstlerische Bildgenerierung"
+ },
+ "comfyui/flux-kontext-dev": {
+ "description": "FLUX.1 Kontext-dev – Bildbearbeitungsmodell, unterstützt textbasierte Anweisungen zur Modifikation bestehender Bilder, inklusive lokaler Änderungen und Stilübertragungen"
+ },
+ "comfyui/flux-krea-dev": {
+ "description": "FLUX.1 Krea-dev – Sicheres Text-zu-Bild-Modell, entwickelt in Zusammenarbeit mit Krea, mit integriertem Sicherheitsfilter"
+ },
+ "comfyui/flux-schnell": {
+ "description": "FLUX.1 Schnell – Ultraflottes Text-zu-Bild-Modell, erzeugt hochwertige Bilder in nur 1–4 Schritten, ideal für Echtzeitanwendungen und schnelles Prototyping"
+ },
+ "comfyui/stable-diffusion-15": {
+ "description": "Stable Diffusion 1.5 Text-zu-Bild-Modell, klassisches 512x512-Auflösungsmodell für schnelle Prototypen und kreative Experimente"
+ },
+ "comfyui/stable-diffusion-35": {
+ "description": "Stable Diffusion 3.5 – Nächste Generation des Text-zu-Bild-Modells, verfügbar in Large- und Medium-Versionen, benötigt externe CLIP-Encoder-Dateien, bietet herausragende Bildqualität und präzise Prompt-Übereinstimmung"
+ },
+ "comfyui/stable-diffusion-35-inclclip": {
+ "description": "Stable Diffusion 3.5 mit integriertem CLIP/T5-Encoder – keine externen Encoder-Dateien erforderlich, geeignet für Modelle wie sd3.5_medium_incl_clips, ressourcenschonender"
+ },
+ "comfyui/stable-diffusion-custom": {
+ "description": "Benutzerdefiniertes SD Text-zu-Bild-Modell – Modell-Dateiname sollte custom_sd_lobe.safetensors lauten, bei VAE bitte custom_sd_vae_lobe.safetensors verwenden; Modell-Dateien müssen gemäß Comfy-Vorgaben im entsprechenden Ordner abgelegt werden"
+ },
+ "comfyui/stable-diffusion-custom-refiner": {
+ "description": "Benutzerdefiniertes SDXL Bild-zu-Bild-Modell – Modell-Dateiname sollte custom_sd_lobe.safetensors lauten, bei VAE bitte custom_sd_vae_lobe.safetensors verwenden; Modell-Dateien müssen gemäß Comfy-Vorgaben im entsprechenden Ordner abgelegt werden"
+ },
+ "comfyui/stable-diffusion-refiner": {
+ "description": "SDXL Bild-zu-Bild-Modell – Hochwertige Bildtransformation basierend auf Eingabebildern, unterstützt Stilübertragungen, Bildrestaurierung und kreative Modifikationen"
+ },
+ "comfyui/stable-diffusion-xl": {
+ "description": "SDXL Text-zu-Bild-Modell – Unterstützt hochauflösende 1024x1024 Text-zu-Bild-Generierung, bietet verbesserte Bildqualität und Detailgenauigkeit"
+ },
"command": {
"description": "Ein dialogbasiertes Modell, das Anweisungen folgt und in sprachlichen Aufgaben hohe Qualität und Zuverlässigkeit bietet. Im Vergleich zu unserem grundlegenden Generierungsmodell hat es eine längere Kontextlänge."
},
diff --git a/locales/de-DE/providers.json b/locales/de-DE/providers.json
index bf61fc5d1c4..e7a94eebe5c 100644
--- a/locales/de-DE/providers.json
+++ b/locales/de-DE/providers.json
@@ -35,9 +35,6 @@
"cerebras": {
"description": "Cerebras ist eine KI-Inferenzplattform, die auf dem spezialisierten CS-3-System basiert. Sie wurde entwickelt, um weltweit die schnellsten, in Echtzeit reagierenden und hochdurchsatzfähigen LLM-Dienste bereitzustellen. Ziel ist es, Latenzen zu eliminieren und komplexe KI-Workflows wie die Echtzeit-Codegenerierung und Agentenaufgaben zu beschleunigen."
},
- "cerebras": {
- "description": "Cerebras ist eine KI-Inferenzplattform, die auf dem spezialisierten CS-3-System basiert. Sie wurde entwickelt, um weltweit die schnellsten, in Echtzeit reagierenden und hochdurchsatzfähigen LLM-Dienste bereitzustellen. Ziel ist es, Latenzen zu eliminieren und komplexe KI-Workflows wie die Echtzeit-Codegenerierung und Agentenaufgaben zu beschleunigen."
- },
"cloudflare": {
"description": "Führen Sie von serverlosen GPUs betriebene Machine-Learning-Modelle im globalen Netzwerk von Cloudflare aus."
},
@@ -47,6 +44,9 @@
"cometapi": {
"description": "CometAPI ist eine Serviceplattform, die verschiedene fortschrittliche Schnittstellen für große Modelle anbietet und OpenAI, Anthropic, Google und weitere unterstützt. Sie eignet sich für vielfältige Entwicklungs- und Anwendungsanforderungen. Nutzer können je nach Bedarf das optimale Modell und den besten Preis flexibel auswählen, um das KI-Erlebnis zu verbessern."
},
+ "comfyui": {
+ "description": "Leistungsstarke Open-Source-Engine für die Erstellung von Bildern, Videos und Audiodateien. Unterstützt fortschrittliche Modelle wie SD, FLUX, Qwen, Hunyuan und WAN. Bietet eine node-basierte Workflow-Bearbeitung sowie Möglichkeiten zur privaten Bereitstellung."
+ },
"deepseek": {
"description": "DeepSeek ist ein Unternehmen, das sich auf die Forschung und Anwendung von KI-Technologien spezialisiert hat. Ihr neuestes Modell, DeepSeek-V2.5, kombiniert allgemeine Dialog- und Codeverarbeitungsfähigkeiten und hat signifikante Fortschritte in den Bereichen menschliche Präferenzanpassung, Schreibaufgaben und Befehlsbefolgung erzielt."
},
diff --git a/locales/en-US/error.json b/locales/en-US/error.json
index cb222e9fab9..493123c650d 100644
--- a/locales/en-US/error.json
+++ b/locales/en-US/error.json
@@ -81,6 +81,12 @@
"522": "We apologize, the server connection timed out and was unable to respond to your request in a timely manner. This may be due to an unstable network or the server being temporarily inaccessible. Please try again later; we are working to restore service.",
"524": "We apologize, the server timed out while waiting for a response, possibly due to a slow reply. Please try again later.",
"AgentRuntimeError": "Lobe language model runtime execution error. Please troubleshoot or retry based on the following information.",
+ "ComfyUIBizError": "An error occurred while requesting the ComfyUI service. Please troubleshoot using the information below or try again.",
+ "ComfyUIEmptyResult": "No image was generated by ComfyUI. Please check the model configuration or try again.",
+ "ComfyUIModelError": "Failed to load the ComfyUI model. Please ensure the model file exists.",
+ "ComfyUIServiceUnavailable": "Failed to connect to the ComfyUI service. Please ensure it is running properly and the service URL is correctly configured.",
+ "ComfyUIUploadFailed": "Failed to upload image to ComfyUI. Please check the server connection or try again.",
+ "ComfyUIWorkflowError": "ComfyUI workflow execution failed. Please verify the workflow configuration.",
"ConnectionCheckFailed": "The request returned empty. Please check if the API proxy address does not end with `/v1`.",
"CreateMessageError": "Sorry, the message could not be sent successfully. Please copy the content and try sending it again. This message will not be retained after refreshing the page.",
"ExceededContextWindow": "The current request content exceeds the length that the model can handle. Please reduce the amount of content and try again.",
@@ -100,6 +106,7 @@
"InvalidAccessCode": "Invalid access code or empty. Please enter the correct access code or add a custom API Key.",
"InvalidBedrockCredentials": "Bedrock authentication failed. Please check the AccessKeyId/SecretAccessKey and retry.",
"InvalidClerkUser": "Sorry, you are not currently logged in. Please log in or register an account to continue.",
+ "InvalidComfyUIArgs": "Invalid ComfyUI configuration. Please check the settings and try again.",
"InvalidGithubToken": "The GitHub Personal Access Token is incorrect or empty. Please check your GitHub Personal Access Token and try again.",
"InvalidOllamaArgs": "Invalid Ollama configuration, please check Ollama configuration and try again",
"InvalidProviderAPIKey": "{{provider}} API Key is incorrect or empty, please check your {{provider}} API Key and try again",
@@ -149,6 +156,11 @@
"title": "Use custom {{name}} API Key"
},
"closeMessage": "Close message",
+ "comfyui": {
+ "description": "Enter valid {{name}} credentials to start generating images.",
+ "modifyBaseUrl": "Edit ComfyUI service URL",
+ "title": "Verify your {{name}} credentials"
+ },
"confirm": "Confirm and Retry",
"oauth": {
"description": "The administrator has enabled unified login authentication. Click the button below to log in and unlock the application.",
diff --git a/locales/en-US/modelProvider.json b/locales/en-US/modelProvider.json
index 74cae81cc20..32f624416c5 100644
--- a/locales/en-US/modelProvider.json
+++ b/locales/en-US/modelProvider.json
@@ -86,51 +86,51 @@
"apiKey": {
"desc": "API key for Bearer Token authentication",
"placeholder": "Enter API key",
+ "required": "Please enter the API key",
"title": "API Key"
},
"authType": {
- "desc": "Choose authentication method for ComfyUI server",
+ "desc": "Select the authentication method for connecting to the ComfyUI server",
"options": {
"basic": "Basic Authentication",
"bearer": "Bearer Token",
"custom": "Custom Authentication",
"none": "No Authentication"
},
- "placeholder": "Select authentication method",
+ "placeholder": "Please select an authentication type",
"title": "Authentication Type"
},
"baseURL": {
"desc": "ComfyUI server access address, e.g., http://localhost:8000",
- "placeholder": "http://localhost:8000",
- "title": "Server Address"
+ "placeholder": "http://127.0.0.1:8000",
+ "required": "Please enter the ComfyUI service URL",
+ "title": "ComfyUI Service URL"
},
"checker": {
- "desc": "Test whether the ComfyUI server can connect normally",
- "title": "Connection Test"
+ "desc": "Test if the connection is properly configured",
+ "title": "Connectivity Check"
},
"customHeaders": {
"addButton": "Add Header",
"deleteTooltip": "Delete this header",
- "desc": "Custom HTTP request headers for custom authentication, in key-value format",
+ "desc": "Request headers required for custom authentication, formatted as key-value pairs",
"duplicateKeyError": "Header names cannot be duplicated",
- "keyPlaceholder": "Header name",
+ "keyPlaceholder": "Key",
+ "required": "Please enter custom request headers",
"title": "Custom Headers",
- "valuePlaceholder": "Header value"
+ "valuePlaceholder": "Value"
},
"password": {
"desc": "Password for basic authentication",
"placeholder": "Enter password",
+ "required": "Please enter the password",
"title": "Password"
},
"title": "ComfyUI",
- "unlock": {
- "customAuth": "Custom Authentication",
- "description": "Configure ComfyUI server connection information to start image generation",
- "title": "Use ComfyUI Image Generation"
- },
"username": {
"desc": "Username for basic authentication",
"placeholder": "Enter username",
+ "required": "Please enter the username",
"title": "Username"
}
},
diff --git a/locales/en-US/models.json b/locales/en-US/models.json
index d3394541f55..4573b611b64 100644
--- a/locales/en-US/models.json
+++ b/locales/en-US/models.json
@@ -866,6 +866,39 @@
"cohere/embed-v4.0": {
"description": "A model that enables classification or embedding transformation of text, images, or mixed content."
},
+ "comfyui/flux-dev": {
+ "description": "FLUX.1 Dev - High-quality text-to-image model, generates in 10–50 steps, ideal for high-end creative and artistic image generation."
+ },
+ "comfyui/flux-kontext-dev": {
+ "description": "FLUX.1 Kontext-dev - Image editing model that supports modifying existing images based on text instructions, including localized edits and style transfer."
+ },
+ "comfyui/flux-krea-dev": {
+ "description": "FLUX.1 Krea-dev - Enhanced safety text-to-image model developed in collaboration with Krea, featuring built-in safety filters."
+ },
+ "comfyui/flux-schnell": {
+ "description": "FLUX.1 Schnell - Ultra-fast text-to-image model capable of generating high-quality images in just 1–4 steps, ideal for real-time applications and rapid prototyping."
+ },
+ "comfyui/stable-diffusion-15": {
+ "description": "Stable Diffusion 1.5 text-to-image model, classic 512x512 resolution generation, suitable for quick prototyping and creative experimentation."
+ },
+ "comfyui/stable-diffusion-35": {
+ "description": "Stable Diffusion 3.5 next-generation text-to-image model, available in Large and Medium versions, requires external CLIP encoder files, delivers exceptional image quality and prompt alignment."
+ },
+ "comfyui/stable-diffusion-35-inclclip": {
+ "description": "Stable Diffusion 3.5 with built-in CLIP/T5 encoders, no need for external encoder files, compatible with models like sd3.5_medium_incl_clips, optimized for lower resource usage."
+ },
+ "comfyui/stable-diffusion-custom": {
+ "description": "Custom SD text-to-image model. Please name the model file as custom_sd_lobe.safetensors. If using a VAE, name it custom_sd_vae_lobe.safetensors. Model files must be placed in the designated folder as required by Comfy."
+ },
+ "comfyui/stable-diffusion-custom-refiner": {
+ "description": "Custom SDXL image-to-image model. Please name the model file as custom_sd_lobe.safetensors. If using a VAE, name it custom_sd_vae_lobe.safetensors. Model files must be placed in the designated folder as required by Comfy."
+ },
+ "comfyui/stable-diffusion-refiner": {
+ "description": "SDXL image-to-image model for high-quality transformations based on input images, supporting style transfer, image restoration, and creative modifications."
+ },
+ "comfyui/stable-diffusion-xl": {
+ "description": "SDXL text-to-image model supporting high-resolution 1024x1024 generation, offering superior image quality and detail rendering."
+ },
"command": {
"description": "An instruction-following dialogue model that delivers high quality and reliability in language tasks, with a longer context length compared to our base generation models."
},
diff --git a/locales/en-US/providers.json b/locales/en-US/providers.json
index 3f6f320094a..9ab70004d46 100644
--- a/locales/en-US/providers.json
+++ b/locales/en-US/providers.json
@@ -35,9 +35,6 @@
"cerebras": {
"description": "Cerebras is an AI inference platform built on its dedicated CS-3 system, designed to deliver the world's fastest, real-time, high-throughput LLM services. It is specifically engineered to eliminate latency and accelerate complex AI workflows such as real-time code generation and agent-based tasks."
},
- "cerebras": {
- "description": "Cerebras is an AI inference platform built on its dedicated CS-3 system, designed to deliver the world's fastest, real-time, high-throughput LLM services. It is specifically engineered to eliminate latency and accelerate complex AI workflows such as real-time code generation and agent-based tasks."
- },
"cloudflare": {
"description": "Run serverless GPU-powered machine learning models on Cloudflare's global network."
},
@@ -47,6 +44,9 @@
"cometapi": {
"description": "CometAPI is a service platform offering a variety of cutting-edge large model interfaces, supporting OpenAI, Anthropic, Google, and more. It caters to diverse development and application needs, allowing users to flexibly choose the optimal model and pricing according to their requirements, enhancing the AI experience."
},
+ "comfyui": {
+ "description": "A powerful open-source workflow engine for generating images, videos, and audio. Supports advanced models such as SD, FLUX, Qwen, Hunyuan, and WAN, offering node-based workflow editing and private deployment capabilities."
+ },
"deepseek": {
"description": "DeepSeek is a company focused on AI technology research and application, with its latest model DeepSeek-V2.5 integrating general dialogue and code processing capabilities, achieving significant improvements in human preference alignment, writing tasks, and instruction following."
},
diff --git a/locales/es-ES/error.json b/locales/es-ES/error.json
index 24c540852ae..abfdf9fb96a 100644
--- a/locales/es-ES/error.json
+++ b/locales/es-ES/error.json
@@ -81,6 +81,12 @@
"522": "Lo sentimos, la conexión del servidor ha expirado y no pudo responder a su solicitud a tiempo. Puede que se deba a una red inestable o a que el servidor no está disponible temporalmente. Por favor, inténtelo de nuevo más tarde, estamos trabajando para restaurar el servicio.",
"524": "Lo sentimos, el servidor ha agotado el tiempo de espera mientras esperaba una respuesta, posiblemente debido a una respuesta lenta. Por favor, inténtelo de nuevo más tarde.",
"AgentRuntimeError": "Se produjo un error en la ejecución del tiempo de ejecución del modelo de lenguaje Lobe, por favor, verifica la siguiente información o inténtalo de nuevo",
+ "ComfyUIBizError": "Se produjo un error al solicitar el servicio de ComfyUI. Por favor, revisa la siguiente información o vuelve a intentarlo.",
+ "ComfyUIEmptyResult": "ComfyUI no generó ninguna imagen. Por favor, revisa la configuración del modelo o vuelve a intentarlo.",
+ "ComfyUIModelError": "Error al cargar el modelo de ComfyUI. Verifica que el archivo del modelo exista.",
+ "ComfyUIServiceUnavailable": "No se pudo conectar con el servicio de ComfyUI. Verifica que ComfyUI esté funcionando correctamente o que la dirección del servicio sea correcta.",
+ "ComfyUIUploadFailed": "Error al subir la imagen a ComfyUI. Verifica la conexión con el servidor o vuelve a intentarlo.",
+ "ComfyUIWorkflowError": "La ejecución del flujo de trabajo de ComfyUI falló. Por favor, revisa la configuración del flujo de trabajo.",
"ConnectionCheckFailed": "La respuesta de la solicitud está vacía, por favor verifica que la dirección del proxy de la API no termine con `/v1`",
"CreateMessageError": "Lo sentimos, el mensaje no se pudo enviar correctamente. Por favor, copia el contenido y vuelve a enviarlo. Después de actualizar la página, este mensaje no se conservará.",
"ExceededContextWindow": "El contenido de la solicitud actual excede la longitud que el modelo puede procesar. Por favor, reduzca la cantidad de contenido y vuelva a intentarlo.",
@@ -100,6 +106,7 @@
"InvalidAccessCode": "La contraseña no es válida o está vacía. Por favor, introduce una contraseña de acceso válida o añade una clave API personalizada",
"InvalidBedrockCredentials": "La autenticación de Bedrock no se ha completado con éxito, por favor, verifica AccessKeyId/SecretAccessKey e inténtalo de nuevo",
"InvalidClerkUser": "Lo siento mucho, actualmente no has iniciado sesión. Por favor, inicia sesión o regístrate antes de continuar.",
+ "InvalidComfyUIArgs": "La configuración de ComfyUI no es correcta. Por favor, verifica la configuración e inténtalo de nuevo.",
"InvalidGithubToken": "El token de acceso personal de Github es incorrecto o está vacío. Por favor, verifica el token de acceso personal de Github y vuelve a intentarlo.",
"InvalidOllamaArgs": "La configuración de Ollama no es válida, por favor revisa la configuración de Ollama e inténtalo de nuevo",
"InvalidProviderAPIKey": "{{provider}} API Key incorrecta o vacía, por favor revisa tu {{provider}} API Key e intenta de nuevo",
@@ -149,6 +156,11 @@
"title": "Usar tu propia API Key de {{name}}"
},
"closeMessage": "Cerrar mensaje",
+ "comfyui": {
+ "description": "Introduce la información de autenticación correcta de {{name}} para comenzar a generar imágenes.",
+ "modifyBaseUrl": "Modificar la dirección del servicio Comfy UI",
+ "title": "Confirma tu información de autenticación de {{name}}"
+ },
"confirm": "Confirmar y volver a intentar",
"oauth": {
"description": "El administrador ha habilitado la autenticación de inicio de sesión única. Haz clic en el botón a continuación para iniciar sesión y desbloquear la aplicación.",
diff --git a/locales/es-ES/modelProvider.json b/locales/es-ES/modelProvider.json
index 3162eae8b23..ad40bb73c28 100644
--- a/locales/es-ES/modelProvider.json
+++ b/locales/es-ES/modelProvider.json
@@ -82,6 +82,58 @@
"title": "ID de cuenta de Cloudflare / dirección URL de API"
}
},
+ "comfyui": {
+ "apiKey": {
+ "desc": "Clave API necesaria para la autenticación con token Bearer",
+ "placeholder": "Por favor, introduce la clave API",
+ "required": "Por favor, introduce la clave API",
+ "title": "Clave API"
+ },
+ "authType": {
+ "desc": "Selecciona el método de autenticación con el servidor ComfyUI",
+ "options": {
+ "basic": "Usuario/Contraseña",
+ "bearer": "Bearer (Clave API)",
+ "custom": "Encabezados personalizados",
+ "none": "Sin autenticación"
+ },
+ "placeholder": "Por favor, selecciona el tipo de autenticación",
+ "title": "Tipo de autenticación"
+ },
+ "baseURL": {
+ "desc": "Dirección web de acceso a ComfyUI",
+ "placeholder": "http://127.0.0.1:8000",
+ "required": "Por favor, introduce la dirección del servicio ComfyUI",
+ "title": "Dirección del servicio ComfyUI"
+ },
+ "checker": {
+ "desc": "Probar si la conexión está configurada correctamente",
+ "title": "Verificación de conectividad"
+ },
+ "customHeaders": {
+ "addButton": "Agregar encabezado",
+ "deleteTooltip": "Eliminar este encabezado",
+ "desc": "Encabezados necesarios para la autenticación personalizada, en formato clave-valor",
+ "duplicateKeyError": "Los nombres de las claves de encabezado no pueden repetirse",
+ "keyPlaceholder": "Nombre de la clave",
+ "required": "Por favor, introduce los encabezados personalizados",
+ "title": "Encabezados personalizados",
+ "valuePlaceholder": "Valor"
+ },
+ "password": {
+ "desc": "Contraseña necesaria para la autenticación básica",
+ "placeholder": "Por favor, introduce la contraseña",
+ "required": "Por favor, introduce la contraseña",
+ "title": "Contraseña"
+ },
+ "title": "ComfyUI",
+ "username": {
+ "desc": "Nombre de usuario necesario para la autenticación básica",
+ "placeholder": "Por favor, introduce el nombre de usuario",
+ "required": "Por favor, introduce el nombre de usuario",
+ "title": "Nombre de usuario"
+ }
+ },
"createNewAiProvider": {
"apiKey": {
"placeholder": "Por favor, introduce tu API Key",
diff --git a/locales/es-ES/models.json b/locales/es-ES/models.json
index 2df9d23393c..47a72c34bdd 100644
--- a/locales/es-ES/models.json
+++ b/locales/es-ES/models.json
@@ -866,6 +866,39 @@
"cohere/embed-v4.0": {
"description": "Un modelo que permite clasificar texto, imágenes o contenido mixto o convertirlos en incrustaciones."
},
+ "comfyui/flux-dev": {
+ "description": "FLUX.1 Dev - Modelo de generación de imágenes a partir de texto de alta calidad, genera en 10-50 pasos, ideal para creaciones artísticas y obras de alta calidad"
+ },
+ "comfyui/flux-kontext-dev": {
+ "description": "FLUX.1 Kontext-dev - Modelo de edición de imágenes, permite modificar imágenes existentes mediante instrucciones de texto, compatible con ediciones parciales y transferencia de estilo"
+ },
+ "comfyui/flux-krea-dev": {
+ "description": "FLUX.1 Krea-dev - Modelo de generación de imágenes con seguridad mejorada, desarrollado en colaboración con Krea, incluye filtros de seguridad integrados"
+ },
+ "comfyui/flux-schnell": {
+ "description": "FLUX.1 Schnell - Modelo ultrarrápido de generación de imágenes a partir de texto, genera imágenes de alta calidad en solo 1-4 pasos, ideal para aplicaciones en tiempo real y creación rápida de prototipos"
+ },
+ "comfyui/stable-diffusion-15": {
+ "description": "Modelo Stable Diffusion 1.5 de generación de imágenes a partir de texto, clásico con resolución de 512x512, ideal para prototipos rápidos y experimentación creativa"
+ },
+ "comfyui/stable-diffusion-35": {
+ "description": "Modelo de nueva generación Stable Diffusion 3.5 para generación de imágenes a partir de texto, disponible en versiones Large y Medium, requiere archivo externo del codificador CLIP, ofrece excelente calidad de imagen y precisión en la interpretación de los prompts"
+ },
+ "comfyui/stable-diffusion-35-inclclip": {
+ "description": "Versión de Stable Diffusion 3.5 con codificadores CLIP/T5 integrados, no requiere archivos externos, compatible con modelos como sd3.5_medium_incl_clips, con menor consumo de recursos"
+ },
+ "comfyui/stable-diffusion-custom": {
+ "description": "Modelo personalizado de generación de imágenes SD, el archivo del modelo debe llamarse custom_sd_lobe.safetensors; si se utiliza VAE, debe llamarse custom_sd_vae_lobe.safetensors. Los archivos del modelo deben colocarse en la carpeta correspondiente según los requisitos de Comfy"
+ },
+ "comfyui/stable-diffusion-custom-refiner": {
+ "description": "Modelo personalizado SDXL de conversión de imagen a imagen, el archivo del modelo debe llamarse custom_sd_lobe.safetensors; si se utiliza VAE, debe llamarse custom_sd_vae_lobe.safetensors. Los archivos del modelo deben colocarse en la carpeta correspondiente según los requisitos de Comfy"
+ },
+ "comfyui/stable-diffusion-refiner": {
+ "description": "Modelo SDXL de conversión de imagen a imagen, transforma imágenes de entrada en imágenes de alta calidad, compatible con transferencia de estilo, restauración de imágenes y transformaciones creativas"
+ },
+ "comfyui/stable-diffusion-xl": {
+ "description": "Modelo SDXL de generación de imágenes a partir de texto, compatible con generación de imágenes en alta resolución 1024x1024, ofrece mejor calidad de imagen y mayor nivel de detalle"
+ },
"command": {
"description": "Un modelo de conversación que sigue instrucciones, ofreciendo alta calidad y fiabilidad en tareas lingüísticas, además de tener una longitud de contexto más larga que nuestros modelos de generación básicos."
},
diff --git a/locales/es-ES/providers.json b/locales/es-ES/providers.json
index 317f4069ec6..2c8c59dda8e 100644
--- a/locales/es-ES/providers.json
+++ b/locales/es-ES/providers.json
@@ -35,9 +35,6 @@
"cerebras": {
"description": "Cerebras es una plataforma de inferencia de IA basada en su sistema especializado CS-3, diseñada para ofrecer el servicio de LLM más rápido del mundo, con respuesta en tiempo real y alto rendimiento. Está especialmente concebida para eliminar la latencia y acelerar flujos de trabajo complejos de IA, como la generación de código en tiempo real y tareas de agentes."
},
- "cerebras": {
- "description": "Cerebras es una plataforma de inferencia de IA basada en su sistema especializado CS-3, diseñada para ofrecer el servicio de LLM más rápido del mundo, con respuesta en tiempo real y alto rendimiento. Está especialmente concebida para eliminar la latencia y acelerar flujos de trabajo complejos de IA, como la generación de código en tiempo real y tareas de agentes."
- },
"cloudflare": {
"description": "Ejecuta modelos de aprendizaje automático impulsados por GPU sin servidor en la red global de Cloudflare."
},
@@ -47,6 +44,9 @@
"cometapi": {
"description": "CometAPI es una plataforma de servicios que ofrece múltiples interfaces de modelos avanzados, compatible con OpenAI, Anthropic, Google y más, ideal para diversas necesidades de desarrollo y aplicación. Los usuarios pueden elegir de manera flexible el modelo y precio óptimos según sus necesidades, facilitando una mejor experiencia con IA."
},
+ "comfyui": {
+ "description": "Potente motor de flujo de trabajo de código abierto para la generación de imágenes, videos y audio, compatible con modelos avanzados como SD, FLUX, Qwen, Hunyuan y WAN, que ofrece edición de flujos de trabajo basada en nodos y capacidad de implementación privada."
+ },
"deepseek": {
"description": "DeepSeek es una empresa centrada en la investigación y aplicación de tecnologías de inteligencia artificial, cuyo modelo más reciente, DeepSeek-V2.5, combina capacidades de diálogo general y procesamiento de código, logrando mejoras significativas en alineación con preferencias humanas, tareas de escritura y seguimiento de instrucciones."
},
diff --git a/locales/fa-IR/error.json b/locales/fa-IR/error.json
index 552a6340264..ce4b740af25 100644
--- a/locales/fa-IR/error.json
+++ b/locales/fa-IR/error.json
@@ -81,6 +81,12 @@
"522": "متأسفیم، اتصال به سرور به دلیل زمانبر بودن پاسخ قطع شده است و نتوانستهایم به موقع به درخواست شما پاسخ دهیم. ممکن است به دلیل ناپایداری شبکه یا عدم دسترسی موقت به سرور باشد. لطفاً بعداً دوباره تلاش کنید، ما در حال تلاش برای بازگرداندن خدمات هستیم.",
"524": "متأسفیم، سرور در حین انتظار برای پاسخ زمانبر شده است، ممکن است به دلیل کندی پاسخ باشد. لطفاً بعداً دوباره تلاش کنید.",
"AgentRuntimeError": "اجرای Lobe AI Runtime با خطا مواجه شد، لطفاً بر اساس اطلاعات زیر بررسی کنید یا دوباره تلاش کنید",
+ "ComfyUIBizError": "درخواست به سرویس ComfyUI با خطا مواجه شد، لطفاً با توجه به اطلاعات زیر مشکل را بررسی کرده یا دوباره تلاش کنید",
+ "ComfyUIEmptyResult": "ComfyUI هیچ تصویری تولید نکرد، لطفاً پیکربندی مدل را بررسی کرده یا دوباره تلاش کنید",
+ "ComfyUIModelError": "بارگذاری مدل ComfyUI با شکست مواجه شد، لطفاً بررسی کنید که فایل مدل وجود دارد یا خیر",
+ "ComfyUIServiceUnavailable": "اتصال به سرویس ComfyUI ناموفق بود، لطفاً بررسی کنید که آیا ComfyUI بهدرستی اجرا میشود یا آدرس سرویس بهدرستی پیکربندی شده است",
+ "ComfyUIUploadFailed": "بارگذاری تصویر در ComfyUI ناموفق بود، لطفاً اتصال به سرور را بررسی کرده یا دوباره تلاش کنید",
+ "ComfyUIWorkflowError": "اجرای جریان کاری ComfyUI با شکست مواجه شد، لطفاً پیکربندی جریان کاری را بررسی کنید",
"ConnectionCheckFailed": "درخواست بدون پاسخ برگشت، لطفاً بررسی کنید که آیا آدرس پروکسی API در انتها شامل `/v1` نیست",
"CreateMessageError": "متأسفیم، پیام نتوانست به درستی ارسال شود، لطفاً محتوا را کپی کرده و دوباره ارسال کنید، پس از تازهسازی صفحه، این پیام حفظ نخواهد شد",
"ExceededContextWindow": "محتوای درخواست فعلی از طول قابل پردازش مدل فراتر رفته است، لطفاً حجم محتوا را کاهش داده و دوباره تلاش کنید",
@@ -100,6 +106,7 @@
"InvalidAccessCode": "رمز عبور نادرست یا خالی است، لطفاً رمز عبور صحیح را وارد کنید یا API Key سفارشی اضافه کنید",
"InvalidBedrockCredentials": "اعتبارسنجی Bedrock ناموفق بود، لطفاً AccessKeyId/SecretAccessKey را بررسی کرده و دوباره تلاش کنید",
"InvalidClerkUser": "متأسفیم، شما هنوز وارد نشدهاید، لطفاً ابتدا وارد شوید یا ثبتنام کنید و سپس ادامه دهید",
+ "InvalidComfyUIArgs": "پیکربندی ComfyUI نادرست است، لطفاً پس از بررسی پیکربندی ComfyUI دوباره تلاش کنید",
"InvalidGithubToken": "Github PAT نادرست یا خالی است، لطفاً Github PAT را بررسی کرده و دوباره تلاش کنید",
"InvalidOllamaArgs": "پیکربندی Ollama نادرست است، لطفاً پیکربندی Ollama را بررسی کرده و دوباره تلاش کنید",
"InvalidProviderAPIKey": "{{provider}} API Key نادرست یا خالی است، لطفاً {{provider}} API Key را بررسی کرده و دوباره تلاش کنید",
@@ -149,6 +156,11 @@
"title": "استفاده از API Key سفارشی {{name}}"
},
"closeMessage": "بستن پیام",
+ "comfyui": {
+ "description": "برای شروع تولید تصویر، لطفاً اطلاعات احراز هویت صحیح {{name}} را وارد کنید",
+ "modifyBaseUrl": "تغییر آدرس سرویس Comfy UI",
+ "title": "اطلاعات احراز هویت {{name}} خود را تأیید کنید"
+ },
"confirm": "تأیید و تلاش مجدد",
"oauth": {
"description": "مدیر احراز هویت یکپارچه را فعال کرده است، برای ورود و باز کردن قفل برنامه روی دکمه زیر کلیک کنید",
diff --git a/locales/fa-IR/modelProvider.json b/locales/fa-IR/modelProvider.json
index db32efb2cd6..6f7d2c051c7 100644
--- a/locales/fa-IR/modelProvider.json
+++ b/locales/fa-IR/modelProvider.json
@@ -82,6 +82,58 @@
"title": "شناسه حساب Cloudflare / آدرس API"
}
},
+ "comfyui": {
+ "apiKey": {
+ "desc": "کلید API مورد نیاز برای احراز هویت Bearer Token",
+ "placeholder": "لطفاً کلید API را وارد کنید",
+ "required": "لطفاً کلید API را وارد کنید",
+ "title": "کلید API"
+ },
+ "authType": {
+ "desc": "نوع احراز هویت با سرور ComfyUI را انتخاب کنید",
+ "options": {
+ "basic": "نام کاربری/رمز عبور",
+ "bearer": "Bearer (کلید API)",
+ "custom": "هدر سفارشی",
+ "none": "بدون احراز هویت"
+ },
+ "placeholder": "لطفاً نوع احراز هویت را انتخاب کنید",
+ "title": "نوع احراز هویت"
+ },
+ "baseURL": {
+ "desc": "آدرس وب برای دسترسی به ComfyUI",
+ "placeholder": "http://127.0.0.1:8000",
+ "required": "لطفاً آدرس سرویس ComfyUI را وارد کنید",
+ "title": "آدرس سرویس ComfyUI"
+ },
+ "checker": {
+ "desc": "بررسی کنید که اتصال به درستی پیکربندی شده باشد",
+ "title": "بررسی اتصال"
+ },
+ "customHeaders": {
+ "addButton": "افزودن هدر",
+ "deleteTooltip": "حذف این هدر",
+ "desc": "هدرهای مورد نیاز برای احراز هویت سفارشی، به صورت جفت کلید-مقدار",
+ "duplicateKeyError": "نام کلید هدر نباید تکراری باشد",
+ "keyPlaceholder": "نام کلید",
+ "required": "لطفاً هدر سفارشی را وارد کنید",
+ "title": "هدرهای سفارشی",
+ "valuePlaceholder": "مقدار"
+ },
+ "password": {
+ "desc": "رمز عبور مورد نیاز برای احراز هویت پایه",
+ "placeholder": "لطفاً رمز عبور را وارد کنید",
+ "required": "لطفاً رمز عبور را وارد کنید",
+ "title": "رمز عبور"
+ },
+ "title": "ComfyUI",
+ "username": {
+ "desc": "نام کاربری مورد نیاز برای احراز هویت پایه",
+ "placeholder": "لطفاً نام کاربری را وارد کنید",
+ "required": "لطفاً نام کاربری را وارد کنید",
+ "title": "نام کاربری"
+ }
+ },
"createNewAiProvider": {
"apiKey": {
"placeholder": "لطفاً کلید API خود را وارد کنید",
diff --git a/locales/fa-IR/models.json b/locales/fa-IR/models.json
index 5500b0f4dcf..a4354ea5f04 100644
--- a/locales/fa-IR/models.json
+++ b/locales/fa-IR/models.json
@@ -866,6 +866,39 @@
"cohere/embed-v4.0": {
"description": "مدلی که امکان دستهبندی یا تبدیل متن، تصویر یا محتوای ترکیبی به جاسازی را فراهم میکند."
},
+ "comfyui/flux-dev": {
+ "description": "FLUX.1 Dev - مدل تولید تصویر از متن با کیفیت بالا، تولید در ۱۰ تا ۵۰ مرحله، مناسب برای خلق آثار هنری و تولید محتوای خلاقانه با کیفیت بالا"
+ },
+ "comfyui/flux-kontext-dev": {
+ "description": "FLUX.1 Kontext-dev - مدل ویرایش تصویر، پشتیبانی از ویرایش تصاویر موجود بر اساس دستورات متنی، شامل ویرایش موضعی و انتقال سبک"
+ },
+ "comfyui/flux-krea-dev": {
+ "description": "FLUX.1 Krea-dev - مدل تولید تصویر از متن با ایمنی تقویتشده، توسعهیافته با همکاری Krea، دارای فیلترهای ایمنی داخلی"
+ },
+ "comfyui/flux-schnell": {
+ "description": "FLUX.1 Schnell - مدل فوقسریع تولید تصویر از متن، تولید تصاویر با کیفیت بالا تنها در ۱ تا ۴ مرحله، مناسب برای کاربردهای بلادرنگ و نمونهسازی سریع"
+ },
+ "comfyui/stable-diffusion-15": {
+ "description": "مدل تولید تصویر از متن Stable Diffusion 1.5، با وضوح کلاسیک ۵۱۲x۵۱۲، مناسب برای نمونهسازی سریع و آزمایشهای خلاقانه"
+ },
+ "comfyui/stable-diffusion-35": {
+ "description": "مدل نسل جدید تولید تصویر از متن Stable Diffusion 3.5، در دو نسخه Large و Medium، نیازمند فایل رمزگذار CLIP خارجی، ارائهدهنده کیفیت تصویر عالی و تطابق دقیق با دستورات متنی"
+ },
+ "comfyui/stable-diffusion-35-inclclip": {
+ "description": "نسخه Stable Diffusion 3.5 با رمزگذار داخلی CLIP/T5، بدون نیاز به فایل رمزگذار خارجی، مناسب برای مدلهایی مانند sd3.5_medium_incl_clips، با مصرف منابع کمتر"
+ },
+ "comfyui/stable-diffusion-custom": {
+ "description": "مدل سفارشی تولید تصویر از متن SD، نام فایل مدل باید custom_sd_lobe.safetensors باشد، در صورت وجود VAE از custom_sd_vae_lobe.safetensors استفاده شود، فایلهای مدل باید طبق دستورالعمل Comfy در پوشه مناسب قرار گیرند"
+ },
+ "comfyui/stable-diffusion-custom-refiner": {
+ "description": "مدل سفارشی SDXL برای تبدیل تصویر به تصویر، نام فایل مدل باید custom_sd_lobe.safetensors باشد، در صورت وجود VAE از custom_sd_vae_lobe.safetensors استفاده شود، فایلهای مدل باید طبق دستورالعمل Comfy در پوشه مناسب قرار گیرند"
+ },
+ "comfyui/stable-diffusion-refiner": {
+ "description": "مدل SDXL برای تبدیل تصویر به تصویر، تبدیل تصاویر ورودی به تصاویر با کیفیت بالا، پشتیبانی از انتقال سبک، ترمیم تصویر و تغییرات خلاقانه"
+ },
+ "comfyui/stable-diffusion-xl": {
+ "description": "مدل تولید تصویر از متن SDXL، پشتیبانی از تولید تصویر با وضوح بالا ۱۰۲۴x۱۰۲۴، ارائه کیفیت تصویر بهتر و جزئیات دقیقتر"
+ },
"command": {
"description": "یک مدل گفتگوی پیروی از دستور که در وظایف زبانی کیفیت بالاتر و قابلیت اطمینان بیشتری را ارائه میدهد و نسبت به مدلهای تولید پایه ما دارای طول زمینه بیشتری است."
},
diff --git a/locales/fa-IR/providers.json b/locales/fa-IR/providers.json
index cd37bdf8b61..1de17bd6591 100644
--- a/locales/fa-IR/providers.json
+++ b/locales/fa-IR/providers.json
@@ -35,9 +35,6 @@
"cerebras": {
"description": "Cerebras یک پلتفرم استنتاج هوش مصنوعی مبتنی بر سیستم اختصاصی CS-3 خود است که با هدف ارائه سریعترین خدمات مدلهای زبانی بزرگ (LLM) در جهان با پاسخدهی آنی و توان عملیاتی بالا طراحی شده است. این پلتفرم بهطور ویژه برای حذف تأخیر و تسریع جریانهای کاری پیچیده هوش مصنوعی مانند تولید کد در زمان واقعی و انجام وظایف نمایندگی طراحی شده است."
},
- "cerebras": {
- "description": "Cerebras یک پلتفرم استنتاج هوش مصنوعی مبتنی بر سیستم اختصاصی CS-3 خود است که با هدف ارائه سریعترین خدمات مدلهای زبانی بزرگ (LLM) در جهان با پاسخدهی آنی و توان عملیاتی بالا طراحی شده است. این پلتفرم بهطور ویژه برای حذف تأخیر و تسریع جریانهای کاری پیچیده هوش مصنوعی مانند تولید کد در زمان واقعی و انجام وظایف نمایندگی طراحی شده است."
- },
"cloudflare": {
"description": "مدلهای یادگیری ماشین مبتنی بر GPU بدون سرور را در شبکه جهانی Cloudflare اجرا کنید."
},
@@ -47,6 +44,9 @@
"cometapi": {
"description": "CometAPI یک پلتفرم خدماتی است که انواع مختلفی از رابطهای مدلهای پیشرفته را ارائه میدهد و از OpenAI، Anthropic، Google و سایرین پشتیبانی میکند. این پلتفرم برای نیازهای متنوع توسعه و کاربرد مناسب است. کاربران میتوانند بر اساس نیازهای خود بهترین مدل و قیمت را بهصورت انعطافپذیر انتخاب کنند و به بهبود تجربه هوش مصنوعی کمک کنند."
},
+ "comfyui": {
+ "description": "یک موتور قدرتمند و متنباز برای تولید تصویر، ویدئو و صدا که از مدلهای پیشرفتهای مانند SD، FLUX، Qwen، Hunyuan و WAN پشتیبانی میکند و قابلیت ویرایش جریان کاری بهصورت گرهای و استقرار خصوصی را فراهم میسازد."
+ },
"deepseek": {
"description": "DeepSeek یک شرکت متمرکز بر تحقیق و کاربرد فناوری هوش مصنوعی است. مدل جدید آن، DeepSeek-V2.5، تواناییهای مکالمه عمومی و پردازش کد را ترکیب کرده و در زمینههایی مانند همترازی با ترجیحات انسانی، وظایف نوشتاری و پیروی از دستورات بهبود قابل توجهی داشته است."
},
diff --git a/locales/fr-FR/error.json b/locales/fr-FR/error.json
index 139e681cc27..bbf985c7a61 100644
--- a/locales/fr-FR/error.json
+++ b/locales/fr-FR/error.json
@@ -81,6 +81,12 @@
"522": "Nous sommes désolés, la connexion au serveur a expiré, et nous n'avons pas pu répondre à votre demande à temps. Cela peut être dû à une instabilité du réseau ou à un accès temporairement impossible au serveur. Veuillez réessayer plus tard, nous faisons de notre mieux pour rétablir le service.",
"524": "Nous sommes désolés, le serveur a expiré en attendant une réponse, probablement en raison d'une réponse trop lente. Veuillez réessayer plus tard.",
"AgentRuntimeError": "Erreur d'exécution du modèle linguistique Lobe, veuillez vérifier les informations ci-dessous ou réessayer",
+ "ComfyUIBizError": "Erreur lors de la requête au service ComfyUI. Veuillez diagnostiquer ou réessayer en fonction des informations ci-dessous.",
+ "ComfyUIEmptyResult": "Aucune image générée par ComfyUI. Veuillez vérifier la configuration du modèle ou réessayer.",
+ "ComfyUIModelError": "Échec du chargement du modèle ComfyUI. Veuillez vérifier si le fichier du modèle existe.",
+ "ComfyUIServiceUnavailable": "Échec de la connexion au service ComfyUI. Veuillez vérifier si ComfyUI fonctionne correctement ou si l'adresse du service est correcte.",
+ "ComfyUIUploadFailed": "Échec du téléversement de l'image vers ComfyUI. Veuillez vérifier la connexion au serveur ou réessayer.",
+ "ComfyUIWorkflowError": "Échec de l'exécution du workflow ComfyUI. Veuillez vérifier la configuration du workflow.",
"ConnectionCheckFailed": "La réponse est vide, veuillez vérifier si l'URL du proxy API se termine par `/v1`",
"CreateMessageError": "Désolé, le message n'a pas pu être envoyé correctement. Veuillez copier le contenu et le renvoyer. Ce message ne sera pas conservé après le rafraîchissement de la page.",
"ExceededContextWindow": "Le contenu de la demande actuelle dépasse la longueur que le modèle peut traiter. Veuillez réduire la quantité de contenu et réessayer.",
@@ -100,6 +106,7 @@
"InvalidAccessCode": "Le mot de passe est incorrect ou vide. Veuillez saisir le mot de passe d'accès correct ou ajouter une clé API personnalisée.",
"InvalidBedrockCredentials": "L'authentification Bedrock a échoué, veuillez vérifier AccessKeyId/SecretAccessKey et réessayer",
"InvalidClerkUser": "Désolé, vous n'êtes pas actuellement connecté. Veuillez vous connecter ou vous inscrire avant de continuer.",
+ "InvalidComfyUIArgs": "Configuration incorrecte de ComfyUI. Veuillez vérifier la configuration de ComfyUI et réessayer.",
"InvalidGithubToken": "Le jeton d'accès personnel GitHub est incorrect ou vide. Veuillez vérifier le jeton d'accès personnel GitHub et réessayer.",
"InvalidOllamaArgs": "La configuration d'Ollama n'est pas valide, veuillez vérifier la configuration d'Ollama et réessayer",
"InvalidProviderAPIKey": "{{provider}} API Key incorrect or missing, please check {{provider}} API Key and try again",
@@ -149,6 +156,11 @@
"title": "Use custom {{name}} API Key"
},
"closeMessage": "Fermer le message",
+ "comfyui": {
+ "description": "Veuillez saisir les informations d'authentification correctes de {{name}} pour commencer la génération d'images.",
+ "modifyBaseUrl": "Modifier l'adresse du service Comfy UI",
+ "title": "Confirmez vos informations d'authentification {{name}}"
+ },
"confirm": "Confirmer et réessayer",
"oauth": {
"description": "L'administrateur a activé l'authentification de connexion unique. Cliquez sur le bouton ci-dessous pour vous connecter et déverrouiller l'application.",
diff --git a/locales/fr-FR/modelProvider.json b/locales/fr-FR/modelProvider.json
index 7473ac3dca3..5f308c12869 100644
--- a/locales/fr-FR/modelProvider.json
+++ b/locales/fr-FR/modelProvider.json
@@ -82,6 +82,58 @@
"title": "ID de compte Cloudflare / adresse API"
}
},
+ "comfyui": {
+ "apiKey": {
+ "desc": "Clé API requise pour l'authentification par jeton Bearer",
+ "placeholder": "Veuillez saisir la clé API",
+ "required": "Veuillez saisir la clé API",
+ "title": "Clé API"
+ },
+ "authType": {
+ "desc": "Choisissez le mode d'authentification avec le serveur ComfyUI",
+ "options": {
+ "basic": "Identifiant/Mot de passe",
+ "bearer": "Bearer (Clé API)",
+ "custom": "En-têtes personnalisés",
+ "none": "Aucune authentification"
+ },
+ "placeholder": "Veuillez sélectionner un type d'authentification",
+ "title": "Type d'authentification"
+ },
+ "baseURL": {
+ "desc": "Adresse Web d'accès à ComfyUI",
+ "placeholder": "http://127.0.0.1:8000",
+ "required": "Veuillez saisir l'adresse du service ComfyUI",
+ "title": "Adresse du service ComfyUI"
+ },
+ "checker": {
+ "desc": "Tester si la connexion est correctement configurée",
+ "title": "Vérification de la connectivité"
+ },
+ "customHeaders": {
+ "addButton": "Ajouter un en-tête",
+ "deleteTooltip": "Supprimer cet en-tête",
+ "desc": "En-têtes requis pour l'authentification personnalisée, au format clé-valeur",
+ "duplicateKeyError": "Les noms de clé des en-têtes ne doivent pas être dupliqués",
+ "keyPlaceholder": "Nom de la clé",
+ "required": "Veuillez saisir les en-têtes personnalisés",
+ "title": "En-têtes personnalisés",
+ "valuePlaceholder": "Valeur"
+ },
+ "password": {
+ "desc": "Mot de passe requis pour l'authentification de base",
+ "placeholder": "Veuillez saisir le mot de passe",
+ "required": "Veuillez saisir le mot de passe",
+ "title": "Mot de passe"
+ },
+ "title": "ComfyUI",
+ "username": {
+ "desc": "Nom d'utilisateur requis pour l'authentification de base",
+ "placeholder": "Veuillez saisir le nom d'utilisateur",
+ "required": "Veuillez saisir le nom d'utilisateur",
+ "title": "Nom d'utilisateur"
+ }
+ },
"createNewAiProvider": {
"apiKey": {
"placeholder": "Veuillez entrer votre clé API",
diff --git a/locales/fr-FR/models.json b/locales/fr-FR/models.json
index 13dcc4ee58b..d8a0f3c8801 100644
--- a/locales/fr-FR/models.json
+++ b/locales/fr-FR/models.json
@@ -866,6 +866,39 @@
"cohere/embed-v4.0": {
"description": "Un modèle permettant de classifier ou de transformer en embeddings des textes, images ou contenus mixtes."
},
+ "comfyui/flux-dev": {
+ "description": "FLUX.1 Dev - Modèle de génération d'images à partir de texte de haute qualité, 10 à 50 étapes de génération, idéal pour la création artistique et les œuvres visuelles de qualité."
+ },
+ "comfyui/flux-kontext-dev": {
+ "description": "FLUX.1 Kontext-dev - Modèle d'édition d'image, permet de modifier des images existantes à l'aide d'instructions textuelles, avec prise en charge des modifications locales et du transfert de style."
+ },
+ "comfyui/flux-krea-dev": {
+ "description": "FLUX.1 Krea-dev - Modèle de génération d'images à partir de texte avec sécurité renforcée, développé en collaboration avec Krea, intègre un filtrage de sécurité."
+ },
+ "comfyui/flux-schnell": {
+ "description": "FLUX.1 Schnell - Modèle ultra-rapide de génération d'images à partir de texte, produit des images de haute qualité en 1 à 4 étapes, idéal pour les applications en temps réel et le prototypage rapide."
+ },
+ "comfyui/stable-diffusion-15": {
+ "description": "Stable Diffusion 1.5 - Modèle classique de génération d'images à partir de texte en résolution 512x512, adapté au prototypage rapide et aux expérimentations créatives."
+ },
+ "comfyui/stable-diffusion-35": {
+ "description": "Stable Diffusion 3.5 - Modèle de nouvelle génération pour la génération d'images à partir de texte, disponible en versions Large et Medium, nécessite un fichier d'encodeur CLIP externe, offre une qualité d'image exceptionnelle et une grande fidélité aux invites textuelles."
+ },
+ "comfyui/stable-diffusion-35-inclclip": {
+ "description": "Stable Diffusion 3.5 avec encodeur CLIP/T5 intégré - Ne nécessite pas de fichier d'encodeur externe, compatible avec des modèles comme sd3.5_medium_incl_clips, avec une consommation de ressources réduite."
+ },
+ "comfyui/stable-diffusion-custom": {
+ "description": "Modèle personnalisé SD pour la génération d'images à partir de texte. Le fichier du modèle doit être nommé custom_sd_lobe.safetensors. Si un VAE est utilisé, nommez-le custom_sd_vae_lobe.safetensors. Les fichiers doivent être placés dans les dossiers requis selon les spécifications de Comfy."
+ },
+ "comfyui/stable-diffusion-custom-refiner": {
+ "description": "Modèle personnalisé SDXL pour la transformation d'image à image. Le fichier du modèle doit être nommé custom_sd_lobe.safetensors. Si un VAE est utilisé, nommez-le custom_sd_vae_lobe.safetensors. Les fichiers doivent être placés dans les dossiers requis selon les spécifications de Comfy."
+ },
+ "comfyui/stable-diffusion-refiner": {
+ "description": "Modèle SDXL de transformation d'image à image, permet une conversion d'image de haute qualité à partir d'une image source, avec prise en charge du transfert de style, de la restauration d'image et des transformations créatives."
+ },
+ "comfyui/stable-diffusion-xl": {
+ "description": "Modèle SDXL de génération d'images à partir de texte, prend en charge une résolution élevée de 1024x1024, offrant une qualité d'image supérieure et un meilleur rendu des détails."
+ },
"command": {
"description": "Un modèle de dialogue qui suit des instructions, offrant une haute qualité et une fiabilité accrue dans les tâches linguistiques, avec une longueur de contexte plus longue que notre modèle de génération de base."
},
diff --git a/locales/fr-FR/providers.json b/locales/fr-FR/providers.json
index db49375f82e..014b4c45b03 100644
--- a/locales/fr-FR/providers.json
+++ b/locales/fr-FR/providers.json
@@ -35,9 +35,6 @@
"cerebras": {
"description": "Cerebras est une plateforme d'inférence IA basée sur son système dédié CS-3, conçue pour offrir les services de LLM les plus rapides au monde, avec une réponse en temps réel et un débit élevé. Elle est spécialement conçue pour éliminer la latence et accélérer les flux de travail IA complexes, tels que la génération de code en temps réel et les tâches d'agents."
},
- "cerebras": {
- "description": "Cerebras est une plateforme d'inférence IA basée sur son système dédié CS-3, conçue pour offrir les services de LLM les plus rapides au monde, avec une réponse en temps réel et un débit élevé. Elle est spécialement conçue pour éliminer la latence et accélérer les flux de travail IA complexes, tels que la génération de code en temps réel et les tâches d'agents."
- },
"cloudflare": {
"description": "Exécutez des modèles d'apprentissage automatique alimentés par GPU sans serveur sur le réseau mondial de Cloudflare."
},
@@ -47,6 +44,9 @@
"cometapi": {
"description": "CometAPI est une plateforme de services offrant diverses interfaces de modèles avancés, prenant en charge OpenAI, Anthropic, Google et bien d'autres, adaptée à des besoins de développement et d'application variés. Les utilisateurs peuvent choisir librement le modèle et le tarif optimaux selon leurs besoins, favorisant ainsi une meilleure expérience en IA."
},
+ "comfyui": {
+ "description": "Un puissant moteur open source de génération d’images, de vidéos et d’audio, prenant en charge des modèles avancés tels que SD, FLUX, Qwen, Hunyuan et WAN, avec des fonctionnalités d’édition de flux de travail par nœuds et de déploiement privé."
+ },
"deepseek": {
"description": "DeepSeek est une entreprise spécialisée dans la recherche et l'application des technologies d'intelligence artificielle, dont le dernier modèle, DeepSeek-V2.5, combine des capacités de dialogue général et de traitement de code, réalisant des améliorations significatives dans l'alignement des préférences humaines, les tâches d'écriture et le suivi des instructions."
},
diff --git a/locales/it-IT/error.json b/locales/it-IT/error.json
index e3bb1c7c7b0..d697747279b 100644
--- a/locales/it-IT/error.json
+++ b/locales/it-IT/error.json
@@ -81,6 +81,12 @@
"522": "Ci scusiamo, la connessione al server è scaduta e non ha risposto in tempo alla tua richiesta. Potrebbe essere dovuto a una rete instabile o a un server temporaneamente non accessibile. Riprova più tardi, stiamo lavorando per ripristinare il servizio.",
"524": "Ci scusiamo, il server ha superato il tempo di attesa in attesa di una risposta, probabilmente a causa di una risposta troppo lenta. Riprova più tardi.",
"AgentRuntimeError": "Errore di esecuzione del modello linguistico Lobe, controlla le informazioni seguenti o riprova",
+ "ComfyUIBizError": "Errore nella richiesta al servizio ComfyUI, verifica le informazioni seguenti o riprova",
+ "ComfyUIEmptyResult": "Nessuna immagine generata da ComfyUI, controlla la configurazione del modello o riprova",
+ "ComfyUIModelError": "Caricamento del modello ComfyUI fallito, verifica che il file del modello esista",
+ "ComfyUIServiceUnavailable": "Connessione al servizio ComfyUI non riuscita, verifica che ComfyUI sia in esecuzione correttamente o controlla la configurazione dell'indirizzo del servizio",
+ "ComfyUIUploadFailed": "Caricamento immagine su ComfyUI non riuscito, controlla la connessione al server o riprova",
+ "ComfyUIWorkflowError": "Esecuzione del workflow ComfyUI fallita, controlla la configurazione del workflow",
"ConnectionCheckFailed": "La risposta è vuota, controlla se l'indirizzo del proxy API termina con `/v1`",
"CreateMessageError": "Ci dispiace, il messaggio non è stato inviato correttamente. Si prega di copiare il contenuto e inviarlo nuovamente. Dopo aver aggiornato la pagina, questo messaggio non verrà conservato.",
"ExceededContextWindow": "Il contenuto della richiesta attuale supera la lunghezza che il modello può gestire. Si prega di ridurre la quantità di contenuto e riprovare.",
@@ -100,6 +106,7 @@
"InvalidAccessCode": "Password incorrect or empty, please enter the correct access password, or add a custom API Key",
"InvalidBedrockCredentials": "Autenticazione Bedrock non riuscita, controlla AccessKeyId/SecretAccessKey e riprova",
"InvalidClerkUser": "Spiacenti, al momento non hai effettuato l'accesso. Per favore, effettua l'accesso o registrati prima di continuare.",
+ "InvalidComfyUIArgs": "Configurazione ComfyUI non corretta, controlla la configurazione e riprova",
"InvalidGithubToken": "Il token di accesso personale di Github non è corretto o è vuoto. Controlla il token di accesso personale di Github e riprova.",
"InvalidOllamaArgs": "Configurazione Ollama non valida, controllare la configurazione di Ollama e riprovare",
"InvalidProviderAPIKey": "{{provider}} Chiave API non valida o vuota, controlla la Chiave API di {{provider}} e riprova",
@@ -149,6 +156,11 @@
"title": "Usa la tua Chiave API personalizzata {{name}}"
},
"closeMessage": "Chiudi messaggio",
+ "comfyui": {
+ "description": "Inserisci le credenziali corrette di {{name}} per iniziare a generare immagini",
+ "modifyBaseUrl": "Modifica l'indirizzo del servizio Comfy UI",
+ "title": "Conferma le tue credenziali di {{name}}"
+ },
"confirm": "Conferma e riprova",
"oauth": {
"description": "L'amministratore ha abilitato l'autenticazione di accesso unificata. Fai clic sul pulsante sottostante per accedere e sbloccare l'applicazione.",
diff --git a/locales/it-IT/modelProvider.json b/locales/it-IT/modelProvider.json
index 9bb6cd029b9..671a66bfd64 100644
--- a/locales/it-IT/modelProvider.json
+++ b/locales/it-IT/modelProvider.json
@@ -82,6 +82,58 @@
"title": "ID account Cloudflare / indirizzo API"
}
},
+ "comfyui": {
+ "apiKey": {
+ "desc": "Chiave API necessaria per l'autenticazione con Bearer Token",
+ "placeholder": "Inserisci la chiave API",
+ "required": "Inserisci la chiave API",
+ "title": "Chiave API"
+ },
+ "authType": {
+ "desc": "Seleziona il metodo di autenticazione con il server ComfyUI",
+ "options": {
+ "basic": "Account/Password",
+ "bearer": "Bearer (Chiave API)",
+ "custom": "Header personalizzati",
+ "none": "Nessuna autenticazione"
+ },
+ "placeholder": "Seleziona il tipo di autenticazione",
+ "title": "Tipo di autenticazione"
+ },
+ "baseURL": {
+ "desc": "Indirizzo web per accedere a ComfyUI",
+ "placeholder": "http://127.0.0.1:8000",
+ "required": "Inserisci l'indirizzo del servizio ComfyUI",
+ "title": "Indirizzo del servizio ComfyUI"
+ },
+ "checker": {
+ "desc": "Verifica se la connessione è configurata correttamente",
+ "title": "Controllo di connettività"
+ },
+ "customHeaders": {
+ "addButton": "Aggiungi header",
+ "deleteTooltip": "Elimina questo header",
+ "desc": "Header richiesti per l'autenticazione personalizzata, in formato chiave-valore",
+ "duplicateKeyError": "I nomi delle chiavi degli header non possono essere duplicati",
+ "keyPlaceholder": "Nome chiave",
+ "required": "Inserisci gli header personalizzati",
+ "title": "Header personalizzati",
+ "valuePlaceholder": "Valore"
+ },
+ "password": {
+ "desc": "Password richiesta per l'autenticazione di base",
+ "placeholder": "Inserisci la password",
+ "required": "Inserisci la password",
+ "title": "Password"
+ },
+ "title": "ComfyUI",
+ "username": {
+ "desc": "Nome utente richiesto per l'autenticazione di base",
+ "placeholder": "Inserisci il nome utente",
+ "required": "Inserisci il nome utente",
+ "title": "Nome utente"
+ }
+ },
"createNewAiProvider": {
"apiKey": {
"placeholder": "Inserisci la tua API Key",
diff --git a/locales/it-IT/models.json b/locales/it-IT/models.json
index 866ac3037c4..e66cbb3cbd0 100644
--- a/locales/it-IT/models.json
+++ b/locales/it-IT/models.json
@@ -866,6 +866,39 @@
"cohere/embed-v4.0": {
"description": "Un modello che consente di classificare o trasformare testo, immagini o contenuti misti in embedding."
},
+ "comfyui/flux-dev": {
+ "description": "FLUX.1 Dev - Modello di generazione testo-immagine di alta qualità, genera in 10-50 passaggi, ideale per creazioni artistiche e contenuti visivi di alta qualità"
+ },
+ "comfyui/flux-kontext-dev": {
+ "description": "FLUX.1 Kontext-dev - Modello di editing delle immagini, consente modifiche basate su istruzioni testuali, supporta modifiche locali e trasferimento di stile"
+ },
+ "comfyui/flux-krea-dev": {
+ "description": "FLUX.1 Krea-dev - Modello testo-immagine con sicurezza avanzata, sviluppato in collaborazione con Krea, include filtri di sicurezza integrati"
+ },
+ "comfyui/flux-schnell": {
+ "description": "FLUX.1 Schnell - Modello testo-immagine ultra-veloce, genera immagini di alta qualità in 1-4 passaggi, ideale per applicazioni in tempo reale e prototipazione rapida"
+ },
+ "comfyui/stable-diffusion-15": {
+ "description": "Stable Diffusion 1.5 - Modello classico di generazione testo-immagine con risoluzione 512x512, adatto per prototipi rapidi ed esperimenti creativi"
+ },
+ "comfyui/stable-diffusion-35": {
+ "description": "Stable Diffusion 3.5 - Modello di nuova generazione per la generazione testo-immagine, disponibile in versioni Large e Medium, richiede file esterni del codificatore CLIP, offre qualità d'immagine eccezionale e alta coerenza con i prompt"
+ },
+ "comfyui/stable-diffusion-35-inclclip": {
+ "description": "Stable Diffusion 3.5 con codificatore CLIP/T5 integrato, non richiede file esterni, compatibile con modelli come sd3.5_medium_incl_clips, con minore utilizzo di risorse"
+ },
+ "comfyui/stable-diffusion-custom": {
+ "description": "Modello personalizzato SD per generazione testo-immagine, il file del modello deve essere nominato custom_sd_lobe.safetensors, se presente VAE usare custom_sd_vae_lobe.safetensors, i file devono essere posizionati nella cartella corretta secondo le specifiche di Comfy"
+ },
+ "comfyui/stable-diffusion-custom-refiner": {
+ "description": "Modello personalizzato SDXL per generazione immagine-immagine, il file del modello deve essere nominato custom_sd_lobe.safetensors, se presente VAE usare custom_sd_vae_lobe.safetensors, i file devono essere posizionati nella cartella corretta secondo le specifiche di Comfy"
+ },
+ "comfyui/stable-diffusion-refiner": {
+ "description": "Modello SDXL per generazione immagine-immagine, consente trasformazioni visive di alta qualità basate su immagini in input, supporta trasferimento di stile, restauro e variazioni creative"
+ },
+ "comfyui/stable-diffusion-xl": {
+ "description": "Modello SDXL per generazione testo-immagine, supporta risoluzione elevata 1024x1024, offre qualità visiva superiore e dettagli più raffinati"
+ },
"command": {
"description": "Un modello di dialogo che segue le istruzioni, con alta qualità e maggiore affidabilità nelle attività linguistiche, e una lunghezza di contesto più lunga rispetto ai nostri modelli generativi di base."
},
diff --git a/locales/it-IT/providers.json b/locales/it-IT/providers.json
index f54b006ae4d..e49d4c9e70f 100644
--- a/locales/it-IT/providers.json
+++ b/locales/it-IT/providers.json
@@ -35,9 +35,6 @@
"cerebras": {
"description": "Cerebras è una piattaforma di inferenza AI basata sul suo sistema dedicato CS-3, progettata per offrire il servizio LLM più veloce al mondo, con risposta in tempo reale e un'elevata capacità di elaborazione. È pensata per eliminare la latenza e accelerare i flussi di lavoro AI complessi, come la generazione di codice in tempo reale e le attività degli agenti."
},
- "cerebras": {
- "description": "Cerebras è una piattaforma di inferenza AI basata sul suo sistema dedicato CS-3, progettata per offrire il servizio LLM più veloce al mondo, con risposta in tempo reale e un'elevata capacità di elaborazione. È pensata per eliminare la latenza e accelerare i flussi di lavoro AI complessi, come la generazione di codice in tempo reale e le attività degli agenti."
- },
"cloudflare": {
"description": "Esegui modelli di machine learning alimentati da GPU serverless sulla rete globale di Cloudflare."
},
@@ -47,6 +44,9 @@
"cometapi": {
"description": "CometAPI è una piattaforma di servizi che offre molteplici interfacce per modelli avanzati, supportando OpenAI, Anthropic, Google e altri ancora, adatta a esigenze di sviluppo e applicazione diversificate. Gli utenti possono scegliere in modo flessibile il modello e il prezzo più adatti alle proprie necessità, contribuendo a migliorare l'esperienza AI."
},
+ "comfyui": {
+ "description": "Potente motore open source per flussi di lavoro di generazione di immagini, video e audio, compatibile con modelli avanzati come SD, FLUX, Qwen, Hunyuan, WAN, e dotato di funzionalità per l'editing dei flussi tramite nodi e la distribuzione in ambienti privati."
+ },
"deepseek": {
"description": "DeepSeek è un'azienda focalizzata sulla ricerca e applicazione della tecnologia AI, il cui ultimo modello DeepSeek-V2.5 combina capacità di dialogo generico e elaborazione del codice, realizzando miglioramenti significativi nell'allineamento delle preferenze umane, nei compiti di scrittura e nel rispetto delle istruzioni."
},
diff --git a/locales/ja-JP/error.json b/locales/ja-JP/error.json
index bf3898e1644..d37cd5df2cc 100644
--- a/locales/ja-JP/error.json
+++ b/locales/ja-JP/error.json
@@ -81,6 +81,12 @@
"522": "申し訳ありませんが、サーバー接続がタイムアウトし、リクエストに迅速に応答できませんでした。ネットワークが不安定であるか、サーバーが一時的にアクセスできない可能性があります。後でもう一度お試しください。サービスの回復に努めています。",
"524": "申し訳ありませんが、サーバーが応答を待っている間にタイムアウトしました。これは、応答が遅すぎるためかもしれません。後でもう一度お試しください。",
"AgentRuntimeError": "Lobe言語モデルの実行時にエラーが発生しました。以下の情報に基づいてトラブルシューティングを行うか、再試行してください。",
+ "ComfyUIBizError": "ComfyUI サービスのリクエスト中にエラーが発生しました。以下の情報を参考にトラブルシューティングを行うか、再試行してください。",
+ "ComfyUIEmptyResult": "ComfyUI により画像が生成されませんでした。モデルの設定を確認するか、再試行してください。",
+ "ComfyUIModelError": "ComfyUI のモデル読み込みに失敗しました。モデルファイルが存在するかをご確認ください。",
+ "ComfyUIServiceUnavailable": "ComfyUI サービスへの接続に失敗しました。ComfyUI が正常に動作しているか、またはサービスアドレスの設定が正しいかをご確認ください。",
+ "ComfyUIUploadFailed": "ComfyUI への画像アップロードに失敗しました。サーバー接続を確認するか、再試行してください。",
+ "ComfyUIWorkflowError": "ComfyUI のワークフロー実行に失敗しました。ワークフローの設定をご確認ください。",
"ConnectionCheckFailed": "リクエストの返答が空です。API プロキシのアドレスの末尾に `/v1` が含まれているか確認してください。",
"CreateMessageError": "申し訳ありませんが、メッセージを正常に送信できませんでした。内容をコピーして再送信してください。このページを更新すると、このメッセージは保持されません。",
"ExceededContextWindow": "現在のリクエスト内容がモデルが処理できる長さを超えています。内容量を減らして再試行してください。",
@@ -100,6 +106,7 @@
"InvalidAccessCode": "パスワードが正しくないか空です。正しいアクセスパスワードを入力するか、カスタムAPIキーを追加してください",
"InvalidBedrockCredentials": "Bedrockの認証に失敗しました。AccessKeyId/SecretAccessKeyを確認してから再試行してください。",
"InvalidClerkUser": "申し訳ありませんが、現在ログインしていません。続行するにはログインまたはアカウント登録を行ってください",
+ "InvalidComfyUIArgs": "ComfyUI の設定が正しくありません。設定を確認してから再試行してください。",
"InvalidGithubToken": "Githubのパーソナルアクセストークンが無効または空です。Githubのパーソナルアクセストークンを確認してから、再試行してください。",
"InvalidOllamaArgs": "Ollamaの設定が正しくありません。Ollamaの設定を確認してからもう一度お試しください",
"InvalidProviderAPIKey": "{{provider}} APIキーが正しくないか空です。{{provider}} APIキーを確認して再試行してください。",
@@ -149,6 +156,11 @@
"title": "カスタム{{name}} APIキーを使用"
},
"closeMessage": "ヒントを閉じる",
+ "comfyui": {
+ "description": "正しい {{name}} の認証情報を入力すると、画像生成を開始できます。",
+ "modifyBaseUrl": "Comfy UI サービスアドレスを変更",
+ "title": "{{name}} の認証情報を確認してください"
+ },
"confirm": "確認して再試行",
"oauth": {
"description": "管理者が統一ログイン認証を有効にしました。下のボタンをクリックしてログインすると、アプリがロック解除されます。",
diff --git a/locales/ja-JP/modelProvider.json b/locales/ja-JP/modelProvider.json
index 33624bbb658..039772a5a64 100644
--- a/locales/ja-JP/modelProvider.json
+++ b/locales/ja-JP/modelProvider.json
@@ -82,6 +82,58 @@
"title": "Cloudflare アカウント ID / API アドレス"
}
},
+ "comfyui": {
+ "apiKey": {
+ "desc": "Bearerトークン認証に必要なAPIキー",
+ "placeholder": "APIキーを入力してください",
+ "required": "APIキーを入力してください",
+ "title": "APIキー"
+ },
+ "authType": {
+ "desc": "ComfyUIサーバーとの認証方式を選択してください",
+ "options": {
+ "basic": "ユーザー名/パスワード",
+ "bearer": "Bearer(APIキー)",
+ "custom": "カスタムヘッダー",
+ "none": "認証不要"
+ },
+ "placeholder": "認証タイプを選択してください",
+ "title": "認証タイプ"
+ },
+ "baseURL": {
+ "desc": "ComfyUIのWebアクセスアドレス",
+ "placeholder": "http://127.0.0.1:8000",
+ "required": "ComfyUIサービスのアドレスを入力してください",
+ "title": "ComfyUIサービスアドレス"
+ },
+ "checker": {
+ "desc": "接続が正しく構成されているかをテストします",
+ "title": "接続チェック"
+ },
+ "customHeaders": {
+ "addButton": "ヘッダーを追加",
+ "deleteTooltip": "このヘッダーを削除",
+ "desc": "カスタム認証方式に必要なリクエストヘッダー(キーと値のペア)",
+ "duplicateKeyError": "ヘッダーのキー名は重複できません",
+ "keyPlaceholder": "キー名",
+ "required": "カスタムヘッダーを入力してください",
+ "title": "カスタムヘッダー",
+ "valuePlaceholder": "値"
+ },
+ "password": {
+ "desc": "基本認証に必要なパスワード",
+ "placeholder": "パスワードを入力してください",
+ "required": "パスワードを入力してください",
+ "title": "パスワード"
+ },
+ "title": "ComfyUI",
+ "username": {
+ "desc": "基本認証に必要なユーザー名",
+ "placeholder": "ユーザー名を入力してください",
+ "required": "ユーザー名を入力してください",
+ "title": "ユーザー名"
+ }
+ },
"createNewAiProvider": {
"apiKey": {
"placeholder": "あなたの API キーを入力してください",
diff --git a/locales/ja-JP/models.json b/locales/ja-JP/models.json
index 5837604eaf5..2d02bb5e3aa 100644
--- a/locales/ja-JP/models.json
+++ b/locales/ja-JP/models.json
@@ -866,6 +866,39 @@
"cohere/embed-v4.0": {
"description": "テキスト、画像、または混合コンテンツを分類または埋め込みに変換できるモデルです。"
},
+ "comfyui/flux-dev": {
+ "description": "FLUX.1 Dev - 高品質なテキストから画像生成モデル。10〜50ステップで生成可能で、高品質な創作やアート作品の生成に適しています。"
+ },
+ "comfyui/flux-kontext-dev": {
+ "description": "FLUX.1 Kontext-dev - 画像編集モデル。テキスト指示に基づく既存画像の編集をサポートし、部分的な修正やスタイル変換にも対応しています。"
+ },
+ "comfyui/flux-krea-dev": {
+ "description": "FLUX.1 Krea-dev - セキュリティ強化型のテキストから画像生成モデル。Kreaとの共同開発で、安全フィルターを内蔵しています。"
+ },
+ "comfyui/flux-schnell": {
+ "description": "FLUX.1 Schnell - 超高速テキストから画像生成モデル。1〜4ステップで高品質な画像を生成でき、リアルタイムアプリケーションや迅速なプロトタイピングに最適です。"
+ },
+ "comfyui/stable-diffusion-15": {
+ "description": "Stable Diffusion 1.5 テキストから画像生成モデル。クラシックな512x512解像度で、迅速なプロトタイピングやクリエイティブな実験に適しています。"
+ },
+ "comfyui/stable-diffusion-35": {
+ "description": "Stable Diffusion 3.5 次世代テキストから画像生成モデル。LargeおよびMediumの2バージョンに対応し、外部CLIPエンコーダーファイルが必要です。優れた画像品質とプロンプト適合性を提供します。"
+ },
+ "comfyui/stable-diffusion-35-inclclip": {
+ "description": "Stable Diffusion 3.5 内蔵CLIP/T5エンコーダーバージョン。外部エンコーダーファイルは不要で、sd3.5_medium_incl_clipsなどのモデルに対応。リソース消費も抑えられています。"
+ },
+ "comfyui/stable-diffusion-custom": {
+ "description": "カスタムSDテキストから画像生成モデル。モデルファイル名は custom_sd_lobe.safetensors を使用してください。VAEがある場合は custom_sd_vae_lobe.safetensors を使用し、Comfyの要件に従って適切なフォルダに配置してください。"
+ },
+ "comfyui/stable-diffusion-custom-refiner": {
+ "description": "カスタムSDXL画像から画像生成モデル。モデルファイル名は custom_sd_lobe.safetensors を使用してください。VAEがある場合は custom_sd_vae_lobe.safetensors を使用し、Comfyの要件に従って適切なフォルダに配置してください。"
+ },
+ "comfyui/stable-diffusion-refiner": {
+ "description": "SDXL画像から画像生成モデル。入力画像に基づいて高品質な画像変換を行い、スタイル変換、画像修復、創造的な変換をサポートします。"
+ },
+ "comfyui/stable-diffusion-xl": {
+ "description": "SDXLテキストから画像生成モデル。1024x1024の高解像度に対応し、より優れた画像品質とディテール表現を提供します。"
+ },
"command": {
"description": "指示に従う対話モデルで、言語タスクにおいて高品質で信頼性が高く、私たちの基本生成モデルよりも長いコンテキスト長を持っています。"
},
diff --git a/locales/ja-JP/providers.json b/locales/ja-JP/providers.json
index 227b7237c99..5251d66a192 100644
--- a/locales/ja-JP/providers.json
+++ b/locales/ja-JP/providers.json
@@ -35,9 +35,6 @@
"cerebras": {
"description": "Cerebras は、専用の CS-3 システムを基盤とした AI 推論プラットフォームであり、世界最速のリアルタイム応答と高スループットの LLM サービスを提供することを目的としています。リアルタイムのコード生成やエージェントタスクなど、複雑な AI ワークフローの遅延を排除し、加速するために設計されています。"
},
- "cerebras": {
- "description": "Cerebras は、専用の CS-3 システムを基盤とした AI 推論プラットフォームであり、世界最速のリアルタイム応答と高スループットの LLM サービスを提供することを目的としています。リアルタイムのコード生成やエージェントタスクなど、複雑な AI ワークフローの遅延を排除し、加速するために設計されています。"
- },
"cloudflare": {
"description": "Cloudflareのグローバルネットワーク上で、サーバーレスGPUによって駆動される機械学習モデルを実行します。"
},
@@ -47,6 +44,9 @@
"cometapi": {
"description": "CometAPIは、多様な最先端大規模モデルのインターフェースを提供するサービスプラットフォームで、OpenAI、Anthropic、Googleなどに対応しています。多様な開発および応用ニーズに適しており、ユーザーは自身のニーズに応じて最適なモデルと価格を柔軟に選択でき、AI体験の向上を支援します。"
},
+ "comfyui": {
+ "description": "強力なオープンソースの画像・動画・音声生成ワークフローエンジン。SD、FLUX、Qwen、Hunyuan、WAN などの先進的なモデルに対応し、ノードベースのワークフロー編集とプライベートなデプロイメント機能を提供します。"
+ },
"deepseek": {
"description": "DeepSeekは、人工知能技術の研究と応用に特化した企業であり、最新のモデルDeepSeek-V2.5は、汎用対話とコード処理能力を融合させ、人間の好みの整合、ライティングタスク、指示の遵守などの面で顕著な向上を実現しています。"
},
diff --git a/locales/ko-KR/error.json b/locales/ko-KR/error.json
index ef7f0039351..70279809b2d 100644
--- a/locales/ko-KR/error.json
+++ b/locales/ko-KR/error.json
@@ -81,6 +81,12 @@
"522": "죄송합니다. 서버 연결이 시간 초과되어 요청에 대한 응답을 제때 받지 못했습니다. 이는 네트워크가 불안정하거나 서버에 일시적으로 접근할 수 없기 때문일 수 있습니다. 나중에 다시 시도해 주시기 바랍니다. 서비스를 복구하기 위해 노력하고 있습니다.",
"524": "죄송합니다. 서버가 응답을 기다리는 동안 시간 초과가 발생했습니다. 이는 응답이 너무 느리기 때문일 수 있습니다. 나중에 다시 시도해 주세요.",
"AgentRuntimeError": "Lobe 언어 모델 실행 중 오류가 발생했습니다. 아래 정보를 확인하고 다시 시도하십시오.",
+ "ComfyUIBizError": "ComfyUI 서비스 요청 중 오류가 발생했습니다. 아래 정보를 참고하여 문제를 해결하거나 다시 시도해 주세요.",
+ "ComfyUIEmptyResult": "ComfyUI에서 생성된 이미지가 없습니다. 모델 설정을 확인하거나 다시 시도해 주세요.",
+ "ComfyUIModelError": "ComfyUI 모델 로딩에 실패했습니다. 모델 파일이 존재하는지 확인해 주세요.",
+ "ComfyUIServiceUnavailable": "ComfyUI 서비스 연결에 실패했습니다. ComfyUI가 정상적으로 실행 중인지 또는 서비스 주소 설정이 올바른지 확인해 주세요.",
+ "ComfyUIUploadFailed": "ComfyUI 이미지 업로드에 실패했습니다. 서버 연결을 확인하거나 다시 시도해 주세요.",
+ "ComfyUIWorkflowError": "ComfyUI 워크플로우 실행에 실패했습니다. 워크플로우 설정을 확인해 주세요.",
"ConnectionCheckFailed": "요청이 빈 응답으로 돌아왔습니다. API 프록시 주소의 끝에 `/v1`이 포함되어 있는지 확인하세요.",
"CreateMessageError": "죄송합니다. 메시지를 정상적으로 전송할 수 없습니다. 내용을 복사한 후 다시 전송해 주시고, 페이지를 새로 고치면 이 메시지는 보존되지 않습니다.",
"ExceededContextWindow": "현재 요청 내용이 모델이 처리할 수 있는 길이를 초과했습니다. 내용량을 줄인 후 다시 시도해 주십시오.",
@@ -100,6 +106,7 @@
"InvalidAccessCode": "액세스 코드가 잘못되었거나 비어 있습니다. 올바른 액세스 코드를 입력하거나 사용자 지정 API 키를 추가하십시오.",
"InvalidBedrockCredentials": "Bedrock 인증에 실패했습니다. AccessKeyId/SecretAccessKey를 확인한 후 다시 시도하십시오.",
"InvalidClerkUser": "죄송합니다. 현재 로그인되어 있지 않습니다. 계속하려면 먼저 로그인하거나 계정을 등록해주세요.",
+ "InvalidComfyUIArgs": "ComfyUI 설정이 올바르지 않습니다. 설정을 확인한 후 다시 시도해 주세요.",
"InvalidGithubToken": "Github 개인 액세스 토큰이 올바르지 않거나 비어 있습니다. Github 개인 액세스 토큰을 확인한 후 다시 시도해 주십시오.",
"InvalidOllamaArgs": "Ollama 구성이 잘못되었습니다. Ollama 구성을 확인한 후 다시 시도하십시오.",
"InvalidProviderAPIKey": "{{provider}} API 키가 잘못되었거나 비어 있습니다. {{provider}} API 키를 확인하고 다시 시도하십시오.",
@@ -149,6 +156,11 @@
"title": "사용자 정의 {{name}} API 키 사용"
},
"closeMessage": "알림 닫기",
+ "comfyui": {
+ "description": "정확한 {{name}} 인증 정보를 입력하시면 이미지 생성을 시작할 수 있습니다.",
+ "modifyBaseUrl": "Comfy UI 서비스 주소 수정",
+ "title": "{{name}} 인증 정보를 확인해 주세요"
+ },
"confirm": "확인 및 다시 시도",
"oauth": {
"description": "관리자가 통합 로그인 인증을 활성화했습니다. 아래 버튼을 클릭하여 로그인하면 앱을 잠금 해제할 수 있습니다.",
diff --git a/locales/ko-KR/modelProvider.json b/locales/ko-KR/modelProvider.json
index eb9e949dd75..dca78aa86e9 100644
--- a/locales/ko-KR/modelProvider.json
+++ b/locales/ko-KR/modelProvider.json
@@ -82,6 +82,58 @@
"title": "Cloudflare 계정 ID / API 주소"
}
},
+ "comfyui": {
+ "apiKey": {
+ "desc": "Bearer 토큰 인증에 필요한 API 키",
+ "placeholder": "API 키를 입력하세요",
+ "required": "API 키를 입력하세요",
+ "title": "API 키"
+ },
+ "authType": {
+ "desc": "ComfyUI 서버와의 인증 방식을 선택하세요",
+ "options": {
+ "basic": "아이디/비밀번호",
+ "bearer": "Bearer (API 키)",
+ "custom": "사용자 정의 헤더",
+ "none": "인증 없음"
+ },
+ "placeholder": "인증 방식을 선택하세요",
+ "title": "인증 방식"
+ },
+ "baseURL": {
+ "desc": "ComfyUI 웹 접속 주소",
+ "placeholder": "http://127.0.0.1:8000",
+ "required": "ComfyUI 서비스 주소를 입력하세요",
+ "title": "ComfyUI 서비스 주소"
+ },
+ "checker": {
+ "desc": "연결이 올바르게 구성되었는지 테스트합니다",
+ "title": "연결 확인"
+ },
+ "customHeaders": {
+ "addButton": "헤더 추가",
+ "deleteTooltip": "이 헤더 삭제",
+ "desc": "사용자 정의 인증 방식에 필요한 요청 헤더로, 키-값 쌍 형식입니다",
+ "duplicateKeyError": "헤더 키 이름은 중복될 수 없습니다",
+ "keyPlaceholder": "키 이름",
+ "required": "사용자 정의 요청 헤더를 입력하세요",
+ "title": "사용자 정의 요청 헤더",
+ "valuePlaceholder": "값"
+ },
+ "password": {
+ "desc": "기본 인증에 필요한 비밀번호",
+ "placeholder": "비밀번호를 입력하세요",
+ "required": "비밀번호를 입력하세요",
+ "title": "비밀번호"
+ },
+ "title": "ComfyUI",
+ "username": {
+ "desc": "기본 인증에 필요한 사용자 이름",
+ "placeholder": "사용자 이름을 입력하세요",
+ "required": "사용자 이름을 입력하세요",
+ "title": "사용자 이름"
+ }
+ },
"createNewAiProvider": {
"apiKey": {
"placeholder": "API Key를 입력하세요",
diff --git a/locales/ko-KR/models.json b/locales/ko-KR/models.json
index cd200a239de..95282752351 100644
--- a/locales/ko-KR/models.json
+++ b/locales/ko-KR/models.json
@@ -866,6 +866,39 @@
"cohere/embed-v4.0": {
"description": "텍스트, 이미지 또는 혼합 콘텐츠를 분류하거나 임베딩으로 변환할 수 있는 모델입니다."
},
+ "comfyui/flux-dev": {
+ "description": "FLUX.1 Dev - 고품질 텍스트-투-이미지 생성 모델로, 10~50단계의 생성 과정을 통해 예술 작품 및 창작에 적합한 고화질 이미지를 생성합니다."
+ },
+ "comfyui/flux-kontext-dev": {
+ "description": "FLUX.1 Kontext-dev - 이미지 편집 모델로, 텍스트 지시를 기반으로 기존 이미지를 수정할 수 있으며, 부분 편집 및 스타일 전환을 지원합니다."
+ },
+ "comfyui/flux-krea-dev": {
+ "description": "FLUX.1 Krea-dev - Krea와 협력하여 개발된 강화된 안전성을 갖춘 텍스트-투-이미지 생성 모델로, 내장된 안전 필터링 기능을 제공합니다."
+ },
+ "comfyui/flux-schnell": {
+ "description": "FLUX.1 Schnell - 초고속 텍스트-투-이미지 생성 모델로, 1~4단계만으로 고품질 이미지를 생성할 수 있어 실시간 애플리케이션 및 빠른 프로토타입 제작에 적합합니다."
+ },
+ "comfyui/stable-diffusion-15": {
+ "description": "Stable Diffusion 1.5 텍스트-투-이미지 생성 모델로, 고전적인 512x512 해상도의 이미지 생성을 지원하며, 빠른 프로토타입 제작 및 창의적 실험에 적합합니다."
+ },
+ "comfyui/stable-diffusion-35": {
+ "description": "Stable Diffusion 3.5 차세대 텍스트-투-이미지 생성 모델로, Large 및 Medium 두 가지 버전을 지원하며, 외부 CLIP 인코더 파일이 필요합니다. 뛰어난 이미지 품질과 프롬프트 일치도를 제공합니다."
+ },
+ "comfyui/stable-diffusion-35-inclclip": {
+ "description": "Stable Diffusion 3.5 내장형 CLIP/T5 인코더 버전으로, 외부 인코더 파일이 필요 없으며 sd3.5_medium_incl_clips 등의 모델에 적합하고, 자원 사용이 더 적습니다."
+ },
+ "comfyui/stable-diffusion-custom": {
+ "description": "사용자 정의 SD 텍스트-투-이미지 생성 모델입니다. 모델 파일명은 custom_sd_lobe.safetensors를 사용하고, VAE가 있을 경우 custom_sd_vae_lobe.safetensors를 사용하세요. 모델 파일은 Comfy의 요구사항에 따라 지정된 폴더에 배치해야 합니다."
+ },
+ "comfyui/stable-diffusion-custom-refiner": {
+ "description": "사용자 정의 SDXL 이미지-투-이미지 생성 모델입니다. 모델 파일명은 custom_sd_lobe.safetensors를 사용하고, VAE가 있을 경우 custom_sd_vae_lobe.safetensors를 사용하세요. 모델 파일은 Comfy의 요구사항에 따라 지정된 폴더에 배치해야 합니다."
+ },
+ "comfyui/stable-diffusion-refiner": {
+ "description": "SDXL 이미지-투-이미지 생성 모델로, 입력 이미지를 기반으로 고품질의 이미지 변환을 지원하며, 스타일 전환, 이미지 복원 및 창의적 변형이 가능합니다."
+ },
+ "comfyui/stable-diffusion-xl": {
+ "description": "SDXL 텍스트-투-이미지 생성 모델로, 1024x1024 고해상도 이미지 생성을 지원하며, 향상된 이미지 품질과 세부 묘사를 제공합니다."
+ },
"command": {
"description": "지시를 따르는 대화 모델로, 언어 작업에서 높은 품질과 신뢰성을 제공하며, 우리의 기본 생성 모델에 비해 더 긴 컨텍스트 길이를 가지고 있습니다."
},
diff --git a/locales/ko-KR/providers.json b/locales/ko-KR/providers.json
index 6436a959620..6d2c621fac7 100644
--- a/locales/ko-KR/providers.json
+++ b/locales/ko-KR/providers.json
@@ -35,9 +35,6 @@
"cerebras": {
"description": "Cerebras는 전용 CS-3 시스템을 기반으로 한 AI 추론 플랫폼으로, 전 세계에서 가장 빠르고 실시간 반응이 가능한 고처리량 LLM 서비스를 제공하도록 설계되었습니다. 이 플랫폼은 지연을 제거하고 실시간 코드 생성 및 에이전트 작업과 같은 복잡한 AI 워크플로우를 가속화하기 위해 특별히 설계되었습니다."
},
- "cerebras": {
- "description": "Cerebras는 전용 CS-3 시스템을 기반으로 한 AI 추론 플랫폼으로, 전 세계에서 가장 빠르고 실시간 반응이 가능한 고처리량 LLM 서비스를 제공하도록 설계되었습니다. 이 플랫폼은 지연을 제거하고 실시간 코드 생성 및 에이전트 작업과 같은 복잡한 AI 워크플로우를 가속화하기 위해 특별히 설계되었습니다."
- },
"cloudflare": {
"description": "Cloudflare의 글로벌 네트워크에서 서버리스 GPU로 구동되는 머신러닝 모델을 실행합니다."
},
@@ -47,6 +44,9 @@
"cometapi": {
"description": "CometAPI는 OpenAI, Anthropic, Google 등 다양한 최첨단 대형 모델 인터페이스를 제공하는 서비스 플랫폼으로, 다양한 개발 및 응용 요구에 적합합니다. 사용자는 자신의 필요에 따라 최적의 모델과 가격을 유연하게 선택하여 AI 경험 향상을 도울 수 있습니다."
},
+ "comfyui": {
+ "description": "강력한 오픈 소스 이미지, 비디오, 오디오 생성 워크플로우 엔진으로, SD FLUX Qwen Hunyuan WAN 등 첨단 모델을 지원하며, 노드 기반 워크플로우 편집과 프라이빗 배포 기능을 제공합니다"
+ },
"deepseek": {
"description": "DeepSeek는 인공지능 기술 연구 및 응용에 집중하는 회사로, 최신 모델인 DeepSeek-V2.5는 일반 대화 및 코드 처리 능력을 통합하고 인간의 선호 정렬, 작문 작업 및 지시 따르기 등에서 상당한 향상을 이루었습니다."
},
diff --git a/locales/nl-NL/error.json b/locales/nl-NL/error.json
index fa014b5d3c2..5cb6b114617 100644
--- a/locales/nl-NL/error.json
+++ b/locales/nl-NL/error.json
@@ -81,6 +81,12 @@
"522": "Het spijt ons, de server heeft een time-out op de verbinding, waardoor uw verzoek niet tijdig kon worden beantwoord. Dit kan te wijten zijn aan een onbetrouwbaar netwerk of de server is tijdelijk niet bereikbaar. Probeer het later opnieuw, we werken hard aan het herstellen van de service.",
"524": "Het spijt ons, de server heeft een time-out terwijl hij op een antwoord wacht, mogelijk omdat de reactie te traag is. Probeer het later opnieuw.",
"AgentRuntimeError": "Lobe language model runtime execution error, please troubleshoot or retry based on the following information",
+ "ComfyUIBizError": "Er is een fout opgetreden bij het aanvragen van de ComfyUI-service. Controleer de onderstaande informatie of probeer het opnieuw.",
+ "ComfyUIEmptyResult": "ComfyUI heeft geen afbeeldingen gegenereerd. Controleer de modelconfiguratie of probeer het opnieuw.",
+ "ComfyUIModelError": "Laden van het ComfyUI-model is mislukt. Controleer of het modelfile bestaat.",
+ "ComfyUIServiceUnavailable": "Kan geen verbinding maken met de ComfyUI-service. Controleer of ComfyUI correct werkt of of het serviceadres juist is geconfigureerd.",
+ "ComfyUIUploadFailed": "Uploaden van afbeelding naar ComfyUI is mislukt. Controleer de serververbinding of probeer het opnieuw.",
+ "ComfyUIWorkflowError": "Uitvoering van de ComfyUI-workflow is mislukt. Controleer de workflowconfiguratie.",
"ConnectionCheckFailed": "Het verzoek heeft geen antwoord geleverd. Controleer of het API-proxyadres niet eindigt met `/v1`.",
"CreateMessageError": "Het spijt ons, het bericht kon niet correct worden verzonden. Kopieer de inhoud en probeer het opnieuw. Na het vernieuwen van de pagina gaat dit bericht verloren.",
"ExceededContextWindow": "De inhoud van de huidige aanvraag overschrijdt de lengte die het model kan verwerken. Verminder de hoeveelheid inhoud en probeer het opnieuw.",
@@ -100,6 +106,7 @@
"InvalidAccessCode": "Ongeldige toegangscode: het wachtwoord is onjuist of leeg. Voer de juiste toegangscode in of voeg een aangepaste API-sleutel toe.",
"InvalidBedrockCredentials": "Bedrock authentication failed, please check AccessKeyId/SecretAccessKey and retry",
"InvalidClerkUser": "Sorry, you are not currently logged in. Please log in or register an account to continue.",
+ "InvalidComfyUIArgs": "Ongeldige ComfyUI-configuratie. Controleer de instellingen en probeer het opnieuw.",
"InvalidGithubToken": "Github Persoonlijke Toegangstoken is ongeldig of leeg, controleer de Github Persoonlijke Toegangstoken en probeer het opnieuw.",
"InvalidOllamaArgs": "Ollama-configuratie is onjuist, controleer de Ollama-configuratie en probeer het opnieuw",
"InvalidProviderAPIKey": "{{provider}} API-sleutel is onjuist of leeg. Controleer de {{provider}} API-sleutel en probeer het opnieuw.",
@@ -149,6 +156,11 @@
"title": "Gebruik aangepaste {{name}} API-sleutel"
},
"closeMessage": "Sluit bericht",
+ "comfyui": {
+ "description": "Voer de juiste {{name}} verificatiegegevens in om te beginnen met het genereren van afbeeldingen.",
+ "modifyBaseUrl": "ComfyUI-serviceadres wijzigen",
+ "title": "Bevestig je {{name}} verificatiegegevens"
+ },
"confirm": "Bevestigen en opnieuw proberen",
"oauth": {
"description": "De beheerder heeft een uniforme aanmeldingsverificatie ingeschakeld. Klik op de onderstaande knop om in te loggen en de app te ontgrendelen.",
diff --git a/locales/nl-NL/modelProvider.json b/locales/nl-NL/modelProvider.json
index fec94dfce87..1d1cfc99ef4 100644
--- a/locales/nl-NL/modelProvider.json
+++ b/locales/nl-NL/modelProvider.json
@@ -82,6 +82,58 @@
"title": "Cloudflare-account ID / API-URL"
}
},
+ "comfyui": {
+ "apiKey": {
+ "desc": "API-sleutel vereist voor Bearer Token-authenticatie",
+ "placeholder": "Voer API-sleutel in",
+ "required": "Voer API-sleutel in",
+ "title": "API-sleutel"
+ },
+ "authType": {
+ "desc": "Selecteer de authenticatiemethode voor verbinding met de ComfyUI-server",
+ "options": {
+ "basic": "Gebruikersnaam/Wachtwoord",
+ "bearer": "Bearer (API-sleutel)",
+ "custom": "Aangepaste request headers",
+ "none": "Geen authenticatie vereist"
+ },
+ "placeholder": "Selecteer authenticatietype",
+ "title": "Authenticatietype"
+ },
+ "baseURL": {
+ "desc": "Webadres voor toegang tot ComfyUI",
+ "placeholder": "http://127.0.0.1:8000",
+ "required": "Voer het ComfyUI-serviceadres in",
+ "title": "ComfyUI-serviceadres"
+ },
+ "checker": {
+ "desc": "Test of de verbinding correct is geconfigureerd",
+ "title": "Connectiviteitscontrole"
+ },
+ "customHeaders": {
+ "addButton": "Request header toevoegen",
+ "deleteTooltip": "Verwijder deze request header",
+ "desc": "Request headers vereist voor aangepaste authenticatie, in key-value formaat",
+ "duplicateKeyError": "Header-sleutels mogen niet worden herhaald",
+ "keyPlaceholder": "Sleutel",
+ "required": "Voer aangepaste request headers in",
+ "title": "Aangepaste request headers",
+ "valuePlaceholder": "Waarde"
+ },
+ "password": {
+ "desc": "Wachtwoord vereist voor basisauthenticatie",
+ "placeholder": "Voer wachtwoord in",
+ "required": "Voer wachtwoord in",
+ "title": "Wachtwoord"
+ },
+ "title": "ComfyUI",
+ "username": {
+ "desc": "Gebruikersnaam vereist voor basisauthenticatie",
+ "placeholder": "Voer gebruikersnaam in",
+ "required": "Voer gebruikersnaam in",
+ "title": "Gebruikersnaam"
+ }
+ },
"createNewAiProvider": {
"apiKey": {
"placeholder": "Vul je API-sleutel in",
diff --git a/locales/nl-NL/models.json b/locales/nl-NL/models.json
index 0f015016a94..b47b4f07ec8 100644
--- a/locales/nl-NL/models.json
+++ b/locales/nl-NL/models.json
@@ -866,6 +866,39 @@
"cohere/embed-v4.0": {
"description": "Een model dat tekst, afbeeldingen of gemengde inhoud kan classificeren of omzetten in embeddings."
},
+ "comfyui/flux-dev": {
+ "description": "FLUX.1 Dev - Hoogwaardige tekst-naar-beeldmodel, genereert in 10-50 stappen, geschikt voor hoogwaardige creatieve en artistieke toepassingen"
+ },
+ "comfyui/flux-kontext-dev": {
+ "description": "FLUX.1 Kontext-dev - Beeldbewerkingsmodel dat bestaande afbeeldingen kan aanpassen op basis van tekstinstructies, ondersteunt lokale aanpassingen en stijltransformatie"
+ },
+ "comfyui/flux-krea-dev": {
+ "description": "FLUX.1 Krea-dev - Versterkt veilig tekst-naar-beeldmodel, ontwikkeld in samenwerking met Krea, met ingebouwde veiligheidsfilters"
+ },
+ "comfyui/flux-schnell": {
+ "description": "FLUX.1 Schnell - Ultrasnel tekst-naar-beeldmodel, genereert hoogwaardige beelden in slechts 1-4 stappen, ideaal voor realtime toepassingen en snelle prototyping"
+ },
+ "comfyui/stable-diffusion-15": {
+ "description": "Stable Diffusion 1.5 tekst-naar-beeldmodel, klassiek 512x512 resolutie voor snelle prototyping en creatieve experimenten"
+ },
+ "comfyui/stable-diffusion-35": {
+ "description": "Stable Diffusion 3.5 - Nieuwe generatie tekst-naar-beeldmodel, beschikbaar in Large en Medium versies, vereist externe CLIP-encoderbestanden, levert uitstekende beeldkwaliteit en promptnauwkeurigheid"
+ },
+ "comfyui/stable-diffusion-35-inclclip": {
+ "description": "Stable Diffusion 3.5 met ingebouwde CLIP/T5-encoder, geen externe encoderbestanden nodig, geschikt voor modellen zoals sd3.5_medium_incl_clips, met lager resourceverbruik"
+ },
+ "comfyui/stable-diffusion-custom": {
+ "description": "Aangepast SD tekst-naar-beeldmodel. Gebruik bestandsnaam custom_sd_lobe.safetensors; indien VAE aanwezig, gebruik custom_sd_vae_lobe.safetensors. Modelbestanden moeten volgens Comfy-vereisten in de juiste map geplaatst worden"
+ },
+ "comfyui/stable-diffusion-custom-refiner": {
+ "description": "Aangepast SDXL beeld-naar-beeldmodel. Gebruik bestandsnaam custom_sd_lobe.safetensors; indien VAE aanwezig, gebruik custom_sd_vae_lobe.safetensors. Modelbestanden moeten volgens Comfy-vereisten in de juiste map geplaatst worden"
+ },
+ "comfyui/stable-diffusion-refiner": {
+ "description": "SDXL beeld-naar-beeldmodel, genereert hoogwaardige beeldtransformaties op basis van invoerafbeeldingen, ondersteunt stijltransformatie, beeldherstel en creatieve aanpassingen"
+ },
+ "comfyui/stable-diffusion-xl": {
+ "description": "SDXL tekst-naar-beeldmodel, ondersteunt hoge resolutie 1024x1024 beeldgeneratie, levert superieure beeldkwaliteit en detailweergave"
+ },
"command": {
"description": "Een instructievolgend dialoogmodel dat hoge kwaliteit en betrouwbaarheid biedt voor taaltaken, met een langere contextlengte dan ons basisgeneratiemodel."
},
diff --git a/locales/nl-NL/providers.json b/locales/nl-NL/providers.json
index 267375cb139..a9733344e87 100644
--- a/locales/nl-NL/providers.json
+++ b/locales/nl-NL/providers.json
@@ -35,9 +35,6 @@
"cerebras": {
"description": "Cerebras is een AI-inferentieplatform gebaseerd op het speciale CS-3-systeem, ontworpen om 's werelds snelste, realtime reagerende en hoog-throughput LLM-diensten te leveren. Het is speciaal ontwikkeld om vertragingen te elimineren en complexe AI-workflows te versnellen, zoals realtime codegeneratie en agenttaken."
},
- "cerebras": {
- "description": "Cerebras is een AI-inferentieplatform gebaseerd op het speciale CS-3-systeem, ontworpen om 's werelds snelste, realtime reagerende en hoog-throughput LLM-diensten te leveren. Het is speciaal ontwikkeld om vertragingen te elimineren en complexe AI-workflows te versnellen, zoals realtime codegeneratie en agenttaken."
- },
"cloudflare": {
"description": "Voer machine learning-modellen aan, aangedreven door serverloze GPU's, uit op het wereldwijde netwerk van Cloudflare."
},
@@ -47,6 +44,9 @@
"cometapi": {
"description": "CometAPI is een serviceplatform dat diverse geavanceerde modelinterfaces aanbiedt, met ondersteuning voor OpenAI, Anthropic, Google en meer. Het is geschikt voor uiteenlopende ontwikkelings- en toepassingsbehoeften. Gebruikers kunnen flexibel het beste model en de beste prijs kiezen op basis van hun eigen behoeften, wat bijdraagt aan een verbeterde AI-ervaring."
},
+ "comfyui": {
+ "description": "Een krachtige open-source workflow-engine voor het genereren van afbeeldingen, video en audio. Ondersteunt geavanceerde modellen zoals SD, FLUX, Qwen, Hunyuan en WAN, en biedt mogelijkheden voor node-gebaseerde workflowbewerking en private implementatie."
+ },
"deepseek": {
"description": "DeepSeek is een bedrijf dat zich richt op onderzoek en toepassing van kunstmatige intelligentietechnologie, en hun nieuwste model DeepSeek-V2.5 combineert algemene dialoog- en codeverwerkingscapaciteiten, met significante verbeteringen in het afstemmen op menselijke voorkeuren, schrijfopdrachten en het volgen van instructies."
},
diff --git a/locales/pl-PL/error.json b/locales/pl-PL/error.json
index 8b7e2faa6cf..7fa8b205a8d 100644
--- a/locales/pl-PL/error.json
+++ b/locales/pl-PL/error.json
@@ -81,6 +81,12 @@
"522": "Przykro nam, połączenie z serwerem wygasło, nie udało się odpowiedzieć na Twoje żądanie na czas. Może to być spowodowane niestabilnością sieci lub tym, że serwer jest tymczasowo niedostępny. Proszę spróbować później, staramy się przywrócić usługi.",
"524": "Przykro nam, serwer przekroczył czas oczekiwania na odpowiedź, być może z powodu zbyt wolnej reakcji. Proszę spróbować później.",
"AgentRuntimeError": "Wystąpił błąd wykonania modelu językowego Lobe, prosimy o sprawdzenie poniższych informacji lub ponowne próbowanie.",
+ "ComfyUIBizError": "Wystąpił błąd podczas żądania do usługi ComfyUI. Sprawdź poniższe informacje lub spróbuj ponownie.",
+ "ComfyUIEmptyResult": "ComfyUI nie wygenerował żadnego obrazu. Sprawdź konfigurację modelu lub spróbuj ponownie.",
+ "ComfyUIModelError": "Nie udało się załadować modelu ComfyUI. Sprawdź, czy plik modelu istnieje.",
+ "ComfyUIServiceUnavailable": "Nie udało się połączyć z usługą ComfyUI. Sprawdź, czy ComfyUI działa poprawnie lub czy adres usługi jest poprawnie skonfigurowany.",
+ "ComfyUIUploadFailed": "Nie udało się przesłać obrazu do ComfyUI. Sprawdź połączenie z serwerem lub spróbuj ponownie.",
+ "ComfyUIWorkflowError": "Wykonanie przepływu pracy ComfyUI nie powiodło się. Sprawdź konfigurację przepływu.",
"ConnectionCheckFailed": "Odpowiedź jest pusta. Sprawdź, czy na końcu adresu proxy API nie brakuje `/v1`",
"CreateMessageError": "Przykro nam, wiadomość nie została wysłana poprawnie. Proszę skopiować treść i spróbować ponownie, po odświeżeniu strony ta wiadomość nie zostanie zachowana.",
"ExceededContextWindow": "Aktualna zawartość żądania przekracza długość, którą model może przetworzyć. Proszę zmniejszyć ilość treści i spróbować ponownie.",
@@ -100,6 +106,7 @@
"InvalidAccessCode": "Nieprawidłowy kod dostępu: Hasło jest nieprawidłowe lub puste. Proszę wprowadzić poprawne hasło dostępu lub dodać niestandardowy klucz API.",
"InvalidBedrockCredentials": "Uwierzytelnienie Bedrock nie powiodło się, prosimy sprawdzić AccessKeyId/SecretAccessKey i spróbować ponownie.",
"InvalidClerkUser": "Przepraszamy, nie jesteś obecnie zalogowany. Proszę najpierw zalogować się lub zarejestrować, aby kontynuować.",
+ "InvalidComfyUIArgs": "Nieprawidłowa konfiguracja ComfyUI. Sprawdź ustawienia i spróbuj ponownie.",
"InvalidGithubToken": "Token dostępu osobistego do GitHub jest niewłaściwy lub pusty. Proszę sprawdzić Token dostępu osobistego do GitHub i spróbować ponownie.",
"InvalidOllamaArgs": "Nieprawidłowa konfiguracja Ollama, sprawdź konfigurację Ollama i spróbuj ponownie",
"InvalidProviderAPIKey": "{{provider}} Klucz API jest nieprawidłowy lub pusty. Sprawdź Klucz API {{provider}} i spróbuj ponownie.",
@@ -149,6 +156,11 @@
"title": "Użyj niestandardowego Klucza API {{name}}"
},
"closeMessage": "Zamknij komunikat",
+ "comfyui": {
+ "description": "Wprowadź poprawne dane uwierzytelniające {{name}}, aby rozpocząć generowanie obrazów.",
+ "modifyBaseUrl": "Zmień adres usługi Comfy UI",
+ "title": "Potwierdź dane uwierzytelniające {{name}}"
+ },
"confirm": "Potwierdź i spróbuj ponownie",
"oauth": {
"description": "Administrator włączył jednolite uwierzytelnianie logowania. Kliknij poniższy przycisk, aby się zalogować i odblokować aplikację.",
diff --git a/locales/pl-PL/modelProvider.json b/locales/pl-PL/modelProvider.json
index c9b9307e51b..34d64e81ada 100644
--- a/locales/pl-PL/modelProvider.json
+++ b/locales/pl-PL/modelProvider.json
@@ -82,6 +82,58 @@
"title": "ID konta Cloudflare / adres API"
}
},
+ "comfyui": {
+ "apiKey": {
+ "desc": "Klucz API wymagany do uwierzytelnienia Bearer Token",
+ "placeholder": "Wprowadź klucz API",
+ "required": "Wprowadź klucz API",
+ "title": "Klucz API"
+ },
+ "authType": {
+ "desc": "Wybierz metodę uwierzytelnienia z serwerem ComfyUI",
+ "options": {
+ "basic": "Login/Hasło",
+ "bearer": "Bearer (klucz API)",
+ "custom": "Niestandardowe nagłówki",
+ "none": "Brak uwierzytelnienia"
+ },
+ "placeholder": "Wybierz typ uwierzytelnienia",
+ "title": "Typ uwierzytelnienia"
+ },
+ "baseURL": {
+ "desc": "Adres URL do interfejsu webowego ComfyUI",
+ "placeholder": "http://127.0.0.1:8000",
+ "required": "Wprowadź adres usługi ComfyUI",
+ "title": "Adres usługi ComfyUI"
+ },
+ "checker": {
+ "desc": "Sprawdź, czy połączenie zostało poprawnie skonfigurowane",
+ "title": "Sprawdzenie połączenia"
+ },
+ "customHeaders": {
+ "addButton": "Dodaj nagłówek",
+ "deleteTooltip": "Usuń ten nagłówek",
+ "desc": "Nagłówki wymagane dla niestandardowego uwierzytelnienia w formacie klucz-wartość",
+ "duplicateKeyError": "Nazwy nagłówków nie mogą się powtarzać",
+ "keyPlaceholder": "Nazwa klucza",
+ "required": "Wprowadź niestandardowe nagłówki",
+ "title": "Niestandardowe nagłówki",
+ "valuePlaceholder": "Wartość"
+ },
+ "password": {
+ "desc": "Hasło wymagane do podstawowego uwierzytelnienia",
+ "placeholder": "Wprowadź hasło",
+ "required": "Wprowadź hasło",
+ "title": "Hasło"
+ },
+ "title": "ComfyUI",
+ "username": {
+ "desc": "Nazwa użytkownika wymagana do podstawowego uwierzytelnienia",
+ "placeholder": "Wprowadź nazwę użytkownika",
+ "required": "Wprowadź nazwę użytkownika",
+ "title": "Nazwa użytkownika"
+ }
+ },
"createNewAiProvider": {
"apiKey": {
"placeholder": "Proszę wpisać swój klucz API",
diff --git a/locales/pl-PL/models.json b/locales/pl-PL/models.json
index f4ae433d51d..2fe2a816095 100644
--- a/locales/pl-PL/models.json
+++ b/locales/pl-PL/models.json
@@ -866,6 +866,39 @@
"cohere/embed-v4.0": {
"description": "Model umożliwiający klasyfikację tekstu, obrazów lub treści mieszanych oraz konwersję na osadzenia."
},
+ "comfyui/flux-dev": {
+ "description": "FLUX.1 Dev – Wysokiej jakości model generowania obrazów z tekstu, generuje w 10–50 krokach, idealny do tworzenia dzieł sztuki i kreatywnych projektów."
+ },
+ "comfyui/flux-kontext-dev": {
+ "description": "FLUX.1 Kontext-dev – Model edycji obrazów, umożliwia modyfikację istniejących obrazów na podstawie poleceń tekstowych, wspiera edycję lokalną i transfer stylu."
+ },
+ "comfyui/flux-krea-dev": {
+ "description": "FLUX.1 Krea-dev – Ulepszony pod względem bezpieczeństwa model generowania obrazów z tekstu, opracowany we współpracy z Krea, z wbudowanym filtrem bezpieczeństwa."
+ },
+ "comfyui/flux-schnell": {
+ "description": "FLUX.1 Schnell – Ekstremalnie szybki model generowania obrazów z tekstu, tworzy wysokiej jakości obrazy w zaledwie 1–4 krokach, idealny do zastosowań w czasie rzeczywistym i szybkiego prototypowania."
+ },
+ "comfyui/stable-diffusion-15": {
+ "description": "Stable Diffusion 1.5 – Klasyczny model generowania obrazów z tekstu o rozdzielczości 512x512, idealny do szybkiego prototypowania i eksperymentów twórczych."
+ },
+ "comfyui/stable-diffusion-35": {
+ "description": "Stable Diffusion 3.5 – Nowej generacji model generowania obrazów z tekstu, dostępny w wersjach Large i Medium, wymaga zewnętrznego pliku kodera CLIP, oferuje doskonałą jakość obrazu i zgodność z podpowiedziami."
+ },
+ "comfyui/stable-diffusion-35-inclclip": {
+ "description": "Stable Diffusion 3.5 – Wersja z wbudowanym koderem CLIP/T5, nie wymaga zewnętrznych plików kodera, odpowiednia dla modeli takich jak sd3.5_medium_incl_clips, zużywa mniej zasobów."
+ },
+ "comfyui/stable-diffusion-custom": {
+ "description": "Niestandardowy model SD do generowania obrazów z tekstu. Nazwa pliku modelu powinna brzmieć custom_sd_lobe.safetensors, a jeśli używasz VAE – custom_sd_vae_lobe.safetensors. Pliki modelu muszą być umieszczone w odpowiednim folderze zgodnie z wymaganiami Comfy."
+ },
+ "comfyui/stable-diffusion-custom-refiner": {
+ "description": "Niestandardowy model SDXL do konwersji obrazu na obraz. Nazwa pliku modelu powinna brzmieć custom_sd_lobe.safetensors, a jeśli używasz VAE – custom_sd_vae_lobe.safetensors. Pliki modelu muszą być umieszczone w odpowiednim folderze zgodnie z wymaganiami Comfy."
+ },
+ "comfyui/stable-diffusion-refiner": {
+ "description": "Model SDXL do konwersji obrazu na obraz, umożliwia wysokiej jakości przekształcenia obrazu, wspiera transfer stylu, naprawę obrazu i kreatywne modyfikacje."
+ },
+ "comfyui/stable-diffusion-xl": {
+ "description": "Model SDXL do generowania obrazów z tekstu, obsługuje wysoką rozdzielczość 1024x1024, oferuje lepszą jakość obrazu i szczegółowość."
+ },
"command": {
"description": "Model konwersacyjny, który przestrzega instrukcji, oferujący wysoką jakość i niezawodność w zadaniach językowych, a także dłuższą długość kontekstu w porównaniu do naszych podstawowych modeli generacyjnych."
},
diff --git a/locales/pl-PL/providers.json b/locales/pl-PL/providers.json
index 4be5e0e0bd8..fcdc1e9196f 100644
--- a/locales/pl-PL/providers.json
+++ b/locales/pl-PL/providers.json
@@ -35,9 +35,6 @@
"cerebras": {
"description": "Cerebras to platforma do wnioskowania AI oparta na dedykowanym systemie CS-3, zaprojektowana w celu zapewnienia najszybszej na świecie, reakcji w czasie rzeczywistym oraz wysokiej przepustowości usług LLM. Stworzona została, aby eliminować opóźnienia i przyspieszać złożone przepływy pracy AI, takie jak generowanie kodu w czasie rzeczywistym i zadania agentowe."
},
- "cerebras": {
- "description": "Cerebras to platforma do wnioskowania AI oparta na dedykowanym systemie CS-3, zaprojektowana w celu zapewnienia najszybszej na świecie, reakcji w czasie rzeczywistym oraz wysokiej przepustowości usług LLM. Stworzona została, aby eliminować opóźnienia i przyspieszać złożone przepływy pracy AI, takie jak generowanie kodu w czasie rzeczywistym i zadania agentowe."
- },
"cloudflare": {
"description": "Uruchamiaj modele uczenia maszynowego napędzane przez GPU w globalnej sieci Cloudflare."
},
@@ -47,6 +44,9 @@
"cometapi": {
"description": "CometAPI to platforma usługowa oferująca różnorodne interfejsy najnowocześniejszych modeli, wspierająca OpenAI, Anthropic, Google i inne. Idealna do zróżnicowanych potrzeb deweloperskich i aplikacyjnych. Użytkownicy mogą elastycznie wybierać najlepsze modele i ceny, co wspiera poprawę doświadczeń związanych ze sztuczną inteligencją."
},
+ "comfyui": {
+ "description": "Potężny, otwartoźródłowy silnik przepływu pracy do generowania obrazów, wideo i dźwięku, obsługujący zaawansowane modele takie jak SD FLUX, Qwen, Hunyuan, WAN, oferujący edytor przepływu pracy oparty na węzłach oraz możliwość wdrożenia lokalnego."
+ },
"deepseek": {
"description": "DeepSeek to firma skoncentrowana na badaniach i zastosowaniach technologii sztucznej inteligencji, której najnowszy model DeepSeek-V2.5 łączy zdolności do prowadzenia ogólnych rozmów i przetwarzania kodu, osiągając znaczące postępy w zakresie dostosowywania do preferencji ludzkich, zadań pisarskich i przestrzegania instrukcji."
},
diff --git a/locales/pt-BR/error.json b/locales/pt-BR/error.json
index 12a41b2bd9a..90ffed6f271 100644
--- a/locales/pt-BR/error.json
+++ b/locales/pt-BR/error.json
@@ -81,6 +81,12 @@
"522": "Desculpe, a conexão com o servidor expirou e não conseguiu responder a sua solicitação a tempo. Isso pode ser devido a uma rede instável ou o servidor estar temporariamente inacessível. Tente novamente mais tarde, estamos trabalhando para restaurar o serviço.",
"524": "Desculpe, o servidor excedeu o tempo de espera enquanto aguardava uma resposta, possivelmente devido a uma resposta lenta. Por favor, tente novamente mais tarde.",
"AgentRuntimeError": "Erro de execução do modelo de linguagem Lobe, por favor, verifique as informações abaixo ou tente novamente",
+ "ComfyUIBizError": "Erro ao solicitar o serviço ComfyUI. Verifique as informações abaixo ou tente novamente.",
+ "ComfyUIEmptyResult": "Nenhuma imagem foi gerada pelo ComfyUI. Verifique a configuração do modelo ou tente novamente.",
+ "ComfyUIModelError": "Falha ao carregar o modelo do ComfyUI. Verifique se o arquivo do modelo existe.",
+ "ComfyUIServiceUnavailable": "Falha na conexão com o serviço ComfyUI. Verifique se o ComfyUI está funcionando corretamente ou se o endereço do serviço está configurado corretamente.",
+ "ComfyUIUploadFailed": "Falha no upload da imagem para o ComfyUI. Verifique a conexão com o servidor ou tente novamente.",
+ "ComfyUIWorkflowError": "Falha na execução do fluxo de trabalho do ComfyUI. Verifique a configuração do fluxo de trabalho.",
"ConnectionCheckFailed": "A resposta da solicitação está vazia. Verifique se o endereço do proxy da API não termina com `/v1`",
"CreateMessageError": "Desculpe, a mensagem não pôde ser enviada corretamente. Por favor, copie o conteúdo e tente enviar novamente. Após atualizar a página, esta mensagem não será mantida.",
"ExceededContextWindow": "O conteúdo da solicitação atual excede o comprimento que o modelo pode processar. Por favor, reduza a quantidade de conteúdo e tente novamente.",
@@ -100,6 +106,7 @@
"InvalidAccessCode": "Senha de acesso inválida ou em branco. Por favor, insira a senha de acesso correta ou adicione uma Chave de API personalizada.",
"InvalidBedrockCredentials": "Credenciais Bedrock inválidas, por favor, verifique AccessKeyId/SecretAccessKey e tente novamente",
"InvalidClerkUser": "Desculpe, você ainda não fez login. Por favor, faça login ou registre uma conta antes de continuar.",
+ "InvalidComfyUIArgs": "Configuração do ComfyUI incorreta. Verifique as configurações do ComfyUI e tente novamente.",
"InvalidGithubToken": "O Token de Acesso Pessoal do Github está incorreto ou vazio. Por favor, verifique o Token de Acesso Pessoal do Github e tente novamente.",
"InvalidOllamaArgs": "Configuração Ollama inválida, verifique a configuração do Ollama e tente novamente",
"InvalidProviderAPIKey": "{{provider}} API Key inválido ou em branco, por favor, verifique o {{provider}} API Key e tente novamente",
@@ -149,6 +156,11 @@
"title": "Usar chave de API personalizada {{name}}"
},
"closeMessage": "Fechar mensagem",
+ "comfyui": {
+ "description": "Insira as credenciais corretas de {{name}} para começar a gerar imagens.",
+ "modifyBaseUrl": "Modificar o endereço do serviço Comfy UI",
+ "title": "Confirme suas credenciais de {{name}}"
+ },
"confirm": "Confirmar e tentar novamente",
"oauth": {
"description": "O administrador ativou a autenticação de login unificado. Clique no botão abaixo para fazer login e desbloquear o aplicativo.",
diff --git a/locales/pt-BR/modelProvider.json b/locales/pt-BR/modelProvider.json
index 03c5de83f3f..260fc86ffe7 100644
--- a/locales/pt-BR/modelProvider.json
+++ b/locales/pt-BR/modelProvider.json
@@ -82,6 +82,58 @@
"title": "ID da conta do Cloudflare / Endereço da API"
}
},
+ "comfyui": {
+ "apiKey": {
+ "desc": "Chave de API necessária para autenticação via Token Bearer",
+ "placeholder": "Insira a chave de API",
+ "required": "Por favor, insira a chave de API",
+ "title": "Chave de API"
+ },
+ "authType": {
+ "desc": "Selecione o método de autenticação com o servidor ComfyUI",
+ "options": {
+ "basic": "Usuário/Senha",
+ "bearer": "Bearer (Chave de API)",
+ "custom": "Cabeçalhos personalizados",
+ "none": "Sem autenticação"
+ },
+ "placeholder": "Selecione o tipo de autenticação",
+ "title": "Tipo de autenticação"
+ },
+ "baseURL": {
+ "desc": "Endereço de acesso web do ComfyUI",
+ "placeholder": "http://127.0.0.1:8000",
+ "required": "Por favor, insira o endereço do serviço ComfyUI",
+ "title": "Endereço do serviço ComfyUI"
+ },
+ "checker": {
+ "desc": "Testar se a conexão está configurada corretamente",
+ "title": "Verificação de conectividade"
+ },
+ "customHeaders": {
+ "addButton": "Adicionar cabeçalho",
+ "deleteTooltip": "Remover este cabeçalho",
+ "desc": "Cabeçalhos necessários para autenticação personalizada, no formato chave-valor",
+ "duplicateKeyError": "Os nomes das chaves dos cabeçalhos não podem se repetir",
+ "keyPlaceholder": "Nome da chave",
+ "required": "Por favor, insira os cabeçalhos personalizados",
+ "title": "Cabeçalhos personalizados",
+ "valuePlaceholder": "Valor"
+ },
+ "password": {
+ "desc": "Senha necessária para autenticação básica",
+ "placeholder": "Insira a senha",
+ "required": "Por favor, insira a senha",
+ "title": "Senha"
+ },
+ "title": "ComfyUI",
+ "username": {
+ "desc": "Nome de usuário necessário para autenticação básica",
+ "placeholder": "Insira o nome de usuário",
+ "required": "Por favor, insira o nome de usuário",
+ "title": "Nome de usuário"
+ }
+ },
"createNewAiProvider": {
"apiKey": {
"placeholder": "Por favor, insira sua API Key",
diff --git a/locales/pt-BR/models.json b/locales/pt-BR/models.json
index 9cb0e0bd338..e1f4ee78528 100644
--- a/locales/pt-BR/models.json
+++ b/locales/pt-BR/models.json
@@ -866,6 +866,39 @@
"cohere/embed-v4.0": {
"description": "Um modelo que permite classificar texto, imagens ou conteúdo misto ou convertê-los em embeddings."
},
+ "comfyui/flux-dev": {
+ "description": "FLUX.1 Dev - Modelo de geração de imagens a partir de texto de alta qualidade, gera em 10 a 50 etapas, ideal para criações artísticas e obras visuais refinadas"
+ },
+ "comfyui/flux-kontext-dev": {
+ "description": "FLUX.1 Kontext-dev - Modelo de edição de imagens, permite modificar imagens existentes com instruções em texto, com suporte para edições locais e transferência de estilo"
+ },
+ "comfyui/flux-krea-dev": {
+ "description": "FLUX.1 Krea-dev - Modelo de geração de imagens com segurança aprimorada, desenvolvido em parceria com a Krea, com filtros de segurança integrados"
+ },
+ "comfyui/flux-schnell": {
+ "description": "FLUX.1 Schnell - Modelo ultrarrápido de geração de imagens a partir de texto, produz imagens de alta qualidade em apenas 1 a 4 etapas, ideal para aplicações em tempo real e prototipagem rápida"
+ },
+ "comfyui/stable-diffusion-15": {
+ "description": "Modelo Stable Diffusion 1.5 para geração de imagens a partir de texto, clássico com resolução 512x512, ideal para prototipagem rápida e experimentação criativa"
+ },
+ "comfyui/stable-diffusion-35": {
+ "description": "Stable Diffusion 3.5 - nova geração de modelo de geração de imagens, disponível nas versões Large e Medium, requer arquivos externos de codificador CLIP, oferece excelente qualidade de imagem e precisão na interpretação de prompts"
+ },
+ "comfyui/stable-diffusion-35-inclclip": {
+ "description": "Stable Diffusion 3.5 com codificadores CLIP/T5 integrados, não requer arquivos externos, compatível com modelos como sd3.5_medium_incl_clips, com menor uso de recursos"
+ },
+ "comfyui/stable-diffusion-custom": {
+ "description": "Modelo SD personalizado para geração de imagens a partir de texto. Nomeie o arquivo do modelo como custom_sd_lobe.safetensors e, se houver VAE, use custom_sd_vae_lobe.safetensors. Os arquivos devem ser colocados nas pastas corretas conforme exigido pelo Comfy"
+ },
+ "comfyui/stable-diffusion-custom-refiner": {
+ "description": "Modelo SDXL personalizado para conversão de imagem para imagem. Nomeie o arquivo do modelo como custom_sd_lobe.safetensors e, se houver VAE, use custom_sd_vae_lobe.safetensors. Os arquivos devem ser colocados nas pastas corretas conforme exigido pelo Comfy"
+ },
+ "comfyui/stable-diffusion-refiner": {
+ "description": "Modelo SDXL para conversão de imagem para imagem, gera imagens de alta qualidade com base em uma imagem de entrada, com suporte para transferência de estilo, restauração de imagem e transformações criativas"
+ },
+ "comfyui/stable-diffusion-xl": {
+ "description": "Modelo SDXL para geração de imagens a partir de texto, com suporte para resolução alta de 1024x1024, oferecendo melhor qualidade de imagem e riqueza de detalhes"
+ },
"command": {
"description": "Um modelo de diálogo que segue instruções, apresentando alta qualidade e confiabilidade em tarefas linguísticas, além de um comprimento de contexto mais longo em comparação com nosso modelo de geração básico."
},
diff --git a/locales/pt-BR/providers.json b/locales/pt-BR/providers.json
index c77ca50f5e6..b2d02b79cc8 100644
--- a/locales/pt-BR/providers.json
+++ b/locales/pt-BR/providers.json
@@ -35,9 +35,6 @@
"cerebras": {
"description": "Cerebras é uma plataforma de inferência de IA baseada em seu sistema dedicado CS-3, projetada para oferecer o serviço de LLM mais rápido do mundo, com resposta em tempo real e alta taxa de transferência. Foi desenvolvida para eliminar a latência e acelerar fluxos de trabalho complexos de IA, como geração de código em tempo real e tarefas de agentes."
},
- "cerebras": {
- "description": "Cerebras é uma plataforma de inferência de IA baseada em seu sistema dedicado CS-3, projetada para oferecer o serviço de LLM mais rápido do mundo, com resposta em tempo real e alta taxa de transferência. Foi desenvolvida para eliminar a latência e acelerar fluxos de trabalho complexos de IA, como geração de código em tempo real e tarefas de agentes."
- },
"cloudflare": {
"description": "Execute modelos de aprendizado de máquina impulsionados por GPU sem servidor na rede global da Cloudflare."
},
@@ -47,6 +44,9 @@
"cometapi": {
"description": "CometAPI é uma plataforma de serviços que oferece diversas interfaces de modelos avançados, suportando OpenAI, Anthropic, Google e muito mais, adequada para necessidades variadas de desenvolvimento e aplicação. Os usuários podem escolher de forma flexível o modelo e preço ideais conforme suas necessidades, promovendo uma melhor experiência com IA."
},
+ "comfyui": {
+ "description": "Um poderoso mecanismo de fluxo de trabalho de código aberto para geração de imagens, vídeos e áudios, compatível com modelos avançados como SD, FLUX, Qwen, Hunyuan, WAN, oferecendo edição de fluxo de trabalho baseada em nós e capacidade de implantação privada."
+ },
"deepseek": {
"description": "A DeepSeek é uma empresa focada em pesquisa e aplicação de tecnologia de inteligência artificial, cujo modelo mais recente, DeepSeek-V2.5, combina capacidades de diálogo geral e processamento de código, alcançando melhorias significativas em alinhamento com preferências humanas, tarefas de escrita e seguimento de instruções."
},
diff --git a/locales/ru-RU/error.json b/locales/ru-RU/error.json
index 79578a34af0..0e9a432ea3d 100644
--- a/locales/ru-RU/error.json
+++ b/locales/ru-RU/error.json
@@ -81,6 +81,12 @@
"522": "Извините, время ожидания соединения с сервером истекло, и ваш запрос не был обработан вовремя. Возможно, это связано с нестабильностью сети или временной недоступностью сервера. Пожалуйста, попробуйте снова позже, мы работаем над восстановлением сервиса.",
"524": "Извините, сервер превысил время ожидания ответа, возможно, из-за медленного отклика. Пожалуйста, попробуйте снова позже.",
"AgentRuntimeError": "Ошибка выполнения времени выполнения языковой модели Lobe, пожалуйста, проверьте и повторите попытку в соответствии с предоставленной информацией",
+ "ComfyUIBizError": "Ошибка при запросе к сервису ComfyUI. Пожалуйста, проверьте информацию ниже или повторите попытку.",
+ "ComfyUIEmptyResult": "ComfyUI не сгенерировал изображение. Пожалуйста, проверьте настройки модели или повторите попытку.",
+ "ComfyUIModelError": "Не удалось загрузить модель ComfyUI. Пожалуйста, убедитесь, что файл модели существует.",
+ "ComfyUIServiceUnavailable": "Не удалось подключиться к сервису ComfyUI. Убедитесь, что ComfyUI работает корректно и адрес сервиса указан правильно.",
+ "ComfyUIUploadFailed": "Не удалось загрузить изображение в ComfyUI. Пожалуйста, проверьте подключение к серверу или повторите попытку.",
+ "ComfyUIWorkflowError": "Ошибка выполнения рабочего процесса ComfyUI. Пожалуйста, проверьте конфигурацию рабочего процесса.",
"ConnectionCheckFailed": "Запрос вернул пустой ответ, пожалуйста, проверьте, что в конце адреса API-прокси не указано `/v1`",
"CreateMessageError": "Извините, сообщение не удалось отправить. Пожалуйста, скопируйте содержимое и отправьте его снова. После обновления страницы это сообщение не будет сохранено.",
"ExceededContextWindow": "Содержимое текущего запроса превышает длину, которую модель может обработать. Пожалуйста, уменьшите объем содержимого и попробуйте снова.",
@@ -100,6 +106,7 @@
"InvalidAccessCode": "Неверный код доступа: введите правильный код доступа или добавьте пользовательский ключ API",
"InvalidBedrockCredentials": "Аутентификация Bedrock не прошла, пожалуйста, проверьте AccessKeyId/SecretAccessKey и повторите попытку",
"InvalidClerkUser": "Извините, вы еще не вошли в систему. Пожалуйста, войдите или зарегистрируйтесь, прежде чем продолжить",
+ "InvalidComfyUIArgs": "Неверная конфигурация ComfyUI. Пожалуйста, проверьте настройки ComfyUI и повторите попытку.",
"InvalidGithubToken": "Личный токен доступа Github некорректен или пуст, пожалуйста, проверьте личный токен доступа Github и повторите попытку",
"InvalidOllamaArgs": "Неверная конфигурация Ollama, пожалуйста, проверьте конфигурацию Ollama и повторите попытку",
"InvalidProviderAPIKey": "{{provider}} API ключ недействителен или отсутствует. Пожалуйста, проверьте ключ API {{provider}} и повторите попытку",
@@ -149,6 +156,11 @@
"title": "Используйте настраиваемый API ключ {{name}}"
},
"closeMessage": "Закрыть сообщение",
+ "comfyui": {
+ "description": "Пожалуйста, введите корректные данные авторизации {{name}}, чтобы начать генерацию изображений.",
+ "modifyBaseUrl": "Изменить адрес сервиса Comfy UI",
+ "title": "Подтвердите свои данные авторизации {{name}}"
+ },
"confirm": "Подтвердить и повторить попытку",
"oauth": {
"description": "Администратор включил единую систему аутентификации. Нажмите кнопку ниже, чтобы войти и разблокировать приложение.",
diff --git a/locales/ru-RU/modelProvider.json b/locales/ru-RU/modelProvider.json
index 95aa31d7aa4..bef17374600 100644
--- a/locales/ru-RU/modelProvider.json
+++ b/locales/ru-RU/modelProvider.json
@@ -82,6 +82,58 @@
"title": "ID аккаунта Cloudflare / адрес API"
}
},
+ "comfyui": {
+ "apiKey": {
+ "desc": "API-ключ, необходимый для аутентификации с использованием Bearer Token",
+ "placeholder": "Пожалуйста, введите API-ключ",
+ "required": "Пожалуйста, введите API-ключ",
+ "title": "API-ключ"
+ },
+ "authType": {
+ "desc": "Выберите способ аутентификации с сервером ComfyUI",
+ "options": {
+ "basic": "Логин/Пароль",
+ "bearer": "Bearer (API-ключ)",
+ "custom": "Пользовательские заголовки",
+ "none": "Без аутентификации"
+ },
+ "placeholder": "Пожалуйста, выберите тип аутентификации",
+ "title": "Тип аутентификации"
+ },
+ "baseURL": {
+ "desc": "Веб-адрес для доступа к ComfyUI",
+ "placeholder": "http://127.0.0.1:8000",
+ "required": "Пожалуйста, введите адрес сервиса ComfyUI",
+ "title": "Адрес сервиса ComfyUI"
+ },
+ "checker": {
+ "desc": "Проверка правильности настройки соединения",
+ "title": "Проверка подключения"
+ },
+ "customHeaders": {
+ "addButton": "Добавить заголовок",
+ "deleteTooltip": "Удалить этот заголовок",
+ "desc": "Заголовки, необходимые для пользовательской аутентификации, в формате ключ-значение",
+ "duplicateKeyError": "Имена ключей заголовков не должны повторяться",
+ "keyPlaceholder": "Ключ",
+ "required": "Пожалуйста, введите пользовательские заголовки",
+ "title": "Пользовательские заголовки",
+ "valuePlaceholder": "Значение"
+ },
+ "password": {
+ "desc": "Пароль, необходимый для базовой аутентификации",
+ "placeholder": "Пожалуйста, введите пароль",
+ "required": "Пожалуйста, введите пароль",
+ "title": "Пароль"
+ },
+ "title": "ComfyUI",
+ "username": {
+ "desc": "Имя пользователя, необходимое для базовой аутентификации",
+ "placeholder": "Пожалуйста, введите имя пользователя",
+ "required": "Пожалуйста, введите имя пользователя",
+ "title": "Имя пользователя"
+ }
+ },
"createNewAiProvider": {
"apiKey": {
"placeholder": "Пожалуйста, введите ваш API Key",
diff --git a/locales/ru-RU/models.json b/locales/ru-RU/models.json
index 1e19b0ba87f..4041c943605 100644
--- a/locales/ru-RU/models.json
+++ b/locales/ru-RU/models.json
@@ -866,6 +866,39 @@
"cohere/embed-v4.0": {
"description": "Модель, позволяющая классифицировать текст, изображения или смешанный контент либо преобразовывать их в векторные представления (эмбеддинги)."
},
+ "comfyui/flux-dev": {
+ "description": "FLUX.1 Dev — высококачественная модель генерации изображений по тексту, генерирует за 10–50 шагов, подходит для создания художественных и креативных работ"
+ },
+ "comfyui/flux-kontext-dev": {
+ "description": "FLUX.1 Kontext-dev — модель редактирования изображений, поддерживает изменение существующих изображений по текстовым инструкциям, включая локальные правки и перенос стиля"
+ },
+ "comfyui/flux-krea-dev": {
+ "description": "FLUX.1 Krea-dev — безопасная модель генерации изображений по тексту, разработана в сотрудничестве с Krea, оснащена встроенной системой фильтрации контента"
+ },
+ "comfyui/flux-schnell": {
+ "description": "FLUX.1 Schnell — сверхбыстрая модель генерации изображений по тексту, создает качественные изображения за 1–4 шага, идеально подходит для приложений в реальном времени и быстрого прототипирования"
+ },
+ "comfyui/stable-diffusion-15": {
+ "description": "Stable Diffusion 1.5 — классическая модель генерации изображений по тексту с разрешением 512x512, подходит для быстрого прототипирования и творческих экспериментов"
+ },
+ "comfyui/stable-diffusion-35": {
+ "description": "Stable Diffusion 3.5 — модель нового поколения для генерации изображений по тексту, доступна в версиях Large и Medium, требует внешнего файла кодировщика CLIP, обеспечивает высокое качество изображений и точное соответствие подсказкам"
+ },
+ "comfyui/stable-diffusion-35-inclclip": {
+ "description": "Stable Diffusion 3.5 с встроенными кодировщиками CLIP/T5, не требует внешних файлов кодировщика, подходит для моделей типа sd3.5_medium_incl_clips, потребляет меньше ресурсов"
+ },
+ "comfyui/stable-diffusion-custom": {
+ "description": "Пользовательская модель генерации изображений SD, имя файла модели должно быть custom_sd_lobe.safetensors, при наличии VAE используйте custom_sd_vae_lobe.safetensors, файлы моделей необходимо разместить в соответствующей папке согласно требованиям Comfy"
+ },
+ "comfyui/stable-diffusion-custom-refiner": {
+ "description": "Пользовательская модель SDXL для преобразования изображений, имя файла модели должно быть custom_sd_lobe.safetensors, при наличии VAE используйте custom_sd_vae_lobe.safetensors, файлы моделей необходимо разместить в соответствующей папке согласно требованиям Comfy"
+ },
+ "comfyui/stable-diffusion-refiner": {
+ "description": "Модель SDXL для преобразования изображений, выполняет высококачественное преобразование изображений на основе входного изображения, поддерживает перенос стиля, восстановление изображений и креативные трансформации"
+ },
+ "comfyui/stable-diffusion-xl": {
+ "description": "Модель SDXL для генерации изображений по тексту, поддерживает высокое разрешение 1024x1024, обеспечивает улучшенное качество изображений и детализацию"
+ },
"command": {
"description": "Диалоговая модель, следуя инструкциям, которая демонстрирует высокое качество и надежность в языковых задачах, а также имеет более длинную длину контекста по сравнению с нашей базовой генеративной моделью."
},
diff --git a/locales/ru-RU/providers.json b/locales/ru-RU/providers.json
index cadfb06cf46..7b9c61ddd89 100644
--- a/locales/ru-RU/providers.json
+++ b/locales/ru-RU/providers.json
@@ -44,6 +44,9 @@
"cometapi": {
"description": "CometAPI — это сервисная платформа, предоставляющая интерфейсы для различных передовых больших моделей, поддерживающая OpenAI, Anthropic, Google и другие. Подходит для разнообразных задач разработки и применения. Пользователи могут гибко выбирать оптимальные модели и цены в соответствии со своими потребностями, способствуя улучшению опыта работы с ИИ."
},
+ "comfyui": {
+ "description": "Мощный движок с открытым исходным кодом для создания изображений, видео и аудио. Поддерживает передовые модели, такие как SD FLUX, Qwen, Hunyuan, WAN, предоставляет возможности редактирования рабочих процессов на основе узлов и приватного развертывания."
+ },
"deepseek": {
"description": "DeepSeek — это компания, сосредоточенная на исследованиях и применении технологий искусственного интеллекта, ее последняя модель DeepSeek-V2.5 объединяет возможности общего диалога и обработки кода, достигнув значительных улучшений в области согласования с человеческими предпочтениями, написания текстов и выполнения инструкций."
},
diff --git a/locales/tr-TR/error.json b/locales/tr-TR/error.json
index 482f00d0e43..085d674aac4 100644
--- a/locales/tr-TR/error.json
+++ b/locales/tr-TR/error.json
@@ -81,6 +81,12 @@
"522": "Üzgünüz, sunucu bağlantısı zaman aşımına uğradı ve isteğinize zamanında yanıt veremedi. Bu, ağın kararsız olmasından veya sunucunun geçici olarak erişilememesinden kaynaklanıyor olabilir. Lütfen daha sonra tekrar deneyin, hizmeti geri getirmek için çalışıyoruz.",
"524": "Üzgünüz, sunucu yanıt beklerken zaman aşımına uğradı, bu muhtemelen yanıtın çok yavaş olmasından kaynaklanıyor. Lütfen daha sonra tekrar deneyin.",
"AgentRuntimeError": "Lobe dil modeli çalışma zamanı hatası, lütfen aşağıdaki bilgilere göre sorunu gidermeye çalışın veya tekrar deneyin",
+ "ComfyUIBizError": "ComfyUI hizmeti isteğinde hata oluştu, lütfen aşağıdaki bilgilere göre sorunu giderin veya tekrar deneyin",
+ "ComfyUIEmptyResult": "ComfyUI herhangi bir görsel üretmedi, lütfen model yapılandırmasını kontrol edin veya tekrar deneyin",
+ "ComfyUIModelError": "ComfyUI modeli yüklenemedi, lütfen model dosyasının mevcut olup olmadığını kontrol edin",
+ "ComfyUIServiceUnavailable": "ComfyUI hizmetine bağlanılamadı, lütfen ComfyUI'nin düzgün çalışıp çalışmadığını veya hizmet adresi yapılandırmasının doğru olup olmadığını kontrol edin",
+ "ComfyUIUploadFailed": "ComfyUI görsel yüklemesi başarısız oldu, lütfen sunucu bağlantısını kontrol edin veya tekrar deneyin",
+ "ComfyUIWorkflowError": "ComfyUI iş akışı yürütülemedi, lütfen iş akışı yapılandırmasını kontrol edin",
"ConnectionCheckFailed": "İstek boş döndü, lütfen API代理地址ının sonuna `/v1` ekleyip eklemediğinizi kontrol edin.",
"CreateMessageError": "Üzgünüm, mesaj düzgün bir şekilde gönderilemedi. Lütfen içeriği kopyalayın ve yeniden gönderin, sayfayı yeniledikten sonra bu mesaj kaydedilmeyecek.",
"ExceededContextWindow": "Mevcut istek içeriği modelin işleyebileceği uzunluğu aşıyor, lütfen içerik miktarını azaltıp tekrar deneyin",
@@ -100,6 +106,7 @@
"InvalidAccessCode": "Geçersiz Erişim Kodu: Geçersiz veya boş bir şifre girdiniz. Lütfen doğru erişim şifresini girin veya özel API Anahtarı ekleyin.",
"InvalidBedrockCredentials": "Bedrock kimlik doğrulaması geçersiz, lütfen AccessKeyId/SecretAccessKey bilgilerinizi kontrol edip tekrar deneyin",
"InvalidClerkUser": "Üzgünüz, şu anda giriş yapmadınız. Lütfen işlemlere devam etmeden önce giriş yapın veya hesap oluşturun",
+ "InvalidComfyUIArgs": "ComfyUI yapılandırması hatalı, lütfen yapılandırmayı kontrol edip tekrar deneyin",
"InvalidGithubToken": "Github Kişisel Erişim Token'ı hatalı veya boş. Lütfen Github Kişisel Erişim Token'ınızı kontrol edin ve tekrar deneyin.",
"InvalidOllamaArgs": "Ollama yapılandırması yanlış, lütfen Ollama yapılandırmasını kontrol edip tekrar deneyin",
"InvalidProviderAPIKey": "{{provider}} API Anahtarı geçersiz veya boş, lütfen {{provider}} API Anahtarını kontrol edip tekrar deneyin",
@@ -149,6 +156,11 @@
"title": "Özel {{name}} API Anahtarını kullan"
},
"closeMessage": "Mesajı kapat",
+ "comfyui": {
+ "description": "Görsel üretmeye başlamak için lütfen doğru {{name}} kimlik doğrulama bilgilerini girin",
+ "modifyBaseUrl": "Comfy UI hizmet adresini değiştir",
+ "title": "{{name}} kimlik doğrulama bilgilerinizi onaylayın"
+ },
"confirm": "Onayla ve Yeniden Dene",
"oauth": {
"description": "Yönetici, tek oturum açma kimlik doğrulamasını etkinleştirdi. Aşağıdaki düğmeye tıklayarak giriş yapabilir ve uygulamayı kilidini açabilirsiniz.",
diff --git a/locales/tr-TR/modelProvider.json b/locales/tr-TR/modelProvider.json
index e8330196f0e..4a6d317ed8a 100644
--- a/locales/tr-TR/modelProvider.json
+++ b/locales/tr-TR/modelProvider.json
@@ -82,6 +82,58 @@
"title": "Cloudflare Hesap ID / API Adresi"
}
},
+ "comfyui": {
+ "apiKey": {
+ "desc": "Bearer Token kimlik doğrulaması için gerekli API anahtarı",
+ "placeholder": "Lütfen API anahtarını girin",
+ "required": "Lütfen API anahtarını girin",
+ "title": "API Anahtarı"
+ },
+ "authType": {
+ "desc": "ComfyUI sunucusuyla kimlik doğrulama yöntemini seçin",
+ "options": {
+ "basic": "Kullanıcı adı/Şifre",
+ "bearer": "Bearer (API Anahtarı)",
+ "custom": "Özel Başlık",
+ "none": "Kimlik doğrulama gerekmez"
+ },
+ "placeholder": "Lütfen kimlik doğrulama türünü seçin",
+ "title": "Kimlik Doğrulama Türü"
+ },
+ "baseURL": {
+ "desc": "ComfyUI web erişim adresi",
+ "placeholder": "http://127.0.0.1:8000",
+ "required": "Lütfen ComfyUI sunucu adresini girin",
+ "title": "ComfyUI Sunucu Adresi"
+ },
+ "checker": {
+ "desc": "Bağlantının doğru yapılandırılıp yapılandırılmadığını test edin",
+ "title": "Bağlantı Kontrolü"
+ },
+ "customHeaders": {
+ "addButton": "Başlık Ekle",
+ "deleteTooltip": "Bu başlığı sil",
+ "desc": "Özel kimlik doğrulama için gerekli başlıklar, anahtar-değer çifti formatında",
+ "duplicateKeyError": "Başlık anahtarları benzersiz olmalıdır",
+ "keyPlaceholder": "Anahtar",
+ "required": "Lütfen özel başlıkları girin",
+ "title": "Özel Başlıklar",
+ "valuePlaceholder": "Değer"
+ },
+ "password": {
+ "desc": "Temel kimlik doğrulama için gerekli şifre",
+ "placeholder": "Lütfen şifreyi girin",
+ "required": "Lütfen şifreyi girin",
+ "title": "Şifre"
+ },
+ "title": "ComfyUI",
+ "username": {
+ "desc": "Temel kimlik doğrulama için gerekli kullanıcı adı",
+ "placeholder": "Lütfen kullanıcı adını girin",
+ "required": "Lütfen kullanıcı adını girin",
+ "title": "Kullanıcı Adı"
+ }
+ },
"createNewAiProvider": {
"apiKey": {
"placeholder": "Lütfen API Anahtarınızı girin",
diff --git a/locales/tr-TR/models.json b/locales/tr-TR/models.json
index ead12024d66..407ce8fc41b 100644
--- a/locales/tr-TR/models.json
+++ b/locales/tr-TR/models.json
@@ -866,6 +866,39 @@
"cohere/embed-v4.0": {
"description": "Metin, görüntü veya karma içeriklerin sınıflandırılması veya gömme haline dönüştürülmesine olanak tanıyan model."
},
+ "comfyui/flux-dev": {
+ "description": "FLUX.1 Dev - Yüksek kaliteli metinden görsele model, 10-50 adımda üretim, sanatsal çalışmalar ve yaratıcı içerikler için uygundur"
+ },
+ "comfyui/flux-kontext-dev": {
+ "description": "FLUX.1 Kontext-dev - Görsel düzenleme modeli, metin komutlarına dayalı mevcut görselleri düzenlemeyi destekler, bölgesel düzenleme ve stil transferi mümkündür"
+ },
+ "comfyui/flux-krea-dev": {
+ "description": "FLUX.1 Krea-dev - Geliştirilmiş güvenliğe sahip metinden görsele modeli, Krea iş birliğiyle geliştirilmiştir, yerleşik güvenlik filtresi içerir"
+ },
+ "comfyui/flux-schnell": {
+ "description": "FLUX.1 Schnell - Ultra hızlı metinden görsele modeli, yalnızca 1-4 adımda yüksek kaliteli görseller üretir, gerçek zamanlı uygulamalar ve hızlı prototipleme için idealdir"
+ },
+ "comfyui/stable-diffusion-15": {
+ "description": "Stable Diffusion 1.5 metinden görsele modeli, klasik 512x512 çözünürlükte metinden görsele üretim sağlar, hızlı prototipleme ve yaratıcı denemeler için uygundur"
+ },
+ "comfyui/stable-diffusion-35": {
+ "description": "Stable Diffusion 3.5 yeni nesil metinden görsele modeli, Large ve Medium olmak üzere iki sürümü destekler, harici CLIP kodlayıcı dosyası gerektirir, üstün görsel kalite ve istem uyumu sunar"
+ },
+ "comfyui/stable-diffusion-35-inclclip": {
+ "description": "Stable Diffusion 3.5 yerleşik CLIP/T5 kodlayıcılı sürüm, harici kodlayıcı dosyasına ihtiyaç duymaz, sd3.5_medium_incl_clips gibi modeller için uygundur, daha az kaynak kullanır"
+ },
+ "comfyui/stable-diffusion-custom": {
+ "description": "Özelleştirilmiş SD metinden görsele modeli, model dosya adı custom_sd_lobe.safetensors olmalıdır, varsa VAE dosyası custom_sd_vae_lobe.safetensors olarak adlandırılmalıdır, model dosyaları Comfy'nin gereksinimlerine göre ilgili klasöre yerleştirilmelidir"
+ },
+ "comfyui/stable-diffusion-custom-refiner": {
+ "description": "Özelleştirilmiş SDXL görselden görsele modeli, model dosya adı custom_sd_lobe.safetensors olmalıdır, varsa VAE dosyası custom_sd_vae_lobe.safetensors olarak adlandırılmalıdır, model dosyaları Comfy'nin gereksinimlerine göre ilgili klasöre yerleştirilmelidir"
+ },
+ "comfyui/stable-diffusion-refiner": {
+ "description": "SDXL görselden görsele modeli, giriş görseline dayalı yüksek kaliteli dönüşüm sağlar, stil transferi, görsel onarımı ve yaratıcı dönüşümleri destekler"
+ },
+ "comfyui/stable-diffusion-xl": {
+ "description": "SDXL metinden görsele modeli, 1024x1024 yüksek çözünürlükte metinden görsele üretimi destekler, daha iyi görsel kalite ve detay sunar"
+ },
"command": {
"description": "Dil görevlerinde yüksek kalite ve güvenilirlik sunan, talimatları izleyen bir diyalog modelidir ve temel üretim modelimize göre daha uzun bir bağlam uzunluğuna sahiptir."
},
diff --git a/locales/tr-TR/providers.json b/locales/tr-TR/providers.json
index dd513092713..0b76d9cda77 100644
--- a/locales/tr-TR/providers.json
+++ b/locales/tr-TR/providers.json
@@ -35,9 +35,6 @@
"cerebras": {
"description": "Cerebras, özel CS-3 sistemi üzerine kurulu bir yapay zeka çıkarım platformudur. Gerçek zamanlı yanıtlar ve yüksek veri işleme kapasitesiyle dünyanın en hızlı LLM hizmetini sunmayı hedefler. Gecikmeleri ortadan kaldırmak ve gerçek zamanlı kod üretimi ile aracı görevler gibi karmaşık yapay zeka iş akışlarını hızlandırmak için tasarlanmıştır."
},
- "cerebras": {
- "description": "Cerebras, özel CS-3 sistemi üzerine kurulu bir yapay zeka çıkarım platformudur. Gerçek zamanlı yanıtlar ve yüksek veri işleme kapasitesiyle dünyanın en hızlı LLM hizmetini sunmayı hedefler. Gecikmeleri ortadan kaldırmak ve gerçek zamanlı kod üretimi ile aracı görevler gibi karmaşık yapay zeka iş akışlarını hızlandırmak için tasarlanmıştır."
- },
"cloudflare": {
"description": "Cloudflare'ın küresel ağı üzerinde sunucusuz GPU destekli makine öğrenimi modelleri çalıştırın."
},
@@ -47,6 +44,9 @@
"cometapi": {
"description": "CometAPI, OpenAI, Anthropic, Google ve daha fazlasını destekleyen çeşitli ileri düzey büyük model arayüzleri sunan bir hizmet platformudur. Çeşitli geliştirme ve uygulama ihtiyaçlarına uygundur. Kullanıcılar, kendi ihtiyaçlarına göre en uygun modeli ve fiyatı esnek bir şekilde seçebilir, böylece yapay zeka deneyimini geliştirebilirler."
},
+ "comfyui": {
+ "description": "Güçlü bir açık kaynaklı görüntü, video ve ses üretim iş akışı motoru; SD, FLUX, Qwen, Hunyuan, WAN gibi ileri düzey modelleri destekler, düğüm tabanlı iş akışı düzenleme ve özelleştirilmiş dağıtım yetenekleri sunar."
+ },
"deepseek": {
"description": "DeepSeek, yapay zeka teknolojisi araştırma ve uygulamalarına odaklanan bir şirkettir. En son modeli DeepSeek-V2.5, genel diyalog ve kod işleme yeteneklerini birleştirerek, insan tercihleriyle uyum, yazma görevleri ve talimat takibi gibi alanlarda önemli iyileştirmeler sağlamaktadır."
},
diff --git a/locales/vi-VN/error.json b/locales/vi-VN/error.json
index 08870c3e562..e8b8725a2c0 100644
--- a/locales/vi-VN/error.json
+++ b/locales/vi-VN/error.json
@@ -81,6 +81,12 @@
"522": "Xin lỗi, kết nối máy chủ đã hết thời gian chờ, không thể phản hồi yêu cầu của bạn kịp thời. Có thể do mạng không ổn định hoặc máy chủ tạm thời không thể truy cập. Vui lòng thử lại sau, chúng tôi đang nỗ lực phục hồi dịch vụ.",
"524": "Xin lỗi, máy chủ đã hết thời gian chờ khi đang chờ phản hồi, có thể do phản hồi quá chậm, vui lòng thử lại sau.",
"AgentRuntimeError": "Lobe mô hình ngôn ngữ thực thi gặp lỗi, vui lòng kiểm tra và thử lại dựa trên thông tin dưới đây",
+ "ComfyUIBizError": "Đã xảy ra lỗi khi yêu cầu dịch vụ ComfyUI, vui lòng kiểm tra thông tin dưới đây hoặc thử lại",
+ "ComfyUIEmptyResult": "ComfyUI không tạo ra bất kỳ hình ảnh nào, vui lòng kiểm tra cấu hình mô hình hoặc thử lại",
+ "ComfyUIModelError": "Tải mô hình ComfyUI thất bại, vui lòng kiểm tra xem tệp mô hình có tồn tại không",
+ "ComfyUIServiceUnavailable": "Kết nối đến dịch vụ ComfyUI thất bại, vui lòng kiểm tra xem ComfyUI có đang hoạt động bình thường không, hoặc kiểm tra lại cấu hình địa chỉ dịch vụ",
+ "ComfyUIUploadFailed": "Tải ảnh lên ComfyUI thất bại, vui lòng kiểm tra kết nối máy chủ hoặc thử lại",
+ "ComfyUIWorkflowError": "Thực thi quy trình ComfyUI thất bại, vui lòng kiểm tra cấu hình quy trình",
"ConnectionCheckFailed": "Yêu cầu trả về trống, xin kiểm tra xem địa chỉ API proxy có đang thiếu `/v1` ở cuối không",
"CreateMessageError": "Xin lỗi, tin nhắn không thể được gửi đi bình thường, vui lòng sao chép nội dung và gửi lại, tin nhắn này sẽ không được lưu lại sau khi làm mới trang.",
"ExceededContextWindow": "Nội dung yêu cầu hiện tại vượt quá độ dài mà mô hình có thể xử lý, vui lòng giảm khối lượng nội dung và thử lại",
@@ -100,6 +106,7 @@
"InvalidAccessCode": "Mật khẩu truy cập không hợp lệ hoặc trống, vui lòng nhập mật khẩu truy cập đúng hoặc thêm Khóa API tùy chỉnh",
"InvalidBedrockCredentials": "Xác thực Bedrock không thành công, vui lòng kiểm tra AccessKeyId/SecretAccessKey và thử lại",
"InvalidClerkUser": "Xin lỗi, bạn chưa đăng nhập. Vui lòng đăng nhập hoặc đăng ký tài khoản trước khi tiếp tục.",
+ "InvalidComfyUIArgs": "Cấu hình ComfyUI không chính xác, vui lòng kiểm tra lại cấu hình ComfyUI và thử lại",
"InvalidGithubToken": "Mã truy cập cá nhân Github không chính xác hoặc để trống, vui lòng kiểm tra lại Mã truy cập cá nhân Github và thử lại",
"InvalidOllamaArgs": "Cấu hình Ollama không hợp lệ, vui lòng kiểm tra lại cấu hình Ollama và thử lại",
"InvalidProviderAPIKey": "{{provider}} API Key không hợp lệ hoặc trống, vui lòng kiểm tra và thử lại",
@@ -149,6 +156,11 @@
"title": "Sử dụng {{name}} API Key tùy chỉnh"
},
"closeMessage": "Đóng thông báo",
+ "comfyui": {
+ "description": "Vui lòng nhập thông tin xác thực {{name}} chính xác để bắt đầu tạo hình ảnh",
+ "modifyBaseUrl": "Chỉnh sửa địa chỉ dịch vụ Comfy UI",
+ "title": "Xác nhận thông tin xác thực {{name}} của bạn"
+ },
"confirm": "Xác nhận và thử lại",
"oauth": {
"description": "Quản trị viên đã mở tính năng xác thực đăng nhập thống nhất. Nhấn vào nút bên dưới để đăng nhập và mở khóa ứng dụng",
diff --git a/locales/vi-VN/modelProvider.json b/locales/vi-VN/modelProvider.json
index 1eb0bf00438..1b26e11e564 100644
--- a/locales/vi-VN/modelProvider.json
+++ b/locales/vi-VN/modelProvider.json
@@ -82,6 +82,58 @@
"title": "ID tài khoản Cloudflare / địa chỉ API"
}
},
+ "comfyui": {
+ "apiKey": {
+ "desc": "Khóa API cần thiết để xác thực Bearer Token",
+ "placeholder": "Vui lòng nhập khóa API",
+ "required": "Vui lòng nhập khóa API",
+ "title": "Khóa API"
+ },
+ "authType": {
+ "desc": "Chọn phương thức xác thực với máy chủ ComfyUI",
+ "options": {
+ "basic": "Tài khoản/Mật khẩu",
+ "bearer": "Bearer (Khóa API)",
+ "custom": "Tiêu đề yêu cầu tùy chỉnh",
+ "none": "Không cần xác thực"
+ },
+ "placeholder": "Vui lòng chọn loại xác thực",
+ "title": "Loại xác thực"
+ },
+ "baseURL": {
+ "desc": "Địa chỉ truy cập web của ComfyUI",
+ "placeholder": "http://127.0.0.1:8000",
+ "required": "Vui lòng nhập địa chỉ dịch vụ ComfyUI",
+ "title": "Địa chỉ dịch vụ ComfyUI"
+ },
+ "checker": {
+ "desc": "Kiểm tra kết nối đã được cấu hình đúng chưa",
+ "title": "Kiểm tra kết nối"
+ },
+ "customHeaders": {
+ "addButton": "Thêm tiêu đề yêu cầu",
+ "deleteTooltip": "Xóa tiêu đề yêu cầu này",
+ "desc": "Tiêu đề yêu cầu cần thiết cho phương thức xác thực tùy chỉnh, định dạng cặp khóa-giá trị",
+ "duplicateKeyError": "Tên khóa tiêu đề yêu cầu không được trùng lặp",
+ "keyPlaceholder": "Tên khóa",
+ "required": "Vui lòng nhập tiêu đề yêu cầu tùy chỉnh",
+ "title": "Tiêu đề yêu cầu tùy chỉnh",
+ "valuePlaceholder": "Giá trị"
+ },
+ "password": {
+ "desc": "Mật khẩu cần thiết cho xác thực cơ bản",
+ "placeholder": "Vui lòng nhập mật khẩu",
+ "required": "Vui lòng nhập mật khẩu",
+ "title": "Mật khẩu"
+ },
+ "title": "ComfyUI",
+ "username": {
+ "desc": "Tên người dùng cần thiết cho xác thực cơ bản",
+ "placeholder": "Vui lòng nhập tên người dùng",
+ "required": "Vui lòng nhập tên người dùng",
+ "title": "Tên người dùng"
+ }
+ },
"createNewAiProvider": {
"apiKey": {
"placeholder": "Vui lòng nhập API Key của bạn",
diff --git a/locales/vi-VN/models.json b/locales/vi-VN/models.json
index 1817b6e5286..70ae46cd955 100644
--- a/locales/vi-VN/models.json
+++ b/locales/vi-VN/models.json
@@ -866,6 +866,39 @@
"cohere/embed-v4.0": {
"description": "Mô hình cho phép phân loại hoặc chuyển đổi văn bản, hình ảnh hoặc nội dung hỗn hợp thành các vector nhúng."
},
+ "comfyui/flux-dev": {
+ "description": "FLUX.1 Dev - Mô hình tạo ảnh từ văn bản chất lượng cao, tạo ảnh trong 10-50 bước, phù hợp cho sáng tác chất lượng cao và tác phẩm nghệ thuật."
+ },
+ "comfyui/flux-kontext-dev": {
+ "description": "FLUX.1 Kontext-dev - Mô hình chỉnh sửa hình ảnh, hỗ trợ chỉnh sửa hình ảnh hiện có dựa trên hướng dẫn văn bản, bao gồm chỉnh sửa cục bộ và chuyển đổi phong cách."
+ },
+ "comfyui/flux-krea-dev": {
+ "description": "FLUX.1 Krea-dev - Mô hình tạo ảnh từ văn bản với tính năng an toàn nâng cao, phát triển hợp tác với Krea, tích hợp bộ lọc an toàn."
+ },
+ "comfyui/flux-schnell": {
+ "description": "FLUX.1 Schnell - Mô hình tạo ảnh từ văn bản siêu nhanh, tạo ảnh chất lượng cao chỉ trong 1-4 bước, lý tưởng cho ứng dụng thời gian thực và tạo nguyên mẫu nhanh."
+ },
+ "comfyui/stable-diffusion-15": {
+ "description": "Stable Diffusion 1.5 - Mô hình tạo ảnh từ văn bản cổ điển với độ phân giải 512x512, phù hợp cho tạo nguyên mẫu nhanh và thử nghiệm sáng tạo."
+ },
+ "comfyui/stable-diffusion-35": {
+ "description": "Stable Diffusion 3.5 - Mô hình tạo ảnh từ văn bản thế hệ mới, hỗ trợ hai phiên bản Large và Medium, yêu cầu tệp mã hóa CLIP bên ngoài, mang lại chất lượng hình ảnh vượt trội và độ khớp cao với từ khóa."
+ },
+ "comfyui/stable-diffusion-35-inclclip": {
+ "description": "Stable Diffusion 3.5 - Phiên bản tích hợp mã hóa CLIP/T5, không cần tệp mã hóa bên ngoài, phù hợp với các mô hình như sd3.5_medium_incl_clips, sử dụng ít tài nguyên hơn."
+ },
+ "comfyui/stable-diffusion-custom": {
+ "description": "Mô hình tạo ảnh từ văn bản SD tùy chỉnh, tên tệp mô hình nên là custom_sd_lobe.safetensors, nếu có VAE thì dùng custom_sd_vae_lobe.safetensors, tệp mô hình cần được đặt đúng thư mục theo yêu cầu của Comfy."
+ },
+ "comfyui/stable-diffusion-custom-refiner": {
+ "description": "Mô hình chuyển ảnh thành ảnh SDXL tùy chỉnh, tên tệp mô hình nên là custom_sd_lobe.safetensors, nếu có VAE thì dùng custom_sd_vae_lobe.safetensors, tệp mô hình cần được đặt đúng thư mục theo yêu cầu của Comfy."
+ },
+ "comfyui/stable-diffusion-refiner": {
+ "description": "Mô hình chuyển ảnh thành ảnh SDXL, chuyển đổi hình ảnh đầu vào thành hình ảnh chất lượng cao, hỗ trợ chuyển đổi phong cách, phục hồi hình ảnh và biến đổi sáng tạo."
+ },
+ "comfyui/stable-diffusion-xl": {
+ "description": "Mô hình tạo ảnh từ văn bản SDXL, hỗ trợ tạo ảnh độ phân giải cao 1024x1024 từ văn bản, mang lại chất lượng hình ảnh và chi tiết vượt trội."
+ },
"command": {
"description": "Một mô hình đối thoại tuân theo chỉ dẫn, thể hiện chất lượng cao và đáng tin cậy trong các nhiệm vụ ngôn ngữ, đồng thời có độ dài ngữ cảnh dài hơn so với mô hình sinh cơ bản của chúng tôi."
},
diff --git a/locales/vi-VN/providers.json b/locales/vi-VN/providers.json
index 073f9672f16..4cb6db576b6 100644
--- a/locales/vi-VN/providers.json
+++ b/locales/vi-VN/providers.json
@@ -35,9 +35,6 @@
"cerebras": {
"description": "Cerebras là một nền tảng suy luận AI dựa trên hệ thống chuyên dụng CS-3, được thiết kế để cung cấp dịch vụ LLM nhanh nhất thế giới, phản hồi theo thời gian thực và thông lượng cao, nhằm loại bỏ độ trễ và tăng tốc các quy trình làm việc AI phức tạp như tạo mã theo thời gian thực và các tác vụ đại lý."
},
- "cerebras": {
- "description": "Cerebras là một nền tảng suy luận AI dựa trên hệ thống chuyên dụng CS-3, được thiết kế để cung cấp dịch vụ LLM nhanh nhất thế giới, phản hồi theo thời gian thực và thông lượng cao, nhằm loại bỏ độ trễ và tăng tốc các quy trình làm việc AI phức tạp như tạo mã theo thời gian thực và các tác vụ đại lý."
- },
"cloudflare": {
"description": "Chạy các mô hình học máy được hỗ trợ bởi GPU không máy chủ trên mạng lưới toàn cầu của Cloudflare."
},
@@ -47,6 +44,9 @@
"cometapi": {
"description": "CometAPI là một nền tảng dịch vụ cung cấp nhiều giao diện mô hình lớn tiên tiến, hỗ trợ OpenAI, Anthropic, Google và nhiều hơn nữa, phù hợp với các nhu cầu phát triển và ứng dụng đa dạng. Người dùng có thể linh hoạt lựa chọn mô hình và giá cả tối ưu theo nhu cầu của mình, giúp nâng cao trải nghiệm AI."
},
+ "comfyui": {
+ "description": "Một công cụ mã nguồn mở mạnh mẽ để tạo hình ảnh, video và âm thanh theo quy trình làm việc, hỗ trợ các mô hình tiên tiến như SD, FLUX, Qwen, Hunyuan, WAN, cung cấp khả năng chỉnh sửa quy trình làm việc theo dạng nút và triển khai riêng tư."
+ },
"deepseek": {
"description": "DeepSeek là một công ty tập trung vào nghiên cứu và ứng dụng công nghệ trí tuệ nhân tạo, mô hình mới nhất của họ, DeepSeek-V2.5, kết hợp khả năng đối thoại chung và xử lý mã, đồng thời đạt được sự cải thiện đáng kể trong việc căn chỉnh sở thích của con người, nhiệm vụ viết và tuân theo chỉ dẫn."
},
diff --git a/locales/zh-CN/chat.json b/locales/zh-CN/chat.json
index bc7517173aa..58024ee5711 100644
--- a/locales/zh-CN/chat.json
+++ b/locales/zh-CN/chat.json
@@ -304,10 +304,10 @@
"shareModal": {
"copy": "复制",
"download": "下载截图",
+ "downloadError": "下载失败",
"downloadFile": "下载文件",
"downloadPdf": "下载 PDF",
"downloadSuccess": "下载成功",
- "downloadError": "下载失败",
"exportPdf": "导出为 PDF",
"exportTitle": "默认标题",
"generatePdf": "生成 PDF",
diff --git a/locales/zh-CN/components.json b/locales/zh-CN/components.json
index 6ce923941dc..f05fcb9709f 100644
--- a/locales/zh-CN/components.json
+++ b/locales/zh-CN/components.json
@@ -33,10 +33,6 @@
"config": {
"showFilesInKnowledgeBase": "显示知识库中内容"
},
- "view": {
- "list": "列表视图",
- "masonry": "网格视图"
- },
"emptyStatus": {
"actions": {
"file": "上传文件",
@@ -54,6 +50,10 @@
"total": {
"fileCount": "共 {{count}} 项",
"selectedCount": "已选 {{count}} 项"
+ },
+ "view": {
+ "list": "列表视图",
+ "masonry": "网格视图"
}
},
"FileParsingStatus": {
diff --git a/locales/zh-CN/error.json b/locales/zh-CN/error.json
index e36d9804c14..3148aa82fff 100644
--- a/locales/zh-CN/error.json
+++ b/locales/zh-CN/error.json
@@ -125,6 +125,13 @@
"InvalidOllamaArgs": "Ollama 配置不正确,请检查 Ollama 配置后重试",
"OllamaBizError": "请求 Ollama 服务出错,请根据以下信息排查或重试",
"OllamaServiceUnavailable": "Ollama 服务连接失败,请检查 Ollama 是否运行正常,或是否正确设置 Ollama 的跨域配置",
+ "InvalidComfyUIArgs": "ComfyUI 配置不正确,请检查 ComfyUI 配置后重试",
+ "ComfyUIBizError": "请求 ComfyUI 服务出错,请根据以下信息排查或重试",
+ "ComfyUIServiceUnavailable": "ComfyUI 服务连接失败,请检查 ComfyUI 是否运行正常,或检查服务地址配置是否正确",
+ "ComfyUIEmptyResult": "ComfyUI 未生成任何图像,请检查模型配置或重试",
+ "ComfyUIUploadFailed": "ComfyUI 图片上传失败,请检查服务器连接或重试",
+ "ComfyUIWorkflowError": "ComfyUI 工作流执行失败,请检查工作流配置",
+ "ComfyUIModelError": "ComfyUI 模型加载失败,请检查模型文件是否存在",
"AgentRuntimeError": "Lobe AI Runtime 执行出错,请根据以下信息排查或重试",
"FreePlanLimit": "当前为免费用户,无法使用该功能,请升级到付费计划后继续使用",
"SubscriptionPlanLimit": "您的订阅积分已用尽,无法使用该功能,请升级到更高计划,或配置自定义模型 API 后继续使用",
@@ -149,6 +156,11 @@
"title": "使用自定义 {{name}} API Key"
},
"closeMessage": "关闭提示",
+ "comfyui": {
+ "description": "请输入正确的 {{name}} 认证信息即可开始生图",
+ "modifyBaseUrl": "修改 Comfy UI 服务地址",
+ "title": "确认你的 {{name}} 认证信息"
+ },
"confirm": "确认并重试",
"oauth": {
"description": "管理员已开启统一登录认证,点击下方按钮登录,即可解锁应用",
diff --git a/locales/zh-CN/modelProvider.json b/locales/zh-CN/modelProvider.json
index 67566cebced..1898f17d420 100644
--- a/locales/zh-CN/modelProvider.json
+++ b/locales/zh-CN/modelProvider.json
@@ -86,51 +86,51 @@
"apiKey": {
"desc": "Bearer Token 认证所需的 API 密钥",
"placeholder": "请输入 API 密钥",
+ "required": "请输入 API 密钥",
"title": "API 密钥"
},
"authType": {
- "desc": "选择 ComfyUI 服务器的认证方式",
+ "desc": "选择与 ComfyUI 服务器的认证方式",
"options": {
"basic": "账号/密码",
"bearer": "Bearer (API 密钥)",
"custom": "自定义请求头",
"none": "无需认证"
},
- "placeholder": "请选择认证方式",
+ "placeholder": "请选择认证类型",
"title": "认证类型"
},
"baseURL": {
"desc": "ComfyUI 网页访问地址",
- "placeholder": "http://localhost:8000",
- "title": "访问地址"
+ "placeholder": "http://127.0.0.1:8000",
+ "required": "请输入 ComfyUI 服务地址",
+ "title": "ComfyUI 服务地址"
},
"checker": {
- "desc": "测试 ComfyUI 服务器是否可以正常连接",
- "title": "连接测试"
+ "desc": "测试连接是否正确配置",
+ "title": "连通性检查"
},
"customHeaders": {
"addButton": "添加请求头",
"deleteTooltip": "删除此请求头",
- "desc": "自定义认证方式下的HTTP请求头,格式为键值对",
+ "desc": "自定义认证方式所需的请求头,格式为键值对",
"duplicateKeyError": "请求头键名不能重复",
- "keyPlaceholder": "请求头键名",
+ "keyPlaceholder": "键名",
+ "required": "请输入自定义请求头",
"title": "自定义请求头",
- "valuePlaceholder": "请求头值"
+ "valuePlaceholder": "值"
},
"password": {
"desc": "基本认证所需的密码",
"placeholder": "请输入密码",
+ "required": "请输入密码",
"title": "密码"
},
"title": "ComfyUI",
- "unlock": {
- "customAuth": "自定义认证",
- "description": "配置 ComfyUI 服务器连接信息即可开始图像生成",
- "title": "使用 ComfyUI 图像生成"
- },
"username": {
"desc": "基本认证所需的用户名",
"placeholder": "请输入用户名",
+ "required": "请输入用户名",
"title": "用户名"
}
},
diff --git a/locales/zh-CN/models.json b/locales/zh-CN/models.json
index 2ea9c94f9f4..3a0d3fb9843 100644
--- a/locales/zh-CN/models.json
+++ b/locales/zh-CN/models.json
@@ -867,44 +867,37 @@
"description": "一个允许对文本、图像或混合内容进行分类或转换为嵌入的模型。"
},
"comfyui/flux-dev": {
- "description": "FLUX.1 Dev - 高质量文生图模型,支持 guidance scale 调节,10-50步生成,非商业许可,适合高质量创作和艺术作品生成"
+ "description": "FLUX.1 Dev - 高质量文生图模型,10-50步生成,适合高质量创作和艺术作品生成"
},
"comfyui/flux-kontext-dev": {
- "description": "FLUX.1 Kontext-dev - 图像编辑模型,支持基于文本指令修改现有图像,支持局部修改和风格迁移,非商业许可"
+ "description": "FLUX.1 Kontext-dev - 图像编辑模型,支持基于文本指令修改现有图像,支持局部修改和风格迁移"
},
"comfyui/flux-krea-dev": {
- "description": "FLUX.1 Krea-dev - 增强安全的文生图模型,与 Krea 合作开发,内置安全过滤,避免生成不当内容,非商业许可"
+ "description": "FLUX.1 Krea-dev - 增强安全的文生图模型,与 Krea 合作开发,内置安全过滤"
},
"comfyui/flux-schnell": {
- "description": "FLUX.1 Schnell - 超快速文生图模型,1-4步即可生成高质量图像,Apache 2.0开源许可,适合实时应用和快速原型制作"
+ "description": "FLUX.1 Schnell - 超快速文生图模型,1-4步即可生成高质量图像,适合实时应用和快速原型制作"
},
"comfyui/stable-diffusion-15": {
- "displayName": "SD 1.5",
- "description": "Stable Diffusion 1.5 文生图模型,经典的512x512分辨率文本到图像生成,适合快速原型和创意实验。支持负向提示。"
+ "description": "Stable Diffusion 1.5 文生图模型,经典的512x512分辨率文本到图像生成,适合快速原型和创意实验"
},
"comfyui/stable-diffusion-35": {
- "displayName": "Stable Diffusion 3.5",
"description": "Stable Diffusion 3.5 新一代文生图模型,支持 Large 和 Medium 两个版本,需要外部 CLIP 编码器文件,提供卓越的图像质量和提示词匹配度。"
},
"comfyui/stable-diffusion-35-inclclip": {
- "displayName": "Stable Diffusion 3.5 (内置编码器)",
"description": "Stable Diffusion 3.5 内置 CLIP/T5 编码器版本,无需外部编码器文件,适用于 sd3.5_medium_incl_clips 等模型,资源占用更少。"
},
"comfyui/stable-diffusion-custom": {
- "displayName": "Custom SD",
- "description": "自定义 SD 文生图模型,模型文件名请使用 custom_sd_lobe.safetensors,如有 VAE 请使用 custom_sd_vae_lobe.safetensors,模型文件需要按照 Comfy 的要求放入对应文件夹。"
+ "description": "自定义 SD 文生图模型,模型文件名请使用 custom_sd_lobe.safetensors,如有 VAE 请使用 custom_sd_vae_lobe.safetensors,模型文件需要按照 Comfy 的要求放入对应文件夹"
},
"comfyui/stable-diffusion-custom-refiner": {
- "displayName": "Custom SD Refiner",
- "description": "自定义 SD 图生图模型,模型文件名请使用 custom_sd_lobe.safetensors,如有 VAE 请使用 custom_sd_vae_lobe.safetensors,模型文件需要按照 Comfy 的要求放入对应文件夹。"
+ "description": "自定义 SDXL 图生图模型,模型文件名请使用 custom_sd_lobe.safetensors,如有 VAE 请使用 custom_sd_vae_lobe.safetensors,模型文件需要按照 Comfy 的要求放入对应文件夹"
},
"comfyui/stable-diffusion-refiner": {
- "displayName": "SDXL Image-to-Image",
"description": "SDXL 图生图模型,基于输入图像进行高质量的图像到图像转换,支持风格迁移、图像修复和创意变换。"
},
"comfyui/stable-diffusion-xl": {
- "displayName": "SDXL Text-to-Image",
- "description": "SDXL 文生图模型,支持1024x1024高分辨率文本到图像生成,提供更好的图像质量和细节表现。支持负向提示。"
+ "description": "SDXL 文生图模型,支持1024x1024高分辨率文本到图像生成,提供更好的图像质量和细节表现"
},
"command": {
"description": "一个遵循指令的对话模型,在语言任务中表现出高质量、更可靠,并且相比我们的基础生成模型具有更长的上下文长度。"
@@ -3057,9 +3050,6 @@
"sonar-reasoning-pro": {
"description": "支持搜索上下文的高级搜索产品,支持高级查询和跟进。"
},
- "stable-diffusion-15": {
- "description": "Stable Diffusion 1.5 文生图模型,经典的512x512分辨率文本到图像生成,适合快速原型和创意实验。支持负向提示。"
- },
"stable-diffusion-3-medium": {
"description": "由 Stability AI 推出的最新文生图大模型。这一版本在继承了前代的优点上,对图像质量、文本理解和风格多样性等方面进行了显著改进,能够更准确地解读复杂的自然语言提示,并生成更为精确和多样化的图像。"
},
@@ -3069,15 +3059,6 @@
"stable-diffusion-3.5-large-turbo": {
"description": "stable-diffusion-3.5-large-turbo 是在 stable-diffusion-3.5-large 的基础上采用对抗性扩散蒸馏(ADD)技术的模型,具备更快的速度。"
},
- "stable-diffusion-custom": {
- "description": "自定义 SD 文生图模型,支持社区和第三方训练的 Stable Diffusion 文本到图像模型,提供灵活的参数配置。"
- },
- "stable-diffusion-custom-refiner": {
- "description": "自定义 SD 图生图模型,支持社区和第三方训练的 Stable Diffusion 图像到图像模型,适合专业图像处理工作流。"
- },
- "stable-diffusion-refiner": {
- "description": "SDXL 图生图模型,基于输入图像进行高质量的图像到图像转换,支持风格迁移、图像修复和创意变换。"
- },
"stable-diffusion-v1.5": {
"description": "stable-diffusion-v1.5 是以 stable-diffusion-v1.2 检查点的权重进行初始化,并在 \"laion-aesthetics v2 5+\" 上以 512x512 的分辨率进行了595k步的微调,减少了 10% 的文本条件化,以提高无分类器的引导采样。"
},
diff --git a/locales/zh-TW/error.json b/locales/zh-TW/error.json
index f9ad948044b..bdbfbc21367 100644
--- a/locales/zh-TW/error.json
+++ b/locales/zh-TW/error.json
@@ -81,6 +81,12 @@
"522": "很抱歉,伺服器連接超時,未能及時響應您的請求。可能是網路不穩定或伺服器暫時無法訪問。請稍後再試,我們正在努力恢復服務。",
"524": "很抱歉,伺服器在等回覆時超時了,可能是因為回應太慢,請稍後再試",
"AgentRuntimeError": "Lobe 語言模型運行時執行出錯,請根據以下信息排查或重試",
+ "ComfyUIBizError": "請求 ComfyUI 服務時發生錯誤,請根據以下資訊進行排查或重試",
+ "ComfyUIEmptyResult": "ComfyUI 未產生任何圖像,請檢查模型設定或重試",
+ "ComfyUIModelError": "ComfyUI 模型載入失敗,請確認模型檔案是否存在",
+ "ComfyUIServiceUnavailable": "無法連接 ComfyUI 服務,請確認 ComfyUI 是否正常運行,或檢查服務位址設定是否正確",
+ "ComfyUIUploadFailed": "ComfyUI 圖片上傳失敗,請檢查伺服器連線或重試",
+ "ComfyUIWorkflowError": "ComfyUI 工作流程執行失敗,請檢查工作流程設定",
"ConnectionCheckFailed": "請求返回為空,請檢查 API 代理地址末尾是否未包含 `/v1`",
"CreateMessageError": "很抱歉,訊息未能正常發送,請複製內容後重新發送,刷新頁面後此訊息將不會保留",
"ExceededContextWindow": "當前請求內容超出模型可處理的長度,請減少內容量後重試",
@@ -100,6 +106,7 @@
"InvalidAccessCode": "密碼不正確或為空,請輸入正確的訪問密碼,或添加自定義 API 金鑰",
"InvalidBedrockCredentials": "Bedrock 驗證未通過,請檢查 AccessKeyId/SecretAccessKey 後重試",
"InvalidClerkUser": "很抱歉,你當前尚未登錄,請先登錄或註冊帳號後繼續操作",
+ "InvalidComfyUIArgs": "ComfyUI 設定不正確,請檢查 ComfyUI 設定後重試",
"InvalidGithubToken": "Github 個人存取權杖不正確或為空,請檢查 Github 個人存取權杖後再試一次",
"InvalidOllamaArgs": "Ollama 配置不正確,請檢查 Ollama 配置後重試",
"InvalidProviderAPIKey": "{{provider}} API 金鑰不正確或為空,請檢查 {{provider}} API 金鑰後重試",
@@ -149,6 +156,11 @@
"title": "使用自定義 {{name}} API 金鑰"
},
"closeMessage": "關閉提示",
+ "comfyui": {
+ "description": "請輸入正確的 {{name}} 認證資訊即可開始生成圖像",
+ "modifyBaseUrl": "修改 Comfy UI 服務位址",
+ "title": "確認你的 {{name}} 認證資訊"
+ },
"confirm": "確認並重試",
"oauth": {
"description": "管理員已開啟統一登錄認證,點擊下方按鈕登錄,即可解鎖應用",
diff --git a/locales/zh-TW/modelProvider.json b/locales/zh-TW/modelProvider.json
index d48557c41f8..8eb61977cbe 100644
--- a/locales/zh-TW/modelProvider.json
+++ b/locales/zh-TW/modelProvider.json
@@ -82,6 +82,58 @@
"title": "Cloudflare 帳戶 ID / API 位址"
}
},
+ "comfyui": {
+ "apiKey": {
+ "desc": "Bearer Token 認證所需的 API 金鑰",
+ "placeholder": "請輸入 API 金鑰",
+ "required": "請輸入 API 金鑰",
+ "title": "API 金鑰"
+ },
+ "authType": {
+ "desc": "選擇與 ComfyUI 伺服器的認證方式",
+ "options": {
+ "basic": "帳號/密碼",
+ "bearer": "Bearer(API 金鑰)",
+ "custom": "自訂請求標頭",
+ "none": "無需認證"
+ },
+ "placeholder": "請選擇認證類型",
+ "title": "認證類型"
+ },
+ "baseURL": {
+ "desc": "ComfyUI 網頁存取位址",
+ "placeholder": "http://127.0.0.1:8000",
+ "required": "請輸入 ComfyUI 服務位址",
+ "title": "ComfyUI 服務位址"
+ },
+ "checker": {
+ "desc": "測試連線是否正確設定",
+ "title": "連線檢查"
+ },
+ "customHeaders": {
+ "addButton": "新增請求標頭",
+ "deleteTooltip": "刪除此請求標頭",
+ "desc": "自訂認證方式所需的請求標頭,格式為鍵值對",
+ "duplicateKeyError": "請求標頭鍵名不能重複",
+ "keyPlaceholder": "鍵名",
+ "required": "請輸入自訂請求標頭",
+ "title": "自訂請求標頭",
+ "valuePlaceholder": "值"
+ },
+ "password": {
+ "desc": "基本認證所需的密碼",
+ "placeholder": "請輸入密碼",
+ "required": "請輸入密碼",
+ "title": "密碼"
+ },
+ "title": "ComfyUI",
+ "username": {
+ "desc": "基本認證所需的使用者名稱",
+ "placeholder": "請輸入使用者名稱",
+ "required": "請輸入使用者名稱",
+ "title": "使用者名稱"
+ }
+ },
"createNewAiProvider": {
"apiKey": {
"placeholder": "請填寫你的 API Key",
diff --git a/locales/zh-TW/models.json b/locales/zh-TW/models.json
index 23085ae472a..f3077c3041b 100644
--- a/locales/zh-TW/models.json
+++ b/locales/zh-TW/models.json
@@ -866,6 +866,39 @@
"cohere/embed-v4.0": {
"description": "一個允許對文字、影像或混合內容進行分類或轉換為嵌入的模型。"
},
+ "comfyui/flux-dev": {
+ "description": "FLUX.1 Dev - 高品質文生圖模型,10-50 步生成,適合高品質創作與藝術作品生成"
+ },
+ "comfyui/flux-kontext-dev": {
+ "description": "FLUX.1 Kontext-dev - 圖像編輯模型,支援根據文字指令修改現有圖像,支援局部修改與風格轉換"
+ },
+ "comfyui/flux-krea-dev": {
+ "description": "FLUX.1 Krea-dev - 加強安全性的文生圖模型,與 Krea 合作開發,內建安全過濾機制"
+ },
+ "comfyui/flux-schnell": {
+ "description": "FLUX.1 Schnell - 超高速文生圖模型,1-4 步即可生成高品質圖像,適用於即時應用與快速原型製作"
+ },
+ "comfyui/stable-diffusion-15": {
+ "description": "Stable Diffusion 1.5 文生圖模型,經典的 512x512 解析度文字轉圖像生成,適合快速原型與創意實驗"
+ },
+ "comfyui/stable-diffusion-35": {
+ "description": "Stable Diffusion 3.5 新一代文生圖模型,支援 Large 與 Medium 兩個版本,需外部 CLIP 編碼器檔案,提供卓越的圖像品質與提示詞匹配度"
+ },
+ "comfyui/stable-diffusion-35-inclclip": {
+ "description": "Stable Diffusion 3.5 內建 CLIP/T5 編碼器版本,無需外部編碼器檔案,適用於 sd3.5_medium_incl_clips 等模型,資源使用更少"
+ },
+ "comfyui/stable-diffusion-custom": {
+ "description": "自訂 SD 文生圖模型,模型檔名請使用 custom_sd_lobe.safetensors,如有 VAE 請使用 custom_sd_vae_lobe.safetensors,模型檔需依 Comfy 要求放入對應資料夾"
+ },
+ "comfyui/stable-diffusion-custom-refiner": {
+ "description": "自訂 SDXL 圖生圖模型,模型檔名請使用 custom_sd_lobe.safetensors,如有 VAE 請使用 custom_sd_vae_lobe.safetensors,模型檔需依 Comfy 要求放入對應資料夾"
+ },
+ "comfyui/stable-diffusion-refiner": {
+ "description": "SDXL 圖生圖模型,根據輸入圖像進行高品質的圖像轉圖像轉換,支援風格轉換、圖像修復與創意變化"
+ },
+ "comfyui/stable-diffusion-xl": {
+ "description": "SDXL 文生圖模型,支援 1024x1024 高解析度文字轉圖像生成,提供更佳的圖像品質與細節表現"
+ },
"command": {
"description": "一個遵循指令的對話模型,在語言任務中表現出高質量、更可靠,並且相比我們的基礎生成模型具有更長的上下文長度。"
},
diff --git a/locales/zh-TW/providers.json b/locales/zh-TW/providers.json
index d412e8667f2..6d89f70baa7 100644
--- a/locales/zh-TW/providers.json
+++ b/locales/zh-TW/providers.json
@@ -35,9 +35,6 @@
"cerebras": {
"description": "Cerebras 是一個基於其專用 CS-3 系統的 AI 推理平台,旨在提供全球最快、即時回應、高吞吐量的 LLM 服務,專為消除延遲並加速複雜的 AI 工作流程(如即時程式碼生成與代理任務)而設計。"
},
- "cerebras": {
- "description": "Cerebras 是一個基於其專用 CS-3 系統的 AI 推理平台,旨在提供全球最快、即時回應、高吞吐量的 LLM 服務,專為消除延遲並加速複雜的 AI 工作流程(如即時程式碼生成與代理任務)而設計。"
- },
"cloudflare": {
"description": "在 Cloudflare 的全球網絡上運行由無伺服器 GPU 驅動的機器學習模型。"
},
@@ -47,6 +44,9 @@
"cometapi": {
"description": "CometAPI 是一個提供多種前沿大型模型介面的服務平台,支援 OpenAI、Anthropic、Google 及更多,適合多樣化的開發和應用需求。使用者可根據自身需求靈活選擇最優的模型和價格,助力 AI 體驗的提升。"
},
+ "comfyui": {
+ "description": "強大的開源圖像、影片、音訊生成工作流程引擎,支援 SD、FLUX、Qwen、Hunyuan、WAN 等先進模型,提供節點化工作流程編輯與私有化部署能力"
+ },
"deepseek": {
"description": "DeepSeek 是一家專注於人工智慧技術研究和應用的公司,其最新模型 DeepSeek-V2.5 融合了通用對話和代碼處理能力,並在人類偏好對齊、寫作任務和指令跟隨等方面實現了顯著提升。"
},
diff --git a/package.json b/package.json
index 938ce5d2966..8774f05520c 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@lobehub/chat",
- "version": "1.141.2",
+ "version": "1.141.4",
"description": "Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.",
"keywords": [
"framework",
diff --git a/packages/agent-runtime/src/core/runtime.ts b/packages/agent-runtime/src/core/runtime.ts
index defab1b8529..f0e85ee158d 100644
--- a/packages/agent-runtime/src/core/runtime.ts
+++ b/packages/agent-runtime/src/core/runtime.ts
@@ -256,15 +256,11 @@ export class AgentRuntime {
}
/**
- * Create a new agent state with flexible initialization
- * @param partialState - Partial state to override defaults
- * @returns Complete AgentState with defaults filled in
+ * Create default usage statistics structure
+ * @returns Default Usage object with all counters set to 0
*/
- static createInitialState(partialState: Partial & { sessionId: string }): AgentState {
- const now = new Date().toISOString();
-
- // Default usage statistics
- const defaultUsage: Usage = {
+ static createDefaultUsage(): Usage {
+ return {
humanInteraction: {
approvalRequests: 0,
promptRequests: 0,
@@ -282,9 +278,15 @@ export class AgentRuntime {
totalTimeMs: 0,
},
};
+ }
- // Default cost structure
- const defaultCost: Cost = {
+ /**
+ * Create default cost structure
+ * @returns Default Cost object with all costs set to 0
+ */
+ static createDefaultCost(): Cost {
+ const now = new Date().toISOString();
+ return {
calculatedAt: now,
currency: 'USD',
llm: {
@@ -299,16 +301,25 @@ export class AgentRuntime {
},
total: 0,
};
+ }
+
+ /**
+ * Create a new agent state with flexible initialization
+ * @param partialState - Partial state to override defaults
+ * @returns Complete AgentState with defaults filled in
+ */
+ static createInitialState(partialState: Partial & { sessionId: string }): AgentState {
+ const now = new Date().toISOString();
return {
- cost: defaultCost,
+ cost: AgentRuntime.createDefaultCost(),
// Default values
createdAt: now,
lastModified: now,
messages: [],
status: 'idle',
stepCount: 0,
- usage: defaultUsage,
+ usage: AgentRuntime.createDefaultUsage(),
// User provided values override defaults
...partialState,
};
diff --git a/packages/agent-runtime/src/types/instruction.ts b/packages/agent-runtime/src/types/instruction.ts
index a2b3e9f59b6..517361c05fc 100644
--- a/packages/agent-runtime/src/types/instruction.ts
+++ b/packages/agent-runtime/src/types/instruction.ts
@@ -1,3 +1,5 @@
+import type { ModelUsage } from '@lobechat/types';
+
import type { FinishReason } from './event';
import { AgentState, ToolRegistry, ToolsCalling } from './state';
import type { Cost, CostCalculationContext, Usage } from './usage';
@@ -26,6 +28,8 @@ export interface AgentRuntimeContext {
status: AgentState['status'];
stepCount: number;
};
+ /** Usage statistics from the current step (if applicable) */
+ stepUsage?: ModelUsage;
}
/**
diff --git a/packages/const/src/currency.ts b/packages/const/src/currency.ts
index 68a2ea9c950..414118be7b0 100644
--- a/packages/const/src/currency.ts
+++ b/packages/const/src/currency.ts
@@ -1,4 +1,4 @@
-// in 2025.01.26
-export const USD_TO_CNY = 7.24;
+// in 2025.10.22
+export const USD_TO_CNY = 7.12;
export const CREDITS_PER_DOLLAR = 1_000_000;
diff --git a/packages/model-runtime/src/core/usageConverters/utils/computeChatCost.test.ts b/packages/model-runtime/src/core/usageConverters/utils/computeChatCost.test.ts
index 826b68777d7..87809593fcc 100644
--- a/packages/model-runtime/src/core/usageConverters/utils/computeChatCost.test.ts
+++ b/packages/model-runtime/src/core/usageConverters/utils/computeChatCost.test.ts
@@ -1,3 +1,4 @@
+import { Pricing } from 'model-bank';
import anthropicChatModels from 'model-bank/anthropic';
import googleChatModels from 'model-bank/google';
import lobehubChatModels from 'model-bank/lobehub';
@@ -157,13 +158,13 @@ describe('computeChatPricing', () => {
// Verify cached tokens (over 200k threshold, use higher tier rate)
const cached = breakdown.find((item) => item.unit.name === 'textInput_cacheRead');
expect(cached?.quantity).toBe(253_891);
- expect(cached?.credits).toBeCloseTo(158_681.875, 6);
+ expect(cached?.credits).toBe(158_682); // ceil(158681.875) = 158682
expect(cached?.segments).toEqual([{ quantity: 253_891, rate: 0.625, credits: 158_681.875 }]);
// Verify input cache miss tokens (calculated as totalInputTokens - inputCachedTokens = 4275)
const input = breakdown.find((item) => item.unit.name === 'textInput');
expect(input?.quantity).toBe(4_275); // 258_166 - 253_891 = 4_275 (cache miss)
- expect(input?.credits).toBeCloseTo(5_343.75, 6);
+ expect(input?.credits).toBe(5_344); // ceil(5343.75) = 5344
expect(input?.segments).toEqual([{ quantity: 4_275, rate: 1.25, credits: 5_343.75 }]);
// Verify output tokens include reasoning tokens (under 200k threshold, use lower tier rate)
@@ -173,7 +174,7 @@ describe('computeChatPricing', () => {
expect(output?.segments).toEqual([{ quantity: 3_063, rate: 10, credits: 30_630 }]);
// Verify corrected totals (no double counting of cached tokens)
- expect(totalCredits).toBe(194_656); // ceil(158681.875 + 5343.75 + 30630) = 194656
+ expect(totalCredits).toBe(194_656); // 158682 + 5344 + 30630 = 194656
expect(totalCost).toBeCloseTo(0.194656, 6); // 194656 credits = $0.194656
});
@@ -274,13 +275,13 @@ describe('computeChatPricing', () => {
const cached = breakdown.find((item) => item.unit.name === 'textInput_cacheRead');
expect(cached?.quantity).toBe(257_955);
- expect(cached?.credits).toBeCloseTo(161_221.875, 6);
+ expect(cached?.credits).toBe(161_222); // ceil(161221.875) = 161222
expect(cached?.segments).toEqual([{ quantity: 257_955, rate: 0.625, credits: 161_221.875 }]);
// Verify input cache miss tokens (under 200k tier, use lower rate)
const input = breakdown.find((item) => item.unit.name === 'textInput');
expect(input?.quantity).toBe(5_005);
- expect(input?.credits).toBeCloseTo(6_256.25, 6);
+ expect(input?.credits).toBe(6_257); // ceil(6256.25) = 6257
expect(input?.segments).toEqual([{ quantity: 5_005, rate: 1.25, credits: 6_256.25 }]);
// Verify output tokens (under 200k threshold, use lower tier rate)
@@ -290,7 +291,7 @@ describe('computeChatPricing', () => {
expect(output?.segments).toEqual([{ quantity: 1_744, rate: 10, credits: 17_440 }]);
// Verify totals match actual billing log
- expect(totalCredits).toBe(184_919); // ceil(161221.875 + 6256.25 + 17440) = 184919
+ expect(totalCredits).toBe(184_919); // 161222 + 6257 + 17440 = 184919
expect(totalCost).toBeCloseTo(0.184919, 6); // 184919 credits = $0.184919
});
});
@@ -468,16 +469,16 @@ describe('computeChatPricing', () => {
// Verify cached tokens (discounted rate)
const cached = breakdown.find((item) => item.unit.name === 'textInput_cacheRead');
expect(cached?.quantity).toBe(1183);
- expect(cached?.credits).toBeCloseTo(354.9, 6);
+ expect(cached?.credits).toBe(355); // 354.9 rounded = 355
// Verify cache write tokens
const cacheWrite = breakdown.find((item) => item.unit.name === 'textInput_cacheWrite');
expect(cacheWrite?.quantity).toBe(458);
expect(cacheWrite?.lookupKey).toBe('5m');
- expect(cacheWrite?.credits).toBeCloseTo(1_717.5, 6);
+ expect(cacheWrite?.credits).toBe(1_718); // 1717.5 rounded = 1718
// Verify totals match the actual billing log
- expect(totalCredits).toBe(9_915); // ceil(12 + 7830 + 354.9 + 1717.5) = 9915
+ expect(totalCredits).toBe(9_915); // 12 + 7830 + 355 + 1718 = 9915
expect(totalCost).toBeCloseTo(0.009915, 6); // 9915 credits = $0.009915
});
@@ -516,15 +517,15 @@ describe('computeChatPricing', () => {
// Verify cached tokens (discounted rate)
const cached = breakdown.find((item) => item.unit.name === 'textInput_cacheRead');
expect(cached?.quantity).toBe(3021);
- expect(cached?.credits).toBeCloseTo(906.3, 6);
+ expect(cached?.credits).toBe(907); // ceil(906.3) = 907
// Verify cache write tokens (fixed strategy in lobehub model)
const cacheWrite = breakdown.find((item) => item.unit.name === 'textInput_cacheWrite');
expect(cacheWrite?.quantity).toBe(1697);
- expect(cacheWrite?.credits).toBeCloseTo(6_363.75, 6);
+ expect(cacheWrite?.credits).toBe(6_364); // ceil(6363.75) = 6364
// Verify totals match the actual billing log
- expect(totalCredits).toBe(49_916); // ceil(30 + 42615 + 906.3 + 6363.75) = 49916
+ expect(totalCredits).toBe(49_916); // 30 + 42615 + 907 + 6364 = 49916
expect(totalCost).toBeCloseTo(0.049916, 6); // 49916 credits = $0.049916
});
});
@@ -682,4 +683,196 @@ describe('computeChatPricing', () => {
expect(result?.totalCost).toBe(0);
});
});
+
+ describe('Currency Conversion', () => {
+ describe('DeepSeek (CNY pricing)', () => {
+ it('converts CNY to USD for deepseek-chat without cache', () => {
+ // DeepSeek pricing in CNY
+ const pricing = {
+ currency: 'CNY',
+ units: [
+ { name: 'textInput', rate: 2, strategy: 'fixed', unit: 'millionTokens' },
+ { name: 'textOutput', rate: 3, strategy: 'fixed', unit: 'millionTokens' },
+ ],
+ };
+
+ const usage: ModelTokensUsage = {
+ inputCacheMissTokens: 1000,
+ inputTextTokens: 1000,
+ outputTextTokens: 500,
+ totalInputTokens: 1000,
+ totalOutputTokens: 500,
+ totalTokens: 1500,
+ };
+
+ // Use fixed exchange rate for testing
+ const result = computeChatCost(pricing as any, usage, { usdToCnyRate: 5 });
+ expect(result).toBeDefined();
+ expect(result?.issues).toHaveLength(0);
+
+ const { breakdown, totalCost, totalCredits } = result!;
+ expect(breakdown).toHaveLength(2); // Input and output
+
+ // Verify input tokens
+ // 1000 tokens * 2 CNY/M = 2000 raw CNY-credits
+ // 2000 / 5 = 400 USD-credits
+ const input = breakdown.find((item) => item.unit.name === 'textInput');
+ expect(input?.quantity).toBe(1000);
+ expect(input?.credits).toBe(400); // USD credits
+
+ // Verify output tokens
+ // 500 tokens * 3 CNY/M = 1500 raw CNY-credits
+ // 1500 / 5 = 300 USD-credits
+ const output = breakdown.find((item) => item.unit.name === 'textOutput');
+ expect(output?.quantity).toBe(500);
+ expect(output?.credits).toBe(300); // USD credits
+
+ // Verify totals with CNY to USD conversion
+ // Total USD credits = 400 + 300 = 700
+ // totalCredits = ceil(700) = 700
+ expect(totalCredits).toBe(700);
+
+ // totalCost = 700 / 1_000_000 = 0.0007 USD
+ expect(totalCost).toBeCloseTo(0.0007, 6);
+ });
+
+ it('converts CNY to USD for deepseek-chat with cache tokens', () => {
+ const pricing = {
+ currency: 'CNY',
+ units: [
+ { name: 'textInput_cacheRead', rate: 0.2, strategy: 'fixed', unit: 'millionTokens' },
+ { name: 'textInput', rate: 2, strategy: 'fixed', unit: 'millionTokens' },
+ { name: 'textOutput', rate: 3, strategy: 'fixed', unit: 'millionTokens' },
+ ],
+ } satisfies Pricing;
+
+ const usage: ModelTokensUsage = {
+ inputCacheMissTokens: 785,
+ inputCachedTokens: 2752,
+ inputTextTokens: 3537,
+ outputTextTokens: 77,
+ totalInputTokens: 3537,
+ totalOutputTokens: 77,
+ totalTokens: 3614,
+ };
+
+ const result = computeChatCost(pricing, usage, { usdToCnyRate: 5 });
+ expect(result).toBeDefined();
+ expect(result?.issues).toHaveLength(0);
+
+ const { breakdown, totalCost, totalCredits } = result!;
+ expect(breakdown).toHaveLength(3); // Cache read, input, and output
+
+ // Verify cache miss tokens
+ // 785 tokens * 2 CNY/M = 1570 raw CNY-credits
+ // 1570 / 5 = 314 USD-credits
+ const input = breakdown.find((item) => item.unit.name === 'textInput');
+ expect(input?.quantity).toBe(785);
+ expect(input?.credits).toBe(314); // USD credits
+
+ // Verify cached tokens
+ // 2752 tokens * 0.2 CNY/M = 550.4 raw CNY-credits
+ // 550.4 / 5 = 110.08 -> ceil(110.08) = 111 USD-credits
+ const cached = breakdown.find((item) => item.unit.name === 'textInput_cacheRead');
+ expect(cached?.quantity).toBe(2752);
+ expect(cached?.credits).toBe(111); // USD credits
+
+ // Verify output tokens
+ // 77 tokens * 3 CNY/M = 231 raw CNY-credits
+ // 231 / 5 = 46.2 -> ceil(46.2) = 47 USD-credits
+ const output = breakdown.find((item) => item.unit.name === 'textOutput');
+ expect(output?.quantity).toBe(77);
+ expect(output?.credits).toBe(47); // USD credits
+
+ // Verify totals with CNY to USD conversion
+ // Total USD credits = 314 + 111 + 47 = 472
+ expect(totalCredits).toBe(472);
+
+ // totalCost = 472 / 1_000_000 = 0.000472 USD
+ expect(totalCost).toBe(0.000472);
+ });
+
+ it('converts CNY to USD for large token usage', () => {
+ const pricing = {
+ currency: 'CNY',
+ units: [
+ { name: 'textInput', rate: 2, strategy: 'fixed', unit: 'millionTokens' },
+ { name: 'textOutput', rate: 3, strategy: 'fixed', unit: 'millionTokens' },
+ ],
+ };
+
+ const usage: ModelTokensUsage = {
+ inputTextTokens: 1_000_000, // 1M input tokens
+ outputTextTokens: 500_000, // 500K output tokens
+ };
+
+ const result = computeChatCost(pricing as any, usage, { usdToCnyRate: 5 });
+ expect(result).toBeDefined();
+
+ const { totalCost, totalCredits } = result!;
+
+ // Input: 1M * 2 CNY = 2M CNY-credits = 2M / 5 = 400000 USD-credits
+ // Output: 500K * 3 CNY = 1.5M CNY-credits = 1.5M / 5 = 300000 USD-credits
+ // Total: 700000 USD-credits
+ expect(totalCredits).toBe(700_000);
+
+ // totalCost = 700000 / 1_000_000 = 0.7 USD
+ expect(totalCost).toBe(0.7);
+ });
+ });
+
+ describe('USD pricing (no conversion)', () => {
+ it('does not convert USD pricing', () => {
+ const pricing = {
+ currency: 'USD',
+ units: [
+ { name: 'textInput', rate: 2, strategy: 'fixed', unit: 'millionTokens' },
+ { name: 'textOutput', rate: 8, strategy: 'fixed', unit: 'millionTokens' },
+ ],
+ };
+
+ const usage: ModelTokensUsage = {
+ inputTextTokens: 1000,
+ outputTextTokens: 500,
+ };
+
+ const result = computeChatCost(pricing as any, usage);
+ expect(result).toBeDefined();
+
+ const { totalCost, totalCredits } = result!;
+
+ // Input: 1000 * 2 = 2000 USD-credits
+ // Output: 500 * 8 = 4000 USD-credits
+ // Total: 6000 USD-credits
+ expect(totalCredits).toBe(6000);
+
+ // totalCost = 6000 / 1_000_000 = 0.006 USD
+ expect(totalCost).toBeCloseTo(0.006, 6);
+ });
+
+ it('defaults to USD when currency is not specified', () => {
+ const pricing = {
+ // No currency field
+ units: [
+ { name: 'textInput', rate: 2, strategy: 'fixed', unit: 'millionTokens' },
+ { name: 'textOutput', rate: 8, strategy: 'fixed', unit: 'millionTokens' },
+ ],
+ };
+
+ const usage: ModelTokensUsage = {
+ inputTextTokens: 1000,
+ outputTextTokens: 500,
+ };
+
+ const result = computeChatCost(pricing as any, usage);
+ expect(result).toBeDefined();
+
+ const { totalCost, totalCredits } = result!;
+
+ // Should be treated as USD (no conversion)
+ expect(totalCredits).toBe(6000);
+ expect(totalCost).toBeCloseTo(0.006, 6);
+ });
+ });
+ });
});
diff --git a/packages/model-runtime/src/core/usageConverters/utils/computeChatCost.ts b/packages/model-runtime/src/core/usageConverters/utils/computeChatCost.ts
index 2746d1d3fd0..008d84f7464 100644
--- a/packages/model-runtime/src/core/usageConverters/utils/computeChatCost.ts
+++ b/packages/model-runtime/src/core/usageConverters/utils/computeChatCost.ts
@@ -1,5 +1,5 @@
/* eslint-disable sort-keys-fix/sort-keys-fix */
-import { CREDITS_PER_DOLLAR } from '@lobechat/const/currency';
+import { CREDITS_PER_DOLLAR, USD_TO_CNY } from '@lobechat/const/currency';
import debug from 'debug';
import {
FixedPricingUnit,
@@ -17,6 +17,7 @@ const log = debug('lobe-cost:computeChatPricing');
export interface PricingUnitBreakdown {
cost: number;
credits: number;
+ currency: string | 'USD' | 'CNY';
/**
* For lookup strategies we expose the resolved key.
*/
@@ -39,6 +40,11 @@ export interface ComputeChatCostOptions {
* Input parameters used by lookup strategies (e.g. ttl, thinkingMode).
*/
lookupParams?: Record;
+ /**
+ * Exchange rate for CNY to USD conversion. Defaults to USD_TO_CNY constant.
+ * Useful for testing with fixed exchange rates.
+ */
+ usdToCnyRate?: number;
}
export interface PricingComputationResult {
@@ -98,6 +104,27 @@ const UNIT_QUANTITY_RESOLVERS: Partial usage.outputAudioTokens,
};
+/**
+ * Convert currency-specific credits to USD credits and ceil to integer
+ * @param credits - Credits in the original currency
+ * @param currency - The currency of the credits ('USD' or 'CNY')
+ * @param usdToCnyRate - Exchange rate for CNY to USD conversion (defaults to USD_TO_CNY constant)
+ * @returns USD-equivalent credits (ceiled to integer)
+ */
+const toUSDCredits = (
+ credits: number,
+ currency: string = 'USD',
+ usdToCnyRate = USD_TO_CNY,
+): number => {
+ const usdCredits = currency === 'CNY' ? credits / usdToCnyRate : credits;
+ return Math.ceil(usdCredits);
+};
+
+/**
+ * Convert credits to USD dollar amount
+ * @param credits - USD credits
+ * @returns USD dollar amount
+ */
const creditsToUSD = (credits: number) => credits / CREDITS_PER_DOLLAR;
/**
@@ -221,6 +248,8 @@ export const computeChatCost = (
const breakdown: PricingUnitBreakdown[] = [];
const issues: PricingComputationIssue[] = [];
+ const currency = pricing.currency || 'USD';
+ const usdToCnyRate = options?.usdToCnyRate ?? USD_TO_CNY;
for (const unit of pricing.units) {
const quantity = resolveQuantity(unit, usage);
@@ -231,11 +260,13 @@ export const computeChatCost = (
throw new Error(`Unsupported chat pricing unit: ${unit.unit}`);
const fixedUnit = unit as FixedPricingUnit;
- const credits = computeFixedCredits(fixedUnit, quantity);
+ const rawCredits = computeFixedCredits(fixedUnit, quantity);
+ const usdCredits = toUSDCredits(rawCredits, currency, usdToCnyRate);
breakdown.push({
- cost: creditsToUSD(credits),
- credits,
+ cost: creditsToUSD(usdCredits),
+ credits: usdCredits,
quantity,
+ currency,
unit,
});
continue;
@@ -243,11 +274,13 @@ export const computeChatCost = (
if (unit.strategy === 'tiered') {
const tieredUnit = unit as TieredPricingUnit;
- const { credits, segments } = computeTieredCredits(tieredUnit, quantity);
+ const { credits: rawCredits, segments } = computeTieredCredits(tieredUnit, quantity);
+ const usdCredits = toUSDCredits(rawCredits, currency, usdToCnyRate);
breakdown.push({
- cost: creditsToUSD(credits),
- credits,
+ cost: creditsToUSD(usdCredits),
+ credits: usdCredits,
quantity,
+ currency,
segments,
unit,
});
@@ -257,18 +290,20 @@ export const computeChatCost = (
if (unit.strategy === 'lookup') {
const lookupUnit = unit as LookupPricingUnit;
const {
- credits,
+ credits: rawCredits,
key,
issues: lookupIssue,
} = computeLookupCredits(lookupUnit, quantity, options);
if (lookupIssue) issues.push(lookupIssue);
+ const usdCredits = toUSDCredits(rawCredits, currency, usdToCnyRate);
breakdown.push({
- cost: creditsToUSD(credits),
- credits,
+ cost: creditsToUSD(usdCredits),
+ credits: usdCredits,
lookupKey: key,
quantity,
+ currency,
unit,
});
continue;
@@ -277,9 +312,10 @@ export const computeChatCost = (
issues.push({ reason: 'Unsupported pricing strategy', unit });
}
+ // Sum up USD credits from all breakdown items
const rawTotalCredits = breakdown.reduce((sum, item) => sum + item.credits, 0);
const totalCredits = Math.ceil(rawTotalCredits);
- // !: totalCredits has been uniformly rounded up to integer credits, divided by CREDITS_PER_DOLLAR naturally retains only 6 decimal places, no additional processing needed
+ // !: totalCredits has been uniformly rounded up to integer USD credits, divided by CREDITS_PER_DOLLAR naturally retains only 6 decimal places, no additional processing needed
const totalCost = creditsToUSD(totalCredits);
log(`computeChatPricing breakdown: ${JSON.stringify(breakdown, null, 2)}`);
diff --git a/src/app/__tests__/desktop.routes.test.ts b/src/app/__tests__/desktop.routes.test.ts
new file mode 100644
index 00000000000..d8da5789d67
--- /dev/null
+++ b/src/app/__tests__/desktop.routes.test.ts
@@ -0,0 +1,18 @@
+import fs from 'node:fs';
+import { resolve } from 'node:path';
+import { describe, expect, it } from 'vitest';
+
+describe('Desktop Routes', () => {
+ const appRootDir = resolve(__dirname, '..');
+
+ const desktopRoutes = [
+ '(backend)/trpc/desktop/[trpc]/route.ts',
+ 'desktop/devtools/page.tsx',
+ 'desktop/layout.tsx',
+ ];
+
+ it.each(desktopRoutes)('should have file: %s', (route) => {
+ const filePath = resolve(appRootDir, route);
+ expect(fs.existsSync(filePath)).toBe(true);
+ });
+});
diff --git a/src/features/FileManager/FileList/MasonryFileItem/index.tsx b/src/features/FileManager/FileList/MasonryFileItem/index.tsx
index 0c5bda28fcc..33e5a65b0b4 100644
--- a/src/features/FileManager/FileList/MasonryFileItem/index.tsx
+++ b/src/features/FileManager/FileList/MasonryFileItem/index.tsx
@@ -4,7 +4,7 @@ import { createStyles } from 'antd-style';
import { isNull } from 'lodash-es';
import { FileBoxIcon } from 'lucide-react';
import { useRouter } from 'next/navigation';
-import { memo, useEffect, useState } from 'react';
+import { memo, useEffect, useRef, useState } from 'react';
import { useTranslation } from 'react-i18next';
import { Flexbox } from 'react-layout-kit';
@@ -304,9 +304,37 @@ const MasonryFileItem = memo(
const isImage = fileType && IMAGE_TYPES.has(fileType);
const isMarkdown = isMarkdownFile(name, fileType);
- // Fetch markdown content
+ const cardRef = useRef(null);
+ const [isInView, setIsInView] = useState(false);
+
+ // Use Intersection Observer to detect when card enters viewport
+ useEffect(() => {
+ if (!cardRef.current) return;
+
+ const observer = new IntersectionObserver(
+ (entries) => {
+ entries.forEach((entry) => {
+ if (entry.isIntersecting && !isInView) {
+ setIsInView(true);
+ }
+ });
+ },
+ {
+ rootMargin: '50px', // Start loading slightly before entering viewport
+ threshold: 0.1,
+ },
+ );
+
+ observer.observe(cardRef.current);
+
+ return () => {
+ observer.disconnect();
+ };
+ }, [isInView]);
+
+ // Fetch markdown content only when in viewport
useEffect(() => {
- if (isMarkdown && url) {
+ if (isMarkdown && url && isInView && !markdownContent) {
setIsLoadingMarkdown(true);
fetch(url)
.then((res) => res.text())
@@ -323,10 +351,10 @@ const MasonryFileItem = memo(
setIsLoadingMarkdown(false);
});
}
- }, [isMarkdown, url]);
+ }, [isMarkdown, url, isInView, markdownContent]);
return (
-
+
{
@@ -355,26 +383,29 @@ const MasonryFileItem = memo(
)}
-
setImageLoaded(false)}
- onLoad={() => setImageLoaded(true)}
- preview={{
- src: url,
- }}
- src={url}
- style={{
- display: 'block',
- height: 'auto',
- opacity: imageLoaded ? 1 : 0,
- transition: 'opacity 0.3s',
- width: '100%',
- }}
- wrapperStyle={{
- display: 'block',
- width: '100%',
- }}
- />
+ {isInView && (
+ setImageLoaded(false)}
+ onLoad={() => setImageLoaded(true)}
+ preview={{
+ src: url,
+ }}
+ src={url}
+ style={{
+ display: 'block',
+ height: 'auto',
+ opacity: imageLoaded ? 1 : 0,
+ transition: 'opacity 0.3s',
+ width: '100%',
+ }}
+ wrapperStyle={{
+ display: 'block',
+ width: '100%',
+ }}
+ />
+ )}
{/* Hover overlay */}
{name}
diff --git a/src/features/FileManager/FileList/index.tsx b/src/features/FileManager/FileList/index.tsx
index 1b0cf0ce375..2763bf46ff2 100644
--- a/src/features/FileManager/FileList/index.tsx
+++ b/src/features/FileManager/FileList/index.tsx
@@ -5,7 +5,7 @@ import { VirtuosoMasonry } from '@virtuoso.dev/masonry';
import { createStyles } from 'antd-style';
import { useQueryState } from 'nuqs';
import { rgba } from 'polished';
-import React, { memo, useState } from 'react';
+import React, { memo, useMemo, useState } from 'react';
import { useTranslation } from 'react-i18next';
import { Center, Flexbox } from 'react-layout-kit';
import { Virtuoso } from 'react-virtuoso';
@@ -118,6 +118,16 @@ const FileList = memo
(({ knowledgeBaseId, category }) => {
}
}, [data]);
+ // Memoize context object to avoid recreating on every render
+ const masonryContext = useMemo(
+ () => ({
+ knowledgeBaseId,
+ selectFileIds,
+ setSelectedFileIds,
+ }),
+ [knowledgeBaseId, selectFileIds],
+ );
+
return !isLoading && data?.length === 0 ? (
) : (
@@ -195,9 +205,8 @@ const FileList = memo(({ knowledgeBaseId, category }) => {
{
.mockResolvedValue({ id: 'file-1', url: 'http://example.com/file-1' });
const refreshSpy = vi.spyOn(result.current, 'refreshFileList').mockResolvedValue();
const dispatchSpy = vi.spyOn(result.current, 'dispatchDockFileList');
+ const parseSpy = vi.spyOn(result.current, 'parseFilesToChunks').mockResolvedValue();
await act(async () => {
await result.current.pushDockFileList([validFile, blacklistedFile]);
@@ -252,6 +253,8 @@ describe('FileManagerActions', () => {
onStatusUpdate: expect.any(Function),
});
expect(refreshSpy).toHaveBeenCalled();
+ // Should auto-parse text files
+ expect(parseSpy).toHaveBeenCalledWith(['file-1'], { skipExist: false });
});
it('should upload files with knowledgeBaseId', async () => {
@@ -263,6 +266,7 @@ describe('FileManagerActions', () => {
.spyOn(result.current, 'uploadWithProgress')
.mockResolvedValue({ id: 'file-1', url: 'http://example.com/file-1' });
vi.spyOn(result.current, 'refreshFileList').mockResolvedValue();
+ vi.spyOn(result.current, 'parseFilesToChunks').mockResolvedValue();
await act(async () => {
await result.current.pushDockFileList([file], 'kb-123');
@@ -287,6 +291,7 @@ describe('FileManagerActions', () => {
return { id: 'file-1', url: 'http://example.com/file-1' };
});
vi.spyOn(result.current, 'refreshFileList').mockResolvedValue();
+ vi.spyOn(result.current, 'parseFilesToChunks').mockResolvedValue();
const dispatchSpy = vi.spyOn(result.current, 'dispatchDockFileList');
await act(async () => {
@@ -302,6 +307,7 @@ describe('FileManagerActions', () => {
const uploadSpy = vi.spyOn(result.current, 'uploadWithProgress');
const refreshSpy = vi.spyOn(result.current, 'refreshFileList');
+ const parseSpy = vi.spyOn(result.current, 'parseFilesToChunks');
await act(async () => {
await result.current.pushDockFileList([]);
@@ -309,6 +315,88 @@ describe('FileManagerActions', () => {
expect(uploadSpy).not.toHaveBeenCalled();
expect(refreshSpy).not.toHaveBeenCalled();
+ expect(parseSpy).not.toHaveBeenCalled();
+ });
+
+ it('should auto-embed files that support chunking', async () => {
+ const { result } = renderHook(() => useStore());
+
+ const textFile = new File(['text content'], 'doc.txt', { type: 'text/plain' });
+ const pdfFile = new File(['pdf content'], 'doc.pdf', { type: 'application/pdf' });
+
+ vi.spyOn(result.current, 'uploadWithProgress')
+ .mockResolvedValueOnce({ id: 'file-1', url: 'http://example.com/file-1' })
+ .mockResolvedValueOnce({ id: 'file-2', url: 'http://example.com/file-2' });
+ vi.spyOn(result.current, 'refreshFileList').mockResolvedValue();
+ const parseSpy = vi.spyOn(result.current, 'parseFilesToChunks').mockResolvedValue();
+
+ await act(async () => {
+ await result.current.pushDockFileList([textFile, pdfFile]);
+ });
+
+ // Should auto-parse both files that support chunking
+ expect(parseSpy).toHaveBeenCalledWith(['file-1', 'file-2'], { skipExist: false });
+ });
+
+ it('should skip auto-embed for unsupported file types (images/videos/audio)', async () => {
+ const { result } = renderHook(() => useStore());
+
+ const imageFile = new File(['image content'], 'image.png', { type: 'image/png' });
+ const videoFile = new File(['video content'], 'video.mp4', { type: 'video/mp4' });
+ const audioFile = new File(['audio content'], 'audio.mp3', { type: 'audio/mpeg' });
+
+ vi.spyOn(result.current, 'uploadWithProgress')
+ .mockResolvedValueOnce({ id: 'file-1', url: 'http://example.com/file-1' })
+ .mockResolvedValueOnce({ id: 'file-2', url: 'http://example.com/file-2' })
+ .mockResolvedValueOnce({ id: 'file-3', url: 'http://example.com/file-3' });
+ vi.spyOn(result.current, 'refreshFileList').mockResolvedValue();
+ const parseSpy = vi.spyOn(result.current, 'parseFilesToChunks').mockResolvedValue();
+
+ await act(async () => {
+ await result.current.pushDockFileList([imageFile, videoFile, audioFile]);
+ });
+
+ // Should not auto-parse unsupported files
+ expect(parseSpy).not.toHaveBeenCalled();
+ });
+
+ it('should auto-embed only supported files in mixed upload', async () => {
+ const { result } = renderHook(() => useStore());
+
+ const textFile = new File(['text content'], 'doc.txt', { type: 'text/plain' });
+ const imageFile = new File(['image content'], 'image.png', { type: 'image/png' });
+ const pdfFile = new File(['pdf content'], 'doc.pdf', { type: 'application/pdf' });
+
+ vi.spyOn(result.current, 'uploadWithProgress')
+ .mockResolvedValueOnce({ id: 'file-1', url: 'http://example.com/file-1' })
+ .mockResolvedValueOnce({ id: 'file-2', url: 'http://example.com/file-2' })
+ .mockResolvedValueOnce({ id: 'file-3', url: 'http://example.com/file-3' });
+ vi.spyOn(result.current, 'refreshFileList').mockResolvedValue();
+ const parseSpy = vi.spyOn(result.current, 'parseFilesToChunks').mockResolvedValue();
+
+ await act(async () => {
+ await result.current.pushDockFileList([textFile, imageFile, pdfFile]);
+ });
+
+ // Should only auto-parse text and pdf files, skip image
+ expect(parseSpy).toHaveBeenCalledWith(['file-1', 'file-3'], { skipExist: false });
+ });
+
+ it('should skip auto-embed when upload fails', async () => {
+ const { result } = renderHook(() => useStore());
+
+ const textFile = new File(['text content'], 'doc.txt', { type: 'text/plain' });
+
+ vi.spyOn(result.current, 'uploadWithProgress').mockResolvedValue(undefined);
+ vi.spyOn(result.current, 'refreshFileList').mockResolvedValue();
+ const parseSpy = vi.spyOn(result.current, 'parseFilesToChunks').mockResolvedValue();
+
+ await act(async () => {
+ await result.current.pushDockFileList([textFile]);
+ });
+
+ // Should not auto-parse when upload returns undefined
+ expect(parseSpy).not.toHaveBeenCalled();
});
});
diff --git a/src/store/file/slices/fileManager/action.ts b/src/store/file/slices/fileManager/action.ts
index 160967db814..f39061e4a9f 100644
--- a/src/store/file/slices/fileManager/action.ts
+++ b/src/store/file/slices/fileManager/action.ts
@@ -11,6 +11,7 @@ import {
uploadFileListReducer,
} from '@/store/file/reducers/uploadFileList';
import { FileListItem, QueryFileListParams } from '@/types/files';
+import { isChunkingUnsupported } from '@/utils/isChunkingUnsupported';
import { FileStore } from '../../store';
import { fileManagerSelectors } from './selectors';
@@ -98,17 +99,28 @@ export const createFileManageSlice: StateCreator<
type: 'addFiles',
});
- const pools = files.map(async (file) => {
- await get().uploadWithProgress({
- file,
- knowledgeBaseId,
- onStatusUpdate: dispatchDockFileList,
- });
+ const uploadResults = await Promise.all(
+ files.map(async (file) => {
+ const result = await get().uploadWithProgress({
+ file,
+ knowledgeBaseId,
+ onStatusUpdate: dispatchDockFileList,
+ });
- await get().refreshFileList();
- });
+ await get().refreshFileList();
- await Promise.all(pools);
+ return { file, fileId: result?.id, fileType: file.type };
+ }),
+ );
+
+ // 2. auto-embed files that support chunking
+ const fileIdsToEmbed = uploadResults
+ .filter(({ fileType, fileId }) => fileId && !isChunkingUnsupported(fileType))
+ .map(({ fileId }) => fileId!);
+
+ if (fileIdsToEmbed.length > 0) {
+ await get().parseFilesToChunks(fileIdsToEmbed, { skipExist: false });
+ }
},
reEmbeddingChunks: async (id) => {