@lobehub/lobehub 2.0.0-next.322 → 2.0.0-next.323

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/apps/desktop/src/main/core/infrastructure/UpdaterManager.ts +9 -76
  3. package/apps/desktop/src/main/core/infrastructure/__tests__/UpdaterManager.test.ts +0 -1
  4. package/apps/desktop/src/main/modules/updater/configs.ts +0 -4
  5. package/changelog/v1.json +15 -0
  6. package/e2e/src/mocks/llm/index.ts +3 -3
  7. package/locales/ar/common.json +5 -0
  8. package/locales/ar/error.json +10 -1
  9. package/locales/bg-BG/common.json +5 -0
  10. package/locales/bg-BG/error.json +10 -1
  11. package/locales/de-DE/common.json +5 -0
  12. package/locales/de-DE/error.json +10 -1
  13. package/locales/en-US/common.json +5 -0
  14. package/locales/es-ES/common.json +5 -0
  15. package/locales/es-ES/error.json +10 -1
  16. package/locales/fa-IR/common.json +5 -0
  17. package/locales/fa-IR/error.json +10 -1
  18. package/locales/fr-FR/common.json +5 -0
  19. package/locales/fr-FR/error.json +10 -1
  20. package/locales/it-IT/common.json +5 -0
  21. package/locales/it-IT/error.json +10 -1
  22. package/locales/ja-JP/common.json +5 -0
  23. package/locales/ja-JP/error.json +10 -1
  24. package/locales/ko-KR/common.json +5 -0
  25. package/locales/ko-KR/error.json +10 -1
  26. package/locales/nl-NL/common.json +5 -0
  27. package/locales/nl-NL/error.json +10 -1
  28. package/locales/pl-PL/common.json +5 -0
  29. package/locales/pl-PL/error.json +10 -1
  30. package/locales/pt-BR/common.json +5 -0
  31. package/locales/pt-BR/error.json +10 -1
  32. package/locales/ru-RU/common.json +5 -0
  33. package/locales/ru-RU/error.json +10 -1
  34. package/locales/tr-TR/common.json +5 -0
  35. package/locales/tr-TR/error.json +10 -1
  36. package/locales/vi-VN/common.json +5 -0
  37. package/locales/vi-VN/error.json +10 -1
  38. package/locales/zh-CN/common.json +5 -0
  39. package/locales/zh-TW/common.json +5 -0
  40. package/locales/zh-TW/error.json +10 -1
  41. package/package.json +2 -2
  42. package/packages/business/const/src/branding.ts +1 -0
  43. package/packages/business/const/src/llm.ts +2 -1
  44. package/packages/const/src/settings/llm.ts +2 -1
  45. package/packages/const/src/settings/systemAgent.ts +12 -7
  46. package/packages/database/src/models/agent.ts +18 -1
  47. package/packages/database/src/models/chatGroup.ts +18 -1
  48. package/packages/database/src/types/chatGroup.ts +1 -0
  49. package/packages/model-bank/package.json +1 -1
  50. package/packages/model-bank/src/aiModels/index.ts +2 -2
  51. package/packages/model-bank/src/aiModels/lobehub/chat/anthropic.ts +256 -0
  52. package/packages/model-bank/src/aiModels/lobehub/chat/deepseek.ts +45 -0
  53. package/packages/model-bank/src/aiModels/lobehub/chat/google.ts +267 -0
  54. package/packages/model-bank/src/aiModels/lobehub/chat/index.ts +26 -0
  55. package/packages/model-bank/src/aiModels/lobehub/chat/minimax.ts +75 -0
  56. package/packages/model-bank/src/aiModels/lobehub/chat/moonshot.ts +28 -0
  57. package/packages/model-bank/src/aiModels/lobehub/chat/openai.ts +345 -0
  58. package/packages/model-bank/src/aiModels/lobehub/chat/xai.ts +32 -0
  59. package/packages/model-bank/src/aiModels/lobehub/image.ts +240 -0
  60. package/packages/model-bank/src/aiModels/lobehub/index.ts +10 -0
  61. package/packages/model-bank/src/aiModels/lobehub/utils.ts +58 -0
  62. package/packages/model-bank/src/modelProviders/index.ts +10 -10
  63. package/packages/model-runtime/src/core/streams/qwen.test.ts +320 -0
  64. package/packages/model-runtime/src/core/streams/qwen.ts +19 -10
  65. package/packages/types/package.json +1 -1
  66. package/packages/types/src/agentGroup/index.ts +2 -0
  67. package/packages/types/src/discover/assistants.ts +9 -0
  68. package/packages/types/src/discover/fork.ts +163 -0
  69. package/packages/types/src/discover/groupAgents.ts +13 -4
  70. package/packages/types/src/discover/index.ts +9 -0
  71. package/src/app/[variants]/(auth)/_layout/index.tsx +2 -1
  72. package/src/app/[variants]/(auth)/auth-error/page.tsx +5 -5
  73. package/src/app/[variants]/(main)/agent/_layout/Sidebar/Topic/List/Item/index.tsx +1 -2
  74. package/src/app/[variants]/(main)/community/(detail)/agent/features/Header.tsx +37 -0
  75. package/src/app/[variants]/(main)/community/(detail)/agent/features/Sidebar/ActionButton/ForkAndChat.tsx +133 -0
  76. package/src/app/[variants]/(main)/community/(detail)/agent/features/Sidebar/ActionButton/index.tsx +2 -2
  77. package/src/app/[variants]/(main)/community/(detail)/group_agent/features/Details/index.tsx +7 -10
  78. package/src/app/[variants]/(main)/community/(detail)/group_agent/features/Sidebar/ActionButton/ForkGroupAndChat.tsx +208 -0
  79. package/src/app/[variants]/(main)/community/(detail)/group_agent/features/Sidebar/ActionButton/index.tsx +2 -2
  80. package/src/app/[variants]/(main)/community/(detail)/user/features/DetailProvider.tsx +2 -0
  81. package/src/app/[variants]/(main)/community/(detail)/user/features/UserContent.tsx +7 -0
  82. package/src/app/[variants]/(main)/community/(detail)/user/features/UserForkedAgentGroups.tsx +63 -0
  83. package/src/app/[variants]/(main)/community/(detail)/user/features/UserForkedAgents.tsx +61 -0
  84. package/src/app/[variants]/(main)/community/(detail)/user/index.tsx +3 -1
  85. package/src/app/[variants]/(main)/group/_layout/Sidebar/Topic/List/Item/index.tsx +1 -2
  86. package/src/app/[variants]/(main)/settings/profile/index.tsx +92 -68
  87. package/src/app/[variants]/(mobile)/chat/features/Topic/index.tsx +2 -1
  88. package/src/features/CommandMenu/AskAgentCommands.tsx +105 -0
  89. package/src/features/CommandMenu/CommandMenuContext.tsx +57 -38
  90. package/src/features/CommandMenu/components/CommandInput.tsx +43 -9
  91. package/src/features/CommandMenu/index.tsx +89 -27
  92. package/src/features/CommandMenu/types.ts +6 -0
  93. package/src/features/CommandMenu/useCommandMenu.ts +62 -39
  94. package/src/locales/default/common.ts +5 -0
  95. package/src/locales/default/discover.ts +371 -0
  96. package/src/server/globalConfig/parseMemoryExtractionConfig.ts +7 -8
  97. package/src/server/routers/lambda/agent.ts +14 -0
  98. package/src/server/routers/lambda/agentGroup.ts +19 -3
  99. package/src/server/routers/lambda/market/agent.ts +234 -26
  100. package/src/server/routers/lambda/market/agentGroup.ts +204 -1
  101. package/src/server/services/discover/index.ts +52 -2
  102. package/src/services/agent.ts +8 -0
  103. package/src/services/chatGroup/index.ts +8 -0
  104. package/src/services/marketApi.ts +78 -0
  105. package/src/store/user/slices/settings/selectors/__snapshots__/settings.test.ts.snap +12 -12
  106. package/packages/model-bank/src/aiModels/lobehub.ts +0 -1315
