n8n-nodes-comfyui-all 2.2.9 → 2.2.10

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 (37) hide show
  1. package/README.md +126 -11
  2. package/dist/agent-tools/ComfyUIAgentTool.d.ts +57 -0
  3. package/dist/agent-tools/ComfyUIAgentTool.d.ts.map +1 -0
  4. package/dist/agent-tools/ComfyUIAgentTool.js +405 -0
  5. package/dist/agent-tools/ComfyUIAgentTool.js.map +1 -0
  6. package/dist/nodes/ComfyUi/ComfyUi.node.d.ts +9 -0
  7. package/dist/nodes/ComfyUi/ComfyUi.node.d.ts.map +1 -1
  8. package/dist/nodes/ComfyUi/ComfyUi.node.js +66 -100
  9. package/dist/nodes/ComfyUi/ComfyUi.node.js.map +1 -1
  10. package/dist/nodes/ComfyUiClient.d.ts +81 -0
  11. package/dist/nodes/ComfyUiClient.d.ts.map +1 -1
  12. package/dist/nodes/ComfyUiClient.js +235 -26
  13. package/dist/nodes/ComfyUiClient.js.map +1 -1
  14. package/dist/nodes/constants.d.ts +5 -1
  15. package/dist/nodes/constants.d.ts.map +1 -1
  16. package/dist/nodes/constants.js +7 -12
  17. package/dist/nodes/constants.js.map +1 -1
  18. package/dist/nodes/logger.d.ts +9 -19
  19. package/dist/nodes/logger.d.ts.map +1 -1
  20. package/dist/nodes/logger.js +62 -25
  21. package/dist/nodes/logger.js.map +1 -1
  22. package/dist/nodes/types.d.ts +62 -0
  23. package/dist/nodes/types.d.ts.map +1 -1
  24. package/dist/nodes/utils.d.ts +47 -0
  25. package/dist/nodes/utils.d.ts.map +1 -0
  26. package/dist/nodes/utils.js +139 -0
  27. package/dist/nodes/utils.js.map +1 -0
  28. package/dist/nodes/validation.d.ts +1 -0
  29. package/dist/nodes/validation.d.ts.map +1 -1
  30. package/dist/nodes/validation.js +51 -2
  31. package/dist/nodes/validation.js.map +1 -1
  32. package/dist/nodes/workflowConfig.d.ts +13 -0
  33. package/dist/nodes/workflowConfig.d.ts.map +1 -0
  34. package/dist/nodes/workflowConfig.js +91 -0
  35. package/dist/nodes/workflowConfig.js.map +1 -0
  36. package/package.json +3 -1
  37. package/LICENSE +0 -21
@@ -6,9 +6,13 @@ const ComfyUiClient_1 = require("../ComfyUiClient");
6
6
  const validation_1 = require("../validation");
7
7
  const constants_1 = require("../constants");
8
8
  const logger_1 = require("../logger");
