@picsart/ai-sdk 1.137.3 → 1.139.0
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/_cli.js +42 -77
- package/index.d.ts +8 -15
- package/index.js +42 -71
- package/package.json +1 -1
package/_cli.js
CHANGED
|
@@ -583,8 +583,14 @@ function validateDescriptor(key, d, val, required) {
|
|
|
583
583
|
}
|
|
584
584
|
break;
|
|
585
585
|
case "file":
|
|
586
|
-
if (d.
|
|
586
|
+
if (d.array) {
|
|
587
587
|
if (!Array.isArray(val)) throw new Error(`"${key}" must be an array of URLs`);
|
|
588
|
+
if (d.array.min != null && val.length < d.array.min) {
|
|
589
|
+
throw new Error(`"${key}" needs at least ${d.array.min} items`);
|
|
590
|
+
}
|
|
591
|
+
if (d.array.max != null && val.length > d.array.max) {
|
|
592
|
+
throw new Error(`"${key}" allows at most ${d.array.max} items`);
|
|
593
|
+
}
|
|
588
594
|
} else {
|
|
589
595
|
if (typeof val !== "string") throw new Error(`"${key}" must be a string URL`);
|
|
590
596
|
}
|
|
@@ -907,7 +913,7 @@ var init_presets = __esm({
|
|
|
907
913
|
descriptor: {
|
|
908
914
|
kind: "file",
|
|
909
915
|
accept,
|
|
910
|
-
|
|
916
|
+
...opts?.array ? { array: opts.array } : {}
|
|
911
917
|
}
|
|
912
918
|
}
|
|
913
919
|
};
|
|
@@ -1103,7 +1109,7 @@ var init_define = __esm({
|
|
|
1103
1109
|
videoId: p.videoId,
|
|
1104
1110
|
language: p.language,
|
|
1105
1111
|
// File presets — key matches the runtime GenerationContext field name:
|
|
1106
|
-
imageInput: (max = 1, label = "Start Image", required = false) => p.file("imageUrls", "image", { max, label, required }),
|
|
1112
|
+
imageInput: (max = 1, label = "Start Image", required = false) => p.file("imageUrls", "image", { array: { max }, label, required }),
|
|
1107
1113
|
videoInput: (label = "Source Video") => p.file("videoUrl", "video", { label, required: true }),
|
|
1108
1114
|
audioInput: (label = "Audio Track", required = false) => p.file("audioUrl", "audio", { label, required }),
|
|
1109
1115
|
startFrame: (label = "Start Frame", required = false) => p.file("startFrame", "image", { label, required }),
|
|
@@ -2552,7 +2558,6 @@ var init_wan = __esm({
|
|
|
2552
2558
|
estimatedTime: 26,
|
|
2553
2559
|
mode: "video",
|
|
2554
2560
|
inputType: "v2v",
|
|
2555
|
-
disabled: true,
|
|
2556
2561
|
badge: ["popular", "new"],
|
|
2557
2562
|
description: "Wan 2.7 Video Edit \u2014 restyle or modify existing video with reference images.",
|
|
2558
2563
|
features: [feat("Video Input", "input"), feat("Image Input", "input"), feat("1080P", "resolution")],
|
|
@@ -3929,10 +3934,10 @@ var init_gemini = __esm({
|
|
|
3929
3934
|
specName: "Gemini 3 Pro Image",
|
|
3930
3935
|
workflow: "gemini/v2/images",
|
|
3931
3936
|
buildPayload: buildGemini3ProImagePayload,
|
|
3932
|
-
toolId: { by: "resolution", map: { "
|
|
3933
|
-
creditPrice: { "image-gen.gemini-3-pro-image.
|
|
3937
|
+
toolId: { by: "resolution", map: { "1K": "image-gen.gemini-3-pro-image.1k", "2K": "image-gen.gemini-3-pro-image.2k", "4K": "image-gen.gemini-3-pro-image.4k" } },
|
|
3938
|
+
creditPrice: { "image-gen.gemini-3-pro-image.1k": 3, "image-gen.gemini-3-pro-image.2k": 4, "image-gen.gemini-3-pro-image.4k": 5 },
|
|
3934
3939
|
pricingUnit: "per_image",
|
|
3935
|
-
estimatedTime: { "
|
|
3940
|
+
estimatedTime: { "1K": 30, "2K": 57, "4K": 74 },
|
|
3936
3941
|
mode: "image",
|
|
3937
3942
|
inputType: "t2i",
|
|
3938
3943
|
modelId: "gemini-3-pro-image-preview",
|
|
@@ -3942,7 +3947,7 @@ var init_gemini = __esm({
|
|
|
3942
3947
|
paramConfig: {
|
|
3943
3948
|
...params.prompt(),
|
|
3944
3949
|
...params.aspectRatio([...GEMINI_AR_WIDE], "1:1"),
|
|
3945
|
-
...params.resolution(["
|
|
3950
|
+
...params.resolution(["1K", "2K", "4K"], "2K"),
|
|
3946
3951
|
...params.count(),
|
|
3947
3952
|
...params.imageInput(14, "Source Images")
|
|
3948
3953
|
}
|
|
@@ -4276,7 +4281,7 @@ var init_elevenlabs = __esm({
|
|
|
4276
4281
|
buildPayload: buildElevenLabsSTSPayload,
|
|
4277
4282
|
toolId: "audio-gen.eleven-sts-v2",
|
|
4278
4283
|
creditPrice: { "audio-gen.eleven-sts-v2": 1 },
|
|
4279
|
-
pricingUnit: "
|
|
4284
|
+
pricingUnit: "per_minute",
|
|
4280
4285
|
estimatedTime: 15,
|
|
4281
4286
|
mode: "audio",
|
|
4282
4287
|
inputType: "sts",
|
|
@@ -5324,17 +5329,17 @@ var init_picsart = __esm({
|
|
|
5324
5329
|
upscale: { enabled: true, target_scale: 2 },
|
|
5325
5330
|
face_enhancement: { enabled: true },
|
|
5326
5331
|
colour_correction: { enabled: false },
|
|
5327
|
-
output_format: "
|
|
5332
|
+
output_format: "PNG"
|
|
5328
5333
|
});
|
|
5329
5334
|
({ MODELS: MODELS31, PRICES: PRICES31 } = defineModels("picsart", [
|
|
5330
5335
|
{
|
|
5331
5336
|
id: "picsart-change-bg",
|
|
5332
5337
|
name: "Picsart Change Background",
|
|
5333
|
-
workflow: "
|
|
5338
|
+
workflow: "v4/smart-background",
|
|
5334
5339
|
syncExecute: true,
|
|
5335
5340
|
buildPayload: buildChangeBgPayload,
|
|
5336
|
-
toolId: "image-
|
|
5337
|
-
creditPrice: { "image-
|
|
5341
|
+
toolId: "image-to-image.picsart-change-bg",
|
|
5342
|
+
creditPrice: { "image-to-image.picsart-change-bg": 1 },
|
|
5338
5343
|
pricingUnit: "per_image",
|
|
5339
5344
|
mode: "image",
|
|
5340
5345
|
inputType: "i2i",
|
|
@@ -5350,8 +5355,10 @@ var init_picsart = __esm({
|
|
|
5350
5355
|
name: "Remove Background",
|
|
5351
5356
|
workflow: "pcp/v2/sod",
|
|
5352
5357
|
syncExecute: true,
|
|
5353
|
-
disabled: true,
|
|
5354
5358
|
buildPayload: buildRemoveBgPayload,
|
|
5359
|
+
toolId: "image-to-image.picsart-sod",
|
|
5360
|
+
creditPrice: { "image-to-image.picsart-sod": 1 },
|
|
5361
|
+
pricingUnit: "per_image",
|
|
5355
5362
|
outputSchema: sodOutputSchema,
|
|
5356
5363
|
mode: "image",
|
|
5357
5364
|
inputType: "i2i",
|
|
@@ -5363,8 +5370,10 @@ var init_picsart = __esm({
|
|
|
5363
5370
|
id: "picsart-enhance",
|
|
5364
5371
|
name: "Enhance",
|
|
5365
5372
|
workflow: "pcp/v1/enhancement",
|
|
5366
|
-
disabled: true,
|
|
5367
5373
|
buildPayload: buildEnhancePayload,
|
|
5374
|
+
toolId: "image-to-image.picsart-enhance",
|
|
5375
|
+
creditPrice: { "image-to-image.picsart-enhance": 1 },
|
|
5376
|
+
pricingUnit: "per_image",
|
|
5368
5377
|
mode: "image",
|
|
5369
5378
|
inputType: "i2i",
|
|
5370
5379
|
estimatedTime: 30,
|
|
@@ -6359,52 +6368,6 @@ var init_client = __esm({
|
|
|
6359
6368
|
}
|
|
6360
6369
|
});
|
|
6361
6370
|
|
|
6362
|
-
// src/core/descriptors/param-access.ts
|
|
6363
|
-
function getEnumOptions(model, key) {
|
|
6364
|
-
const entry = model.paramConfig[key];
|
|
6365
|
-
if (!entry) return null;
|
|
6366
|
-
const d = entry.descriptor;
|
|
6367
|
-
if (d.kind === "enum") {
|
|
6368
|
-
return d.options.map((o) => o.id);
|
|
6369
|
-
}
|
|
6370
|
-
return null;
|
|
6371
|
-
}
|
|
6372
|
-
function getDefault(model, key) {
|
|
6373
|
-
const entry = model.paramConfig[key];
|
|
6374
|
-
if (!entry) return void 0;
|
|
6375
|
-
const d = entry.descriptor;
|
|
6376
|
-
return "default" in d ? d.default : void 0;
|
|
6377
|
-
}
|
|
6378
|
-
function getRange(model, key) {
|
|
6379
|
-
const entry = model.paramConfig[key];
|
|
6380
|
-
if (!entry) return null;
|
|
6381
|
-
const d = entry.descriptor;
|
|
6382
|
-
if (d.kind === "range") {
|
|
6383
|
-
const r = d;
|
|
6384
|
-
return { min: r.min, max: r.max, step: r.step, default: r.default };
|
|
6385
|
-
}
|
|
6386
|
-
return null;
|
|
6387
|
-
}
|
|
6388
|
-
function getFileParam(model, key) {
|
|
6389
|
-
const entry = model.paramConfig[key];
|
|
6390
|
-
if (!entry) return null;
|
|
6391
|
-
const d = entry.descriptor;
|
|
6392
|
-
if (d.kind === "file") {
|
|
6393
|
-
const f = d;
|
|
6394
|
-
return {
|
|
6395
|
-
required: entry.required ?? false,
|
|
6396
|
-
max: f.max,
|
|
6397
|
-
label: entry.label,
|
|
6398
|
-
accept: f.accept
|
|
6399
|
-
};
|
|
6400
|
-
}
|
|
6401
|
-
return null;
|
|
6402
|
-
}
|
|
6403
|
-
var init_param_access = __esm({
|
|
6404
|
-
"src/core/descriptors/param-access.ts"() {
|
|
6405
|
-
}
|
|
6406
|
-
});
|
|
6407
|
-
|
|
6408
6371
|
// src/core/descriptors/model-accessor.ts
|
|
6409
6372
|
function _model(id) {
|
|
6410
6373
|
return new ModelDescriptorImpl(resolveModel(id));
|
|
@@ -6429,7 +6392,6 @@ function _search(query) {
|
|
|
6429
6392
|
var ModelParamsAccessorImpl, ModelMetaImpl, ModelDescriptorImpl, Model;
|
|
6430
6393
|
var init_model_accessor = __esm({
|
|
6431
6394
|
"src/core/descriptors/model-accessor.ts"() {
|
|
6432
|
-
init_param_access();
|
|
6433
6395
|
init_utils();
|
|
6434
6396
|
init_resolve();
|
|
6435
6397
|
init_catalog();
|
|
@@ -6439,7 +6401,10 @@ var init_model_accessor = __esm({
|
|
|
6439
6401
|
this.def = def;
|
|
6440
6402
|
}
|
|
6441
6403
|
param(key) {
|
|
6442
|
-
|
|
6404
|
+
const entry = this.def.paramConfig[key];
|
|
6405
|
+
if (!entry) return void 0;
|
|
6406
|
+
const { descriptor, ...meta } = entry;
|
|
6407
|
+
return { ...meta, ...descriptor };
|
|
6443
6408
|
}
|
|
6444
6409
|
hasParam(key) {
|
|
6445
6410
|
return key in this.def.paramConfig;
|
|
@@ -6492,19 +6457,19 @@ var init_model_accessor = __esm({
|
|
|
6492
6457
|
return Object.values(this.def.paramConfig).some((e) => e.descriptor.kind === "file");
|
|
6493
6458
|
}
|
|
6494
6459
|
getDefault(key) {
|
|
6495
|
-
|
|
6460
|
+
const entry = this.def.paramConfig[key];
|
|
6461
|
+
if (!entry) return void 0;
|
|
6462
|
+
const d = entry.descriptor;
|
|
6463
|
+
return "default" in d ? d.default : void 0;
|
|
6496
6464
|
}
|
|
6497
6465
|
getDefaults() {
|
|
6498
6466
|
return extractDefaults(this.def.paramConfig);
|
|
6499
6467
|
}
|
|
6468
|
+
/** @deprecated Use `enum(key)` instead. */
|
|
6500
6469
|
getEnumOptions(key) {
|
|
6501
|
-
|
|
6502
|
-
|
|
6503
|
-
|
|
6504
|
-
return getRange(this.def, key);
|
|
6505
|
-
}
|
|
6506
|
-
getFileParam(key) {
|
|
6507
|
-
return getFileParam(this.def, key);
|
|
6470
|
+
const entry = this.def.paramConfig[key];
|
|
6471
|
+
if (!entry || entry.descriptor.kind !== "enum") return null;
|
|
6472
|
+
return entry.descriptor.options.map((o) => o.id);
|
|
6508
6473
|
}
|
|
6509
6474
|
toSchema() {
|
|
6510
6475
|
return descriptorsToSchema(this.def.paramConfig);
|
|
@@ -6514,9 +6479,8 @@ var init_model_accessor = __esm({
|
|
|
6514
6479
|
}
|
|
6515
6480
|
narrow(key, kind) {
|
|
6516
6481
|
const entry = this.param(key);
|
|
6517
|
-
if (!entry || entry.
|
|
6518
|
-
|
|
6519
|
-
return { ...meta, ...descriptor };
|
|
6482
|
+
if (!entry || entry.kind !== kind) return void 0;
|
|
6483
|
+
return entry;
|
|
6520
6484
|
}
|
|
6521
6485
|
};
|
|
6522
6486
|
ModelMetaImpl = class {
|
|
@@ -6878,9 +6842,11 @@ var init_model_constants = __esm({
|
|
|
6878
6842
|
toSchema(id) {
|
|
6879
6843
|
return Model(id).params().toSchema();
|
|
6880
6844
|
},
|
|
6881
|
-
/** @deprecated Use `Model(id).params().
|
|
6845
|
+
/** @deprecated Use `Model(id).params().file(key)` instead. */
|
|
6882
6846
|
getFileParam(id, key) {
|
|
6883
|
-
|
|
6847
|
+
const f = Model(id).params().file(key);
|
|
6848
|
+
if (!f) return null;
|
|
6849
|
+
return { required: f.required ?? false, max: f.array?.max ?? 1, label: f.label, accept: f.accept };
|
|
6884
6850
|
},
|
|
6885
6851
|
/** @deprecated Use `Model(id).params().hasParam(key)` instead. */
|
|
6886
6852
|
hasParam(id, key) {
|
|
@@ -6895,7 +6861,6 @@ var init_descriptors = __esm({
|
|
|
6895
6861
|
"src/core/descriptors/index.ts"() {
|
|
6896
6862
|
init_utils();
|
|
6897
6863
|
init_presets();
|
|
6898
|
-
init_param_access();
|
|
6899
6864
|
init_model_accessor();
|
|
6900
6865
|
}
|
|
6901
6866
|
});
|
package/index.d.ts
CHANGED
|
@@ -1122,7 +1122,11 @@ interface TextDescriptor {
|
|
|
1122
1122
|
interface FileDescriptor {
|
|
1123
1123
|
kind: 'file';
|
|
1124
1124
|
accept: 'image' | 'video' | 'audio' | 'media';
|
|
1125
|
-
max
|
|
1125
|
+
/** Present = array; absent = single. `min`/`max` bound the array length. */
|
|
1126
|
+
array?: {
|
|
1127
|
+
min?: number;
|
|
1128
|
+
max?: number;
|
|
1129
|
+
};
|
|
1126
1130
|
}
|
|
1127
1131
|
interface ObjectDescriptor {
|
|
1128
1132
|
kind: 'object';
|
|
@@ -1175,7 +1179,7 @@ interface ModelMeta {
|
|
|
1175
1179
|
}
|
|
1176
1180
|
/** Parameter operations — fluent access to model params, schemas, defaults. */
|
|
1177
1181
|
interface ModelParamsAccessor {
|
|
1178
|
-
param(key: string):
|
|
1182
|
+
param(key: string): (EntryMeta & ParamDescriptor) | undefined;
|
|
1179
1183
|
hasParam(key: string): boolean;
|
|
1180
1184
|
all(): FlatParamEntry[];
|
|
1181
1185
|
enum(key: string): EnumEntry | undefined;
|
|
@@ -1193,19 +1197,8 @@ interface ModelParamsAccessor {
|
|
|
1193
1197
|
hasFileInput(): boolean;
|
|
1194
1198
|
getDefault(key: string): unknown;
|
|
1195
1199
|
getDefaults(): Record<string, unknown>;
|
|
1200
|
+
/** @deprecated Use `enum(key)` instead — returns full `EnumEntry` with `.options`, `.default`, etc. */
|
|
1196
1201
|
getEnumOptions(key: string): (string | number)[] | null;
|
|
1197
|
-
getRange(key: string): {
|
|
1198
|
-
min: number;
|
|
1199
|
-
max: number;
|
|
1200
|
-
step?: number;
|
|
1201
|
-
default: number;
|
|
1202
|
-
} | null;
|
|
1203
|
-
getFileParam(key: string): {
|
|
1204
|
-
required: boolean;
|
|
1205
|
-
max: number;
|
|
1206
|
-
label?: string;
|
|
1207
|
-
accept?: string;
|
|
1208
|
-
} | null;
|
|
1209
1202
|
toSchema(): ModelParamSchema;
|
|
1210
1203
|
transferValues(prev: Record<string, unknown>): Record<string, unknown>;
|
|
1211
1204
|
}
|
|
@@ -1579,7 +1572,7 @@ declare const Models: {
|
|
|
1579
1572
|
readonly validate: (model: string, input: unknown) => ValidationResult;
|
|
1580
1573
|
/** @deprecated Use `Model(id).params().toSchema()` instead. */
|
|
1581
1574
|
readonly toSchema: (id: string) => ModelParamSchema;
|
|
1582
|
-
/** @deprecated Use `Model(id).params().
|
|
1575
|
+
/** @deprecated Use `Model(id).params().file(key)` instead. */
|
|
1583
1576
|
readonly getFileParam: (id: string, key: string) => {
|
|
1584
1577
|
required: boolean;
|
|
1585
1578
|
max: number;
|
package/index.js
CHANGED
|
@@ -176,8 +176,14 @@ function validateDescriptor(key, d, val, required) {
|
|
|
176
176
|
}
|
|
177
177
|
break;
|
|
178
178
|
case "file":
|
|
179
|
-
if (d.
|
|
179
|
+
if (d.array) {
|
|
180
180
|
if (!Array.isArray(val)) throw new Error(`"${key}" must be an array of URLs`);
|
|
181
|
+
if (d.array.min != null && val.length < d.array.min) {
|
|
182
|
+
throw new Error(`"${key}" needs at least ${d.array.min} items`);
|
|
183
|
+
}
|
|
184
|
+
if (d.array.max != null && val.length > d.array.max) {
|
|
185
|
+
throw new Error(`"${key}" allows at most ${d.array.max} items`);
|
|
186
|
+
}
|
|
181
187
|
} else {
|
|
182
188
|
if (typeof val !== "string") throw new Error(`"${key}" must be a string URL`);
|
|
183
189
|
}
|
|
@@ -488,7 +494,7 @@ var p = {
|
|
|
488
494
|
descriptor: {
|
|
489
495
|
kind: "file",
|
|
490
496
|
accept,
|
|
491
|
-
|
|
497
|
+
...opts?.array ? { array: opts.array } : {}
|
|
492
498
|
}
|
|
493
499
|
}
|
|
494
500
|
};
|
|
@@ -668,7 +674,7 @@ var params = {
|
|
|
668
674
|
videoId: p.videoId,
|
|
669
675
|
language: p.language,
|
|
670
676
|
// File presets — key matches the runtime GenerationContext field name:
|
|
671
|
-
imageInput: (max = 1, label = "Start Image", required = false) => p.file("imageUrls", "image", { max, label, required }),
|
|
677
|
+
imageInput: (max = 1, label = "Start Image", required = false) => p.file("imageUrls", "image", { array: { max }, label, required }),
|
|
672
678
|
videoInput: (label = "Source Video") => p.file("videoUrl", "video", { label, required: true }),
|
|
673
679
|
audioInput: (label = "Audio Track", required = false) => p.file("audioUrl", "audio", { label, required }),
|
|
674
680
|
startFrame: (label = "Start Frame", required = false) => p.file("startFrame", "image", { label, required }),
|
|
@@ -2056,7 +2062,6 @@ var { MODELS: MODELS10} = defineModels("wan", [
|
|
|
2056
2062
|
estimatedTime: 26,
|
|
2057
2063
|
mode: "video",
|
|
2058
2064
|
inputType: "v2v",
|
|
2059
|
-
disabled: true,
|
|
2060
2065
|
badge: ["popular", "new"],
|
|
2061
2066
|
description: "Wan 2.7 Video Edit \u2014 restyle or modify existing video with reference images.",
|
|
2062
2067
|
features: [feat("Video Input", "input"), feat("Image Input", "input"), feat("1080P", "resolution")],
|
|
@@ -3358,10 +3363,10 @@ var { MODELS: MODELS21} = defineModels("google", [
|
|
|
3358
3363
|
specName: "Gemini 3 Pro Image",
|
|
3359
3364
|
workflow: "gemini/v2/images",
|
|
3360
3365
|
buildPayload: buildGemini3ProImagePayload,
|
|
3361
|
-
toolId: { by: "resolution", map: { "
|
|
3362
|
-
creditPrice: { "image-gen.gemini-3-pro-image.
|
|
3366
|
+
toolId: { by: "resolution", map: { "1K": "image-gen.gemini-3-pro-image.1k", "2K": "image-gen.gemini-3-pro-image.2k", "4K": "image-gen.gemini-3-pro-image.4k" } },
|
|
3367
|
+
creditPrice: { "image-gen.gemini-3-pro-image.1k": 3, "image-gen.gemini-3-pro-image.2k": 4, "image-gen.gemini-3-pro-image.4k": 5 },
|
|
3363
3368
|
pricingUnit: "per_image",
|
|
3364
|
-
estimatedTime: { "
|
|
3369
|
+
estimatedTime: { "1K": 30, "2K": 57, "4K": 74 },
|
|
3365
3370
|
mode: "image",
|
|
3366
3371
|
inputType: "t2i",
|
|
3367
3372
|
modelId: "gemini-3-pro-image-preview",
|
|
@@ -3371,7 +3376,7 @@ var { MODELS: MODELS21} = defineModels("google", [
|
|
|
3371
3376
|
paramConfig: {
|
|
3372
3377
|
...params.prompt(),
|
|
3373
3378
|
...params.aspectRatio([...GEMINI_AR_WIDE], "1:1"),
|
|
3374
|
-
...params.resolution(["
|
|
3379
|
+
...params.resolution(["1K", "2K", "4K"], "2K"),
|
|
3375
3380
|
...params.count(),
|
|
3376
3381
|
...params.imageInput(14, "Source Images")
|
|
3377
3382
|
}
|
|
@@ -3689,7 +3694,7 @@ var { MODELS: MODELS23} = defineModels("elevenlabs", [
|
|
|
3689
3694
|
buildPayload: buildElevenLabsSTSPayload,
|
|
3690
3695
|
toolId: "audio-gen.eleven-sts-v2",
|
|
3691
3696
|
creditPrice: { "audio-gen.eleven-sts-v2": 1 },
|
|
3692
|
-
pricingUnit: "
|
|
3697
|
+
pricingUnit: "per_minute",
|
|
3693
3698
|
estimatedTime: 15,
|
|
3694
3699
|
mode: "audio",
|
|
3695
3700
|
inputType: "sts",
|
|
@@ -4681,17 +4686,17 @@ var buildEnhancePayload = (ctx) => ({
|
|
|
4681
4686
|
upscale: { enabled: true, target_scale: 2 },
|
|
4682
4687
|
face_enhancement: { enabled: true },
|
|
4683
4688
|
colour_correction: { enabled: false },
|
|
4684
|
-
output_format: "
|
|
4689
|
+
output_format: "PNG"
|
|
4685
4690
|
});
|
|
4686
4691
|
var { MODELS: MODELS31} = defineModels("picsart", [
|
|
4687
4692
|
{
|
|
4688
4693
|
id: "picsart-change-bg",
|
|
4689
4694
|
name: "Picsart Change Background",
|
|
4690
|
-
workflow: "
|
|
4695
|
+
workflow: "v4/smart-background",
|
|
4691
4696
|
syncExecute: true,
|
|
4692
4697
|
buildPayload: buildChangeBgPayload,
|
|
4693
|
-
toolId: "image-
|
|
4694
|
-
creditPrice: { "image-
|
|
4698
|
+
toolId: "image-to-image.picsart-change-bg",
|
|
4699
|
+
creditPrice: { "image-to-image.picsart-change-bg": 1 },
|
|
4695
4700
|
pricingUnit: "per_image",
|
|
4696
4701
|
mode: "image",
|
|
4697
4702
|
inputType: "i2i",
|
|
@@ -4707,8 +4712,10 @@ var { MODELS: MODELS31} = defineModels("picsart", [
|
|
|
4707
4712
|
name: "Remove Background",
|
|
4708
4713
|
workflow: "pcp/v2/sod",
|
|
4709
4714
|
syncExecute: true,
|
|
4710
|
-
disabled: true,
|
|
4711
4715
|
buildPayload: buildRemoveBgPayload,
|
|
4716
|
+
toolId: "image-to-image.picsart-sod",
|
|
4717
|
+
creditPrice: { "image-to-image.picsart-sod": 1 },
|
|
4718
|
+
pricingUnit: "per_image",
|
|
4712
4719
|
outputSchema: sodOutputSchema,
|
|
4713
4720
|
mode: "image",
|
|
4714
4721
|
inputType: "i2i",
|
|
@@ -4720,8 +4727,10 @@ var { MODELS: MODELS31} = defineModels("picsart", [
|
|
|
4720
4727
|
id: "picsart-enhance",
|
|
4721
4728
|
name: "Enhance",
|
|
4722
4729
|
workflow: "pcp/v1/enhancement",
|
|
4723
|
-
disabled: true,
|
|
4724
4730
|
buildPayload: buildEnhancePayload,
|
|
4731
|
+
toolId: "image-to-image.picsart-enhance",
|
|
4732
|
+
creditPrice: { "image-to-image.picsart-enhance": 1 },
|
|
4733
|
+
pricingUnit: "per_image",
|
|
4725
4734
|
mode: "image",
|
|
4726
4735
|
inputType: "i2i",
|
|
4727
4736
|
estimatedTime: 30,
|
|
@@ -5622,48 +5631,6 @@ function createClient(config) {
|
|
|
5622
5631
|
};
|
|
5623
5632
|
}
|
|
5624
5633
|
|
|
5625
|
-
// src/core/descriptors/param-access.ts
|
|
5626
|
-
function getEnumOptions(model, key) {
|
|
5627
|
-
const entry = model.paramConfig[key];
|
|
5628
|
-
if (!entry) return null;
|
|
5629
|
-
const d = entry.descriptor;
|
|
5630
|
-
if (d.kind === "enum") {
|
|
5631
|
-
return d.options.map((o) => o.id);
|
|
5632
|
-
}
|
|
5633
|
-
return null;
|
|
5634
|
-
}
|
|
5635
|
-
function getDefault(model, key) {
|
|
5636
|
-
const entry = model.paramConfig[key];
|
|
5637
|
-
if (!entry) return void 0;
|
|
5638
|
-
const d = entry.descriptor;
|
|
5639
|
-
return "default" in d ? d.default : void 0;
|
|
5640
|
-
}
|
|
5641
|
-
function getRange(model, key) {
|
|
5642
|
-
const entry = model.paramConfig[key];
|
|
5643
|
-
if (!entry) return null;
|
|
5644
|
-
const d = entry.descriptor;
|
|
5645
|
-
if (d.kind === "range") {
|
|
5646
|
-
const r = d;
|
|
5647
|
-
return { min: r.min, max: r.max, step: r.step, default: r.default };
|
|
5648
|
-
}
|
|
5649
|
-
return null;
|
|
5650
|
-
}
|
|
5651
|
-
function getFileParam(model, key) {
|
|
5652
|
-
const entry = model.paramConfig[key];
|
|
5653
|
-
if (!entry) return null;
|
|
5654
|
-
const d = entry.descriptor;
|
|
5655
|
-
if (d.kind === "file") {
|
|
5656
|
-
const f = d;
|
|
5657
|
-
return {
|
|
5658
|
-
required: entry.required ?? false,
|
|
5659
|
-
max: f.max,
|
|
5660
|
-
label: entry.label,
|
|
5661
|
-
accept: f.accept
|
|
5662
|
-
};
|
|
5663
|
-
}
|
|
5664
|
-
return null;
|
|
5665
|
-
}
|
|
5666
|
-
|
|
5667
5634
|
// src/core/descriptors/model-accessor.ts
|
|
5668
5635
|
var ModelParamsAccessorImpl = class {
|
|
5669
5636
|
def;
|
|
@@ -5671,7 +5638,10 @@ var ModelParamsAccessorImpl = class {
|
|
|
5671
5638
|
this.def = def;
|
|
5672
5639
|
}
|
|
5673
5640
|
param(key) {
|
|
5674
|
-
|
|
5641
|
+
const entry = this.def.paramConfig[key];
|
|
5642
|
+
if (!entry) return void 0;
|
|
5643
|
+
const { descriptor, ...meta } = entry;
|
|
5644
|
+
return { ...meta, ...descriptor };
|
|
5675
5645
|
}
|
|
5676
5646
|
hasParam(key) {
|
|
5677
5647
|
return key in this.def.paramConfig;
|
|
@@ -5724,19 +5694,19 @@ var ModelParamsAccessorImpl = class {
|
|
|
5724
5694
|
return Object.values(this.def.paramConfig).some((e) => e.descriptor.kind === "file");
|
|
5725
5695
|
}
|
|
5726
5696
|
getDefault(key) {
|
|
5727
|
-
|
|
5697
|
+
const entry = this.def.paramConfig[key];
|
|
5698
|
+
if (!entry) return void 0;
|
|
5699
|
+
const d = entry.descriptor;
|
|
5700
|
+
return "default" in d ? d.default : void 0;
|
|
5728
5701
|
}
|
|
5729
5702
|
getDefaults() {
|
|
5730
5703
|
return extractDefaults(this.def.paramConfig);
|
|
5731
5704
|
}
|
|
5705
|
+
/** @deprecated Use `enum(key)` instead. */
|
|
5732
5706
|
getEnumOptions(key) {
|
|
5733
|
-
|
|
5734
|
-
|
|
5735
|
-
|
|
5736
|
-
return getRange(this.def, key);
|
|
5737
|
-
}
|
|
5738
|
-
getFileParam(key) {
|
|
5739
|
-
return getFileParam(this.def, key);
|
|
5707
|
+
const entry = this.def.paramConfig[key];
|
|
5708
|
+
if (!entry || entry.descriptor.kind !== "enum") return null;
|
|
5709
|
+
return entry.descriptor.options.map((o) => o.id);
|
|
5740
5710
|
}
|
|
5741
5711
|
toSchema() {
|
|
5742
5712
|
return descriptorsToSchema(this.def.paramConfig);
|
|
@@ -5746,9 +5716,8 @@ var ModelParamsAccessorImpl = class {
|
|
|
5746
5716
|
}
|
|
5747
5717
|
narrow(key, kind) {
|
|
5748
5718
|
const entry = this.param(key);
|
|
5749
|
-
if (!entry || entry.
|
|
5750
|
-
|
|
5751
|
-
return { ...meta, ...descriptor };
|
|
5719
|
+
if (!entry || entry.kind !== kind) return void 0;
|
|
5720
|
+
return entry;
|
|
5752
5721
|
}
|
|
5753
5722
|
};
|
|
5754
5723
|
var ModelMetaImpl = class {
|
|
@@ -6121,9 +6090,11 @@ var Models = {
|
|
|
6121
6090
|
toSchema(id) {
|
|
6122
6091
|
return Model(id).params().toSchema();
|
|
6123
6092
|
},
|
|
6124
|
-
/** @deprecated Use `Model(id).params().
|
|
6093
|
+
/** @deprecated Use `Model(id).params().file(key)` instead. */
|
|
6125
6094
|
getFileParam(id, key) {
|
|
6126
|
-
|
|
6095
|
+
const f = Model(id).params().file(key);
|
|
6096
|
+
if (!f) return null;
|
|
6097
|
+
return { required: f.required ?? false, max: f.array?.max ?? 1, label: f.label, accept: f.accept };
|
|
6127
6098
|
},
|
|
6128
6099
|
/** @deprecated Use `Model(id).params().hasParam(key)` instead. */
|
|
6129
6100
|
hasParam(id, key) {
|