@@ -0,0 +1,345 @@
1
+ import { AIChatModelCard } from '../../../types/aiModel';
2
+
3
+ export const openaiChatModels: AIChatModelCard[] = [
4
+ {
5
+ abilities: {
6
+ functionCall: true,
7
+ reasoning: true,
8
+ search: true,
9
+ vision: true,
10
+ },
11
+ contextWindowTokens: 400_000,
12
+ description:
13
+ "GPT-5.2 — OpenAI's flagship model optimized for coding and agent tasks across industries.",
14
+ displayName: 'GPT-5.2',
15
+ enabled: true,
16
+ id: 'gpt-5.2',
17
+ maxOutput: 128_000,
18
+ pricing: {
19
+ units: [
20
+ { name: 'textInput', rate: 1.75, strategy: 'fixed', unit: 'millionTokens' },
21
+ { name: 'textInput_cacheRead', rate: 0.175, strategy: 'fixed', unit: 'millionTokens' },
22
+ { name: 'textOutput', rate: 14, strategy: 'fixed', unit: 'millionTokens' },
23
+ ],
24
+ },
25
+ releasedAt: '2025-12-11',
26
+ settings: {
27
+ extendParams: ['gpt5_2ReasoningEffort', 'textVerbosity'],
28
+ },
29
+ type: 'chat',
30
+ },
31
+ {
32
+ abilities: {
33
+ functionCall: true,
34
+ reasoning: true,
35
+ search: true,
36
+ vision: true,
37
+ },
38
+ contextWindowTokens: 400_000,
39
+ description:
40
+ 'GPT-5.1 — a flagship model optimized for coding and agent tasks with configurable reasoning effort and longer context.',
41
+ displayName: 'GPT-5.1',
42
+ enabled: true,
43
+ id: 'gpt-5.1',
44
+ maxOutput: 128_000,
45
+ pricing: {
46
+ units: [
47
+ { name: 'textInput', rate: 1.25, strategy: 'fixed', unit: 'millionTokens' },
48
+ { name: 'textInput_cacheRead', rate: 0.125, strategy: 'fixed', unit: 'millionTokens' },
49
+ { name: 'textOutput', rate: 10, strategy: 'fixed', unit: 'millionTokens' },
50
+ ],
51
+ },
52
+ releasedAt: '2025-11-13',
53
+ settings: {
54
+ extendParams: ['gpt5_1ReasoningEffort', 'textVerbosity'],
55
+ },
56
+ type: 'chat',
57
+ },
58
+ {
59
+ abilities: {
60
+ functionCall: true,
61
+ reasoning: true,
62
+ search: true,
63
+ vision: true,
64
+ },
65
+ contextWindowTokens: 400_000,
66
+ description:
67
+ 'The best model for cross-domain coding and agent tasks. GPT-5 leaps in accuracy, speed, reasoning, context awareness, structured thinking, and problem solving.',
68
+ displayName: 'GPT-5',
69
+ id: 'gpt-5',
70
+ maxOutput: 128_000,
71
+ pricing: {
72
+ units: [
73
+ { name: 'textInput', rate: 1.25, strategy: 'fixed', unit: 'millionTokens' },
74
+ { name: 'textOutput', rate: 10, strategy: 'fixed', unit: 'millionTokens' },
75
+ { name: 'textInput_cacheRead', rate: 0.13, strategy: 'fixed', unit: 'millionTokens' },
76
+ ],
77
+ },
78
+ releasedAt: '2025-08-07',
79
+ settings: {
80
+ extendParams: ['reasoningEffort'],
81
+ },
82
+ type: 'chat',
83
+ },
84
+ {
85
+ abilities: {
86
+ functionCall: true,
87
+ reasoning: true,
88
+ search: true,
89
+ vision: true,
90
+ },
91
+ contextWindowTokens: 400_000,
92
+ description:
93
+ 'A faster, more cost-efficient GPT-5 variant for well-defined tasks, delivering quicker responses while maintaining quality.',
94
+ displayName: 'GPT-5 mini',
95
+ enabled: true,
96
+ id: 'gpt-5-mini',
97
+ maxOutput: 128_000,
98
+ pricing: {
99
+ units: [
100
+ { name: 'textInput', rate: 0.25, strategy: 'fixed', unit: 'millionTokens' },
101
+ { name: 'textOutput', rate: 2, strategy: 'fixed', unit: 'millionTokens' },
102
+ { name: 'textInput_cacheRead', rate: 0.03, strategy: 'fixed', unit: 'millionTokens' },
103
+ ],
104
+ },
105
+ releasedAt: '2025-08-07',
106
+ settings: {
107
+ extendParams: ['reasoningEffort'],
108
+ searchImpl: 'params',
109
+ },
110
+ type: 'chat',
111
+ },
112
+ {
113
+ abilities: {
114
+ functionCall: true,
115
+ reasoning: true,
116
+ vision: true,
117
+ },
118
+ contextWindowTokens: 400_000,
119
+ description:
120
+ 'The fastest and most cost-effective GPT-5 variant, ideal for latency- and cost-sensitive applications.',
121
+ displayName: 'GPT-5 nano',
122
+ id: 'gpt-5-nano',
123
+ maxOutput: 128_000,
124
+ pricing: {
125
+ units: [
126
+ { name: 'textInput', rate: 0.05, strategy: 'fixed', unit: 'millionTokens' },
127
+ { name: 'textOutput', rate: 0.4, strategy: 'fixed', unit: 'millionTokens' },
128
+ { name: 'textInput_cacheRead', rate: 0.01, strategy: 'fixed', unit: 'millionTokens' },
129
+ ],
130
+ },
131
+ releasedAt: '2025-08-07',
132
+ type: 'chat',
133
+ },
134
+ {
135
+ abilities: {
136
+ vision: true,
137
+ },
138
+ contextWindowTokens: 400_000,
139
+ description:
140
+ 'The GPT-5 model used in ChatGPT, combining strong understanding and generation for conversational applications.',
141
+ displayName: 'GPT-5 Chat',
142
+ enabled: true,
143
+ id: 'gpt-5-chat-latest',
144
+ maxOutput: 128_000,
145
+ pricing: {
146
+ units: [
147
+ { name: 'textInput', rate: 1.25, strategy: 'fixed', unit: 'millionTokens' },
148
+ { name: 'textOutput', rate: 10, strategy: 'fixed', unit: 'millionTokens' },
149
+ { name: 'textInput_cacheRead', rate: 0.13, strategy: 'fixed', unit: 'millionTokens' },
150
+ ],
151
+ },
152
+ releasedAt: '2025-08-07',
153
+ type: 'chat',
154
+ },
155
+ {
156
+ abilities: {
157
+ functionCall: true,
158
+ vision: true,
159
+ },
160
+ contextWindowTokens: 1_047_576,
161
+ description:
162
+ 'GPT-4.1 is our flagship model for complex tasks and cross-domain problem solving.',
163
+ displayName: 'GPT-4.1',
164
+ id: 'gpt-4.1',
165
+ maxOutput: 32_768,
166
+ pricing: {
167
+ units: [
168
+ { name: 'textInput', rate: 2, strategy: 'fixed', unit: 'millionTokens' },
169
+ { name: 'textOutput', rate: 8, strategy: 'fixed', unit: 'millionTokens' },
170
+ { name: 'textInput_cacheRead', rate: 0.5, strategy: 'fixed', unit: 'millionTokens' },
171
+ ],
172
+ },
173
+ releasedAt: '2025-04-14',
174
+ type: 'chat',
175
+ },
176
+ {
177
+ abilities: {
178
+ functionCall: true,
179
+ vision: true,
180
+ },
181
+ contextWindowTokens: 1_047_576,
182
+ description:
183
+ 'GPT-4.1 mini balances intelligence, speed, and cost, making it attractive for many use cases.',
184
+ displayName: 'GPT-4.1 mini',
185
+ id: 'gpt-4.1-mini',
186
+ maxOutput: 32_768,
187
+ pricing: {
188
+ units: [
189
+ { name: 'textInput', rate: 0.4, strategy: 'fixed', unit: 'millionTokens' },
190
+ { name: 'textOutput', rate: 1.6, strategy: 'fixed', unit: 'millionTokens' },
191
+ { name: 'textInput_cacheRead', rate: 0.1, strategy: 'fixed', unit: 'millionTokens' },
192
+ ],
193
+ },
194
+ releasedAt: '2025-04-14',
195
+ type: 'chat',
196
+ },
197
+ {
198
+ abilities: {
199
+ functionCall: true,
200
+ vision: true,
201
+ },
202
+ contextWindowTokens: 1_047_576,
203
+ description:
204
+ 'GPT-4.1 mini balances intelligence, speed, and cost, making it attractive for many use cases.',
205
+ displayName: 'GPT-4.1 nano',
206
+ id: 'gpt-4.1-nano',
207
+ maxOutput: 32_768,
208
+ pricing: {
209
+ units: [
210
+ { name: 'textInput', rate: 0.1, strategy: 'fixed', unit: 'millionTokens' },
211
+ { name: 'textOutput', rate: 0.4, strategy: 'fixed', unit: 'millionTokens' },
212
+ { name: 'textInput_cacheRead', rate: 0.025, strategy: 'fixed', unit: 'millionTokens' },
213
+ ],
214
+ },
215
+ releasedAt: '2025-04-14',
216
+ type: 'chat',
217
+ },
218
+ {
219
+ abilities: {
220
+ functionCall: true,
221
+ vision: true,
222
+ },
223
+ contextWindowTokens: 128_000,
224
+ description:
225
+ "GPT-4o mini is OpenAI's latest model after GPT-4 Omni, supporting text+image input with text output. It is their most advanced small model, far cheaper than recent frontier models and over 60% cheaper than GPT-3.5 Turbo, while maintaining top-tier intelligence (82% MMLU).",
226
+ displayName: 'GPT-4o mini',
227
+ id: 'gpt-4o-mini',
228
+ maxOutput: 16_385,
229
+ pricing: {
230
+ units: [
231
+ { name: 'textInput', rate: 0.15, strategy: 'fixed', unit: 'millionTokens' },
232
+ { name: 'textOutput', rate: 0.6, strategy: 'fixed', unit: 'millionTokens' },
233
+ { name: 'textInput_cacheRead', rate: 0.075, strategy: 'fixed', unit: 'millionTokens' },
234
+ ],
235
+ },
236
+ releasedAt: '2024-07-18',
237
+ type: 'chat',
238
+ },
239
+ {
240
+ abilities: {
241
+ functionCall: true,
242
+ vision: true,
243
+ },
244
+ contextWindowTokens: 128_000,
245
+ description:
246
+ 'ChatGPT-4o is a dynamic model updated in real time. It combines strong understanding and generation for large-scale use cases like customer support, education, and technical support.',
247
+ displayName: 'GPT-4o',
248
+ id: 'gpt-4o',
249
+ pricing: {
250
+ units: [
251
+ { name: 'textInput', rate: 2.5, strategy: 'fixed', unit: 'millionTokens' },
252
+ { name: 'textOutput', rate: 10, strategy: 'fixed', unit: 'millionTokens' },
253
+ { name: 'textInput_cacheRead', rate: 1.25, strategy: 'fixed', unit: 'millionTokens' },
254
+ ],
255
+ },
256
+ releasedAt: '2024-05-13',
257
+ type: 'chat',
258
+ },
259
+ {
260
+ abilities: {
261
+ vision: true,
262
+ },
263
+ contextWindowTokens: 128_000,
264
+ description:
265
+ 'ChatGPT-4o is a dynamic model updated in real time. It combines strong understanding and generation for large-scale use cases like customer support, education, and technical support.',
266
+ displayName: 'ChatGPT-4o',
267
+ id: 'chatgpt-4o-latest',
268
+ pricing: {
269
+ units: [
270
+ { name: 'textInput', rate: 5, strategy: 'fixed', unit: 'millionTokens' },
271
+ { name: 'textOutput', rate: 15, strategy: 'fixed', unit: 'millionTokens' },
272
+ ],
273
+ },
274
+ releasedAt: '2024-08-14',
275
+ type: 'chat',
276
+ },
277
+ {
278
+ abilities: {
279
+ functionCall: true,
280
+ vision: true,
281
+ },
282
+ contextWindowTokens: 128_000,
283
+ description:
284
+ 'The latest GPT-4 Turbo adds vision. Visual requests support JSON mode and function calling. It is a cost-effective multimodal model that balances accuracy and efficiency for real-time applications.',
285
+ displayName: 'GPT-4 Turbo',
286
+ id: 'gpt-4-turbo',
287
+ pricing: {
288
+ units: [
289
+ { name: 'textInput', rate: 10, strategy: 'fixed', unit: 'millionTokens' },
290
+ { name: 'textOutput', rate: 30, strategy: 'fixed', unit: 'millionTokens' },
291
+ ],
292
+ },
293
+ type: 'chat',
294
+ },
295
+ {
296
+ abilities: {
297
+ functionCall: true,
298
+ reasoning: true,
299
+ vision: true,
300
+ },
301
+ contextWindowTokens: 200_000,
302
+ description:
303
+ 'o3 is a strong all-round model that sets a new bar for math, science, programming, and visual reasoning. It excels at technical writing and instruction following, and can analyze text, code, and images for multi-step problems.',
304
+ displayName: 'o3',
305
+ id: 'o3',
306
+ maxOutput: 100_000,
307
+ pricing: {
308
+ units: [
309
+ { name: 'textInput', rate: 2, strategy: 'fixed', unit: 'millionTokens' },
310
+ { name: 'textOutput', rate: 8, strategy: 'fixed', unit: 'millionTokens' },
311
+ { name: 'textInput_cacheRead', rate: 0.5, strategy: 'fixed', unit: 'millionTokens' },
312
+ ],
313
+ },
314
+ releasedAt: '2025-04-17',
315
+ settings: {
316
+ extendParams: ['reasoningEffort'],
317
+ },
318
+ type: 'chat',
319
+ },
320
+ {
321
+ abilities: {
322
+ functionCall: true,
323
+ reasoning: true,
324
+ vision: true,
325
+ },
326
+ contextWindowTokens: 200_000,
327
+ description:
328
+ 'o4-mini is the latest small o-series model, optimized for fast, effective reasoning with high efficiency in coding and vision tasks.',
329
+ displayName: 'o4-mini',
330
+ id: 'o4-mini',
331
+ maxOutput: 100_000,
332
+ pricing: {
333
+ units: [
334
+ { name: 'textInput', rate: 1.1, strategy: 'fixed', unit: 'millionTokens' },
335
+ { name: 'textOutput', rate: 4.4, strategy: 'fixed', unit: 'millionTokens' },
336
+ { name: 'textInput_cacheRead', rate: 0.275, strategy: 'fixed', unit: 'millionTokens' },
337
+ ],
338
+ },
339
+ releasedAt: '2025-04-17',
340
+ settings: {
341
+ extendParams: ['reasoningEffort'],
342
+ },
343
+ type: 'chat',
344
+ },
345
+ ];
@@ -0,0 +1,32 @@
1
+ import { AIChatModelCard } from '../../../types/aiModel';
2
+
3
+ export const xaiChatModels: AIChatModelCard[] = [
4
+ {
5
+ abilities: {
6
+ functionCall: true,
7
+ reasoning: true,
8
+ search: true,
9
+ vision: true,
10
+ },
11
+ contextWindowTokens: 256_000,
12
+ description:
13
+ 'Our newest and strongest flagship model, excelling in NLP, math, and reasoning—an ideal all-rounder.',
14
+ displayName: 'Grok 4',
15
+ enabled: true,
16
+ id: 'grok-4',
17
+ pricing: {
18
+ units: [
19
+ { name: 'textInput_cacheRead', rate: 0.75, strategy: 'fixed', unit: 'millionTokens' },
20
+ { name: 'textInput', rate: 3, strategy: 'fixed', unit: 'millionTokens' },
21
+ { name: 'textOutput', rate: 15, strategy: 'fixed', unit: 'millionTokens' },
22
+ ],
23
+ },
24
+ releasedAt: '2025-07-09',
25
+ settings: {
26
+ // reasoning_effort is not supported by grok-4. Specifying reasoning_effort parameter will get an error response.
27
+ // extendParams: ['reasoningEffort'],
28
+ searchImpl: 'params',
29
+ },
30
+ type: 'chat',
31
+ },
32
+ ];
@@ -0,0 +1,240 @@
1
+ import { AIImageModelCard } from '../../types/aiModel';
2
+ import { huanyuanImageParamsSchema, qwenEditParamsSchema, qwenImageParamsSchema } from '../fal';
3
+ import {
4
+ gptImage1Schema,
5
+ imagenBaseParameters,
6
+ nanoBananaParameters,
7
+ nanoBananaProParameters,
8
+ } from './utils';
9
+
10
+ export const lobehubImageModels: AIImageModelCard[] = [
11
+ {
12
+ description:
13
+ "Gemini 3 Pro Image (Nano Banana Pro) is Google's image generation model and also supports multimodal chat.",
14
+ displayName: 'Nano Banana Pro',
15
+ enabled: true,
16
+ id: 'gemini-3-pro-image-preview:image',
17
+ parameters: nanoBananaProParameters,
18
+ pricing: {
19
+ approximatePricePerImage: 0.134,
20
+ units: [
21
+ { name: 'imageOutput', rate: 120, strategy: 'fixed', unit: 'millionTokens' },
22
+ { name: 'textInput', rate: 2, strategy: 'fixed', unit: 'millionTokens' },
23
+ { name: 'textOutput', rate: 12, strategy: 'fixed', unit: 'millionTokens' },
24
+ ],
25
+ },
26
+ releasedAt: '2025-11-18',
27
+ type: 'image',
28
+ },
29
+ {
30
+ description:
31
+ "Nano Banana is Google's newest, fastest, and most efficient native multimodal model, enabling conversational image generation and editing.",
32
+ displayName: 'Nano Banana',
33
+ id: 'gemini-2.5-flash-image-preview:image',
34
+ parameters: nanoBananaParameters,
35
+ pricing: {
36
+ approximatePricePerImage: 0.039,
37
+ units: [
38
+ { name: 'textInput', rate: 0.3, strategy: 'fixed', unit: 'millionTokens' },
39
+ { name: 'imageInput', rate: 0.3, strategy: 'fixed', unit: 'millionTokens' },
40
+ { name: 'textOutput', rate: 2.5, strategy: 'fixed', unit: 'millionTokens' },
41
+ { name: 'imageOutput', rate: 30, strategy: 'fixed', unit: 'millionTokens' },
42
+ ],
43
+ },
44
+ releasedAt: '2025-08-26',
45
+ type: 'image',
46
+ },
47
+ {
48
+ description: 'Imagen 4th generation text-to-image model series',
49
+ displayName: 'Imagen 4 Fast',
50
+ id: 'imagen-4.0-fast-generate-001',
51
+ organization: 'Deepmind',
52
+ parameters: imagenBaseParameters,
53
+ pricing: {
54
+ units: [{ name: 'imageGeneration', rate: 0.02, strategy: 'fixed', unit: 'image' }],
55
+ },
56
+ releasedAt: '2025-08-15',
57
+ type: 'image',
58
+ },
59
+ {
60
+ description: 'Imagen 4th generation text-to-image model series',
61
+ displayName: 'Imagen 4',
62
+ id: 'imagen-4.0-generate-001',
63
+ organization: 'Deepmind',
64
+ parameters: imagenBaseParameters,
65
+ pricing: {
66
+ units: [{ name: 'imageGeneration', rate: 0.04, strategy: 'fixed', unit: 'image' }],
67
+ },
68
+ releasedAt: '2025-08-15',
69
+ type: 'image',
70
+ },
71
+ {
72
+ description: 'Imagen 4th generation text-to-image model series Ultra version',
73
+ displayName: 'Imagen 4 Ultra',
74
+ id: 'imagen-4.0-ultra-generate-001',
75
+ organization: 'Deepmind',
76
+ parameters: imagenBaseParameters,
77
+ pricing: {
78
+ units: [{ name: 'imageGeneration', rate: 0.06, strategy: 'fixed', unit: 'image' }],
79
+ },
80
+ releasedAt: '2025-08-15',
81
+ type: 'image',
82
+ },
83
+ {
84
+ description:
85
+ 'An enhanced GPT Image 1 model with 4× faster generation, more precise editing, and improved text rendering.',
86
+ displayName: 'GPT Image 1.5',
87
+ enabled: true,
88
+ id: 'gpt-image-1.5',
89
+ parameters: gptImage1Schema,
90
+ pricing: {
91
+ approximatePricePerImage: 0.034,
92
+ units: [
93
+ { name: 'textInput', rate: 5, strategy: 'fixed', unit: 'millionTokens' },
94
+ { name: 'textInput_cacheRead', rate: 1.25, strategy: 'fixed', unit: 'millionTokens' },
95
+ { name: 'imageInput', rate: 8, strategy: 'fixed', unit: 'millionTokens' },
96
+ { name: 'imageInput_cacheRead', rate: 2, strategy: 'fixed', unit: 'millionTokens' },
97
+ { name: 'imageOutput', rate: 32, strategy: 'fixed', unit: 'millionTokens' },
98
+ ],
99
+ },
100
+ releasedAt: '2025-12-16',
101
+ type: 'image',
102
+ },
103
+ {
104
+ description: 'ChatGPT native multimodal image generation model.',
105
+ displayName: 'GPT Image 1',
106
+ id: 'gpt-image-1',
107
+ parameters: gptImage1Schema,
108
+ pricing: {
109
+ approximatePricePerImage: 0.042,
110
+ units: [
111
+ { name: 'textInput', rate: 5, strategy: 'fixed', unit: 'millionTokens' },
112
+ { name: 'textInput_cacheRead', rate: 1.25, strategy: 'fixed', unit: 'millionTokens' },
113
+ { name: 'imageInput', rate: 10, strategy: 'fixed', unit: 'millionTokens' },
114
+ { name: 'imageInput_cacheRead', rate: 2.5, strategy: 'fixed', unit: 'millionTokens' },
115
+ { name: 'imageOutput', rate: 40, strategy: 'fixed', unit: 'millionTokens' },
116
+ ],
117
+ },
118
+ type: 'image',
119
+ },
120
+ {
121
+ description:
122
+ 'The latest DALL·E model, released in November 2023, supports more realistic, accurate image generation with stronger detail.',
123
+ displayName: 'DALL·E 3',
124
+ id: 'dall-e-3',
125
+ parameters: {
126
+ prompt: { default: '' },
127
+ quality: {
128
+ default: 'standard',
129
+ enum: ['standard', 'hd'],
130
+ },
131
+ size: {
132
+ default: '1024x1024',
133
+ enum: ['1024x1024', '1792x1024', '1024x1792'],
134
+ },
135
+ },
136
+ pricing: {
137
+ approximatePricePerImage: 0.004,
138
+ units: [
139
+ {
140
+ lookup: {
141
+ prices: {
142
+ hd_1024x1024: 0.08,
143
+ hd_1024x1792: 0.12,
144
+ hd_1792x1024: 0.12,
145
+ standard_1024x1024: 0.04,
146
+ standard_1024x1792: 0.08,
147
+ standard_1792x1024: 0.08,
148
+ },
149
+ pricingParams: ['quality', 'size'],
150
+ },
151
+ name: 'imageGeneration',
152
+ strategy: 'lookup',
153
+ unit: 'image',
154
+ },
155
+ ],
156
+ },
157
+ type: 'image',
158
+ },
159
+ {
160
+ description:
161
+ 'Seedream 4.5, built by ByteDance Seed team, supports multi-image editing and composition. Features enhanced subject consistency, precise instruction following, spatial logic understanding, aesthetic expression, poster layout and logo design with high-precision text-image rendering.',
162
+ displayName: 'Seedream 4.5',
163
+ enabled: true,
164
+ id: 'fal-ai/bytedance/seedream/v4.5',
165
+ parameters: {
166
+ height: { default: 2048, max: 4096, min: 1920, step: 1 },
167
+ imageUrls: { default: [], maxCount: 10, maxFileSize: 10 * 1024 * 1024 },
168
+ prompt: { default: '' },
169
+ seed: { default: null },
170
+ width: { default: 2048, max: 4096, min: 1920, step: 1 },
171
+ },
172
+ pricing: {
173
+ units: [{ name: 'imageGeneration', rate: 0.04, strategy: 'fixed', unit: 'image' }],
174
+ },
175
+ releasedAt: '2025-12-04',
176
+ type: 'image',
177
+ },
178
+ {
179
+ description:
180
+ 'Seedream 4.0, built by ByteDance Seed, supports text and image inputs for highly controllable, high-quality image generation from prompts.',
181
+ displayName: 'Seedream 4.0',
182
+ id: 'fal-ai/bytedance/seedream/v4',
183
+ parameters: {
184
+ height: { default: 1024, max: 4096, min: 1024, step: 1 },
185
+ imageUrls: { default: [], maxCount: 10, maxFileSize: 10 * 1024 * 1024 },
186
+ prompt: {
187
+ default: '',
188
+ },
189
+ seed: { default: null },
190
+ width: { default: 1024, max: 4096, min: 1024, step: 1 },
191
+ },
192
+ pricing: {
193
+ units: [{ name: 'imageGeneration', rate: 0.03, strategy: 'fixed', unit: 'image' }],
194
+ },
195
+ releasedAt: '2025-09-09',
196
+ type: 'image',
197
+ },
198
+ {
199
+ description: 'A powerful native multimodal image generation model.',
200
+ displayName: 'HunyuanImage 3.0',
201
+ enabled: true,
202
+ id: 'fal-ai/hunyuan-image/v3',
203
+ parameters: huanyuanImageParamsSchema,
204
+ pricing: {
205
+ // Original price: 0.1 x 1024 x 1024 / 100_0000 = 0.1048576$
206
+ units: [{ name: 'imageGeneration', rate: 0.11, strategy: 'fixed', unit: 'image' }],
207
+ },
208
+ releasedAt: '2025-09-28',
209
+ type: 'image',
210
+ },
211
+ {
212
+ description:
213
+ 'A professional image editing model from the Qwen team, supporting semantic and appearance edits, precise Chinese/English text editing, style transfer, rotation, and more.',
214
+ displayName: 'Qwen Edit',
215
+ enabled: true,
216
+ id: 'fal-ai/qwen-image-edit',
217
+ parameters: qwenEditParamsSchema,
218
+ pricing: {
219
+ // https://fal.ai/models/fal-ai/qwen-image-edit
220
+ // Original price: 0.03 x 1328 x 1328 / 100_0000 = 0.05290752
221
+ units: [{ name: 'imageGeneration', rate: 0.06, strategy: 'fixed', unit: 'image' }],
222
+ },
223
+ releasedAt: '2025-08-19',
224
+ type: 'image',
225
+ },
226
+ {
227
+ description:
228
+ 'A powerful image generation model from the Qwen team with strong Chinese text rendering and diverse visual styles.',
229
+ displayName: 'Qwen Image',
230
+ enabled: true,
231
+ id: 'fal-ai/qwen-image',
232
+ parameters: qwenImageParamsSchema,
233
+ pricing: {
234
+ // Original price: 0.02 x 1328 x 1328 / 100_0000 = 0.03527168
235
+ units: [{ name: 'imageGeneration', rate: 0.04, strategy: 'fixed', unit: 'image' }],
236
+ },
237
+ releasedAt: '2025-08-04',
238
+ type: 'image',
239
+ },
240
+ ];
@@ -0,0 +1,10 @@
1
+ import { lobehubChatModels } from './chat';
2
+ import { lobehubImageModels } from './image';
3
+
4
+ export { lobehubChatModels } from './chat';
5
+ export { lobehubImageModels } from './image';
6
+ export * from './utils';
7
+
8
+ export const allModels = [...lobehubChatModels, ...lobehubImageModels];
9
+
10
+ export default allModels;
@@ -0,0 +1,58 @@
1
+ import { ModelParamsSchema } from 'model-bank';
2
+
3
+ // Common parameters for Imagen models
4
+ export const imagenBaseParameters: ModelParamsSchema = {
5
+ aspectRatio: {
6
+ default: '1:1',
7
+ enum: ['1:1', '16:9', '9:16', '3:4', '4:3'],
8
+ },
9
+ prompt: { default: '' },
10
+ };
11
+
12
+ export const NANO_BANANA_ASPECT_RATIOS = [
13
+ '1:1', // 1024x1024 / 2048x2048 / 4096x4096
14
+ '2:3', // 848x1264 / 1696x2528 / 3392x5056
15
+ '3:2', // 1264x848 / 2528x1696 / 5056x3392
16
+ '3:4', // 896x1200 / 1792x2400 / 3584x4800
17
+ '4:3', // 1200x896 / 2400x1792 / 4800x3584
18
+ '4:5', // 928x1152 / 1856x2304 / 3712x4608
19
+ '5:4', // 1152x928 / 2304x1856 / 4608x3712
20
+ '9:16', // 768x1376 / 1536x2752 / 3072x5504
21
+ '16:9', // 1376x768 / 2752x1536 / 5504x3072
22
+ '21:9', // 1584x672 / 3168x1344 / 6336x2688
23
+ ];
24
+
25
+ export const nanoBananaParameters: ModelParamsSchema = {
26
+ aspectRatio: {
27
+ default: '1:1',
28
+ enum: NANO_BANANA_ASPECT_RATIOS,
29
+ },
30
+ imageUrls: {
31
+ default: [],
32
+ },
33
+ prompt: { default: '' },
34
+ };
35
+
36
+ export const nanoBananaProParameters: ModelParamsSchema = {
37
+ aspectRatio: {
38
+ default: '1:1',
39
+ enum: NANO_BANANA_ASPECT_RATIOS,
40
+ },
41
+ imageUrls: {
42
+ default: [],
43
+ },
44
+ prompt: { default: '' },
45
+ resolution: {
46
+ default: '1K',
47
+ enum: ['1K', '2K', '4K'],
48
+ },
49
+ };
50
+
51
+ export const gptImage1Schema = {
52
+ imageUrls: { default: [], maxCount: 1, maxFileSize: 5 },
53
+ prompt: { default: '' },
54
+ size: {
55
+ default: 'auto',
56
+ enum: ['auto', '1024x1024', '1536x1024', '1024x1536'],
57
+ },
58
+ };