n8n-nodes-comfyui-all 2.4.1 → 2.4.2

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.
@@ -1,9 +1,9 @@
1
1
  /**
2
- * ComfyUI Tool - AI Agent-friendly image generation node
2
+ * ComfyUI Tool - Simplified workflow execution node for AI Agents
3
3
  *
4
- * This node is designed to be used as an AI Agent tool with minimal configuration.
5
- * It accepts a simple text query and automatically generates images using ComfyUI.
6
- * Supports both Text-to-Image and Image-to-Image workflows.
4
+ * This is a simplified node designed for AI Agent usage. It executes
5
+ * ComfyUI workflows provided by the user without making assumptions
6
+ * about workflow structure or node types.
7
7
  */
8
8
  import { IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
9
9
  export declare class ComfyUiTool {
@@ -28,22 +28,13 @@ export declare class ComfyUiTool {
28
28
  subtitle: string;
29
29
  notes: string[];
30
30
  inputSample: {
31
- query: string;
31
+ workflowJson: string;
32
32
  };
33
33
  outputSample: {
34
34
  json: {
35
35
  success: boolean;
36
36
  imageCount: number;
37
37
  imageUrls: string[];
38
- prompt: string;
39
- mode: string;
40
- parameters: {
41
- width: number;
42
- height: number;
43
- steps: number;
44
- cfg: number;
45
- seed: number;
46
- };
47
38
  };
48
39
  };
49
40
  properties: ({
@@ -53,9 +44,26 @@ export declare class ComfyUiTool {
53
44
  required: boolean;
54
45
  default: string;
55
46
  description: string;
47
+ typeOptions?: undefined;
48
+ placeholder?: undefined;
49
+ hint?: undefined;
50
+ minValue?: undefined;
51
+ maxValue?: undefined;
52
+ options?: undefined;
53
+ } | {
54
+ displayName: string;
55
+ name: string;
56
+ type: string;
57
+ typeOptions: {
58
+ rows: number;
59
+ };
60
+ required: boolean;
61
+ default: string;
62
+ description: string;
63
+ placeholder: string;
64
+ hint: string;
56
65
  minValue?: undefined;
57
66
  maxValue?: undefined;
58
- placeholder?: undefined;
59
67
  options?: undefined;
60
68
  } | {
61
69
  displayName: string;
@@ -66,7 +74,9 @@ export declare class ComfyUiTool {
66
74
  minValue: number;
67
75
  maxValue: number;
68
76
  required?: undefined;
77
+ typeOptions?: undefined;
69
78
  placeholder?: undefined;
79
+ hint?: undefined;
70
80
  options?: undefined;
71
81
  } | {
72
82
  displayName: string;
@@ -76,6 +86,8 @@ export declare class ComfyUiTool {
76
86
  description: string;
77
87
  placeholder: string;
78
88
  required?: undefined;
89
+ typeOptions?: undefined;
90
+ hint?: undefined;
79
91
  minValue?: undefined;
80
92
  maxValue?: undefined;
81
93
  options?: undefined;
@@ -85,29 +97,42 @@ export declare class ComfyUiTool {
85
97
  type: string;
86
98
  placeholder: string;
87
99
  default: {};
88
- options: ({
89
- displayName: string;
90
- name: string;
91
- type: string;
92
- typeOptions: {
93
- rows: number;
94
- };
95
- default: string;
96
- description: string;
97
- minValue?: undefined;
98
- maxValue?: undefined;
99
- } | {
100
+ description: string;
101
+ options: {
100
102
  displayName: string;
101
103
  name: string;
102
104
  type: string;
103
- default: number;
104
- description: string;
105
- minValue: number;
106
- maxValue: number;
107
- typeOptions?: undefined;
108
- })[];
105
+ placeholder: string;
106
+ default: {};
107
+ options: ({
108
+ displayName: string;
109
+ name: string;
110
+ type: string;
111
+ default: string;
112
+ description: string;
113
+ placeholder: string;
114
+ required?: undefined;
115
+ } | {
116
+ displayName: string;
117
+ name: string;
118
+ type: string;
119
+ required: boolean;
120
+ default: string;
121
+ description: string;
122
+ placeholder: string;
123
+ } | {
124
+ displayName: string;
125
+ name: string;
126
+ type: string;
127
+ default: string;
128
+ description: string;
129
+ placeholder?: undefined;
130
+ required?: undefined;
131
+ })[];
132
+ }[];
109
133
  required?: undefined;
110
- description?: undefined;
134
+ typeOptions?: undefined;
135
+ hint?: undefined;
111
136
  minValue?: undefined;
112
137
  maxValue?: undefined;
113
138
  })[];
@@ -1 +1 @@
1
- {"version":3,"file":"ComfyUiTool.node.d.ts","sourceRoot":"","sources":["../../../nodes/ComfyUiTool/ComfyUiTool.node.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAEnB,MAAM,cAAc,CAAC;AAgBtB,qBAAa,WAAW;IACtB;;OAEG;IACH,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA4HT;IAEF;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CAkLxE"}
1
+ {"version":3,"file":"ComfyUiTool.node.d.ts","sourceRoot":"","sources":["../../../nodes/ComfyUiTool/ComfyUiTool.node.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAEnB,MAAM,cAAc,CAAC;AActB,qBAAa,WAAW;IACtB;;OAEG;IACH,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAmHT;IAEF;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CAsJxE"}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  /**
3
- * ComfyUI Tool - AI Agent-friendly image generation node
3
+ * ComfyUI Tool - Simplified workflow execution node for AI Agents
4
4
  *
5
- * This node is designed to be used as an AI Agent tool with minimal configuration.
6
- * It accepts a simple text query and automatically generates images using ComfyUI.
7
- * Supports both Text-to-Image and Image-to-Image workflows.
5
+ * This is a simplified node designed for AI Agent usage. It executes
6
+ * ComfyUI workflows provided by the user without making assumptions
7
+ * about workflow structure or node types.
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.ComfyUiTool = void 0;
@@ -27,38 +27,28 @@ class ComfyUiTool {
27
27
  group: ['transform'],
28
28
  version: [1],
29
29
  defaultVersion: 1,
30
- description: 'AI-friendly image generation tool. Supports text-to-image and image-to-image.',
30
+ description: 'Execute ComfyUI workflows. Requires a workflow JSON exported from ComfyUI.',
31
31
  defaults: {
32
32
  name: 'ComfyUI Tool',
33
33
  },
34
34
  usableAsTool: true,
35
35
  inputs: ['main'],
36
36
  outputs: ['main'],
37
- subtitle: 'AI Image Generator',
37
+ subtitle: 'ComfyUI Workflow Executor',
38
38
  notes: [
39
- 'Optimized for AI Agent usage',
40
- 'Automatically detects and handles both text-to-image and image-to-image',
41
- 'For image editing: pass image binary + text description',
42
- 'Supports size, steps, cfg, seed, and negative prompt parameters',
43
- 'Examples: "A beautiful sunset, size:1024x768, steps:30"',
39
+ 'You must provide a ComfyUI workflow JSON (API Format)',
40
+ 'In ComfyUI: Design your workflow Click "Save (API Format)" → Copy JSON → Paste here',
41
+ 'Works with ANY ComfyUI workflow: text-to-image, image-to-image, video generation, etc.',
42
+ 'Configure parameters directly in your workflow JSON or use parameter overrides',
44
43
  ],
45
44
  inputSample: {
46
- query: 'A beautiful landscape painting',
45
+ workflowJson: '{ "3": { "inputs": {}, "class_type": "KSampler" } }',
47
46
  },
48
47
  outputSample: {
49
48
  json: {
50
49
  success: true,
51
50
  imageCount: 1,
52
51
  imageUrls: ['http://127.0.0.1:8188/view?filename=ComfyUI_00001.png'],
53
- prompt: 'A beautiful landscape painting',
54
- mode: 'text-to-image',
55
- parameters: {
56
- width: 512,
57
- height: 512,
58
- steps: 20,
59
- cfg: 8,
60
- seed: 123456789,
61
- },
62
52
  },
63
53
  },
64
54
  properties: [
@@ -70,75 +60,76 @@ class ComfyUiTool {
70
60
  default: 'http://127.0.0.1:8188',
71
61
  description: 'URL of ComfyUI server',
72
62
  },
63
+ {
64
+ displayName: 'Workflow JSON',
65
+ name: 'workflowJson',
66
+ type: 'string',
67
+ typeOptions: {
68
+ rows: 20,
69
+ },
70
+ required: true,
71
+ default: '',
72
+ description: 'Paste your ComfyUI workflow JSON (API Format). Required field - no built-in templates.',
73
+ placeholder: 'Paste your ComfyUI workflow JSON (API Format) here...\n\n{\n "3": {\n "inputs": {\n "seed": 123456789,\n ...\n },\n "class_type": "KSampler"\n }\n}',
74
+ hint: 'Required: Export your workflow from ComfyUI in API format and paste it here.',
75
+ },
73
76
  {
74
77
  displayName: 'Timeout (Seconds)',
75
78
  name: 'timeout',
76
79
  type: 'number',
77
- default: 120,
78
- description: 'Maximum time to wait for image generation (in seconds). Default: 120 (2 minutes).',
80
+ default: 300,
81
+ description: 'Maximum time to wait for workflow execution (in seconds). Default: 300 (5 minutes).',
79
82
  minValue: 10,
80
- maxValue: 600,
83
+ maxValue: 3600,
81
84
  },
82
85
  {
83
- displayName: 'Default Negative Prompt',
84
- name: 'defaultNegativePrompt',
86
+ displayName: 'Load Image Node ID',
87
+ name: 'loadImageNodeId',
85
88
  type: 'string',
86
- default: 'ugly, blurry, low quality, distorted',
87
- description: 'Default negative prompt to use when not specified in query',
88
- placeholder: 'ugly, blurry, low quality',
89
+ default: '',
90
+ description: 'Optional: Node ID of LoadImage node if your workflow uses input images. Leave empty if not using image input.',
91
+ placeholder: 'e.g., 5, 12, load_image_1',
89
92
  },
90
93
  {
91
- displayName: 'Advanced Options',
92
- name: 'advancedOptions',
93
- type: 'collection',
94
- placeholder: 'Add Option',
94
+ displayName: 'Parameter Overrides',
95
+ name: 'parameterOverrides',
96
+ type: 'fixedCollection',
97
+ placeholder: 'Add Parameter Override',
95
98
  default: {},
99
+ description: 'Override specific node parameters at runtime. Useful for dynamic values from input data.',
96
100
  options: [
97
101
  {
98
- displayName: 'Custom Workflow JSON',
99
- name: 'customWorkflow',
100
- type: 'string',
101
- typeOptions: {
102
- rows: 20,
103
- },
104
- default: '',
105
- description: 'Optional: Custom ComfyUI workflow JSON (API Format). If empty, uses default workflow. Only use this if you want to override the default template.',
106
- },
107
- {
108
- displayName: 'Default CFG',
109
- name: 'defaultCfg',
110
- type: 'number',
111
- default: 8,
112
- description: 'Default CFG scale when not specified in query',
113
- minValue: 1,
114
- maxValue: 30,
115
- },
116
- {
117
- displayName: 'Default Height',
118
- name: 'defaultHeight',
119
- type: 'number',
120
- default: 512,
121
- description: 'Default image height when not specified in query',
122
- minValue: 64,
123
- maxValue: 4096,
124
- },
125
- {
126
- displayName: 'Default Steps',
127
- name: 'defaultSteps',
128
- type: 'number',
129
- default: 20,
130
- description: 'Default sampling steps when not specified in query',
131
- minValue: 1,
132
- maxValue: 150,
133
- },
134
- {
135
- displayName: 'Default Width',
136
- name: 'defaultWidth',
137
- type: 'number',
138
- default: 512,
139
- description: 'Default image width when not specified in query',
140
- minValue: 64,
141
- maxValue: 4096,
102
+ displayName: 'Parameter Override',
103
+ name: 'parameterOverride',
104
+ type: 'collection',
105
+ placeholder: 'Add Override',
106
+ default: {},
107
+ options: [
108
+ {
109
+ displayName: 'Node ID',
110
+ name: 'nodeId',
111
+ type: 'string',
112
+ default: '',
113
+ description: 'The node ID to update (e.g., "3", "6", "15")',
114
+ placeholder: 'Node ID from workflow JSON',
115
+ },
116
+ {
117
+ displayName: 'Parameter Path',
118
+ name: 'paramPath',
119
+ type: 'string',
120
+ required: true,
121
+ default: '',
122
+ description: 'Path to the parameter (e.g., "inputs.text", "inputs.seed", "inputs.steps")',
123
+ placeholder: 'inputs.parameter_name',
124
+ },
125
+ {
126
+ displayName: 'Value',
127
+ name: 'value',
128
+ type: 'string',
129
+ default: '',
130
+ description: 'The new value. Can be a static value or an expression (e.g., "{{ $JSON.prompt }}").',
131
+ },
132
+ ],
142
133
  },
143
134
  ],
144
135
  },
@@ -152,58 +143,34 @@ class ComfyUiTool {
152
143
  const logger = (0, logger_1.createLogger)(this.logger);
153
144
  // Get node parameters
154
145
  const comfyUiUrl = this.getNodeParameter('comfyUiUrl', 0);
146
+ const workflowJson = this.getNodeParameter('workflowJson', 0);
155
147
  const timeout = this.getNodeParameter('timeout', 0);
156
- const defaultNegativePrompt = this.getNodeParameter('defaultNegativePrompt', 0);
157
- const advancedOptions = this.getNodeParameter('advancedOptions', 0);
158
- const { customWorkflow = '', defaultWidth = 512, defaultHeight = 512, defaultSteps = 20, defaultCfg = 8, } = advancedOptions || {};
148
+ const loadImageNodeId = this.getNodeParameter('loadImageNodeId', 0);
149
+ const parameterOverrides = this.getNodeParameter('parameterOverrides', 0);
159
150
  // Validate URL
160
151
  if (!(0, validation_1.validateUrl)(comfyUiUrl)) {
161
152
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Invalid ComfyUI URL. Must be a valid HTTP/HTTPS URL.');
162
153
  }
154
+ // Parse and validate workflow
155
+ let workflow;
156
+ try {
157
+ workflow = (0, workflowConfig_1.parseWorkflow)(workflowJson);
158
+ const validation = (0, validation_1.validateComfyUIWorkflow)(workflowJson);
159
+ if (!validation.valid && validation.error) {
160
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Invalid workflow: ${validation.error}`);
161
+ }
162
+ }
163
+ catch (error) {
164
+ if (error instanceof n8n_workflow_1.NodeOperationError) {
165
+ throw error;
166
+ }
167
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to parse workflow JSON. Please ensure it is valid ComfyUI API format.\nError: ${error instanceof Error ? error.message : String(error)}`);
168
+ }
169
+ logger.info('Processing ComfyUI workflow execution request', { comfyUiUrl, timeout });
163
170
  // Get input data
164
171
  const inputData = this.getInputData();
165
- if (!inputData || inputData.length === 0) {
166
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No input data provided. Please provide a query text.');
167
- }
168
- // Check if input contains binary image data
169
172
  const hasInputImage = (0, agentToolHelpers_1.hasBinaryData)(inputData);
170
173
  let uploadedImageFilename = null;
171
- // Get query from input
172
- const firstItem = inputData[0];
173
- const query = firstItem.json.query ||
174
- firstItem.json.text ||
175
- firstItem.json.prompt ||
176
- '';
177
- if (!query || query.trim().length === 0) {
178
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No query found in input. Please provide a "query", "text", or "prompt" field with a description of the image you want to generate.');
179
- }
180
- // Determine mode based on input
181
- const mode = hasInputImage ? 'image-to-image' : 'text-to-image';
182
- logger.info('Processing image generation request', { query, comfyUiUrl, timeout, mode });
183
- // Parse the query to extract parameters
184
- const params = (0, agentToolHelpers_1.parseInput)(query, {
185
- negativePrompt: defaultNegativePrompt,
186
- width: defaultWidth,
187
- height: defaultHeight,
188
- steps: defaultSteps,
189
- cfg: defaultCfg,
190
- });
191
- logger.debug('Parsed parameters', {
192
- prompt: params.prompt,
193
- width: params.width,
194
- height: params.height,
195
- steps: params.steps,
196
- cfg: params.cfg,
197
- seed: params.seed,
198
- });
199
- // Get workflow template
200
- let workflowTemplate;
201
- if (customWorkflow && customWorkflow.trim().length > 0) {
202
- workflowTemplate = (0, validation_1.safeJsonParse)(customWorkflow, 'Custom workflow JSON');
203
- }
204
- else {
205
- workflowTemplate = (0, workflowConfig_1.getWorkflowTemplate)({ mode });
206
- }
207
174
  // Create ComfyUI client
208
175
  const client = new ComfyUiClient_1.ComfyUIClient({
209
176
  baseUrl: comfyUiUrl,
@@ -212,9 +179,8 @@ class ComfyUiTool {
212
179
  logger,
213
180
  });
214
181
  try {
215
- logger.info('Starting ComfyUI workflow execution');
216
- // If input contains image, upload it first
217
- if (hasInputImage) {
182
+ // If input contains image and LoadImage node ID is specified, upload it
183
+ if (hasInputImage && loadImageNodeId) {
218
184
  const binaryKey = (0, agentToolHelpers_1.getFirstBinaryKey)(inputData);
219
185
  if (!binaryKey) {
220
186
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Binary data found but no binary key detected.');
@@ -226,51 +192,61 @@ class ComfyUiTool {
226
192
  logger.info('Uploading input image to ComfyUI', {
227
193
  fileName: binaryData.fileName,
228
194
  mimeType: binaryData.mimeType,
195
+ nodeId: loadImageNodeId,
229
196
  });
230
197
  // Convert base64 to buffer
231
198
  const buffer = Buffer.from(binaryData.data, 'base64');
232
199
  // Upload image to ComfyUI
233
200
  uploadedImageFilename = await client.uploadImage(buffer, binaryData.fileName || 'input_image.png');
234
201
  logger.info('Successfully uploaded input image', { filename: uploadedImageFilename });
202
+ // Update workflow with uploaded image filename
203
+ workflow = (0, agentToolHelpers_1.updateNodeParameter)(workflow, loadImageNodeId, 'inputs.image', uploadedImageFilename);
235
204
  }
236
- // Update workflow with parsed parameters
237
- let workflow = (0, agentToolHelpers_1.updateWorkflow)(workflowTemplate, params);
238
- // If we uploaded an image, update workflow with the image filename
239
- if (uploadedImageFilename) {
240
- workflow = (0, agentToolHelpers_1.updateWorkflowWithImage)(workflow, uploadedImageFilename);
205
+ // Apply parameter overrides if provided
206
+ if (parameterOverrides?.parameterOverride && parameterOverrides.parameterOverride.length > 0) {
207
+ logger.info('Applying parameter overrides', {
208
+ count: parameterOverrides.parameterOverride.length,
209
+ });
210
+ for (const override of parameterOverrides.parameterOverride) {
211
+ const { nodeId, paramPath, value } = override;
212
+ // Evaluate expressions if needed
213
+ let evaluatedValue = value;
214
+ if (value && value.includes('{{') && value.includes('}}')) {
215
+ try {
216
+ evaluatedValue = this.evaluateExpression(value, 0);
217
+ logger.debug('Evaluated expression', { nodeId, paramPath, result: evaluatedValue });
218
+ }
219
+ catch (error) {
220
+ logger.warn(`Failed to evaluate expression for ${nodeId}.${paramPath}, using raw value`, { error });
221
+ }
222
+ }
223
+ workflow = (0, agentToolHelpers_1.updateNodeParameter)(workflow, nodeId, paramPath, evaluatedValue);
224
+ logger.debug('Applied parameter override', { nodeId, paramPath, value: evaluatedValue });
225
+ }
241
226
  }
227
+ logger.info('Starting ComfyUI workflow execution');
242
228
  // Execute workflow
243
229
  const result = await client.executeWorkflow(workflow);
244
230
  if (!result.success) {
245
231
  logger.error('Workflow execution failed', result.error);
246
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to generate image: ${result.error}`);
232
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to execute workflow: ${result.error}`);
247
233
  }
248
- // Only return URLs without downloading (for AI Agent)
234
+ // Build URLs
249
235
  const imageUrls = result.images ? result.images.map(img => `${comfyUiUrl}${img}`) : [];
250
236
  const videoUrls = result.videos ? result.videos.map(vid => `${comfyUiUrl}${vid}`) : [];
251
- const enhancedJson = {
237
+ const outputJson = {
252
238
  success: true,
253
239
  imageUrls,
254
240
  videoUrls,
255
241
  imageCount: result.images?.length || 0,
256
242
  videoCount: result.videos?.length || 0,
257
- prompt: params.prompt,
258
- mode: mode,
259
- parameters: {
260
- width: params.width,
261
- height: params.height,
262
- steps: params.steps,
263
- cfg: params.cfg,
264
- seed: params.seed,
265
- negative_prompt: params.negative_prompt,
266
- },
267
243
  };
268
- logger.info('Image generation completed successfully', {
269
- imageCount: enhancedJson.imageCount,
270
- mode,
244
+ logger.info('Workflow execution completed successfully', {
245
+ imageCount: outputJson.imageCount,
246
+ videoCount: outputJson.videoCount,
271
247
  });
272
- // Return result (no binary data for AI Agent)
273
- return [this.helpers.constructExecutionMetaData([{ json: enhancedJson }], { itemData: { item: 0 } })];
248
+ // Return result (no binary data for AI Agent - URLs only)
249
+ return [this.helpers.constructExecutionMetaData([{ json: outputJson }], { itemData: { item: 0 } })];
274
250
  }
275
251
  catch (error) {
276
252
  logger.error('Error during workflow execution', error);
@@ -1 +1 @@
1
- {"version":3,"file":"ComfyUiTool.node.js","sourceRoot":"","sources":["../../../nodes/ComfyUiTool/ComfyUiTool.node.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,+CAIsB;AAEtB,oDAAiD;AACjD,8CAA2D;AAE3D,sCAAyC;AACzC,0DAO6B;AAC7B,sDAAwD;AAExD,MAAa,WAAW;IAAxB;QACE;;WAEG;QACH,gBAAW,GAAG;YACZ,WAAW,EAAE,cAAc;YAC3B,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE,SAAS;YACpB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,CAAC;YACZ,cAAc,EAAE,CAAC;YACjB,WAAW,EAAE,+EAA+E;YAC5F,QAAQ,EAAE;gBACR,IAAI,EAAE,cAAc;aACrB;YACD,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,QAAQ,EAAE,oBAAoB;YAC9B,KAAK,EAAE;gBACL,8BAA8B;gBAC9B,yEAAyE;gBACzE,yDAAyD;gBACzD,iEAAiE;gBACjE,yDAAyD;aAC1D;YACD,WAAW,EAAE;gBACX,KAAK,EAAE,gCAAgC;aACxC;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE;oBACJ,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,CAAC;oBACb,SAAS,EAAE,CAAC,uDAAuD,CAAC;oBACpE,MAAM,EAAE,gCAAgC;oBACxC,IAAI,EAAE,eAAe;oBACrB,UAAU,EAAE;wBACV,KAAK,EAAE,GAAG;wBACV,MAAM,EAAE,GAAG;wBACX,KAAK,EAAE,EAAE;wBACT,GAAG,EAAE,CAAC;wBACN,IAAI,EAAE,SAAS;qBAChB;iBACF;aACF;YACD,UAAU,EAAE;gBACV;oBACE,WAAW,EAAE,aAAa;oBAC1B,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,uBAAuB;oBAChC,WAAW,EAAE,uBAAuB;iBACrC;gBACD;oBACE,WAAW,EAAE,mBAAmB;oBAChC,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,GAAG;oBACZ,WAAW,EAAE,mFAAmF;oBAChG,QAAQ,EAAE,EAAE;oBACZ,QAAQ,EAAE,GAAG;iBACd;gBACD;oBACE,WAAW,EAAE,yBAAyB;oBACtC,IAAI,EAAE,uBAAuB;oBAC7B,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,sCAAsC;oBAC/C,WAAW,EAAE,4DAA4D;oBACzE,WAAW,EAAE,2BAA2B;iBACzC;gBACD;oBACE,WAAW,EAAE,kBAAkB;oBAC/B,IAAI,EAAE,iBAAiB;oBACvB,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,YAAY;oBACzB,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE;wBACP;4BACE,WAAW,EAAE,sBAAsB;4BACnC,IAAI,EAAE,gBAAgB;4BACtB,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE;gCACX,IAAI,EAAE,EAAE;6BACT;4BACD,OAAO,EAAE,EAAE;4BACX,WAAW,EAAE,mJAAmJ;yBACjK;wBACD;4BACE,WAAW,EAAE,aAAa;4BAC1B,IAAI,EAAE,YAAY;4BAClB,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,CAAC;4BACV,WAAW,EAAE,+CAA+C;4BAC5D,QAAQ,EAAE,CAAC;4BACX,QAAQ,EAAE,EAAE;yBACb;wBACD;4BACE,WAAW,EAAE,gBAAgB;4BAC7B,IAAI,EAAE,eAAe;4BACrB,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,GAAG;4BACZ,WAAW,EAAE,kDAAkD;4BAC/D,QAAQ,EAAE,EAAE;4BACZ,QAAQ,EAAE,IAAI;yBACf;wBACD;4BACE,WAAW,EAAE,eAAe;4BAC5B,IAAI,EAAE,cAAc;4BACpB,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,EAAE;4BACX,WAAW,EAAE,oDAAoD;4BACjE,QAAQ,EAAE,CAAC;4BACX,QAAQ,EAAE,GAAG;yBACd;wBACD;4BACE,WAAW,EAAE,eAAe;4BAC5B,IAAI,EAAE,cAAc;4BACpB,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,GAAG;4BACZ,WAAW,EAAE,iDAAiD;4BAC9D,QAAQ,EAAE,EAAE;4BACZ,QAAQ,EAAE,IAAI;yBACf;qBACF;iBACF;aACF;SACF,CAAC;IAuLJ,CAAC;IArLC;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEzC,sBAAsB;QACtB,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAW,CAAC;QACpE,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAW,CAAC;QAC9D,MAAM,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,CAAC,CAAW,CAAC;QAE1F,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAMjE,CAAC;QAEF,MAAM,EACJ,cAAc,GAAG,EAAE,EACnB,YAAY,GAAG,GAAG,EAClB,aAAa,GAAG,GAAG,EACnB,YAAY,GAAG,EAAE,EACjB,UAAU,GAAG,CAAC,GACf,GAAG,eAAe,IAAI,EAAE,CAAC;QAE1B,eAAe;QACf,IAAI,CAAC,IAAA,wBAAW,EAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,sDAAsD,CAAC,CAAC;QACvG,CAAC;QAED,iBAAiB;QACjB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEtC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,sDAAsD,CAAC,CAAC;QACvG,CAAC;QAED,4CAA4C;QAC5C,MAAM,aAAa,GAAG,IAAA,gCAAa,EAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,qBAAqB,GAAkB,IAAI,CAAC;QAEhD,uBAAuB;QACvB,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAI,SAAS,CAAC,IAAI,CAAC,KAAgB;YAC/B,SAAS,CAAC,IAAI,CAAC,IAAe;YAC9B,SAAS,CAAC,IAAI,CAAC,MAAiB;YACjC,EAAE,CAAC;QAEjB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,iCAAkB,CAC1B,IAAI,CAAC,OAAO,EAAE,EACd,oIAAoI,CACrI,CAAC;QACJ,CAAC;QAED,gCAAgC;QAChC,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC;QAEhE,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAEzF,wCAAwC;QACxC,MAAM,MAAM,GAAG,IAAA,6BAAU,EAAC,KAAK,EAAE;YAC/B,cAAc,EAAE,qBAAqB;YACrC,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,YAAY;YACnB,GAAG,EAAE,UAAU;SAChB,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE;YAChC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CAAC;QAEH,wBAAwB;QACxB,IAAI,gBAA0B,CAAC;QAC/B,IAAI,cAAc,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvD,gBAAgB,GAAG,IAAA,0BAAa,EAAC,cAAc,EAAE,sBAAsB,CAAa,CAAC;QACvF,CAAC;aAAM,CAAC;YACN,gBAAgB,GAAG,IAAA,oCAAmB,EAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,wBAAwB;QACxB,MAAM,MAAM,GAAG,IAAI,6BAAa,CAAC;YAC/B,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE,OAAO,GAAG,IAAI;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YAEnD,2CAA2C;YAC3C,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,SAAS,GAAG,IAAA,oCAAiB,EAAC,SAAS,CAAC,CAAC;gBAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,+CAA+C,CAAC,CAAC;gBAChG,CAAC;gBAED,MAAM,UAAU,GAAG,IAAA,oCAAiB,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,2CAA2C,SAAS,IAAI,CAAC,CAAC;gBACzG,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE;oBAC9C,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,QAAQ,EAAE,UAAU,CAAC,QAAQ;iBAC9B,CAAC,CAAC;gBAEH,2BAA2B;gBAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAEtD,0BAA0B;gBAC1B,qBAAqB,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,IAAI,iBAAiB,CAAC,CAAC;gBAEnG,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC,CAAC;YACxF,CAAC;YAED,yCAAyC;YACzC,IAAI,QAAQ,GAAG,IAAA,iCAAc,EAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;YAExD,mEAAmE;YACnE,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,QAAQ,GAAG,IAAA,0CAAuB,EAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;YACtE,CAAC;YAED,mBAAmB;YACnB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAEtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACxD,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,6BAA6B,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5F,CAAC;YAED,sDAAsD;YACtD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAEvF,MAAM,YAAY,GAAa;gBAC7B,OAAO,EAAE,IAAI;gBACb,SAAS;gBACT,SAAS;gBACT,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;gBACtC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;gBACtC,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE;oBACV,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,GAAG,EAAE,MAAM,CAAC,GAAG;oBACf,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,eAAe,EAAE,MAAM,CAAC,eAAe;iBACxC;aACU,CAAC;YAEd,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE;gBACrD,UAAU,EAAE,YAAY,CAAC,UAAU;gBACnC,IAAI;aACL,CAAC,CAAC;YAEH,8CAA8C;YAC9C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAC7C,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EACxB,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAC1B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF;AAvTD,kCAuTC"}
1
+ {"version":3,"file":"ComfyUiTool.node.js","sourceRoot":"","sources":["../../../nodes/ComfyUiTool/ComfyUiTool.node.ts"],"names":[],"mappings":"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"}