9
- const logger = (0, logger_1.createLogger)('ComfyUi');
9
+ const utils_1 = require("../utils");
10
10
  class ComfyUi {
11
11
  constructor() {
12
+ /**
13
+ * Node description for n8n
14
+ * Defines the node's properties, inputs, outputs, and configuration options
15
+ */
12
16
  this.description = {
13
17
  displayName: 'ComfyUI',
14
18
  name: 'comfyUi',
@@ -286,11 +290,17 @@ class ComfyUi {
286
290
  ],
287
291
  };
288
292
  }
293
+ /**
294
+ * Execute the ComfyUI workflow
295
+ * @returns Promise containing the execution results with image/video data
296
+ * @throws {NodeOperationError} If URL validation, workflow validation, or execution fails
297
+ */
289
298
  async execute() {
299
+ const logger = (0, logger_1.createLogger)(this.logger);
290
300
  const comfyUiUrl = this.getNodeParameter('comfyUiUrl', 0);
291
301
  const workflowJson = this.getNodeParameter('workflowJson', 0);
292
302
  const timeout = this.getNodeParameter('timeout', 0);
293
- const outputBinaryKey = this.getNodeParameter('outputBinaryKey', 0) || 'data';
303
+ const outputBinaryKey = this.getNodeParameter('outputBinaryKey', 0) || constants_1.DEFAULT_OUTPUT_BINARY_KEY;
294
304
  if (!(0, validation_1.validateUrl)(comfyUiUrl)) {
295
305
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Invalid ComfyUI URL. Must be a valid HTTP/HTTPS URL.');
296
306
  }
@@ -300,7 +310,7 @@ class ComfyUi {
300
310
  }
301
311
  let workflow;
302
312
  try {
303
- workflow = JSON.parse(workflowJson);
313
+ workflow = (0, validation_1.safeJsonParse)(workflowJson, 'Workflow JSON');
304
314
  }
305
315
  catch (error) {
306
316
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to parse workflow JSON: ${error}. Please ensure the JSON is valid.`);
@@ -309,14 +319,14 @@ class ComfyUi {
309
319
  baseUrl: comfyUiUrl,
310
320
  timeout: timeout * 1000,
311
321
  helpers: this.helpers,
322
+ logger: logger,
312
323
  });
313
324
  logger.info('Starting ComfyUI workflow execution', { url: comfyUiUrl, timeout });
314
325
  try {
315
326
  const nodeParametersInput = this.getNodeParameter('nodeParameters', 0);
316
327
  if (nodeParametersInput && nodeParametersInput.nodeParameter && Array.isArray(nodeParametersInput.nodeParameter)) {
317
328
  logger.debug(`Processing ${nodeParametersInput.nodeParameter.length} node parameter overrides`);
318
- for (let i = 0; i < nodeParametersInput.nodeParameter.length; i++) {
319
- const nodeParamConfig = nodeParametersInput.nodeParameter[i];
329
+ for (const [i, nodeParamConfig] of nodeParametersInput.nodeParameter.entries()) {
320
330
  const nodeId = nodeParamConfig.nodeId;
321
331
  const parameterMode = nodeParamConfig.parameterMode || 'single';
322
332
  const parametersJson = nodeParamConfig.parametersJson;
@@ -324,8 +334,8 @@ class ComfyUi {
324
334
  const type = nodeParamConfig.type || 'text';
325
335
  const imageSource = nodeParamConfig.imageSource || 'binary';
326
336
  const value = nodeParamConfig.value || '';
327
- const numberValue = nodeParamConfig.numberValue;
328
- const booleanValue = nodeParamConfig.booleanValue;
337
+ const numberValue = nodeParamConfig.numberValue ?? 0;
338
+ const booleanValue = nodeParamConfig.booleanValue ?? 'false';
329
339
  const imageUrl = nodeParamConfig.imageUrl || '';
330
340
  if (!nodeId) {
331
341
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Node Parameters ${i + 1} is missing Node ID.`);
@@ -339,17 +349,18 @@ class ComfyUi {
339
349
  if (parameterMode === 'multiple' && parametersJson) {
340
350
  let parameters;
341
351
  try {
342
- parameters = JSON.parse(parametersJson);
352
+ parameters = (0, validation_1.safeJsonParse)(parametersJson, `Node Parameters ${i + 1}`);
343
353
  }
344
354
  catch (error) {
345
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Node Parameters ${i + 1}: Invalid JSON in parameters field: ${error}`);
355
+ const errorMsg = error instanceof Error ? error.message : String(error);
356
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Node Parameters ${i + 1}: ${errorMsg}`);
346
357
  }
347
358
  if (typeof parameters !== 'object' || parameters === null) {
348
359
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Node Parameters ${i + 1}: Parameters must be a JSON object`);
349
360
  }
350
361
  logger.debug(`Applying multiple parameters to node ${nodeId}`, { parameters });
351
- for (const [paramName, value] of Object.entries(parameters)) {
352
- workflow[nodeId].inputs[paramName] = value;
362
+ for (const [key, val] of Object.entries(parameters)) {
363
+ workflow[nodeId].inputs[key] = val;
353
364
  }
354
365
  }
355
366
  else if (parameterMode === 'single' && paramName) {
@@ -399,13 +410,28 @@ class ComfyUi {
399
410
  if (imageBuffer.length === 0) {
400
411
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Node Parameters ${i + 1}: Downloaded image from URL "${imageUrl}" is empty. Please check the URL and try again.`);
401
412
  }
413
+ // Validate downloaded image size
414
+ const maxImageSize = constants_1.VALIDATION.MAX_IMAGE_SIZE_MB * 1024 * 1024;
415
+ if (imageBuffer.length > maxImageSize) {
416
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Node Parameters ${i + 1}: Downloaded image size (${Math.round(imageBuffer.length / 1024 / 1024)}MB) exceeds maximum allowed size of ${constants_1.VALIDATION.MAX_IMAGE_SIZE_MB}MB`);
417
+ }
402
418
  logger.info(`Successfully downloaded image`, { size: imageBuffer.length, url: imageUrl });
403
- let filename = imageUrl.split('/').pop() || `download_${Date.now()}.png`;
419
+ let filename = imageUrl.split('/').pop() || (0, utils_1.generateUniqueFilename)('png', 'download');
404
420
  if (filename.includes('?')) {
405
421
  filename = filename.split('?')[0];
406
422
  }
407
423
  if (!filename.match(/\.(png|jpg|jpeg|webp|gif|bmp)$/i)) {
408
- filename = `download_${Date.now()}.png`;
424
+ filename = (0, utils_1.generateUniqueFilename)('png', 'download');
425
+ }
426
+ else {
427
+ try {
428
+ filename = (0, utils_1.validateFilename)(filename);
429
+ }
430
+ catch (error) {
431
+ const errorMsg = error instanceof Error ? error.message : String(error);
432
+ logger.warn(`Invalid filename "${filename}", generating unique filename`, { error: errorMsg });
433
+ filename = (0, utils_1.generateUniqueFilename)('png', 'download');
434
+ }
409
435
  }
410
436
  logger.info(`Uploading image to ComfyUI`, { filename, size: imageBuffer.length });
411
437
  const uploadedFilename = await client.uploadImage(imageBuffer, filename);
@@ -419,11 +445,12 @@ class ComfyUi {
419
445
  }
420
446
  const statusCode = error.response?.statusCode || error.statusCode;
421
447
  const statusMessage = error.response?.statusMessage || error.statusMessage;
448
+ const errorDetail = error instanceof Error ? error.message : String(error);
422
449
  let errorMessage = `Node Parameters ${i + 1}: Failed to download image from URL "${imageUrl}"`;
423
450
  if (statusCode) {
424
451
  errorMessage += ` (HTTP ${statusCode} ${statusMessage || ''})`;
425
452
  }
426
- errorMessage += `. ${error.message}`;
453
+ errorMessage += `. ${errorDetail}`;
427
454
  if (statusCode === 403) {
428
455
  errorMessage += ' Note: The URL may require authentication or block automated access. Try downloading the image manually and using Binary mode instead.';
429
456
  }
@@ -452,11 +479,33 @@ TIP: Check the previous node's "Output Binary Key" parameter. It should match "$
452
479
  if (!binaryData.data || typeof binaryData.data !== 'string') {
453
480
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Node Parameters ${i + 1}: Invalid binary data for property "${binaryPropertyName}". The data field is missing or not a string.`);
454
481
  }
455
- const buffer = Buffer.from(binaryData.data, 'base64');
482
+ // Validate base64 string length before decoding
483
+ const base64Data = binaryData.data;
484
+ const maxBase64Length = constants_1.VALIDATION.MAX_IMAGE_SIZE_MB * 1024 * 1024 * 4 / 3; // Base64 is ~33% larger than binary
485
+ if (base64Data.length > maxBase64Length) {
486
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Node Parameters ${i + 1}: Binary data exceeds maximum allowed size of ${constants_1.VALIDATION.MAX_IMAGE_SIZE_MB}MB. ` +
487
+ `Base64 data length: ${Math.round(base64Data.length / 1024 / 1024)}MB (decoded would be ~${Math.round(base64Data.length * 0.75 / 1024 / 1024)}MB)`);
488
+ }
489
+ // Validate MIME type
490
+ if (!binaryData.mimeType || typeof binaryData.mimeType !== 'string') {
491
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Node Parameters ${i + 1}: Invalid or missing MIME type for binary data.`);
492
+ }
493
+ const mimeType = binaryData.mimeType.toLowerCase();
494
+ const allowedMimeTypes = Object.values(constants_1.IMAGE_MIME_TYPES);
495
+ if (!allowedMimeTypes.includes(mimeType)) {
496
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Node Parameters ${i + 1}: Unsupported MIME type "${mimeType}". ` +
497
+ `Allowed types: ${allowedMimeTypes.join(', ')}`);
498
+ }
499
+ const ext = binaryData.mimeType.split('/')[1] || 'png';
500
+ const filename = binaryData.fileName || (0, utils_1.generateUniqueFilename)(ext, 'upload');
501
+ const buffer = Buffer.from(base64Data, 'base64');
456
502
  if (!Buffer.isBuffer(buffer) || buffer.length === 0) {
457
503
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Node Parameters ${i + 1}: Failed to decode binary data for property "${binaryPropertyName}". The data may be corrupted. Buffer length: ${buffer.length}`);
458
504
  }
