n8n-nodes-comfyui-all 2.3.15 → 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.
- package/dist/nodes/ComfyUi/ComfyUi.node.d.ts +78 -69
- package/dist/nodes/ComfyUi/ComfyUi.node.d.ts.map +1 -1
- package/dist/nodes/ComfyUi/ComfyUi.node.js +116 -252
- package/dist/nodes/ComfyUi/ComfyUi.node.js.map +1 -1
- package/dist/nodes/ComfyUiTool/ComfyUiTool.node.d.ts +66 -80
- package/dist/nodes/ComfyUiTool/ComfyUiTool.node.d.ts.map +1 -1
- package/dist/nodes/ComfyUiTool/ComfyUiTool.node.js +125 -286
- package/dist/nodes/ComfyUiTool/ComfyUiTool.node.js.map +1 -1
- package/dist/nodes/agentToolHelpers.d.ts +24 -60
- package/dist/nodes/agentToolHelpers.d.ts.map +1 -1
- package/dist/nodes/agentToolHelpers.js +42 -263
- package/dist/nodes/agentToolHelpers.js.map +1 -1
- package/dist/nodes/parameterProcessor.d.ts.map +1 -1
- package/dist/nodes/parameterProcessor.js +23 -56
- package/dist/nodes/parameterProcessor.js.map +1 -1
- package/dist/nodes/types.d.ts +0 -40
- package/dist/nodes/types.d.ts.map +1 -1
- package/dist/nodes/validation.d.ts +0 -10
- package/dist/nodes/validation.d.ts.map +1 -1
- package/dist/nodes/validation.js +0 -81
- package/dist/nodes/validation.js.map +1 -1
- package/dist/nodes/workflowConfig.d.ts +27 -13
- package/dist/nodes/workflowConfig.d.ts.map +1 -1
- package/dist/nodes/workflowConfig.js +57 -148
- package/dist/nodes/workflowConfig.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* ComfyUI Tool -
|
|
3
|
+
* ComfyUI Tool - Simplified workflow execution node for AI Agents
|
|
4
4
|
*
|
|
5
|
-
* This
|
|
6
|
-
*
|
|
7
|
-
*
|
|
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;
|
|
@@ -13,6 +13,7 @@ const ComfyUiClient_1 = require("../ComfyUiClient");
|
|
|
13
13
|
const validation_1 = require("../validation");
|
|
14
14
|
const logger_1 = require("../logger");
|
|
15
15
|
const agentToolHelpers_1 = require("../agentToolHelpers");
|
|
16
|
+
const workflowConfig_1 = require("../workflowConfig");
|
|
16
17
|
class ComfyUiTool {
|
|
17
18
|
constructor() {
|
|
18
19
|
/**
|
|
@@ -26,47 +27,28 @@ class ComfyUiTool {
|
|
|
26
27
|
group: ['transform'],
|
|
27
28
|
version: [1],
|
|
28
29
|
defaultVersion: 1,
|
|
29
|
-
description: '
|
|
30
|
+
description: 'Execute ComfyUI workflows. Requires a workflow JSON exported from ComfyUI.',
|
|
30
31
|
defaults: {
|
|
31
32
|
name: 'ComfyUI Tool',
|
|
32
33
|
},
|
|
33
34
|
usableAsTool: true,
|
|
34
35
|
inputs: ['main'],
|
|
35
36
|
outputs: ['main'],
|
|
36
|
-
subtitle: '
|
|
37
|
+
subtitle: 'ComfyUI Workflow Executor',
|
|
37
38
|
notes: [
|
|
38
|
-
'
|
|
39
|
-
'
|
|
40
|
-
'
|
|
41
|
-
'
|
|
42
|
-
'Configure which node/parameters AI can modify using "Node ID" and "Allowed Parameters"',
|
|
43
|
-
'AI Agent provides: { query: "...", parameters: { seed: 123456, steps: 30 } }',
|
|
44
|
-
'Only parameters in "Allowed Parameters" list will be applied',
|
|
45
|
-
'Legacy format supported: "A 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',
|
|
46
43
|
],
|
|
47
44
|
inputSample: {
|
|
48
|
-
|
|
49
|
-
parameters: {
|
|
50
|
-
seed: 123456,
|
|
51
|
-
steps: 30,
|
|
52
|
-
width: 1024,
|
|
53
|
-
height: 768,
|
|
54
|
-
},
|
|
45
|
+
workflowJson: '{ "3": { "inputs": {}, "class_type": "KSampler" } }',
|
|
55
46
|
},
|
|
56
47
|
outputSample: {
|
|
57
48
|
json: {
|
|
58
49
|
success: true,
|
|
59
50
|
imageCount: 1,
|
|
60
51
|
imageUrls: ['http://127.0.0.1:8188/view?filename=ComfyUI_00001.png'],
|
|
61
|
-
prompt: 'A beautiful landscape painting',
|
|
62
|
-
mode: 'text-to-image',
|
|
63
|
-
parameters: {
|
|
64
|
-
width: 1024,
|
|
65
|
-
height: 768,
|
|
66
|
-
steps: 30,
|
|
67
|
-
cfg: 8,
|
|
68
|
-
seed: 123456,
|
|
69
|
-
},
|
|
70
52
|
},
|
|
71
53
|
},
|
|
72
54
|
properties: [
|
|
@@ -78,147 +60,81 @@ class ComfyUiTool {
|
|
|
78
60
|
default: 'http://127.0.0.1:8188',
|
|
79
61
|
description: 'URL of ComfyUI server',
|
|
80
62
|
},
|
|
81
|
-
{
|
|
82
|
-
displayName: 'Timeout (Seconds)',
|
|
83
|
-
name: 'timeout',
|
|
84
|
-
type: 'number',
|
|
85
|
-
default: 120,
|
|
86
|
-
description: 'Maximum time to wait for image generation (in seconds). Default: 120 (2 minutes).',
|
|
87
|
-
minValue: 10,
|
|
88
|
-
maxValue: 600,
|
|
89
|
-
},
|
|
90
63
|
{
|
|
91
64
|
displayName: 'Workflow JSON',
|
|
92
65
|
name: 'workflowJson',
|
|
93
66
|
type: 'string',
|
|
94
|
-
required: true,
|
|
95
67
|
typeOptions: {
|
|
96
68
|
rows: 20,
|
|
97
69
|
},
|
|
70
|
+
required: true,
|
|
98
71
|
default: '',
|
|
99
|
-
description: 'ComfyUI workflow JSON
|
|
100
|
-
placeholder: 'Paste your ComfyUI workflow JSON
|
|
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.',
|
|
101
75
|
},
|
|
102
76
|
{
|
|
103
|
-
displayName: '
|
|
104
|
-
name: '
|
|
105
|
-
type: '
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
77
|
+
displayName: 'Timeout (Seconds)',
|
|
78
|
+
name: 'timeout',
|
|
79
|
+
type: 'number',
|
|
80
|
+
default: 300,
|
|
81
|
+
description: 'Maximum time to wait for workflow execution (in seconds). Default: 300 (5 minutes).',
|
|
82
|
+
minValue: 10,
|
|
83
|
+
maxValue: 3600,
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
displayName: 'Load Image Node ID',
|
|
87
|
+
name: 'loadImageNodeId',
|
|
88
|
+
type: 'string',
|
|
111
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',
|
|
112
92
|
},
|
|
113
93
|
{
|
|
114
|
-
displayName: '
|
|
115
|
-
name: '
|
|
116
|
-
type: '
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
94
|
+
displayName: 'Parameter Overrides',
|
|
95
|
+
name: 'parameterOverrides',
|
|
96
|
+
type: 'fixedCollection',
|
|
97
|
+
placeholder: 'Add Parameter Override',
|
|
98
|
+
default: {},
|
|
99
|
+
description: 'Override specific node parameters at runtime. Useful for dynamic values from input data.',
|
|
100
|
+
options: [
|
|
101
|
+
{
|
|
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
|
+
],
|
|
127
133
|
},
|
|
128
|
-
|
|
134
|
+
],
|
|
129
135
|
},
|
|
130
136
|
],
|
|
131
137
|
};
|
|
132
|
-
/**
|
|
133
|
-
* Load options methods for dynamic parameter selection
|
|
134
|
-
*/
|
|
135
|
-
this.methods = {
|
|
136
|
-
loadOptions: {
|
|
137
|
-
/**
|
|
138
|
-
* Load all nodes from workflow JSON for Node ID dropdown
|
|
139
|
-
*/
|
|
140
|
-
async getWorkflowNodes() {
|
|
141
|
-
try {
|
|
142
|
-
const workflowJson = this.getNodeParameter('workflowJson', 0);
|
|
143
|
-
if (!workflowJson || workflowJson.trim().length === 0) {
|
|
144
|
-
return [];
|
|
145
|
-
}
|
|
146
|
-
const workflow = (0, validation_1.safeJsonParse)(workflowJson, 'Workflow JSON');
|
|
147
|
-
const nodes = [];
|
|
148
|
-
for (const [nodeId, nodeData] of Object.entries(workflow)) {
|
|
149
|
-
if (nodeData && nodeData.class_type) {
|
|
150
|
-
nodes.push({
|
|
151
|
-
name: `${nodeId} - ${nodeData.class_type}`,
|
|
152
|
-
value: nodeId,
|
|
153
|
-
description: nodeData.class_type,
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
// Sort by node ID (numeric)
|
|
158
|
-
nodes.sort((a, b) => {
|
|
159
|
-
const aNum = parseInt(a.value);
|
|
160
|
-
const bNum = parseInt(b.value);
|
|
161
|
-
return aNum - bNum;
|
|
162
|
-
});
|
|
163
|
-
return nodes;
|
|
164
|
-
}
|
|
165
|
-
catch (error) {
|
|
166
|
-
// Silently return empty array on error
|
|
167
|
-
return [];
|
|
168
|
-
}
|
|
169
|
-
},
|
|
170
|
-
/**
|
|
171
|
-
* Load parameters for a specific node for Allowed Parameters multi-select
|
|
172
|
-
*/
|
|
173
|
-
async getNodeParameters() {
|
|
174
|
-
try {
|
|
175
|
-
const workflowJson = this.getNodeParameter('workflowJson', 0);
|
|
176
|
-
const nodeId = this.getNodeParameter('nodeId', 0);
|
|
177
|
-
if (!workflowJson || workflowJson.trim().length === 0 || !nodeId) {
|
|
178
|
-
return [];
|
|
179
|
-
}
|
|
180
|
-
const workflow = (0, validation_1.safeJsonParse)(workflowJson, 'Workflow JSON');
|
|
181
|
-
const nodeData = workflow[nodeId];
|
|
182
|
-
if (!nodeData || !nodeData.inputs) {
|
|
183
|
-
return [];
|
|
184
|
-
}
|
|
185
|
-
const parameters = [];
|
|
186
|
-
for (const [paramName, paramValue] of Object.entries(nodeData.inputs)) {
|
|
187
|
-
// Skip array values (these are connections to other nodes)
|
|
188
|
-
if (Array.isArray(paramValue)) {
|
|
189
|
-
continue;
|
|
190
|
-
}
|
|
191
|
-
// Auto-detect type for display
|
|
192
|
-
let detectedType = 'text';
|
|
193
|
-
if (paramName.toLowerCase().includes('image') || paramName.toLowerCase().includes('upload')) {
|
|
194
|
-
detectedType = 'image';
|
|
195
|
-
}
|
|
196
|
-
else if (typeof paramValue === 'boolean') {
|
|
197
|
-
detectedType = 'boolean';
|
|
198
|
-
}
|
|
199
|
-
else if (typeof paramValue === 'number') {
|
|
200
|
-
detectedType = 'number';
|
|
201
|
-
}
|
|
202
|
-
// Add parameter with value and type as description
|
|
203
|
-
const valueStr = String(paramValue);
|
|
204
|
-
const description = `Type: ${detectedType} | Current value: ${valueStr.length > 50 ? valueStr.substring(0, 50) + '...' : valueStr}`;
|
|
205
|
-
parameters.push({
|
|
206
|
-
name: paramName,
|
|
207
|
-
value: paramName,
|
|
208
|
-
description: description,
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
// Sort alphabetically
|
|
212
|
-
parameters.sort((a, b) => a.name.localeCompare(b.name));
|
|
213
|
-
return parameters;
|
|
214
|
-
}
|
|
215
|
-
catch (error) {
|
|
216
|
-
// Silently return empty array on error
|
|
217
|
-
return [];
|
|
218
|
-
}
|
|
219
|
-
},
|
|
220
|
-
},
|
|
221
|
-
};
|
|
222
138
|
}
|
|
223
139
|
/**
|
|
224
140
|
* Execute function - called when the node runs
|
|
@@ -227,111 +143,34 @@ class ComfyUiTool {
|
|
|
227
143
|
const logger = (0, logger_1.createLogger)(this.logger);
|
|
228
144
|
// Get node parameters
|
|
229
145
|
const comfyUiUrl = this.getNodeParameter('comfyUiUrl', 0);
|
|
230
|
-
const timeout = this.getNodeParameter('timeout', 0);
|
|
231
146
|
const workflowJson = this.getNodeParameter('workflowJson', 0);
|
|
147
|
+
const timeout = this.getNodeParameter('timeout', 0);
|
|
148
|
+
const loadImageNodeId = this.getNodeParameter('loadImageNodeId', 0);
|
|
149
|
+
const parameterOverrides = this.getNodeParameter('parameterOverrides', 0);
|
|
232
150
|
// Validate URL
|
|
233
151
|
if (!(0, validation_1.validateUrl)(comfyUiUrl)) {
|
|
234
152
|
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Invalid ComfyUI URL. Must be a valid HTTP/HTTPS URL.');
|
|
235
153
|
}
|
|
236
|
-
//
|
|
237
|
-
|
|
238
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Workflow JSON is required. Please export your ComfyUI workflow (Menu > Export > API Format) and paste it in the "Workflow JSON" field.');
|
|
239
|
-
}
|
|
240
|
-
// Get input data
|
|
241
|
-
const inputData = this.getInputData();
|
|
242
|
-
if (!inputData || inputData.length === 0) {
|
|
243
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No input data provided. Please provide a query text.');
|
|
244
|
-
}
|
|
245
|
-
// Check if input contains binary image data
|
|
246
|
-
const hasInputImage = (0, agentToolHelpers_1.hasBinaryData)(inputData);
|
|
247
|
-
let uploadedImageFilename = null;
|
|
248
|
-
// Get query from input
|
|
249
|
-
const firstItem = inputData[0];
|
|
250
|
-
const query = firstItem.json.query ||
|
|
251
|
-
firstItem.json.text ||
|
|
252
|
-
firstItem.json.prompt ||
|
|
253
|
-
'';
|
|
254
|
-
if (!query || query.trim().length === 0) {
|
|
255
|
-
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.');
|
|
256
|
-
}
|
|
257
|
-
// Parse workflow JSON (already validated in parameter validation)
|
|
258
|
-
let workflowTemplate;
|
|
154
|
+
// Parse and validate workflow
|
|
155
|
+
let workflow;
|
|
259
156
|
try {
|
|
260
|
-
|
|
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
|
+
}
|
|
261
162
|
}
|
|
262
163
|
catch (error) {
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
// Check if structured parameters are provided
|
|
266
|
-
const structuredParams = firstItem.json.parameters;
|
|
267
|
-
// Get node configuration (which node/parameters AI can modify)
|
|
268
|
-
const configuredNodeId = this.getNodeParameter('nodeId', 0);
|
|
269
|
-
const allowedParams = this.getNodeParameter('allowedParameters', 0) || [];
|
|
270
|
-
let params;
|
|
271
|
-
let workflow = workflowTemplate;
|
|
272
|
-
let usedStructuredParams = false;
|
|
273
|
-
if (structuredParams && typeof structuredParams === 'object' && Object.keys(structuredParams).length > 0) {
|
|
274
|
-
// Use structured parameters from AI Agent
|
|
275
|
-
logger.info('Using structured parameters from input', { parameters: structuredParams });
|
|
276
|
-
// Filter parameters based on allowed list
|
|
277
|
-
let filteredParams = structuredParams;
|
|
278
|
-
if (configuredNodeId && allowedParams.length > 0) {
|
|
279
|
-
filteredParams = {};
|
|
280
|
-
for (const paramName of allowedParams) {
|
|
281
|
-
if (paramName in structuredParams) {
|
|
282
|
-
filteredParams[paramName] = structuredParams[paramName];
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
logger.info('Filtered parameters based on allowed list', {
|
|
286
|
-
configuredNodeId,
|
|
287
|
-
allowedParams,
|
|
288
|
-
filteredParams,
|
|
289
|
-
});
|
|
290
|
-
}
|
|
291
|
-
// Convert structured parameters to ParsedParameters format
|
|
292
|
-
// Use filteredParams when available to ensure response only includes allowed parameters
|
|
293
|
-
const sourceParams = (configuredNodeId && allowedParams.length > 0) ? filteredParams : structuredParams;
|
|
294
|
-
params = {
|
|
295
|
-
prompt: query,
|
|
296
|
-
negative_prompt: sourceParams.negative_prompt ||
|
|
297
|
-
sourceParams.negative ||
|
|
298
|
-
structuredParams.negative_prompt ||
|
|
299
|
-
structuredParams.negative ||
|
|
300
|
-
'ugly, blurry, low quality, distorted',
|
|
301
|
-
width: sourceParams.width || 512,
|
|
302
|
-
height: sourceParams.height || 512,
|
|
303
|
-
steps: sourceParams.steps || 20,
|
|
304
|
-
cfg: sourceParams.cfg || 8,
|
|
305
|
-
seed: sourceParams.seed || Math.floor(Math.random() * 2147483647),
|
|
306
|
-
};
|
|
307
|
-
// Apply filtered parameters to the configured node
|
|
308
|
-
if (configuredNodeId && Object.keys(filteredParams).length > 0) {
|
|
309
|
-
workflow = (0, agentToolHelpers_1.applyParametersToNode)(workflowTemplate, configuredNodeId, filteredParams);
|
|
310
|
-
usedStructuredParams = true;
|
|
311
|
-
logger.debug('Applied filtered parameters to configured node', {
|
|
312
|
-
nodeId: configuredNodeId,
|
|
313
|
-
params: filteredParams,
|
|
314
|
-
});
|
|
315
|
-
}
|
|
316
|
-
else if (Object.keys(structuredParams).length > 0) {
|
|
317
|
-
// Fallback to old behavior if no node configured
|
|
318
|
-
workflow = (0, agentToolHelpers_1.applyStructuredParameters)(workflowTemplate, structuredParams);
|
|
319
|
-
usedStructuredParams = true;
|
|
320
|
-
logger.debug('Applied structured parameters (auto-mapped)', structuredParams);
|
|
164
|
+
if (error instanceof n8n_workflow_1.NodeOperationError) {
|
|
165
|
+
throw error;
|
|
321
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)}`);
|
|
322
168
|
}
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
width: params.width,
|
|
329
|
-
height: params.height,
|
|
330
|
-
steps: params.steps,
|
|
331
|
-
cfg: params.cfg,
|
|
332
|
-
seed: params.seed,
|
|
333
|
-
});
|
|
334
|
-
}
|
|
169
|
+
logger.info('Processing ComfyUI workflow execution request', { comfyUiUrl, timeout });
|
|
170
|
+
// Get input data
|
|
171
|
+
const inputData = this.getInputData();
|
|
172
|
+
const hasInputImage = (0, agentToolHelpers_1.hasBinaryData)(inputData);
|
|
173
|
+
let uploadedImageFilename = null;
|
|
335
174
|
// Create ComfyUI client
|
|
336
175
|
const client = new ComfyUiClient_1.ComfyUIClient({
|
|
337
176
|
baseUrl: comfyUiUrl,
|
|
@@ -340,9 +179,8 @@ class ComfyUiTool {
|
|
|
340
179
|
logger,
|
|
341
180
|
});
|
|
342
181
|
try {
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
if (hasInputImage) {
|
|
182
|
+
// If input contains image and LoadImage node ID is specified, upload it
|
|
183
|
+
if (hasInputImage && loadImageNodeId) {
|
|
346
184
|
const binaryKey = (0, agentToolHelpers_1.getFirstBinaryKey)(inputData);
|
|
347
185
|
if (!binaryKey) {
|
|
348
186
|
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Binary data found but no binary key detected.');
|
|
@@ -354,60 +192,61 @@ class ComfyUiTool {
|
|
|
354
192
|
logger.info('Uploading input image to ComfyUI', {
|
|
355
193
|
fileName: binaryData.fileName,
|
|
356
194
|
mimeType: binaryData.mimeType,
|
|
195
|
+
nodeId: loadImageNodeId,
|
|
357
196
|
});
|
|
358
197
|
// Convert base64 to buffer
|
|
359
198
|
const buffer = Buffer.from(binaryData.data, 'base64');
|
|
360
199
|
// Upload image to ComfyUI
|
|
361
200
|
uploadedImageFilename = await client.uploadImage(buffer, binaryData.fileName || 'input_image.png');
|
|
362
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);
|
|
363
204
|
}
|
|
364
|
-
//
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
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
|
+
}
|
|
372
226
|
}
|
|
227
|
+
logger.info('Starting ComfyUI workflow execution');
|
|
373
228
|
// Execute workflow
|
|
374
229
|
const result = await client.executeWorkflow(workflow);
|
|
375
230
|
if (!result.success) {
|
|
376
231
|
logger.error('Workflow execution failed', result.error);
|
|
377
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to
|
|
232
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to execute workflow: ${result.error}`);
|
|
378
233
|
}
|
|
379
|
-
//
|
|
380
|
-
|
|
381
|
-
const
|
|
382
|
-
const
|
|
383
|
-
const imagePath = img.startsWith('/') ? img : `/${img}`;
|
|
384
|
-
return `${baseUrl}${imagePath}`;
|
|
385
|
-
}) : [];
|
|
386
|
-
const videoUrls = result.videos ? result.videos.map(vid => {
|
|
387
|
-
const videoPath = vid.startsWith('/') ? vid : `/${vid}`;
|
|
388
|
-
return `${baseUrl}${videoPath}`;
|
|
389
|
-
}) : [];
|
|
390
|
-
const enhancedJson = {
|
|
234
|
+
// Build URLs
|
|
235
|
+
const imageUrls = result.images ? result.images.map(img => `${comfyUiUrl}${img}`) : [];
|
|
236
|
+
const videoUrls = result.videos ? result.videos.map(vid => `${comfyUiUrl}${vid}`) : [];
|
|
237
|
+
const outputJson = {
|
|
391
238
|
success: true,
|
|
392
239
|
imageUrls,
|
|
393
240
|
videoUrls,
|
|
394
241
|
imageCount: result.images?.length || 0,
|
|
395
242
|
videoCount: result.videos?.length || 0,
|
|
396
|
-
prompt: params.prompt,
|
|
397
|
-
parameters: {
|
|
398
|
-
width: params.width,
|
|
399
|
-
height: params.height,
|
|
400
|
-
steps: params.steps,
|
|
401
|
-
cfg: params.cfg,
|
|
402
|
-
seed: params.seed,
|
|
403
|
-
negative_prompt: params.negative_prompt,
|
|
404
|
-
},
|
|
405
243
|
};
|
|
406
|
-
logger.info('
|
|
407
|
-
imageCount:
|
|
244
|
+
logger.info('Workflow execution completed successfully', {
|
|
245
|
+
imageCount: outputJson.imageCount,
|
|
246
|
+
videoCount: outputJson.videoCount,
|
|
408
247
|
});
|
|
409
|
-
// Return result (no binary data for AI Agent)
|
|
410
|
-
return [this.helpers.constructExecutionMetaData([{ json:
|
|
248
|
+
// Return result (no binary data for AI Agent - URLs only)
|
|
249
|
+
return [this.helpers.constructExecutionMetaData([{ json: outputJson }], { itemData: { item: 0 } })];
|
|
411
250
|
}
|
|
412
251
|
catch (error) {
|
|
413
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":"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"}
|
|
1
|
+
{"version":3,"file":"ComfyUiTool.node.js","sourceRoot":"","sources":["../../../nodes/ComfyUiTool/ComfyUiTool.node.ts"],"names":[],"mappings":"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"}
|