From 48b1ebf6cc10e8d2bb1b1e15376fb94f6a8b3193 Mon Sep 17 00:00:00 2001 From: Jedrzej Kosinski Date: Tue, 26 Aug 2025 17:53:10 -0700 Subject: [PATCH] Add Gemini Image node static pricing (#5219) * Add Gemini Image node static pricing * Update locales [skip ci] --------- Co-authored-by: github-actions --- src/composables/node/useNodePricing.ts | 3 +++ src/locales/ar/main.json | 1 + src/locales/es/main.json | 1 + src/locales/fr/main.json | 1 + src/locales/ja/main.json | 1 + src/locales/ko/main.json | 1 + src/locales/ru/main.json | 1 + src/locales/zh-TW/main.json | 1 + src/locales/zh/main.json | 1 + tests-ui/tests/composables/node/useNodePricing.test.ts | 8 ++++++++ 10 files changed, 19 insertions(+) diff --git a/src/composables/node/useNodePricing.ts b/src/composables/node/useNodePricing.ts index 53155bbba..724937fa9 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 13a9d331c..82f8d1c16 100644 --- a/src/locales/ar/main.json +++ b/src/locales/ar/main.json @@ -341,6 +341,7 @@ "micPermissionDenied": "تم رفض إذن الميكروفون", "migrate": "ترحيل", "missing": "مفقود", + "moreWorkflows": "المزيد من سير العمل", "name": "الاسم", "newFolder": "مجلد جديد", "next": "التالي", diff --git a/src/locales/es/main.json b/src/locales/es/main.json index 0e80fc9a5..a3ba81946 100644 --- a/src/locales/es/main.json +++ b/src/locales/es/main.json @@ -341,6 +341,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 db878ecf8..cc13f3ac9 100644 --- a/src/locales/fr/main.json +++ b/src/locales/fr/main.json @@ -341,6 +341,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 c6a9608b7..9b3838f69 100644 --- a/src/locales/ja/main.json +++ b/src/locales/ja/main.json @@ -341,6 +341,7 @@ "micPermissionDenied": "マイクの許可が拒否されました", "migrate": "移行する", "missing": "不足している", + "moreWorkflows": "さらに多くのワークフロー", "name": "名前", "newFolder": "新しいフォルダー", "next": "次へ", diff --git a/src/locales/ko/main.json b/src/locales/ko/main.json index 9e1ba1857..b9e5086bd 100644 --- a/src/locales/ko/main.json +++ b/src/locales/ko/main.json @@ -341,6 +341,7 @@ "micPermissionDenied": "마이크 권한이 거부되었습니다", "migrate": "이전(migrate)", "missing": "누락됨", + "moreWorkflows": "더 많은 워크플로우", "name": "이름", "newFolder": "새 폴더", "next": "다음", diff --git a/src/locales/ru/main.json b/src/locales/ru/main.json index c0c4df41e..a6da070ae 100644 --- a/src/locales/ru/main.json +++ b/src/locales/ru/main.json @@ -341,6 +341,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 d8d3dc1e7..f1ec65bb1 100644 --- a/src/locales/zh-TW/main.json +++ b/src/locales/zh-TW/main.json @@ -341,6 +341,7 @@ "micPermissionDenied": "麥克風權限被拒絕", "migrate": "遷移", "missing": "缺少", + "moreWorkflows": "更多工作流程", "name": "名稱", "newFolder": "新資料夾", "next": "下一步", diff --git a/src/locales/zh/main.json b/src/locales/zh/main.json index 2a0482654..eef778289 100644 --- a/src/locales/zh/main.json +++ b/src/locales/zh/main.json @@ -341,6 +341,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 2ee95ab71..ed9d5eacc 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', () => {