459
- const filename = binaryData.fileName || `upload_${Date.now()}.${binaryData.mimeType.split('/')[1] || 'png'}`;
505
+ const maxBufferSize = constants_1.VALIDATION.MAX_IMAGE_SIZE_MB * 1024 * 1024;
506
+ if (buffer.length > maxBufferSize) {
507
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Node Parameters ${i + 1}: Decoded buffer size (${Math.round(buffer.length / 1024 / 1024)}MB) exceeds maximum allowed size of ${constants_1.VALIDATION.MAX_IMAGE_SIZE_MB}MB`);
508
+ }
460
509
  logger.info(`Uploading binary data to ComfyUI`, { filename, size: buffer.length, mimeType: binaryData.mimeType, paramName });
461
510
  const uploadedFilename = await client.uploadImage(buffer, filename);
462
511
  parsedValue = uploadedFilename;
@@ -486,7 +535,7 @@ TIP: Check the previous node's "Output Binary Key" parameter. It should match "$
486
535
  logger.error('Workflow execution failed', result.error);
487
536
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to execute workflow: ${result.error}`);
488
537
  }
489
- const { json, binary } = await processResults(result, client, comfyUiUrl, outputBinaryKey);
538
+ const { json, binary } = await client.processResults(result, outputBinaryKey);
490
539
  logger.info('Workflow execution completed successfully', {
491
540
  imageCount: json.imageCount,
492
541
  videoCount: json.videoCount,
@@ -504,87 +553,4 @@ TIP: Check the previous node's "Output Binary Key" parameter. It should match "$
504
553
  }
505
554
  }
