diff --git a/package-lock.json b/package-lock.json index 14402e412..0103bf0b8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@comfyorg/comfyui-frontend", - "version": "1.25.5", + "version": "1.25.11", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@comfyorg/comfyui-frontend", - "version": "1.25.5", + "version": "1.25.11", "license": "GPL-3.0-only", "dependencies": { "@alloc/quick-lru": "^5.2.0", diff --git a/package.json b/package.json index 7458fb373..74b0b6f18 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@comfyorg/comfyui-frontend", "private": true, - "version": "1.25.10", + "version": "1.25.11", "type": "module", "repository": "https://github.com/Comfy-Org/ComfyUI_frontend", "homepage": "https://comfy.org", diff --git a/src/composables/node/useNodePricing.ts b/src/composables/node/useNodePricing.ts index 98c155b92..8604a853e 100644 --- a/src/composables/node/useNodePricing.ts +++ b/src/composables/node/useNodePricing.ts @@ -1332,6 +1332,9 @@ const apiNodeCosts: Record = return 'Token-based' } }, + GeminiImageNode: { + displayPrice: '$0.03 per 1K tokens' + }, // OpenAI nodes OpenAIChatNode: { displayPrice: (node: LGraphNode): string => { diff --git a/src/locales/ar/main.json b/src/locales/ar/main.json index 50511f2de..1d0638fc7 100644 --- a/src/locales/ar/main.json +++ b/src/locales/ar/main.json @@ -34,6 +34,26 @@ "help": "مساعدة", "loading": "جارٍ التحميل", "loadingPanel": "جارٍ تحميل لوحة {panel}...", + "login": "تسجيل الدخول", + "logs": "السجلات", + "micPermissionDenied": "تم رفض إذن الميكروفون", + "migrate": "ترحيل", + "missing": "مفقود", + "moreWorkflows": "المزيد من سير العمل", + "name": "الاسم", + "newFolder": "مجلد جديد", + "next": "التالي", + "no": "لا", + "noAudioRecorded": "لم يتم تسجيل أي صوت", + "noResultsFound": "لم يتم العثور على نتائج", + "noTasksFound": "لم يتم العثور على مهام", + "noTasksFoundMessage": "لا توجد مهام في قائمة الانتظار.", + "noWorkflowsFound": "لم يتم العثور على أي سير عمل.", + "nodes": "العُقَد", + "nodesRunning": "العُقَد قيد التشغيل", + "ok": "موافق", + "openNewIssue": "فتح مشكلة جديدة", + "overwrite": "الكتابة فوق", "preview": "معاينة", "addNodeFilterCondition": "إضافة شرط لتصفية العقد", "architecture": "الهندسة المعمارية", diff --git a/src/locales/es/main.json b/src/locales/es/main.json index dbc666cb6..0dfe3c10d 100644 --- a/src/locales/es/main.json +++ b/src/locales/es/main.json @@ -338,6 +338,7 @@ "micPermissionDenied": "Permiso de micrófono denegado", "migrate": "Migrar", "missing": "Faltante", + "moreWorkflows": "Más flujos de trabajo", "name": "Nombre", "newFolder": "Nueva carpeta", "next": "Siguiente", diff --git a/src/locales/fr/main.json b/src/locales/fr/main.json index c0031836d..7dab231ed 100644 --- a/src/locales/fr/main.json +++ b/src/locales/fr/main.json @@ -338,6 +338,7 @@ "micPermissionDenied": "Permission du microphone refusée", "migrate": "Migrer", "missing": "Manquant", + "moreWorkflows": "Plus de workflows", "name": "Nom", "newFolder": "Nouveau dossier", "next": "Suivant", diff --git a/src/locales/ja/main.json b/src/locales/ja/main.json index 5582ec97c..bd0c30a49 100644 --- a/src/locales/ja/main.json +++ b/src/locales/ja/main.json @@ -338,6 +338,7 @@ "micPermissionDenied": "マイクの許可が拒否されました", "migrate": "移行する", "missing": "不足している", + "moreWorkflows": "さらに多くのワークフロー", "name": "名前", "newFolder": "新しいフォルダー", "next": "次へ", diff --git a/src/locales/ko/main.json b/src/locales/ko/main.json index ce1c32edf..fbee1b01f 100644 --- a/src/locales/ko/main.json +++ b/src/locales/ko/main.json @@ -338,6 +338,7 @@ "micPermissionDenied": "마이크 권한이 거부되었습니다", "migrate": "이전(migrate)", "missing": "누락됨", + "moreWorkflows": "더 많은 워크플로우", "name": "이름", "newFolder": "새 폴더", "next": "다음", diff --git a/src/locales/ru/main.json b/src/locales/ru/main.json index a2333d06a..9d16a1aab 100644 --- a/src/locales/ru/main.json +++ b/src/locales/ru/main.json @@ -338,6 +338,7 @@ "micPermissionDenied": "Доступ к микрофону запрещён", "migrate": "Мигрировать", "missing": "Отсутствует", + "moreWorkflows": "Больше рабочих процессов", "name": "Имя", "newFolder": "Новая папка", "next": "Далее", diff --git a/src/locales/zh-TW/main.json b/src/locales/zh-TW/main.json index e7b79ee5a..5385d5e8d 100644 --- a/src/locales/zh-TW/main.json +++ b/src/locales/zh-TW/main.json @@ -338,6 +338,7 @@ "micPermissionDenied": "麥克風權限被拒絕", "migrate": "遷移", "missing": "缺少", + "moreWorkflows": "更多工作流程", "name": "名稱", "newFolder": "新資料夾", "next": "下一步", diff --git a/src/locales/zh/main.json b/src/locales/zh/main.json index 24b331ab5..fa2b3d185 100644 --- a/src/locales/zh/main.json +++ b/src/locales/zh/main.json @@ -338,6 +338,7 @@ "micPermissionDenied": "麦克风权限被拒绝", "migrate": "迁移", "missing": "缺失", + "moreWorkflows": "更多工作流", "name": "名称", "newFolder": "新文件夹", "next": "下一个", diff --git a/tests-ui/tests/composables/node/useNodePricing.test.ts b/tests-ui/tests/composables/node/useNodePricing.test.ts index f2a150fdb..24a16f7a7 100644 --- a/tests-ui/tests/composables/node/useNodePricing.test.ts +++ b/tests-ui/tests/composables/node/useNodePricing.test.ts @@ -1561,6 +1561,14 @@ describe('useNodePricing', () => { const price = getNodeDisplayPrice(node) expect(price).toBe('Token-based') }) + + it('should return static price for GeminiImageNode', () => { + const { getNodeDisplayPrice } = useNodePricing() + const node = createMockNode('GeminiImageNode') + + const price = getNodeDisplayPrice(node) + expect(price).toBe('$0.03 per 1K tokens') + }) }) describe('Additional RunwayML edge cases', () => {