@purpleschool/gptbot 0.14.14-avatar-studio → 0.14.16

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 (31) hide show
  1. package/build/commands/photo-studio/execute-photo-studio-action.command.js +6 -15
  2. package/build/constants/photo-studio/enums/index.js +6 -0
  3. package/build/constants/photo-studio/enums/photo-studio-action-alias.enum.js +18 -0
  4. package/build/constants/photo-studio/enums/photo-studio-effect-alias.enum.js +18 -0
  5. package/build/constants/photo-studio/enums/photo-studio-font-style-alias.enum.js +12 -0
  6. package/build/constants/photo-studio/enums/photo-studio-placement-alias.enum.js +9 -0
  7. package/build/constants/photo-studio/enums/photo-studio-upscale-size.enum.js +9 -0
  8. package/build/constants/photo-studio/enums/photo-studio-variation-strength-alias.enum.js +9 -0
  9. package/build/constants/photo-studio/index.js +1 -0
  10. package/build/constants/photo-studio/photo-studio-action-title.constant.js +18 -0
  11. package/build/constants/tool-video/enums/video-generation-model-limitation.enum.js +3 -0
  12. package/build/models/photo-studio/photo-studio-action.schema.js +2 -1
  13. package/build/models/photo-studio/photo-studio-checkpoint.schema.js +1 -1
  14. package/build/models/tools/video/video-job.schema.js +2 -2
  15. package/build/models/tools/video/video-model.schema.js +12 -4
  16. package/commands/photo-studio/execute-photo-studio-action.command.ts +15 -16
  17. package/constants/photo-studio/enums/index.ts +6 -0
  18. package/constants/photo-studio/enums/photo-studio-action-alias.enum.ts +14 -0
  19. package/constants/photo-studio/enums/photo-studio-effect-alias.enum.ts +14 -0
  20. package/constants/photo-studio/enums/photo-studio-font-style-alias.enum.ts +8 -0
  21. package/constants/photo-studio/enums/photo-studio-placement-alias.enum.ts +5 -0
  22. package/constants/photo-studio/enums/photo-studio-upscale-size.enum.ts +5 -0
  23. package/constants/photo-studio/enums/photo-studio-variation-strength-alias.enum.ts +5 -0
  24. package/constants/photo-studio/index.ts +1 -0
  25. package/constants/photo-studio/photo-studio-action-title.constant.ts +18 -0
  26. package/constants/tool-video/enums/video-generation-model-limitation.enum.ts +3 -0
  27. package/models/photo-studio/photo-studio-action.schema.ts +2 -1
  28. package/models/photo-studio/photo-studio-checkpoint.schema.ts +1 -1
  29. package/models/tools/video/video-job.schema.ts +2 -2
  30. package/models/tools/video/video-model.schema.ts +13 -5
  31. package/package.json +1 -1
@@ -8,7 +8,7 @@ const models_1 = require("../../models");
8
8
  var ExecutePhotoStudioActionCommand;
