@dataclouder/nest-vertex 0.0.29 → 0.0.32

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 (40) hide show
  1. package/audio.utils.js +35 -2
  2. package/comfyui/controllers/comfy-ui.controller.js +35 -2
  3. package/comfyui/models/comfy.models.d.ts +1 -1
  4. package/comfyui/providers/comfy-services.providers.js +4 -5
  5. package/comfyui/services/comfy-connection.service.d.ts +1 -3
  6. package/comfyui/services/comfy-connection.service.js +12 -13
  7. package/comfyui/services/comfy-image.service.js +36 -3
  8. package/comfyui/services/comfy-video.service.js +36 -3
  9. package/controllers/vertex-comfy.controller.d.ts +1 -1
  10. package/controllers/vertex-image-adapter.controller.d.ts +2 -2
  11. package/controllers/vertex-llm-adapter.controller.d.ts +1 -1
  12. package/controllers/vertex-tts-adapter.controller.d.ts +3 -3
  13. package/controllers/vertex-veo-video.controller.d.ts +7 -0
  14. package/controllers/vertex-veo-video.controller.js +47 -0
  15. package/controllers/vertex-video-adapter.controller.d.ts +11 -2
  16. package/controllers/vertex-video-adapter.controller.js +44 -2
  17. package/dto/generate-video.dto.d.ts +1 -1
  18. package/dto/generate-video.dto.js +2 -2
  19. package/models/generated-asset.entity.d.ts +7 -6
  20. package/models/generated-asset.entity.js +5 -0
  21. package/models/generated-asset.model.d.ts +3 -2
  22. package/nest-vertex.module.js +4 -4
  23. package/package.json +1 -1
  24. package/services/adapter-image-gen.service.d.ts +2 -2
  25. package/services/adapter-llm.service.js +2 -2
  26. package/services/adapter-video-gen.service.d.ts +1 -0
  27. package/services/adapter-video-gen.service.js +2 -0
  28. package/services/ai-sdk-chat.service.d.ts +0 -6
  29. package/services/ai-sdk-chat.service.js +1 -47
  30. package/services/key-balancer-api.service.js +8 -8
  31. package/services/local-llm.service.d.ts +0 -2
  32. package/services/local-llm.service.js +0 -5
  33. package/services/vertex-gemini-chat.service.d.ts +1 -3
  34. package/services/vertex-gemini-chat.service.js +5 -9
  35. package/services/vertex-image-video.service.d.ts +1 -1
  36. package/services/vertex-image-video.service.js +1 -1
  37. package/services/vertex-image.service.js +8 -8
  38. package/services/vertex-veo-gcp.service.js +36 -3
  39. package/services/vertex-veo-genai.service.d.ts +20 -0
  40. package/services/vertex-veo-genai.service.js +159 -0
package/audio.utils.js CHANGED
@@ -1,8 +1,41 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.saveAudioToFile = saveAudioToFile;
4
- const path = require("path");
5
- const fs = require("fs/promises");
37
+ const path = __importStar(require("path"));
38
+ const fs = __importStar(require("fs/promises"));
6
39
  const common_1 = require("@nestjs/common");
7
40
  const logger = new common_1.Logger('AudioUtils');
8
41
  async function saveAudioToFile(audioBuffer, filename) {
@@ -1,10 +1,43 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
2
18
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
19
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
20
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
21
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
22
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
23
  };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
8
41
  var __metadata = (this && this.__metadata) || function (k, v) {
9
42
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
43
  };
@@ -18,8 +51,8 @@ const common_1 = require("@nestjs/common");
18
51
  const comfy_models_1 = require("../models/comfy.models");
19
52
  const nest_core_1 = require("@dataclouder/nest-core");
20
53
  const video_url_request_dto_1 = require("../dto/video-url-request.dto");
21
- const fs = require("fs/promises");
22
- const path = require("path");
54
+ const fs = __importStar(require("fs/promises"));
55
+ const path = __importStar(require("path"));
23
56
  const comfy_image_service_1 = require("../services/comfy-image.service");
