@lobehub/chat 1.135.1 → 1.135.2
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.
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
# Changelog
|
|
4
4
|
|
|
5
|
+
### [Version 1.135.2](https://github.com/lobehub/lobe-chat/compare/v1.135.1...v1.135.2)
|
|
6
|
+
|
|
7
|
+
<sup>Released on **2025-10-06**</sup>
|
|
8
|
+
|
|
9
|
+
#### 💄 Styles
|
|
10
|
+
|
|
11
|
+
- **image**: Optimize UX and fix fal pricing.
|
|
12
|
+
|
|
13
|
+
<br/>
|
|
14
|
+
|
|
15
|
+
<details>
|
|
16
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
|
17
|
+
|
|
18
|
+
#### Styles
|
|
19
|
+
|
|
20
|
+
- **image**: Optimize UX and fix fal pricing, closes [#9592](https://github.com/lobehub/lobe-chat/issues/9592) ([dddbfcd](https://github.com/lobehub/lobe-chat/commit/dddbfcd))
|
|
21
|
+
|
|
22
|
+
</details>
|
|
23
|
+
|
|
24
|
+
<div align="right">
|
|
25
|
+
|
|
26
|
+
[](#readme-top)
|
|
27
|
+
|
|
28
|
+
</div>
|
|
29
|
+
|
|
5
30
|
### [Version 1.135.1](https://github.com/lobehub/lobe-chat/compare/v1.135.0...v1.135.1)
|
|
6
31
|
|
|
7
32
|
<sup>Released on **2025-10-06**</sup>
|
package/changelog/v1.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lobehub/chat",
|
|
3
|
-
"version": "1.135.
|
|
3
|
+
"version": "1.135.2",
|
|
4
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.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"framework",
|
|
@@ -39,6 +39,24 @@ export const qwenEditParamsSchema: ModelParamsSchema = {
|
|
|
39
39
|
width: { default: 1328, max: 1536, min: 512, step: 1 },
|
|
40
40
|
};
|
|
41
41
|
|
|
42
|
+
export const huanyuanImageParamsSchema: ModelParamsSchema = {
|
|
43
|
+
cfg: { default: 7.5, max: 20, min: 1, step: 0.1 },
|
|
44
|
+
prompt: { default: '' },
|
|
45
|
+
seed: { default: null },
|
|
46
|
+
size: {
|
|
47
|
+
default: 'square_hd',
|
|
48
|
+
enum: [
|
|
49
|
+
'square_hd',
|
|
50
|
+
'square',
|
|
51
|
+
'portrait_4_3',
|
|
52
|
+
'portrait_16_9',
|
|
53
|
+
'landscape_4_3',
|
|
54
|
+
'landscape_16_9',
|
|
55
|
+
],
|
|
56
|
+
},
|
|
57
|
+
steps: { default: 28, max: 50, min: 1, step: 1 },
|
|
58
|
+
};
|
|
59
|
+
|
|
42
60
|
const falImageModels: AIImageModelCard[] = [
|
|
43
61
|
{
|
|
44
62
|
description:
|
|
@@ -84,23 +102,7 @@ const falImageModels: AIImageModelCard[] = [
|
|
|
84
102
|
displayName: 'HunyuanImage 3.0',
|
|
85
103
|
enabled: true,
|
|
86
104
|
id: 'fal-ai/hunyuan-image/v3',
|
|
87
|
-
parameters:
|
|
88
|
-
cfg: { default: 7.5, max: 20, min: 1, step: 0.1 },
|
|
89
|
-
prompt: { default: '' },
|
|
90
|
-
seed: { default: null },
|
|
91
|
-
size: {
|
|
92
|
-
default: 'square_hd',
|
|
93
|
-
enum: [
|
|
94
|
-
'square_hd',
|
|
95
|
-
'square',
|
|
96
|
-
'portrait_4_3',
|
|
97
|
-
'portrait_16_9',
|
|
98
|
-
'landscape_4_3',
|
|
99
|
-
'landscape_16_9',
|
|
100
|
-
],
|
|
101
|
-
},
|
|
102
|
-
steps: { default: 28, max: 50, min: 1, step: 1 },
|
|
103
|
-
},
|
|
105
|
+
parameters: huanyuanImageParamsSchema,
|
|
104
106
|
pricing: {
|
|
105
107
|
units: [{ name: 'imageGeneration', rate: 0.1, strategy: 'fixed', unit: 'megapixel' }],
|
|
106
108
|
},
|
|
@@ -197,7 +199,7 @@ const falImageModels: AIImageModelCard[] = [
|
|
|
197
199
|
id: 'fal-ai/qwen-image-edit',
|
|
198
200
|
parameters: qwenEditParamsSchema,
|
|
199
201
|
pricing: {
|
|
200
|
-
units: [{ name: 'imageGeneration', rate: 0.
|
|
202
|
+
units: [{ name: 'imageGeneration', rate: 0.03, strategy: 'fixed', unit: 'megapixel' }],
|
|
201
203
|
},
|
|
202
204
|
releasedAt: '2025-08-19',
|
|
203
205
|
type: 'image',
|
|
@@ -13,14 +13,15 @@ const ImageConfigSkeleton = memo(() => {
|
|
|
13
13
|
<Flexbox gap={32} padding="12px 12px 0 12px" style={{ height: '100%' }}>
|
|
14
14
|
{/* Model Selection */}
|
|
15
15
|
<Flexbox gap={8}>
|
|
16
|
-
<Skeleton.Input size="small" style={{ width: 100 }} />
|
|
17
|
-
<Skeleton.Input size="large" style={{ width: '100%' }} />
|
|
16
|
+
<Skeleton.Input active size="small" style={{ width: 100 }} />
|
|
17
|
+
<Skeleton.Input active size="large" style={{ width: '100%' }} />
|
|
18
18
|
</Flexbox>
|
|
19
19
|
|
|
20
20
|
{/* Image Upload Area */}
|
|
21
21
|
<Flexbox gap={8}>
|
|
22
|
-
<Skeleton.Input size="small" style={{ width: 60 }} />
|
|
22
|
+
<Skeleton.Input active size="small" style={{ width: 60 }} />
|
|
23
23
|
<Skeleton.Node
|
|
24
|
+
active
|
|
24
25
|
style={{
|
|
25
26
|
borderRadius: 8,
|
|
26
27
|
height: 100,
|
|
@@ -32,16 +33,16 @@ const ImageConfigSkeleton = memo(() => {
|
|
|
32
33
|
{/* Parameter Controls */}
|
|
33
34
|
{Array.from({ length: 2 }, (_, index) => (
|
|
34
35
|
<Flexbox gap={8} key={index}>
|
|
35
|
-
<Skeleton.Input size="small" style={{ width: 80 }} />
|
|
36
|
-
<Skeleton.Input size="default" style={{ width: '100%' }} />
|
|
36
|
+
<Skeleton.Input active size="small" style={{ width: 80 }} />
|
|
37
|
+
<Skeleton.Input active size="default" style={{ width: '100%' }} />
|
|
37
38
|
</Flexbox>
|
|
38
39
|
))}
|
|
39
40
|
|
|
40
41
|
{/* Image Number Control (Sticky at bottom) */}
|
|
41
42
|
<Flexbox padding="12px 0" style={{ marginTop: 'auto' }}>
|
|
42
43
|
<Flexbox gap={8}>
|
|
43
|
-
<Skeleton.Input size="small" style={{ width: 60 }} />
|
|
44
|
-
<Skeleton.Input size="default" style={{ width: '100%' }} />
|
|
44
|
+
<Skeleton.Input active size="small" style={{ width: 60 }} />
|
|
45
|
+
<Skeleton.Input active size="default" style={{ width: '100%' }} />
|
|
45
46
|
</Flexbox>
|
|
46
47
|
</Flexbox>
|
|
47
48
|
</Flexbox>
|