9
9
  (function (ExecutePhotoStudioActionCommand) {
10
10
  ExecutePhotoStudioActionCommand.RequestSchema = zod_1.z.object({
11
- actionAlias: zod_1.z.string().min(1),
11
+ actionAlias: zod_1.z.nativeEnum(constants_1.PHOTO_STUDIO_ACTION_ALIAS),
12
12
  modelId: zod_1.z.string().uuid(),
13
13
  prompt: zod_1.z.string().optional(),
14
14
  params: zod_1.z
@@ -17,21 +17,12 @@ var ExecutePhotoStudioActionCommand;
17
17
  enhancePrompt: zod_1.z.boolean().optional(),
18
18
  resolution: zod_1.z.nativeEnum(image_generation_resolution_enum_1.IMAGE_GENERATION_RESOLUTION).optional(),
19
19
  aspectRatio: zod_1.z.string().optional(),
20
- effect: zod_1.z.string().optional(),
21
- size: zod_1.z.enum(['2x', '4x', '8x']).optional(),
20
+ effect: zod_1.z.nativeEnum(constants_1.PHOTO_STUDIO_EFFECT_ALIAS).optional(),
21
+ size: zod_1.z.nativeEnum(constants_1.PHOTO_STUDIO_UPSCALE_SIZE).optional(),
22
22
  variationsCount: zod_1.z.union([zod_1.z.literal(2), zod_1.z.literal(3), zod_1.z.literal(4)]).optional(),
23
- variationStrength: zod_1.z.enum(['light', 'medium', 'high']).optional(),
24
- fontStyle: zod_1.z
25
- .enum([
26
- 'calligraphy',
27
- 'handwritten',
28
- 'elegant',
29
- 'decorative',
30
- 'poster',
31
- 'engraving',
32
- ])
33
- .optional(),
34
- placement: zod_1.z.enum(['top', 'center', 'bottom']).optional(),
23
+ variationStrength: zod_1.z.nativeEnum(constants_1.PHOTO_STUDIO_VARIATION_STRENGTH_ALIAS).optional(),
24
+ fontStyle: zod_1.z.nativeEnum(constants_1.PHOTO_STUDIO_FONT_STYLE_ALIAS).optional(),
25
+ placement: zod_1.z.nativeEnum(constants_1.PHOTO_STUDIO_PLACEMENT_ALIAS).optional(),
35
26
  color: zod_1.z.string().optional(),
36
27
  })
37
28
  .default({}),
@@ -14,4 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./photo-studio-action-alias.enum"), exports);
17
18
  __exportStar(require("./photo-studio-checkpoint-action-type.enum"), exports);
19
+ __exportStar(require("./photo-studio-effect-alias.enum"), exports);
20
+ __exportStar(require("./photo-studio-font-style-alias.enum"), exports);
21
+ __exportStar(require("./photo-studio-placement-alias.enum"), exports);
22
+ __exportStar(require("./photo-studio-upscale-size.enum"), exports);
23
+ __exportStar(require("./photo-studio-variation-strength-alias.enum"), exports);
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PHOTO_STUDIO_ACTION_ALIAS = void 0;
4
+ var PHOTO_STUDIO_ACTION_ALIAS;
5
+ (function (PHOTO_STUDIO_ACTION_ALIAS) {
6
+ PHOTO_STUDIO_ACTION_ALIAS["GENERATE"] = "generate";
7
+ PHOTO_STUDIO_ACTION_ALIAS["EDIT"] = "edit";
8
+ PHOTO_STUDIO_ACTION_ALIAS["EFFECTS"] = "effects";
9
+ PHOTO_STUDIO_ACTION_ALIAS["OUTPAINT"] = "outpaint";
10
+ PHOTO_STUDIO_ACTION_ALIAS["REPLACE_BACKGROUND"] = "replace_background";
11
+ PHOTO_STUDIO_ACTION_ALIAS["REMOVE_BACKGROUND"] = "remove_background";
12
+ PHOTO_STUDIO_ACTION_ALIAS["VARIATIONS"] = "variations";
13
+ PHOTO_STUDIO_ACTION_ALIAS["TEXT"] = "text";
14
+ PHOTO_STUDIO_ACTION_ALIAS["UPSCALE"] = "upscale";
15
+ PHOTO_STUDIO_ACTION_ALIAS["BRUSH"] = "brush";
16
+ PHOTO_STUDIO_ACTION_ALIAS["MERGE"] = "merge";
17
+ PHOTO_STUDIO_ACTION_ALIAS["STYLE"] = "style";
18
+ })(PHOTO_STUDIO_ACTION_ALIAS || (exports.PHOTO_STUDIO_ACTION_ALIAS = PHOTO_STUDIO_ACTION_ALIAS = {}));
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PHOTO_STUDIO_EFFECT_ALIAS = void 0;
4
+ var PHOTO_STUDIO_EFFECT_ALIAS;
5
+ (function (PHOTO_STUDIO_EFFECT_ALIAS) {
6
+ PHOTO_STUDIO_EFFECT_ALIAS["ORIGINAL"] = "original";
7
+ PHOTO_STUDIO_EFFECT_ALIAS["BLACK_WHITE_CONTRAST"] = "black_white_contrast";
8
+ PHOTO_STUDIO_EFFECT_ALIAS["WARM_DAILY"] = "warm_daily";
9
+ PHOTO_STUDIO_EFFECT_ALIAS["SOCIAL_BRIGHT"] = "social_bright";
10
+ PHOTO_STUDIO_EFFECT_ALIAS["VINTAGE_FILM"] = "vintage_film";
11
+ PHOTO_STUDIO_EFFECT_ALIAS["BASIC_CORRECTION"] = "basic_correction";
12
+ PHOTO_STUDIO_EFFECT_ALIAS["PORTRAIT_RETOUCH"] = "portrait_retouch";
13
+ PHOTO_STUDIO_EFFECT_ALIAS["JUICY_COLORS"] = "juicy_colors";
14
+ PHOTO_STUDIO_EFFECT_ALIAS["URBAN_CONTRAST"] = "urban_contrast";
15
+ PHOTO_STUDIO_EFFECT_ALIAS["NATURE_COLORS"] = "nature_colors";
16
+ PHOTO_STUDIO_EFFECT_ALIAS["CINEMATIC"] = "cinematic";
17
+ PHOTO_STUDIO_EFFECT_ALIAS["SKETCH"] = "sketch";
18
+ })(PHOTO_STUDIO_EFFECT_ALIAS || (exports.PHOTO_STUDIO_EFFECT_ALIAS = PHOTO_STUDIO_EFFECT_ALIAS = {}));
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PHOTO_STUDIO_FONT_STYLE_ALIAS = void 0;
4
+ var PHOTO_STUDIO_FONT_STYLE_ALIAS;
5
+ (function (PHOTO_STUDIO_FONT_STYLE_ALIAS) {
6
+ PHOTO_STUDIO_FONT_STYLE_ALIAS["CALLIGRAPHY"] = "calligraphy";
7
+ PHOTO_STUDIO_FONT_STYLE_ALIAS["HANDWRITTEN"] = "handwritten";
8
+ PHOTO_STUDIO_FONT_STYLE_ALIAS["ELEGANT"] = "elegant";
9
+ PHOTO_STUDIO_FONT_STYLE_ALIAS["DECORATIVE"] = "decorative";
10
+ PHOTO_STUDIO_FONT_STYLE_ALIAS["POSTER"] = "poster";
11
+ PHOTO_STUDIO_FONT_STYLE_ALIAS["ENGRAVING"] = "engraving";
12
+ })(PHOTO_STUDIO_FONT_STYLE_ALIAS || (exports.PHOTO_STUDIO_FONT_STYLE_ALIAS = PHOTO_STUDIO_FONT_STYLE_ALIAS = {}));
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PHOTO_STUDIO_PLACEMENT_ALIAS = void 0;
4
+ var PHOTO_STUDIO_PLACEMENT_ALIAS;
5
+ (function (PHOTO_STUDIO_PLACEMENT_ALIAS) {
6
+ PHOTO_STUDIO_PLACEMENT_ALIAS["TOP"] = "top";
7
+ PHOTO_STUDIO_PLACEMENT_ALIAS["CENTER"] = "center";
8
+ PHOTO_STUDIO_PLACEMENT_ALIAS["BOTTOM"] = "bottom";
9
+ })(PHOTO_STUDIO_PLACEMENT_ALIAS || (exports.PHOTO_STUDIO_PLACEMENT_ALIAS = PHOTO_STUDIO_PLACEMENT_ALIAS = {}));
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PHOTO_STUDIO_UPSCALE_SIZE = void 0;
4
+ var PHOTO_STUDIO_UPSCALE_SIZE;
5
+ (function (PHOTO_STUDIO_UPSCALE_SIZE) {
6
+ PHOTO_STUDIO_UPSCALE_SIZE["TWO_X"] = "2x";
7
+ PHOTO_STUDIO_UPSCALE_SIZE["FOUR_X"] = "4x";
8
+ PHOTO_STUDIO_UPSCALE_SIZE["EIGHT_X"] = "8x";
9
+ })(PHOTO_STUDIO_UPSCALE_SIZE || (exports.PHOTO_STUDIO_UPSCALE_SIZE = PHOTO_STUDIO_UPSCALE_SIZE = {}));
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PHOTO_STUDIO_VARIATION_STRENGTH_ALIAS = void 0;
4
+ var PHOTO_STUDIO_VARIATION_STRENGTH_ALIAS;
5
+ (function (PHOTO_STUDIO_VARIATION_STRENGTH_ALIAS) {
6
+ PHOTO_STUDIO_VARIATION_STRENGTH_ALIAS["LIGHT"] = "light";
7
+ PHOTO_STUDIO_VARIATION_STRENGTH_ALIAS["MEDIUM"] = "medium";
8
+ PHOTO_STUDIO_VARIATION_STRENGTH_ALIAS["HIGH"] = "high";
9
+ })(PHOTO_STUDIO_VARIATION_STRENGTH_ALIAS || (exports.PHOTO_STUDIO_VARIATION_STRENGTH_ALIAS = PHOTO_STUDIO_VARIATION_STRENGTH_ALIAS = {}));
@@ -15,3 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./enums"), exports);
18
+ __exportStar(require("./photo-studio-action-title.constant"), exports);
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PHOTO_STUDIO_ACTION_TITLES_BY_ALIAS = void 0;
4
+ const enums_1 = require("./enums");
5
+ exports.PHOTO_STUDIO_ACTION_TITLES_BY_ALIAS = {
6
+ [enums_1.PHOTO_STUDIO_ACTION_ALIAS.GENERATE]: 'Обычная генерация',
7
+ [enums_1.PHOTO_STUDIO_ACTION_ALIAS.EDIT]: 'Правка',
8
+ [enums_1.PHOTO_STUDIO_ACTION_ALIAS.EFFECTS]: 'Эффекты',
9
+ [enums_1.PHOTO_STUDIO_ACTION_ALIAS.OUTPAINT]: 'Дорисовать',
10
+ [enums_1.PHOTO_STUDIO_ACTION_ALIAS.REPLACE_BACKGROUND]: 'Изменить фон',
11
+ [enums_1.PHOTO_STUDIO_ACTION_ALIAS.REMOVE_BACKGROUND]: 'Удалить фон',
12
+ [enums_1.PHOTO_STUDIO_ACTION_ALIAS.VARIATIONS]: 'Вариации',
13
+ [enums_1.PHOTO_STUDIO_ACTION_ALIAS.TEXT]: 'Текст',
14
+ [enums_1.PHOTO_STUDIO_ACTION_ALIAS.UPSCALE]: 'Upscale',
15
+ [enums_1.PHOTO_STUDIO_ACTION_ALIAS.BRUSH]: 'AI Кисть',
16
+ [enums_1.PHOTO_STUDIO_ACTION_ALIAS.MERGE]: 'Слияние',
17
+ [enums_1.PHOTO_STUDIO_ACTION_ALIAS.STYLE]: 'Стиль',
18
+ };
@@ -5,4 +5,7 @@ var VIDEO_GENERATION_MODEL_LIMITATION;
5
5
  (function (VIDEO_GENERATION_MODEL_LIMITATION) {
6
6
  VIDEO_GENERATION_MODEL_LIMITATION["ASPECT_RATIO_IGNORED_WITH_IMAGE_ATTACHED"] = "ASPECT_RATIO_IGNORED_WITH_IMAGE_ATTACHED";
7
7
  VIDEO_GENERATION_MODEL_LIMITATION["IMAGE_INPUT_IGNORED_WITH_FRAMES_INPUT"] = "IMAGE_INPUT_IGNORED_WITH_FRAMES_INPUT";
8
+ VIDEO_GENERATION_MODEL_LIMITATION["IMAGE_AND_AUDIO_REQUIRED"] = "IMAGE_AND_AUDIO_REQUIRED";
9
+ VIDEO_GENERATION_MODEL_LIMITATION["PROMPT_IGNORED"] = "PROMPT_IGNORED";
10
+ VIDEO_GENERATION_MODEL_LIMITATION["DURATION_NOT_CONFIGURABLE"] = "DURATION_NOT_CONFIGURABLE";
8
11
  })(VIDEO_GENERATION_MODEL_LIMITATION || (exports.VIDEO_GENERATION_MODEL_LIMITATION = VIDEO_GENERATION_MODEL_LIMITATION = {}));
@@ -2,12 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PhotoStudioActionSchema = exports.PhotoStudioImageSettingsSchema = void 0;
4
4
  const zod_1 = require("zod");
5
+ const constants_1 = require("../../constants");
5
6
  exports.PhotoStudioImageSettingsSchema = zod_1.z.object({
6
7
  minImages: zod_1.z.number().int().min(0),
7
8
  maxImages: zod_1.z.number().int().min(1),
8
9
  });
9
10
  exports.PhotoStudioActionSchema = zod_1.z.object({
10
- alias: zod_1.z.string().min(1),
11
+ alias: zod_1.z.nativeEnum(constants_1.PHOTO_STUDIO_ACTION_ALIAS),
11
12
  title: zod_1.z.string().min(1),
12
13
  icon: zod_1.z.string().min(1),
13
14
  allowUserPrompt: zod_1.z.boolean(),
@@ -7,11 +7,11 @@ const photo_studio_image_node_schema_1 = require("./photo-studio-image-node.sche
7
7
  exports.PhotoStudioCheckpointActionSchema = zod_1.z.object({
8
8
  type: zod_1.z.nativeEnum(constants_1.PHOTO_STUDIO_CHECKPOINT_ACTION_TYPE),
9
9
  actionAlias: zod_1.z.string().nullable().optional(),
10
- title: zod_1.z.string().nullable().optional(),
11
10
  params: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).nullable().optional(),
12
11
  });
13
12
  exports.PhotoStudioCheckpointSchema = zod_1.z.object({
14
13
  uuid: zod_1.z.string().uuid(),
14
+ title: zod_1.z.string(),
15
15
  canvasId: zod_1.z.string().uuid(),
16
16
  sequence: zod_1.z.number().int().positive(),
17
17
  action: exports.PhotoStudioCheckpointActionSchema,
@@ -11,8 +11,8 @@ exports.VideoJobParamsSchema = zod_1.z.object({
11
11
  referenceImageIds: zod_1.z.array(zod_1.z.string()).optional(),
12
12
  firstFrameUrl: zod_1.z.string().optional(),
13
13
  lastFrameUrl: zod_1.z.string().optional(),
14
- audioUrl: zod_1.z.string().url().optional(),
15
- audioId: zod_1.z.string().uuid().optional(),
14
+ audioUrls: zod_1.z.array(zod_1.z.string().url()).optional(),
15
+ audioIds: zod_1.z.array(zod_1.z.string().uuid()).optional(),
16
16
  firstFrameId: zod_1.z.string().optional(),
17
17
  lastFrameId: zod_1.z.string().optional(),
18
18
  duration: zod_1.z.number().optional(),
@@ -17,9 +17,11 @@ exports.VideoModelParamsSchema = zod_1.z.object({
17
17
  maxImages: zod_1.z.number(),
18
18
  })
19
19
  .optional(),
20
- duration: zod_1.z.object({
20
+ duration: zod_1.z
21
+ .object({
21
22
  options: zod_1.z.array(zod_1.z.number()),
22
- }),
23
+ })
24
+ .optional(),
23
25
  aspectRatio: zod_1.z
24
26
  .object({
25
27
  options: zod_1.z.array(zod_1.z.string()),
@@ -39,7 +41,13 @@ exports.VideoModelParamsSchema = zod_1.z.object({
39
41
  audioAttachment: zod_1.z
40
42
  .object({
41
43
  supported: zod_1.z.boolean(),
42
- maxAudioUrls: zod_1.z.number(),
44
+ maxAudios: zod_1.z.number(),
45
+ maxDurationSeconds: zod_1.z.number(),
46
+ minDurationSeconds: zod_1.z.number().optional(),
47
+ maxTotalDurationSeconds: zod_1.z.number().optional(),
48
+ maxFileSizeMb: zod_1.z.number().optional(),
49
+ formats: zod_1.z.array(zod_1.z.string()).optional(),
50
+ mimeTypes: zod_1.z.array(zod_1.z.string()).optional(),
43
51
  })
44
52
  .optional(),
45
53
  multiShots: zod_1.z
@@ -59,7 +67,7 @@ exports.VideoGenerationRequestParamsSchema = zod_1.z.object({
59
67
  referenceImages: zod_1.z.string().uuid().array().optional(),
60
68
  firstFrameImageId: zod_1.z.string().uuid().optional(),
61
69
  lastFrameImageId: zod_1.z.string().uuid().optional(),
62
- audioId: zod_1.z.string().uuid().optional(),
70
+ audioIds: zod_1.z.string().uuid().array().optional(),
63
71
  duration: zod_1.z.number(),
64
72
  aspectRatio: zod_1.z.string().optional(),
65
73
  quality: zod_1.z.string().optional(),
@@ -1,11 +1,19 @@
1
1
  import { z } from 'zod';
2
- import { TOOL_CONTENT_TYPE } from '../../constants';
2
+ import {
3
+ PHOTO_STUDIO_ACTION_ALIAS,
4
+ PHOTO_STUDIO_EFFECT_ALIAS,
5
+ PHOTO_STUDIO_FONT_STYLE_ALIAS,
6
+ PHOTO_STUDIO_PLACEMENT_ALIAS,
7
+ PHOTO_STUDIO_UPSCALE_SIZE,
8
+ PHOTO_STUDIO_VARIATION_STRENGTH_ALIAS,
9
+ TOOL_CONTENT_TYPE,
10
+ } from '../../constants';
3
11
  import { IMAGE_GENERATION_RESOLUTION } from '../../constants/tool-image-generation/enums/image-generation-resolution.enum';
4
12
  import { CanvasNodePositionSchema, ToolJobSchema } from '../../models';
5
13
 
6
14
  export namespace ExecutePhotoStudioActionCommand {
7
15
  export const RequestSchema = z.object({
8
- actionAlias: z.string().min(1),
16
+ actionAlias: z.nativeEnum(PHOTO_STUDIO_ACTION_ALIAS),
9
17
  modelId: z.string().uuid(),
10
18
  prompt: z.string().optional(),
11
19
  params: z
@@ -14,21 +22,12 @@ export namespace ExecutePhotoStudioActionCommand {
14
22
  enhancePrompt: z.boolean().optional(),
15
23
  resolution: z.nativeEnum(IMAGE_GENERATION_RESOLUTION).optional(),
16
24
  aspectRatio: z.string().optional(),
17
- effect: z.string().optional(),
18
- size: z.enum(['2x', '4x', '8x']).optional(),
25
+ effect: z.nativeEnum(PHOTO_STUDIO_EFFECT_ALIAS).optional(),
26
+ size: z.nativeEnum(PHOTO_STUDIO_UPSCALE_SIZE).optional(),
19
27
  variationsCount: z.union([z.literal(2), z.literal(3), z.literal(4)]).optional(),
20
- variationStrength: z.enum(['light', 'medium', 'high']).optional(),
21
- fontStyle: z
22
- .enum([
23
- 'calligraphy',
24
- 'handwritten',
25
- 'elegant',
26
- 'decorative',
27
- 'poster',
28
- 'engraving',
29
- ])
30
- .optional(),
31
- placement: z.enum(['top', 'center', 'bottom']).optional(),
28
+ variationStrength: z.nativeEnum(PHOTO_STUDIO_VARIATION_STRENGTH_ALIAS).optional(),
29
+ fontStyle: z.nativeEnum(PHOTO_STUDIO_FONT_STYLE_ALIAS).optional(),
30
+ placement: z.nativeEnum(PHOTO_STUDIO_PLACEMENT_ALIAS).optional(),
32
31
  color: z.string().optional(),
33
32
  })
34
33
  .default({}),
@@ -1 +1,7 @@
1
+ export * from './photo-studio-action-alias.enum';
1
2
  export * from './photo-studio-checkpoint-action-type.enum';
3
+ export * from './photo-studio-effect-alias.enum';
4
+ export * from './photo-studio-font-style-alias.enum';
5
+ export * from './photo-studio-placement-alias.enum';
6
+ export * from './photo-studio-upscale-size.enum';
7
+ export * from './photo-studio-variation-strength-alias.enum';
@@ -0,0 +1,14 @@
1
+ export enum PHOTO_STUDIO_ACTION_ALIAS {
2
+ GENERATE = 'generate',
3
+ EDIT = 'edit',
4
+ EFFECTS = 'effects',
5
+ OUTPAINT = 'outpaint',
6
+ REPLACE_BACKGROUND = 'replace_background',
7
+ REMOVE_BACKGROUND = 'remove_background',
8
+ VARIATIONS = 'variations',
9
+ TEXT = 'text',
10
+ UPSCALE = 'upscale',
11
+ BRUSH = 'brush',
12
+ MERGE = 'merge',
13
+ STYLE = 'style',
14
+ }
@@ -0,0 +1,14 @@
1
+ export enum PHOTO_STUDIO_EFFECT_ALIAS {
2
+ ORIGINAL = 'original',
3
+ BLACK_WHITE_CONTRAST = 'black_white_contrast',
4
+ WARM_DAILY = 'warm_daily',
5
+ SOCIAL_BRIGHT = 'social_bright',
6
+ VINTAGE_FILM = 'vintage_film',
7
+ BASIC_CORRECTION = 'basic_correction',
8
+ PORTRAIT_RETOUCH = 'portrait_retouch',
9
+ JUICY_COLORS = 'juicy_colors',
10
+ URBAN_CONTRAST = 'urban_contrast',
11
+ NATURE_COLORS = 'nature_colors',
12
+ CINEMATIC = 'cinematic',
13
+ SKETCH = 'sketch',
14
+ }
@@ -0,0 +1,8 @@
1
+ export enum PHOTO_STUDIO_FONT_STYLE_ALIAS {
2
+ CALLIGRAPHY = 'calligraphy',
3
+ HANDWRITTEN = 'handwritten',
4
+ ELEGANT = 'elegant',
5
+ DECORATIVE = 'decorative',
6
+ POSTER = 'poster',
7
+ ENGRAVING = 'engraving',
8
+ }
@@ -0,0 +1,5 @@
1
+ export enum PHOTO_STUDIO_PLACEMENT_ALIAS {
2
+ TOP = 'top',
3
+ CENTER = 'center',
4
+ BOTTOM = 'bottom',
5
+ }
@@ -0,0 +1,5 @@
1
+ export enum PHOTO_STUDIO_UPSCALE_SIZE {
2
+ TWO_X = '2x',
3
+ FOUR_X = '4x',
4
+ EIGHT_X = '8x',
5
+ }
@@ -0,0 +1,5 @@
1
+ export enum PHOTO_STUDIO_VARIATION_STRENGTH_ALIAS {
2
+ LIGHT = 'light',
3
+ MEDIUM = 'medium',
4
+ HIGH = 'high',
5
+ }
@@ -1 +1,2 @@
1
1
  export * from './enums';
2
+ export * from './photo-studio-action-title.constant';
@@ -0,0 +1,18 @@
1
+ import { PHOTO_STUDIO_ACTION_ALIAS } from './enums';
2
+
3
+ export const PHOTO_STUDIO_ACTION_TITLES_BY_ALIAS = {
4
+ [PHOTO_STUDIO_ACTION_ALIAS.GENERATE]: 'Обычная генерация',
5
+ [PHOTO_STUDIO_ACTION_ALIAS.EDIT]: 'Правка',
6
+ [PHOTO_STUDIO_ACTION_ALIAS.EFFECTS]: 'Эффекты',
7
+ [PHOTO_STUDIO_ACTION_ALIAS.OUTPAINT]: 'Дорисовать',
8
+ [PHOTO_STUDIO_ACTION_ALIAS.REPLACE_BACKGROUND]: 'Изменить фон',
9
+ [PHOTO_STUDIO_ACTION_ALIAS.REMOVE_BACKGROUND]: 'Удалить фон',
10
+ [PHOTO_STUDIO_ACTION_ALIAS.VARIATIONS]: 'Вариации',
11
+ [PHOTO_STUDIO_ACTION_ALIAS.TEXT]: 'Текст',
12
+ [PHOTO_STUDIO_ACTION_ALIAS.UPSCALE]: 'Upscale',
13
+ [PHOTO_STUDIO_ACTION_ALIAS.BRUSH]: 'AI Кисть',
14
+ [PHOTO_STUDIO_ACTION_ALIAS.MERGE]: 'Слияние',
15
+ [PHOTO_STUDIO_ACTION_ALIAS.STYLE]: 'Стиль',
16
+ } as const satisfies Record<PHOTO_STUDIO_ACTION_ALIAS, string>;
17
+
18
+ export type PhotoStudioActionTitleAlias = keyof typeof PHOTO_STUDIO_ACTION_TITLES_BY_ALIAS;
@@ -1,4 +1,7 @@
1
1
  export enum VIDEO_GENERATION_MODEL_LIMITATION {
2
2
  ASPECT_RATIO_IGNORED_WITH_IMAGE_ATTACHED = 'ASPECT_RATIO_IGNORED_WITH_IMAGE_ATTACHED',
3
3
  IMAGE_INPUT_IGNORED_WITH_FRAMES_INPUT = 'IMAGE_INPUT_IGNORED_WITH_FRAMES_INPUT',
4
+ IMAGE_AND_AUDIO_REQUIRED = 'IMAGE_AND_AUDIO_REQUIRED',
5
+ PROMPT_IGNORED = 'PROMPT_IGNORED',
6
+ DURATION_NOT_CONFIGURABLE = 'DURATION_NOT_CONFIGURABLE',
4
7
  }
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import { PHOTO_STUDIO_ACTION_ALIAS } from '../../constants';
2
3
 
3
4
  export const PhotoStudioImageSettingsSchema = z.object({
4
5
  minImages: z.number().int().min(0),
@@ -7,7 +8,7 @@ export const PhotoStudioImageSettingsSchema = z.object({
7
8
  export type PhotoStudioImageSettings = z.infer<typeof PhotoStudioImageSettingsSchema>;
8
9
 
9
10
  export const PhotoStudioActionSchema = z.object({
10
- alias: z.string().min(1),
11
+ alias: z.nativeEnum(PHOTO_STUDIO_ACTION_ALIAS),
11
12
  title: z.string().min(1),
12
13
  icon: z.string().min(1),
13
14
  allowUserPrompt: z.boolean(),
@@ -5,13 +5,13 @@ import { PhotoStudioImageNodeSchema } from './photo-studio-image-node.schema';
5
5
  export const PhotoStudioCheckpointActionSchema = z.object({
6
6
  type: z.nativeEnum(PHOTO_STUDIO_CHECKPOINT_ACTION_TYPE),
7
7
  actionAlias: z.string().nullable().optional(),
8
- title: z.string().nullable().optional(),
9
8
  params: z.record(z.string(), z.unknown()).nullable().optional(),
10
9
  });
11
10
  export type PhotoStudioCheckpointAction = z.infer<typeof PhotoStudioCheckpointActionSchema>;
12
11
 
13
12
  export const PhotoStudioCheckpointSchema = z.object({
14
13
  uuid: z.string().uuid(),
14
+ title: z.string(),
15
15
  canvasId: z.string().uuid(),
16
16
  sequence: z.number().int().positive(),
17
17
  action: PhotoStudioCheckpointActionSchema,
@@ -9,8 +9,8 @@ export const VideoJobParamsSchema = z.object({
9
9
  referenceImageIds: z.array(z.string()).optional(),
10
10
  firstFrameUrl: z.string().optional(),
11
11
  lastFrameUrl: z.string().optional(),
12
- audioUrl: z.string().url().optional(),
13
- audioId: z.string().uuid().optional(),
12
+ audioUrls: z.array(z.string().url()).optional(),
13
+ audioIds: z.array(z.string().uuid()).optional(),
14
14
  firstFrameId: z.string().optional(),
15
15
  lastFrameId: z.string().optional(),
16
16
  duration: z.number().optional(),
@@ -15,9 +15,11 @@ export const VideoModelParamsSchema = z.object({
15
15
  maxImages: z.number(),
16
16
  })
17
17
  .optional(),
18
- duration: z.object({
19
- options: z.array(z.number()),
20
- }),
18
+ duration: z
19
+ .object({
20
+ options: z.array(z.number()),
21
+ })
22
+ .optional(),
21
23
  aspectRatio: z
22
24
  .object({
23
25
  options: z.array(z.string()),
@@ -37,7 +39,13 @@ export const VideoModelParamsSchema = z.object({
37
39
  audioAttachment: z
38
40
  .object({
39
41
  supported: z.boolean(),
40
- maxAudioUrls: z.number(),
42
+ maxAudios: z.number(),
43
+ maxDurationSeconds: z.number(),
44
+ minDurationSeconds: z.number().optional(),
45
+ maxTotalDurationSeconds: z.number().optional(),
46
+ maxFileSizeMb: z.number().optional(),
47
+ formats: z.array(z.string()).optional(),
48
+ mimeTypes: z.array(z.string()).optional(),
41
49
  })
42
50
  .optional(),
43
51
  multiShots: z
@@ -58,7 +66,7 @@ export const VideoGenerationRequestParamsSchema = z.object({
58
66
  referenceImages: z.string().uuid().array().optional(),
59
67
  firstFrameImageId: z.string().uuid().optional(),
60
68
  lastFrameImageId: z.string().uuid().optional(),
61
- audioId: z.string().uuid().optional(),
69
+ audioIds: z.string().uuid().array().optional(),
62
70
  duration: z.number(),
63
71
  aspectRatio: z.string().optional(),
64
72
  quality: z.string().optional(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpleschool/gptbot",
3
- "version": "0.14.14-avatar-studio",
3
+ "version": "0.14.16",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",