506
555
  exports.ComfyUi = ComfyUi;
507
- async function processResults(result, client, comfyUiUrl, outputBinaryKey = 'data') {
508
- const jsonData = {
509
- success: true,
510
- };
511
- if (result.output) {
512
- jsonData.data = result.output;
513
- }
514
- if (result.images && result.images.length > 0) {
515
- jsonData.images = result.images;
516
- jsonData.imageUrls = result.images.map(img => `${comfyUiUrl}${img}`);
517
- }
518
- if (result.videos && result.videos.length > 0) {
519
- jsonData.videos = result.videos;
520
- jsonData.videoUrls = result.videos.map(vid => `${comfyUiUrl}${vid}`);
521
- }
522
- const binaryData = {};
523
- if (result.images && result.images.length > 0) {
524
- for (let i = 0; i < result.images.length; i++) {
525
- const imagePath = result.images[i];
526
- const imageBuffer = await client.getImageBuffer(imagePath);
527
- const filenameMatch = imagePath.match(/filename=([^&]+)/);
528
- const filename = filenameMatch ? filenameMatch[1] : `image_${i}`;
529
- let ext = 'png';
530
- const extMatch = filename.match(/\.([^.]+)$/);
531
- if (extMatch) {
532
- ext = extMatch[1].toLowerCase();
533
- }
534
- if (!extMatch && imagePath.includes('type=')) {
535
- const typeMatch = imagePath.match(/type=([^&]+)/);
536
- if (typeMatch) {
537
- const type = typeMatch[1].toLowerCase();
538
- const mimeMap = {
539
- 'input': 'png',
540
- 'output': 'png',
541
- 'temp': 'png',
542
- };
543
- ext = mimeMap[type] || 'png';
544
- }
545
- }
546
- const mimeType = constants_1.IMAGE_MIME_TYPES[ext] || 'image/png';
547
- const binaryKey = i === 0 ? outputBinaryKey : `image_${i}`;
548
- binaryData[binaryKey] = {
549
- data: imageBuffer.toString('base64'),
550
- mimeType: mimeType,
551
- fileName: filename,
552
- };
553
- }
554
- jsonData.imageCount = result.images.length;
555
- }
556
- if (result.videos && result.videos.length > 0) {
557
- for (let i = 0; i < result.videos.length; i++) {
558
- const videoPath = result.videos[i];
559
- const typeMatch = videoPath.match(/type=([^&]+)/);
560
- let videoType = 'mp4';
561
- if (typeMatch) {
562
- videoType = typeMatch[1].toLowerCase();
563
- }
564
- const filenameMatch = videoPath.match(/filename=([^&]+)/);
565
- let filename = filenameMatch ? filenameMatch[1] : `video_${i}.mp4`;
566
- const extMatch = filename.match(/\.([^.]+)$/);
567
- if (extMatch) {
568
- videoType = extMatch[1].toLowerCase();
569
- }
570
- else {
571
- filename = `${filename}.${videoType}`;
572
- }
573
- const mimeType = constants_1.VIDEO_MIME_TYPES[videoType] || 'video/mp4';
574
- const videoBuffer = await client.getVideoBuffer(videoPath);
575
- const hasImages = result.images && result.images.length > 0;
576
- const binaryKey = (!hasImages && i === 0) ? outputBinaryKey : `video_${i}`;
577
- binaryData[binaryKey] = {
578
- data: videoBuffer.toString('base64'),
579
- mimeType: mimeType,
580
- fileName: filename,
581
- };
582
- }
583
- jsonData.videoCount = result.videos.length;
584
- }
585
- return {
586
- json: jsonData,
587
- binary: binaryData,
588
- };
589
- }
590
556
  //# sourceMappingURL=ComfyUi.node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComfyUi.node.js","sourceRoot":"","sources":["../../../nodes/ComfyUi/ComfyUi.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ComfyUi.node.js","sourceRoot":"","sources":["../../../nodes/ComfyUi/ComfyUi.node.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { IExecuteFunctions } from 'n8n-workflow';