24
57
  const comfy_video_service_1 = require("../services/comfy-video.service");
25
58
  const generated_asset_service_1 = require("../../services/generated-asset.service");
@@ -1,4 +1,4 @@
1
- export { GeneratedImageAdapter, ImageGenAdapterResponse, ImageGenRequestAdapter } from '../../models/adapter.models';
1
+ export { type GeneratedImageAdapter, ImageGenAdapterResponse, ImageGenRequestAdapter } from '../../models/adapter.models';
2
2
  export interface ComfyUIGenerateImagesResponse {
3
3
  images: {
4
4
  filename: string;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.comfyServicesProviders = void 0;
4
- const config_1 = require("@nestjs/config");
5
4
  const comfy_connection_service_1 = require("../services/comfy-connection.service");
6
5
  const comfy_image_service_1 = require("../services/comfy-image.service");
7
6
  const comfy_video_service_1 = require("../services/comfy-video.service");
@@ -12,13 +11,13 @@ const event_emitter_1 = require("@nestjs/event-emitter");
12
11
  exports.comfyServicesProviders = [
13
12
  {
14
13
  provide: comfy_connection_service_1.ComfyConnectionService,
15
- useFactory: (configService, httpService, generatedAssetService, cloudStorageService, eventEmitter) => {
16
- if (!configService.get('COMFYUI_API_HOST')) {
14
+ useFactory: (httpService, generatedAssetService, cloudStorageService, eventEmitter) => {
15
+ if (!process.env.COMFYUI_API_HOST) {
17
16
  return null;
18
17
  }
19
- return new comfy_connection_service_1.ComfyConnectionService(configService, httpService, generatedAssetService, cloudStorageService, eventEmitter);
18
+ return new comfy_connection_service_1.ComfyConnectionService(httpService, generatedAssetService, cloudStorageService, eventEmitter);
20
19
  },
21
- inject: [config_1.ConfigService, axios_1.HttpService, generated_asset_service_1.GeneratedAssetService, nest_storage_1.CloudStorageService, event_emitter_1.EventEmitter2],
20
+ inject: [axios_1.HttpService, generated_asset_service_1.GeneratedAssetService, nest_storage_1.CloudStorageService, event_emitter_1.EventEmitter2],
22
21
  },
23
22
  {
24
23
  provide: comfy_image_service_1.ComfyImageService,
@@ -1,12 +1,10 @@
1
1
  import { OnModuleInit, OnModuleDestroy } from '@nestjs/common';
2
- import { ConfigService } from '@nestjs/config';
3
2
  import { Client as ComfyUIClient } from '@stable-canvas/comfyui-client';
4
3
  import { HttpService } from '@nestjs/axios';
5
4
  import { GeneratedAssetService } from '../../services/generated-asset.service';
6
5
  import { CloudStorageService } from '@dataclouder/nest-storage';
7
6
  import { EventEmitter2 } from '@nestjs/event-emitter';
8
7
  export declare class ComfyConnectionService implements OnModuleInit, OnModuleDestroy {
9
- private readonly configService;
10
8
  private readonly httpService;
11
9
  private readonly generatedAssetService;
12
10
  private readonly cloudStorageService;
@@ -17,7 +15,7 @@ export declare class ComfyConnectionService implements OnModuleInit, OnModuleDes
17
15
  private comfyApiHost;
18
16
  private clientId;
19
17
  private pendingPrompts;
20
- constructor(configService: ConfigService, httpService: HttpService, generatedAssetService: GeneratedAssetService, cloudStorageService: CloudStorageService, eventEmitter: EventEmitter2);
18
+ constructor(httpService: HttpService, generatedAssetService: GeneratedAssetService, cloudStorageService: CloudStorageService, eventEmitter: EventEmitter2);
21
19
  onModuleInit(): Promise<void>;
22
20
  onModuleDestroy(): Promise<void>;
23
21
  private checkApiStatus;
@@ -11,11 +11,13 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
14
17
  var ComfyConnectionService_1;
15
18
  Object.defineProperty(exports, "__esModule", { value: true });
16
19
  exports.ComfyConnectionService = void 0;
17
20
  const common_1 = require("@nestjs/common");
18
- const config_1 = require("@nestjs/config");
19
21
  const comfyui_client_1 = require("@stable-canvas/comfyui-client");
20
22
  const ws_1 = require("ws");
21
23
  const axios_1 = require("@nestjs/axios");
@@ -23,9 +25,8 @@ const rxjs_1 = require("rxjs");
23
25
  const generated_asset_service_1 = require("../../services/generated-asset.service");
24
26
  const nest_storage_1 = require("@dataclouder/nest-storage");
25
27
  const event_emitter_1 = require("@nestjs/event-emitter");
26
- const FormData = require("form-data");
28
+ const form_data_1 = __importDefault(require("form-data"));
27
29
  let ComfyConnectionService = ComfyConnectionService_1 = class ComfyConnectionService {
28
- configService;
29
30
  httpService;
30
31
  generatedAssetService;
31
32
  cloudStorageService;
@@ -36,8 +37,7 @@ let ComfyConnectionService = ComfyConnectionService_1 = class ComfyConnectionSer
36
37
  comfyApiHost;
37
38
  clientId;
38
39
  pendingPrompts = new Map();
39
- constructor(configService, httpService, generatedAssetService, cloudStorageService, eventEmitter) {
40
- this.configService = configService;
40
+ constructor(httpService, generatedAssetService, cloudStorageService, eventEmitter) {
41
41
  this.httpService = httpService;
42
42
  this.generatedAssetService = generatedAssetService;
43
43
  this.cloudStorageService = cloudStorageService;
@@ -45,7 +45,7 @@ let ComfyConnectionService = ComfyConnectionService_1 = class ComfyConnectionSer
45
45
  this.clientId = `nest-comfy-client-${Date.now()}`;
46
46
  }
47
47
  async onModuleInit() {
48
- this.comfyApiHost = this.configService.get('COMFYUI_API_HOST');
48
+ this.comfyApiHost = process.env.COMFYUI_API_HOST || '';
49
49
  if (!this.comfyApiHost) {
50
50
  this.logger.warn('COMFYUI_API_HOST environment variable not set. ComfyConnectionService will not be initialized.');
51
51
  return;
@@ -118,7 +118,7 @@ let ComfyConnectionService = ComfyConnectionService_1 = class ComfyConnectionSer
118
118
  this.logger.log(`Workflow ${prompt_id} executed. Processing output...`);
119
119
  if (this.pendingPrompts.has(prompt_id)) {
120
120
  const pending = this.pendingPrompts.get(prompt_id);
121
- pending.resolve(output);
121
+ pending?.resolve(output);
122
122
  this.pendingPrompts.delete(prompt_id);
123
123
  this.logger.log(`Resolved pending promise for prompt ${prompt_id}.`);
124
124
  return;
@@ -137,9 +137,9 @@ let ComfyConnectionService = ComfyConnectionService_1 = class ComfyConnectionSer
137
137
  videoFilename = video.filename;
138
138
  this.logger.log(`Found video output: ${videoFilename}`);
139
139
  if (videoBuffer) {
140
- const uploadResult = await this.cloudStorageService.uploadFileAndMakePublic(process.env.STORAGE_BUCKET, `generated-videos/${generatedAsset.id}.mp4`, videoBuffer, 'video/mp4');
140
+ const uploadResult = await this.cloudStorageService.uploadFileAndMakePublic(process.env.STORAGE_BUCKET || '', `generated-videos/${generatedAsset.id}.mp4`, videoBuffer, 'video/mp4');
141
141
  this.logger.log(`Successfully uploaded video to: ${uploadResult.url}`);
142
- generatedAsset.url = uploadResult.url;
142
+ generatedAsset.url = uploadResult?.url || '';
143
143
  generatedAsset.result = uploadResult;
144
144
  generatedAsset.status = 'completed';
145
145
  await this.generatedAssetService.update(generatedAsset.id, generatedAsset);
@@ -181,7 +181,7 @@ let ComfyConnectionService = ComfyConnectionService_1 = class ComfyConnectionSer
181
181
  }
182
182
  async uploadImage(imageBuffer, filename) {
183
183
  const url = `http://${this.comfyApiHost}/upload/image`;
184
- const form = new FormData();
184
+ const form = new form_data_1.default();
185
185
  form.append('image', imageBuffer, { filename });
186
186
  form.append('overwrite', 'true');
187
187
  const response = await (0, rxjs_1.firstValueFrom)(this.httpService.post(url, form, {
@@ -219,9 +219,8 @@ let ComfyConnectionService = ComfyConnectionService_1 = class ComfyConnectionSer
219
219
  exports.ComfyConnectionService = ComfyConnectionService;
220
220
  exports.ComfyConnectionService = ComfyConnectionService = ComfyConnectionService_1 = __decorate([
221
221
  (0, common_1.Injectable)(),
222
- __param(1, (0, common_1.Inject)(axios_1.HttpService)),
223
- __metadata("design:paramtypes", [config_1.ConfigService,
224
- axios_1.HttpService,
222
+ __param(0, (0, common_1.Inject)(axios_1.HttpService)),
223
+ __metadata("design:paramtypes", [axios_1.HttpService,
225
224
  generated_asset_service_1.GeneratedAssetService,
226
225
  nest_storage_1.CloudStorageService,
227
226
  event_emitter_1.EventEmitter2])
@@ -1,10 +1,43 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
2
18
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
19
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
20
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
21
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
22
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
23
  };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
8
41
  var __metadata = (this && this.__metadata) || function (k, v) {
9
42
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
43
  };
@@ -13,8 +46,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
46
  exports.ComfyImageService = void 0;
14
47
  const common_1 = require("@nestjs/common");
15
48
  const comfyui_client_1 = require("@stable-canvas/comfyui-client");
16
- const fs = require("fs/promises");
17
- const path = require("path");
49
+ const fs = __importStar(require("fs/promises"));
50
+ const path = __importStar(require("path"));
18
51
  const comfy_connection_service_1 = require("./comfy-connection.service");
19
52
  let ComfyImageService = ComfyImageService_1 = class ComfyImageService {
20
53
  connectionService;
@@ -47,7 +80,7 @@ let ComfyImageService = ComfyImageService_1 = class ComfyImageService {
47
80
  const { model, negativePrompt, width, height, steps, cfg, seed, samplerName, scheduler } = imageDto;
48
81
  try {
49
82
  const client = this.connectionService.getClient();
50
- const pipe = new comfyui_client_1.BasePipe().with(client).model(model).prompt(imageDto.prompt).size(width, height);
83
+ const pipe = new comfyui_client_1.BasePipe().with(client).model(model || '').prompt(imageDto.prompt).size(width || 512, height || 512);
51
84
  if (negativePrompt)
52
85
  pipe.negative(negativePrompt);
53
86
  if (steps)
@@ -1,10 +1,43 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
2
18
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
19
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
20
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
21
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
22
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
23
  };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
8
41
  var __metadata = (this && this.__metadata) || function (k, v) {
9
42
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
43
  };
@@ -12,8 +45,8 @@ var ComfyVideoService_1;
12
45
  Object.defineProperty(exports, "__esModule", { value: true });
13
46
  exports.ComfyVideoService = void 0;
14
47
  const common_1 = require("@nestjs/common");
15
- const fs = require("fs/promises");
16
- const path = require("path");
48
+ const fs = __importStar(require("fs/promises"));
49
+ const path = __importStar(require("path"));
17
50
  const comfy_connection_service_1 = require("./comfy-connection.service");
18
51
  const generated_asset_service_1 = require("../../services/generated-asset.service");
19
52
  const axios_1 = require("@nestjs/axios");
@@ -43,7 +76,7 @@ let ComfyVideoService = ComfyVideoService_1 = class ComfyVideoService {
43
76
  }
44
77
  async runVideoGenerationFromWorkflow(videoRequest, assetId) {
45
78
  const { inputImage, positivePrompt, negativePrompt } = videoRequest;
46
- const workflow = await this.updateWorkflow(videoRequest.width, videoRequest.height, videoRequest.seconds);
79
+ const workflow = await this.updateWorkflow(videoRequest.width || 512, videoRequest.height || 512, videoRequest.seconds || 15);
47
80
  workflow['6'].inputs.text = positivePrompt;
48
81
  workflow['7'].inputs.text = negativePrompt;
49
82
  const uploadResponse = await this.comfyConnectionService.uploadImage(inputImage, 'input_image.jpg');
@@ -1,5 +1,5 @@
1
1
  import { GeneratedAssetService } from '../services/generated-asset.service';
2
- import { Response } from 'express';
2
+ import { type Response } from 'express';
3
3
  import { ComfyStatusDto } from '../dto/comfy-status.dto';
4
4
  import { ComfyImageService } from '../comfyui/services/comfy-image.service';
5
5
  import { ComfyVideoService } from '../comfyui/services/comfy-video.service';
@@ -9,6 +9,6 @@ export declare class VertexImageVideoAdapterController {
9
9
  listModels(provider?: string): Promise<{
10
10
  name: string;
11
11
  id: string;
12
- }[]>;
13
- generateImage(generateImageDto: ImageGenRequestAdapter): Promise<ImageGenAdapterResponse>;
12
+ }[] | undefined>;
13
+ generateImage(generateImageDto: ImageGenRequestAdapter): Promise<ImageGenAdapterResponse | null>;
14
14
  }
@@ -1,4 +1,4 @@
1
- import { ChatLLMRequestAdapter, DescribeImageRequestAdapter } from '../models/adapter.models';
1
+ import { type ChatLLMRequestAdapter, DescribeImageRequestAdapter } from '../models/adapter.models';
2
2
  import { LLMAdapterService } from '../services/adapter-llm.service';
3
3
  export declare class VertexAdapterLLMController {
4
4
  private readonly llmAdapterService;
@@ -1,10 +1,10 @@
1
1
  import { google } from '@google-cloud/text-to-speech/build/protos/protos';
2
- import { FastifyReply } from 'fastify';
3
- import { NestTtsService, SynthesizeSpeechInput } from '../services/vertex-tts.service';
2
+ import { type FastifyReply } from 'fastify';
3
+ import { NestTtsService, type SynthesizeSpeechInput } from '../services/vertex-tts.service';
4
4
  export declare class VertexTtsAdapterController {
5
5
  private readonly nestTtsService;
6
6
  private readonly logger;
7
7
  constructor(nestTtsService: NestTtsService);
8
- synthesizeSpeech(body: SynthesizeSpeechInput, res: FastifyReply): Promise<Buffer>;
8
+ synthesizeSpeech(body: SynthesizeSpeechInput, res: FastifyReply): Promise<Buffer<ArrayBufferLike>>;
9
9
  listVoices(languageCode?: string): Promise<google.cloud.texttospeech.v1.IVoice[]>;
10
10
  }
@@ -0,0 +1,7 @@
1
+ import { VertexVeoGenaiService } from '../services/vertex-veo-genai.service';
2
+ export declare class VertexVeoGenerationController {
3
+ private readonly vertexVeoGcpService;
4
+ private readonly logger;
5
+ constructor(vertexVeoGcpService: VertexVeoGenaiService);
6
+ generateVeoVideo(): Promise<any>;
7
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var VertexVeoGenerationController_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.VertexVeoGenerationController = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const swagger_1 = require("@nestjs/swagger");
16
+ const vertex_veo_genai_service_1 = require("../services/vertex-veo-genai.service");
17
+ let VertexVeoGenerationController = VertexVeoGenerationController_1 = class VertexVeoGenerationController {
18
+ vertexVeoGcpService;
19
+ logger = new common_1.Logger(VertexVeoGenerationController_1.name);
20
+ constructor(vertexVeoGcpService) {
21
+ this.vertexVeoGcpService = vertexVeoGcpService;
22
+ }
23
+ async generateVeoVideo() {
24
+ this.logger.log(`Received request to generate VEO video`);
25
+ try {
26
+ const assetGenerated = await this.vertexVeoGcpService.generateVideo();
27
+ return assetGenerated;
28
+ }
29
+ catch (error) {
30
+ this.logger.error('Error in generateVeoVideo endpoint:', error);
31
+ throw error;
32
+ }
33
+ }
34
+ };
35
+ exports.VertexVeoGenerationController = VertexVeoGenerationController;
36
+ __decorate([
37
+ (0, common_1.Get)('generate-veo-video'),
38
+ __metadata("design:type", Function),
39
+ __metadata("design:paramtypes", []),
40
+ __metadata("design:returntype", Promise)
41
+ ], VertexVeoGenerationController.prototype, "generateVeoVideo", null);
42
+ exports.VertexVeoGenerationController = VertexVeoGenerationController = VertexVeoGenerationController_1 = __decorate([
43
+ (0, swagger_1.ApiTags)('Vertex Image/video Adapter'),
44
+ (0, common_1.Controller)('api/vertex-veo/video'),
45
+ __metadata("design:paramtypes", [vertex_veo_genai_service_1.VertexVeoGenaiService])
46
+ ], VertexVeoGenerationController);
47
+ //# sourceMappingURL=vertex-veo-video.controller.js.map
@@ -4,16 +4,25 @@ import { GetVeoVideoStatusDto } from '../dto/get-veo-video-status.dto';
4
4
  import { GenerateVideosOperation } from '@google/genai';
5
5
  import { VertexVeoGcpService } from '../services/vertex-veo-gcp.service';
6
6
  import { GeneratedAsset } from '../models/generated-asset.entity';
7
+ import { GeneratedAssetService } from '../services/generated-asset.service';
8
+ import { ComfyVideoService } from '../comfyui/services/comfy-video.service';
9
+ import { VertexVeoGenaiService } from '../services/vertex-veo-genai.service';
7
10
  export declare class VertexVideoImageAdapterController {
8
11
  private readonly vertexImageVideoService;
9
12
  private readonly vertexVeoGcpService;
13
+ private readonly generatedAssetService;
14
+ private readonly comfyVideoService;
15
+ private readonly vertexVeoGenaiService;
10
16
  private readonly logger;
11
- constructor(vertexImageVideoService: VertexImageVideoService, vertexVeoGcpService: VertexVeoGcpService);
17
+ constructor(vertexImageVideoService: VertexImageVideoService, vertexVeoGcpService: VertexVeoGcpService, generatedAssetService: GeneratedAssetService, comfyVideoService: ComfyVideoService, vertexVeoGenaiService: VertexVeoGenaiService);
12
18
  listModels(provider?: string): Promise<{
13
19
  name: string;
14
20
  id: string;
15
- }[]>;
21
+ }[] | undefined>;
16
22
  generateVideo(generateVideoDto: GenerateVideoDto, provider?: string): Promise<any>;
23
+ generateVideoFromAsset(id: string): Promise<{
24
+ prompt_id: string;
25
+ } | null>;
17
26
  listModelsVertex(): Promise<any>;
18
27
  testVideo(): Promise<any>;
19
28
  generateVeoVideo(generateVideoDto: GenerateVideoDto): Promise<GeneratedAsset>;
@@ -20,13 +20,22 @@ const generate_video_dto_1 = require("../dto/generate-video.dto");
20
20
  const get_veo_video_status_dto_1 = require("../dto/get-veo-video-status.dto");
21
21
  const vertex_veo_gcp_service_1 = require("../services/vertex-veo-gcp.service");
22
22
  const swagger_1 = require("@nestjs/swagger");
23
+ const generated_asset_service_1 = require("../services/generated-asset.service");
24
+ const comfy_video_service_1 = require("../comfyui/services/comfy-video.service");
25
+ const vertex_veo_genai_service_1 = require("../services/vertex-veo-genai.service");
23
26
  let VertexVideoImageAdapterController = VertexVideoImageAdapterController_1 = class VertexVideoImageAdapterController {
24
27
  vertexImageVideoService;
25
28
  vertexVeoGcpService;
29
+ generatedAssetService;
30
+ comfyVideoService;
31
+ vertexVeoGenaiService;
26
32
  logger = new common_1.Logger(VertexVideoImageAdapterController_1.name);
27
- constructor(vertexImageVideoService, vertexVeoGcpService) {
33
+ constructor(vertexImageVideoService, vertexVeoGcpService, generatedAssetService, comfyVideoService, vertexVeoGenaiService) {
28
34
  this.vertexImageVideoService = vertexImageVideoService;
29
35
  this.vertexVeoGcpService = vertexVeoGcpService;
36
+ this.generatedAssetService = generatedAssetService;
37
+ this.comfyVideoService = comfyVideoService;
38
+ this.vertexVeoGenaiService = vertexVeoGenaiService;
30
39
  }
31
40
  async listModels(provider) {
32
41
  this.logger.log(`List models with provider: ${provider}`);
@@ -48,6 +57,29 @@ let VertexVideoImageAdapterController = VertexVideoImageAdapterController_1 = cl
48
57
  throw error;
49
58
  }
50
59
  }
60
+ async generateVideoFromAsset(id) {
61
+ this.logger.log(`Received request to generate video from asset with id: ${id}`);
62
+ try {
63
+ const asset = await this.generatedAssetService.findOne(id);
64
+ if (!asset || !asset.assets?.firstFrame?.url) {
65
+ throw new common_1.NotFoundException(`Asset with id ${id} not found or does not have a valid image url.`);
66
+ }
67
+ if (asset.provider === 'comfy') {
68
+ const videoResponse = await this.comfyVideoService.runVideoGenerationForAssetId(id);
69
+ this.logger.log(`ComfyUI video generation started. Response: ${JSON.stringify(videoResponse)}`);
70
+ return videoResponse;
71
+ }
72
+ else {
73
+ this.logger.log(`Starting Generation with VEO.`);
74
+ this.vertexVeoGenaiService.generateVideoFromAssetId(id);
75
+ return null;
76
+ }
77
+ }
78
+ catch (error) {
79
+ this.logger.error('Error in generateVideoFromAsset endpoint:', error);
80
+ throw error;
81
+ }
82
+ }
51
83
  async listModelsVertex() {
52
84
  return this.vertexImageVideoService.listModelsVertex();
53
85
  }
@@ -121,6 +153,13 @@ __decorate([
121
153
  __metadata("design:paramtypes", [generate_video_dto_1.GenerateVideoDto, String]),
122
154
  __metadata("design:returntype", Promise)
123
155
  ], VertexVideoImageAdapterController.prototype, "generateVideo", null);
156
+ __decorate([
157
+ (0, common_1.Post)('generate-video-from-asset'),
158
+ __param(0, (0, common_1.Body)('id')),
159
+ __metadata("design:type", Function),
160
+ __metadata("design:paramtypes", [String]),
161
+ __metadata("design:returntype", Promise)
162
+ ], VertexVideoImageAdapterController.prototype, "generateVideoFromAsset", null);
124
163
  __decorate([
125
164
  (0, common_1.Get)('list-models-vertex'),
126
165
  (0, swagger_1.ApiQuery)({ name: 'provider', required: false, type: String, description: 'The provider for the service (e.g., "local", "google")' }),
@@ -162,6 +201,9 @@ exports.VertexVideoImageAdapterController = VertexVideoImageAdapterController =
162
201
  (0, swagger_1.ApiTags)('Vertex Image/video Adapter'),
163
202
  (0, common_1.Controller)('api/vertex-adapter/video'),
164
203
  __metadata("design:paramtypes", [vertex_image_video_service_1.VertexImageVideoService,
165
- vertex_veo_gcp_service_1.VertexVeoGcpService])
204
+ vertex_veo_gcp_service_1.VertexVeoGcpService,
205
+ generated_asset_service_1.GeneratedAssetService,
206
+ comfy_video_service_1.ComfyVideoService,
207
+ vertex_veo_genai_service_1.VertexVeoGenaiService])
166
208
  ], VertexVideoImageAdapterController);
167
209
  //# sourceMappingURL=vertex-video-adapter.controller.js.map
@@ -13,7 +13,7 @@ export declare class GenerateVideoDto {
13
13
  personGeneration?: string;
14
14
  sampleCount?: number;
15
15
  seed?: number;
16
- storageUri?: string;
16
+ storageUri: string;
17
17
  enhancePrompt?: boolean;
18
18
  }
19
19
  export {};
@@ -41,14 +41,14 @@ __decorate([
41
41
  class GenerateVideoDto {
42
42
  prompt = 'A cinamatic shot of siamese cat ridding a horse in the galaxy';
43
43
  model = gemini_models_1.GeminiVideoModels.Veo2;
44
- image = null;
44
+ image = undefined;
45
45
  durationSeconds = 8;
46
46
  aspectRatio = '16:9';
47
47
  negativePrompt;
48
48
  personGeneration = 'allow_all';
49
49
  sampleCount = 1;
50
50
  seed;
51
- storageUri = null;
51
+ storageUri;
52
52
  enhancePrompt = true;
53
53
  }
54
54
  exports.GenerateVideoDto = GenerateVideoDto;
@@ -1,7 +1,7 @@
1
- import { Document } from 'mongoose';
2
- import { IAuditable } from '@dataclouder/nest-core';
3
- import { IAssetsGeneration, IGeneratedAsset } from './generated-asset.model';
4
- import { CloudFileStorage } from '@dataclouder/nest-storage';
1
+ import type { Document } from 'mongoose';
2
+ import { type IAuditable } from '@dataclouder/nest-core';
3
+ import type { IAssetsGeneration, IGeneratedAsset } from './generated-asset.model';
4
+ import type { CloudFileStorage } from '@dataclouder/nest-storage';
5
5
  export type GeneratedAssetDocument = GeneratedAsset & Document;
6
6
  export declare class GeneratedAsset implements IGeneratedAsset {
7
7
  _id?: string;
@@ -12,6 +12,7 @@ export declare class GeneratedAsset implements IGeneratedAsset {
12
12
  auditable: IAuditable;
13
13
  url: string;
14
14
  model: string;
15
+ provider: 'vertex' | 'comfy';
15
16
  request: any;
16
17
  response: any;
17
18
  status: 'pending' | 'completed' | 'failed';
@@ -21,11 +22,11 @@ export declare class GeneratedAsset implements IGeneratedAsset {
21
22
  description: string;
22
23
  metadata: any;
23
24
  }
24
- export declare const GeneratedAssetSchema: import("mongoose").Schema<GeneratedAsset, import("mongoose").Model<GeneratedAsset, any, any, any, Document<unknown, any, GeneratedAsset, any> & GeneratedAsset & Required<{
25
+ export declare const GeneratedAssetSchema: import("mongoose").Schema<GeneratedAsset, import("mongoose").Model<GeneratedAsset, any, any, any, Document<unknown, any, GeneratedAsset, any, {}> & GeneratedAsset & Required<{
25
26
  _id: string;
26
27
  }> & {
27
28
  __v: number;
28
- }, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, GeneratedAsset, Document<unknown, {}, import("mongoose").FlatRecord<GeneratedAsset>, {}> & import("mongoose").FlatRecord<GeneratedAsset> & Required<{
29
+ }, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, GeneratedAsset, Document<unknown, {}, import("mongoose").FlatRecord<GeneratedAsset>, {}, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & import("mongoose").FlatRecord<GeneratedAsset> & Required<{
29
30
  _id: string;
30
31
  }> & {
31
32
  __v: number;