@cloudbase/ai 2.24.7 → 2.24.8
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/dist/cjs/models/image-model.d.ts +10 -6
- package/dist/cjs/models/image-model.js +29 -14
- package/dist/cjs/type.d.ts +22 -1
- package/dist/cjs/type.js +1 -1
- package/dist/esm/models/image-model.d.ts +10 -6
- package/dist/esm/models/image-model.js +29 -14
- package/dist/esm/type.d.ts +22 -1
- package/dist/esm/type.js +1 -1
- package/dist/miniprogram/index.js +1 -1
- package/package.json +4 -4
- package/src/models/image-model.ts +36 -51
- package/src/type.ts +36 -10
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudbase/ai",
|
|
3
|
-
"version": "2.24.
|
|
3
|
+
"version": "2.24.8",
|
|
4
4
|
"description": "cloudbase js sdk ai module",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"author": "",
|
|
31
31
|
"license": "Apache-2.0",
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@cloudbase/types": "2.24.
|
|
34
|
-
"@cloudbase/utilities": "2.24.
|
|
33
|
+
"@cloudbase/types": "2.24.8",
|
|
34
|
+
"@cloudbase/utilities": "2.24.8",
|
|
35
35
|
"@mattiasbuelens/web-streams-adapter": "^0.1.0",
|
|
36
36
|
"text-encoding-shim": "^1.0.5",
|
|
37
37
|
"web-streams-polyfill": "^4.0.0"
|
|
@@ -39,5 +39,5 @@
|
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@cloudbase/adapter-interface": "^0.7.1"
|
|
41
41
|
},
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "f8deb2e86298c7729687df544d833cacdfe4bdad"
|
|
43
43
|
}
|
|
@@ -1,74 +1,59 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
ModelReq,
|
|
3
|
-
ImageGenerateInput,
|
|
4
3
|
// ImageEditInput,
|
|
5
4
|
HunyuanGenerateImageInput,
|
|
6
5
|
HunyuanGenerateImageOutput,
|
|
6
|
+
HunyuanARGenerateImageInput,
|
|
7
|
+
HunyuanARGenerateImageOutput,
|
|
7
8
|
// HunyuanEditImageInput,
|
|
8
9
|
// HunyuanEditImageOutput,
|
|
9
10
|
} from '../type'
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
interface HunyuanImageGenerateFn {
|
|
13
|
+
(input: HunyuanARGenerateImageInput): Promise<HunyuanARGenerateImageOutput>
|
|
14
|
+
(input: HunyuanGenerateImageInput): Promise<HunyuanGenerateImageOutput>
|
|
15
|
+
}
|
|
13
16
|
|
|
14
|
-
type
|
|
15
|
-
?
|
|
16
|
-
|
|
17
|
-
: ImageGenerateInput
|
|
18
|
-
: TInput
|
|
17
|
+
type GenerateImageFn<TProvider> = TProvider extends 'hunyuan-image'
|
|
18
|
+
? HunyuanImageGenerateFn
|
|
19
|
+
: (input: unknown) => Promise<unknown>
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
? HunyuanGenerateImageOutput
|
|
23
|
-
: unknown
|
|
24
|
-
: TOutput
|
|
21
|
+
export class DefaultImageModel<TProvider extends string> {
|
|
22
|
+
public defaultGenerateImageSubUrl = 'images/generations'
|
|
25
23
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
24
|
+
public generateImageSubUrlConfig: Record<string, Record<string, string>> = {
|
|
25
|
+
'hunyuan-image': {
|
|
26
|
+
'hunyuan-image-v3.0-v1.0.4': 'images/ar/generations',
|
|
27
|
+
'hunyuan-image-v3.0-v1.0.1': 'images/ar/generations',
|
|
28
|
+
},
|
|
29
|
+
}
|
|
31
30
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
// ? HunyuanEditImageOutput
|
|
35
|
-
// : unknown
|
|
36
|
-
// : TOutput
|
|
31
|
+
/** 生成图片 */
|
|
32
|
+
public generateImage: GenerateImageFn<TProvider>
|
|
37
33
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
34
|
+
constructor(private req: ModelReq, public baseUrl: string, public provider: TProvider) {
|
|
35
|
+
this.generateImage = this.generateImageImpl.bind(this) as GenerateImageFn<TProvider>
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** generateImage 的实际实现 */
|
|
39
|
+
private async generateImageImpl(input: HunyuanARGenerateImageInput | HunyuanGenerateImageInput,): Promise<HunyuanARGenerateImageOutput | HunyuanGenerateImageOutput> {
|
|
40
|
+
let subUrl = this.defaultGenerateImageSubUrl
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
) {}
|
|
42
|
+
if (typeof input === 'object' && input && 'model' in input && typeof input.model === 'string') {
|
|
43
|
+
const newSubUrl = this.generateImageSubUrlConfig[this.provider]?.[input.model]
|
|
44
|
+
if (newSubUrl) subUrl = newSubUrl
|
|
45
|
+
}
|
|
47
46
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
url: this.getGenerateUrl(),
|
|
47
|
+
const res = (await this.req({
|
|
48
|
+
url: this.getGenerateUrl(subUrl),
|
|
51
49
|
data: input,
|
|
52
50
|
stream: false,
|
|
53
|
-
})
|
|
51
|
+
})) as HunyuanARGenerateImageOutput | HunyuanGenerateImageOutput
|
|
54
52
|
|
|
55
|
-
return res
|
|
53
|
+
return res
|
|
56
54
|
}
|
|
57
55
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
// url: this.getEditUrl(),
|
|
61
|
-
// data: input,
|
|
62
|
-
// stream: false,
|
|
63
|
-
// })
|
|
64
|
-
// return res as EditImageOutput<TProvider, TOutput>
|
|
65
|
-
// }
|
|
66
|
-
|
|
67
|
-
private getGenerateUrl() {
|
|
68
|
-
return `${this.baseUrl}/${this.provider}/${this.generateImageSubUrl}`
|
|
56
|
+
private getGenerateUrl(subUrl: string) {
|
|
57
|
+
return `${this.baseUrl}/${this.provider}/${subUrl}`
|
|
69
58
|
}
|
|
70
|
-
|
|
71
|
-
// private getEditUrl() {
|
|
72
|
-
// return `${this.baseUrl}/${this.provider}/${this.editImageSubUrl}`
|
|
73
|
-
// }
|
|
74
59
|
}
|
package/src/type.ts
CHANGED
|
@@ -169,13 +169,8 @@ export interface ImageEditInput {
|
|
|
169
169
|
[key: string]: unknown // 允许额外的厂商特定参数
|
|
170
170
|
}
|
|
171
171
|
|
|
172
|
-
/**
|
|
173
|
-
* 混元图片生成输入参数
|
|
174
|
-
* 接口文档:POST /openapi/v1/images/generations
|
|
175
|
-
*/
|
|
176
172
|
export interface HunyuanGenerateImageInput {
|
|
177
|
-
|
|
178
|
-
model: 'hunyuan-image' | (string & {})
|
|
173
|
+
model: 'hunyuan-image'
|
|
179
174
|
/** 用来生成图像的文本描述 */
|
|
180
175
|
prompt: string
|
|
181
176
|
/**
|
|
@@ -234,10 +229,41 @@ export interface HunyuanGenerateImageInput {
|
|
|
234
229
|
seed?: number
|
|
235
230
|
}
|
|
236
231
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
*/
|
|
232
|
+
export interface HunyuanARGenerateImageInput {
|
|
233
|
+
/** 模型名称:hunyuan-image-v3.0-v1.0.4(推荐)或 hunyuan-image-v3.0-v1.0.1 */
|
|
234
|
+
model: 'hunyuan-image-v3.0-v1.0.4' | 'hunyuan-image-v3.0-v1.0.1'
|
|
235
|
+
/** 生成图片使用的文本,不超过 8192 字符 */
|
|
236
|
+
prompt: string
|
|
237
|
+
/**
|
|
238
|
+
* 图片尺寸,格式 "${宽}x${高}",默认 "1024x1024"
|
|
239
|
+
* hunyuan-image-v3.0-v1.0.4:宽高 [512, 2048],面积不超过 1024x1024
|
|
240
|
+
* hunyuan-image-v3.0-v1.0.1:支持固定尺寸列表
|
|
241
|
+
*/
|
|
242
|
+
size?: string
|
|
243
|
+
/** 生成种子,仅当生成图片数为 1 时生效,范围 [1, 4294967295] */
|
|
244
|
+
seed?: number
|
|
245
|
+
/** 业务自定义水印内容,限制 16 字符,生成在图片右下角 */
|
|
246
|
+
footnote?: string
|
|
247
|
+
/** 是否对 prompt 改写,默认开启。改写会增加约 30s 耗时 */
|
|
248
|
+
revise?: { value: boolean }
|
|
249
|
+
/** 改写是否开启 thinking 模式,默认开启。开启后效果提升但耗时增加(最大 60s) */
|
|
250
|
+
enable_thinking?: { value: boolean }
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
export interface HunyuanARGenerateImageOutput {
|
|
254
|
+
/** 此次请求的 id */
|
|
255
|
+
id: string
|
|
256
|
+
/** unix 时间戳 */
|
|
257
|
+
created: number
|
|
258
|
+
/** 返回的图片生成内容 */
|
|
259
|
+
data: Array<{
|
|
260
|
+
/** 生成的图片 url,有效期 24 小时 */
|
|
261
|
+
url: string
|
|
262
|
+
/** 改写后的 prompt */
|
|
263
|
+
revised_prompt?: string
|
|
264
|
+
}>
|
|
265
|
+
}
|
|
266
|
+
|
|
241
267
|
export type HunyuanEditImageInput = {
|
|
242
268
|
/** 模型名称,本期为 hunyuan-image,即为商品图编辑场景 */
|
|
243
269
|
model: 'hunyuan-image' | (string & {})
|