2
+ import { Logger } from './logger';
2
3
  export interface ComfyUIClientConfig {
3
4
  baseUrl: string;
4
5
  clientId?: string;
@@ -6,6 +7,7 @@ export interface ComfyUIClientConfig {
6
7
  maxRetries?: number;
7
8
  retryDelay?: number;
8
9
  helpers: IExecuteFunctions['helpers'];
10
+ logger?: Logger;
9
11
  }
10
12
  export interface WorkflowNode {
11
13
  inputs?: Record<string, unknown>;
@@ -24,11 +26,13 @@ export interface WorkflowResult {
24
26
  }
25
27
  export declare class ComfyUIClient {
26
28
  private helpers;
29
+ private logger;
27
30
  private baseUrl;
28
31
  private timeout;
29
32
  private clientId;
30
33
  private maxRetries;
31
34
  private isDestroyed;
35
+ private abortController;
32
36
  constructor(config: ComfyUIClientConfig);
33
37
  /**
34
38
  * Cancel any ongoing request and clean up resources
@@ -42,20 +46,97 @@ export declare class ComfyUIClient {
42
46
  * Check if the client has been destroyed
43
47
  */
44
48
  isClientDestroyed(): boolean;
49
+ /**
50
+ * Generate a unique client ID
51
+ * @returns Unique client ID string
52
+ */
45
53
  private generateClientId;
54
+ /**
55
+ * Delay execution for a specified time
56
+ * @param ms - Delay time in milliseconds
57
+ * @returns Promise that resolves after the delay
58
+ */
59
+ private delay;
60
+ /**
61
+ * Retry a request with exponential backoff
62
+ * @param requestFn - Function that returns a Promise to retry
63
+ * @param retries - Maximum number of retry attempts
64
+ * @returns Promise that resolves when the request succeeds
65
+ * @throws Error if all retry attempts fail
66
+ */
46
67
  private retryRequest;
68
+ /**
69
+ * Execute a ComfyUI workflow
70
+ * @param workflow - Workflow object containing nodes and their configurations
71
+ * @returns Promise containing workflow execution result
72
+ */
47
73
  executeWorkflow(workflow: Record<string, WorkflowNode>): Promise<WorkflowResult>;
74
+ /**
75
+ * Prepare workflow prompt for ComfyUI API
76
+ * @param workflow - Workflow object containing nodes
77
+ * @returns Formatted prompt object
78
+ */
48
79
  private preparePrompt;
80
+ /**
81
+ * Wait for workflow execution to complete
82
+ * @param promptId - Prompt ID from ComfyUI
83
+ * @param maxWaitTime - Maximum time to wait in milliseconds
84
+ * @returns Promise containing workflow execution result
85
+ */
49
86
  private waitForExecution;
87
+ /**
88
+ * Extract image and video results from workflow outputs
89
+ * @param outputs - Raw output data from ComfyUI
90
+ * @returns WorkflowResult with extracted images and videos
91
+ */
50
92
  private extractResults;
93
+ /**
94
+ * Get execution history from ComfyUI
95
+ * @param limit - Maximum number of history entries to retrieve
96
+ * @returns Promise containing history data
97
+ */
51
98
  getHistory(limit?: number): Promise<Record<string, unknown>>;
99
+ /**
100
+ * Upload an image to ComfyUI server
101
+ * @param imageData - Image data as Buffer
102
+ * @param filename - Name of the file to upload
103
+ * @param overwrite - Whether to overwrite existing file
104
+ * @returns Promise containing the uploaded filename
105
+ * @throws Error if image data is invalid or upload fails
106
+ */
52
107
  uploadImage(imageData: Buffer, filename: string, overwrite?: boolean): Promise<string>;
108
+ /**
109
+ * Get system information from ComfyUI server
110
+ * @returns Promise containing system stats
111
+ */
53
112
  getSystemInfo(): Promise<Record<string, unknown>>;
113
+ /**
114
+ * Get image buffer from ComfyUI server
115
+ * @param imagePath - Path to the image on ComfyUI server
116
+ * @returns Promise containing image data as Buffer
117
+ * @throws Error if image retrieval fails
118
+ */
54
119
  getImageBuffer(imagePath: string): Promise<Buffer>;
120
+ /**
121
+ * Get video buffer from ComfyUI server
122
+ * @param videoPath - Path to the video on ComfyUI server
123
+ * @returns Promise containing video data as Buffer
124
+ * @throws Error if video retrieval fails
125
+ */
55
126
  getVideoBuffer(videoPath: string): Promise<Buffer>;
56
127
  /**
57
128
  * Format error message with additional context
58
129
  */
59
130
  private formatErrorMessage;
131
+ /**
132
+ * Process workflow execution results and format them for n8n output
133
+ * @param result - Workflow execution result
134
+ * @param outputBinaryKey - Property name for the first output binary data
135
+ * @returns Processed result with json and binary data
136
+ */
137
+ processResults(result: WorkflowResult, outputBinaryKey?: string): Promise<{
138
+ json: Record<string, any>;
139
+ binary: Record<string, any>;
140
+ }>;
60
141
  }
61
142
  //# sourceMappingURL=ComfyUiClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComfyUiClient.d.ts","sourceRoot":"","sources":["../../nodes/ComfyUiClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGjD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAkB;gBAEzB,MAAM,EAAE,mBAAmB;IAQvC;;OAEG;IACH,aAAa,IAAI,IAAI;IAIrB;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAI5B,OAAO,CAAC,gBAAgB;YAIV,YAAY;IA0BpB,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAuDtF,OAAO,CAAC,aAAa;YAcP,gBAAgB;IA2D9B,OAAO,CAAC,cAAc;IAuChB,UAAU,CAAC,KAAK,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAiBjE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IA4B7F,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAgBjD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBlD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBxD;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAQ3B"}
1
+ {"version":3,"file":"ComfyUiClient.d.ts","sourceRoot":"","sources":["../../nodes/ComfyUiClient.ts"],"names":[],"mappings":"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"}