n8n-nodes-comfyui-all 2.0.0
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/README.md +882 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/nodes/ComfyUi/ComfyUi.node.d.ts +248 -0
- package/dist/nodes/ComfyUi/ComfyUi.node.d.ts.map +1 -0
- package/dist/nodes/ComfyUi/ComfyUi.node.js +484 -0
- package/dist/nodes/ComfyUi/ComfyUi.node.js.map +1 -0
- package/dist/nodes/ComfyUiClient.d.ts +63 -0
- package/dist/nodes/ComfyUiClient.d.ts.map +1 -0
- package/dist/nodes/ComfyUiClient.js +281 -0
- package/dist/nodes/ComfyUiClient.js.map +1 -0
- package/dist/nodes/constants.d.ts +49 -0
- package/dist/nodes/constants.d.ts.map +1 -0
- package/dist/nodes/constants.js +86 -0
- package/dist/nodes/constants.js.map +1 -0
- package/dist/nodes/logger.d.ts +29 -0
- package/dist/nodes/logger.d.ts.map +1 -0
- package/dist/nodes/logger.js +59 -0
- package/dist/nodes/logger.js.map +1 -0
- package/dist/nodes/types.d.ts +71 -0
- package/dist/nodes/types.d.ts.map +1 -0
- package/dist/nodes/types.js +6 -0
- package/dist/nodes/types.js.map +1 -0
- package/dist/nodes/validation.d.ts +23 -0
- package/dist/nodes/validation.d.ts.map +1 -0
- package/dist/nodes/validation.js +175 -0
- package/dist/nodes/validation.js.map +1 -0
- package/dist/nodes/workflow-builder.d.ts +22 -0
- package/dist/nodes/workflow-builder.d.ts.map +1 -0
- package/dist/nodes/workflow-builder.js +240 -0
- package/dist/nodes/workflow-builder.js.map +1 -0
- package/dist/nodes/workflow-parser.d.ts +51 -0
- package/dist/nodes/workflow-parser.d.ts.map +1 -0
- package/dist/nodes/workflow-parser.js +258 -0
- package/dist/nodes/workflow-parser.js.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ComfyUI Workflow Parser
|
|
4
|
+
* Parses API-format ComfyUI workflows and extracts configurable input parameters
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.parseWorkflowInputs = parseWorkflowInputs;
|
|
8
|
+
exports.updateWorkflowWithInputs = updateWorkflowWithInputs;
|
|
9
|
+
exports.generateParameterKey = generateParameterKey;
|
|
10
|
+
const validation_1 = require("./validation");
|
|
11
|
+
/**
|
|
12
|
+
* Node type configuration mapping
|
|
13
|
+
* Defines how to handle different types of ComfyUI nodes
|
|
14
|
+
*/
|
|
15
|
+
const NODE_TYPE_CONFIGS = {
|
|
16
|
+
LoadImage: {
|
|
17
|
+
title: 'Image Input',
|
|
18
|
+
inputs: {
|
|
19
|
+
image: {
|
|
20
|
+
type: 'string',
|
|
21
|
+
required: true,
|
|
22
|
+
isImage: true,
|
|
23
|
+
description: 'Input image URL or base64 data',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
KSampler: {
|
|
28
|
+
title: 'Sampler Parameters',
|
|
29
|
+
inputs: {
|
|
30
|
+
seed: {
|
|
31
|
+
type: 'number',
|
|
32
|
+
required: false,
|
|
33
|
+
isSeed: true,
|
|
34
|
+
isNumber: true,
|
|
35
|
+
description: 'Random seed (leave empty for auto-generate)',
|
|
36
|
+
},
|
|
37
|
+
steps: {
|
|
38
|
+
type: 'number',
|
|
39
|
+
required: false,
|
|
40
|
+
isNumber: true,
|
|
41
|
+
description: 'Sampling steps',
|
|
42
|
+
},
|
|
43
|
+
cfg: {
|
|
44
|
+
type: 'number',
|
|
45
|
+
required: false,
|
|
46
|
+
isNumber: true,
|
|
47
|
+
description: 'CFG strength',
|
|
48
|
+
},
|
|
49
|
+
sampler_name: {
|
|
50
|
+
type: 'options',
|
|
51
|
+
required: false,
|
|
52
|
+
options: [
|
|
53
|
+
{ name: 'Euler', value: 'euler' },
|
|
54
|
+
{ name: 'Euler_ancestral', value: 'euler_ancestral' },
|
|
55
|
+
{ name: 'Heun', value: 'heun' },
|
|
56
|
+
{ name: 'Dpm_2', value: 'dpm_2' },
|
|
57
|
+
{ name: 'Dpm_2_ancestral', value: 'dpm_2_ancestral' },
|
|
58
|
+
{ name: 'Lms', value: 'lms' },
|
|
59
|
+
{ name: 'Ddim', value: 'ddim' },
|
|
60
|
+
{ name: 'Uni_pc', value: 'uni_pc' },
|
|
61
|
+
],
|
|
62
|
+
description: 'Sampler type',
|
|
63
|
+
},
|
|
64
|
+
scheduler: {
|
|
65
|
+
type: 'options',
|
|
66
|
+
required: false,
|
|
67
|
+
options: [
|
|
68
|
+
{ name: 'Normal', value: 'normal' },
|
|
69
|
+
{ name: 'Karras', value: 'karras' },
|
|
70
|
+
{ name: 'Exponential', value: 'exponential' },
|
|
71
|
+
{ name: 'Sgm_uniform', value: 'sgm_uniform' },
|
|
72
|
+
{ name: 'Simple', value: 'simple' },
|
|
73
|
+
{ name: 'Ddim_uniform', value: 'ddim_uniform' },
|
|
74
|
+
],
|
|
75
|
+
description: 'Scheduler type',
|
|
76
|
+
},
|
|
77
|
+
denoise: {
|
|
78
|
+
type: 'number',
|
|
79
|
+
required: false,
|
|
80
|
+
isNumber: true,
|
|
81
|
+
description: 'Denoise strength (0-1)',
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
CheckpointLoaderSimple: {
|
|
86
|
+
title: 'Model Loader',
|
|
87
|
+
inputs: {
|
|
88
|
+
ckpt_name: {
|
|
89
|
+
type: 'string',
|
|
90
|
+
required: false,
|
|
91
|
+
description: 'Model filename (e.g., v1-5-pruned-emaonly.ckpt)',
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
LoraLoader: {
|
|
96
|
+
title: 'LoRA Loader',
|
|
97
|
+
inputs: {
|
|
98
|
+
lora_name: {
|
|
99
|
+
type: 'string',
|
|
100
|
+
required: false,
|
|
101
|
+
description: 'LoRA model filename',
|
|
102
|
+
},
|
|
103
|
+
strength_model: {
|
|
104
|
+
type: 'number',
|
|
105
|
+
required: false,
|
|
106
|
+
isNumber: true,
|
|
107
|
+
description: 'LoRA strength (model)',
|
|
108
|
+
},
|
|
109
|
+
strength_clip: {
|
|
110
|
+
type: 'number',
|
|
111
|
+
required: false,
|
|
112
|
+
isNumber: true,
|
|
113
|
+
description: 'LoRA strength (CLIP)',
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
CLIPTextEncode: {
|
|
118
|
+
title: 'Text Encoding',
|
|
119
|
+
inputs: {
|
|
120
|
+
text: {
|
|
121
|
+
type: 'string',
|
|
122
|
+
required: true,
|
|
123
|
+
isText: true,
|
|
124
|
+
description: 'Text prompt',
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
EmptyLatentImage: {
|
|
129
|
+
title: 'Latent Image Size',
|
|
130
|
+
inputs: {
|
|
131
|
+
width: {
|
|
132
|
+
type: 'number',
|
|
133
|
+
required: false,
|
|
134
|
+
isNumber: true,
|
|
135
|
+
description: 'Image width',
|
|
136
|
+
},
|
|
137
|
+
height: {
|
|
138
|
+
type: 'number',
|
|
139
|
+
required: false,
|
|
140
|
+
isNumber: true,
|
|
141
|
+
description: 'Image height',
|
|
142
|
+
},
|
|
143
|
+
batch_size: {
|
|
144
|
+
type: 'number',
|
|
145
|
+
required: false,
|
|
146
|
+
isNumber: true,
|
|
147
|
+
description: 'Batch size',
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
},
|
|
151
|
+
VAEEncode: {
|
|
152
|
+
title: 'VAE Encode',
|
|
153
|
+
inputs: {},
|
|
154
|
+
},
|
|
155
|
+
VAEDecode: {
|
|
156
|
+
title: 'VAE Decode',
|
|
157
|
+
inputs: {},
|
|
158
|
+
},
|
|
159
|
+
SaveImage: {
|
|
160
|
+
title: 'Save Image',
|
|
161
|
+
inputs: {
|
|
162
|
+
filename_prefix: {
|
|
163
|
+
type: 'string',
|
|
164
|
+
required: false,
|
|
165
|
+
description: 'Output filename prefix',
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
};
|
|
170
|
+
/**
|
|
171
|
+
* Parse ComfyUI workflow and extract all configurable input parameters
|
|
172
|
+
*/
|
|
173
|
+
function parseWorkflowInputs(workflowJson) {
|
|
174
|
+
// First validate the workflow
|
|
175
|
+
const validation = (0, validation_1.validateComfyUIWorkflow)(workflowJson);
|
|
176
|
+
if (!validation.valid) {
|
|
177
|
+
return {
|
|
178
|
+
valid: false,
|
|
179
|
+
error: validation.error,
|
|
180
|
+
inputs: [],
|
|
181
|
+
workflow: {},
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
try {
|
|
185
|
+
const workflow = JSON.parse(workflowJson);
|
|
186
|
+
const inputs = [];
|
|
187
|
+
// Iterate through all nodes
|
|
188
|
+
for (const [nodeId, node] of Object.entries(workflow)) {
|
|
189
|
+
const classType = node.class_type;
|
|
190
|
+
const nodeConfig = NODE_TYPE_CONFIGS[classType];
|
|
191
|
+
// If this node type has a configuration definition
|
|
192
|
+
if (nodeConfig) {
|
|
193
|
+
const nodeInputs = nodeConfig.inputs;
|
|
194
|
+
// Iterate through node input parameters
|
|
195
|
+
for (const [paramName, paramConfig] of Object.entries(nodeInputs)) {
|
|
196
|
+
const config = paramConfig;
|
|
197
|
+
// Check if this parameter is defined in the workflow
|
|
198
|
+
const hasInputValue = node.inputs &&
|
|
199
|
+
paramName in node.inputs &&
|
|
200
|
+
!Array.isArray(node.inputs[paramName]); // Exclude node connections [nodeId, slotIndex]
|
|
201
|
+
inputs.push({
|
|
202
|
+
nodeId,
|
|
203
|
+
nodeTitle: `${nodeConfig.title} (${nodeId})`,
|
|
204
|
+
classType,
|
|
205
|
+
parameterName: paramName,
|
|
206
|
+
parameterType: config.type,
|
|
207
|
+
defaultValue: hasInputValue ? node.inputs[paramName] : config.defaultValue,
|
|
208
|
+
required: config.required ?? false,
|
|
209
|
+
description: config.description,
|
|
210
|
+
options: config.options,
|
|
211
|
+
isImage: config.isImage ?? false,
|
|
212
|
+
isText: config.isText ?? false,
|
|
213
|
+
isNumber: config.isNumber ?? false,
|
|
214
|
+
isSeed: config.isSeed ?? false,
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return {
|
|
220
|
+
valid: true,
|
|
221
|
+
inputs,
|
|
222
|
+
workflow,
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
return {
|
|
227
|
+
valid: false,
|
|
228
|
+
error: `Failed to parse workflow: ${error.message}`,
|
|
229
|
+
inputs: [],
|
|
230
|
+
workflow: {},
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Update workflow with user input values
|
|
236
|
+
*/
|
|
237
|
+
function updateWorkflowWithInputs(workflow, inputValues) {
|
|
238
|
+
const updatedWorkflow = JSON.parse(JSON.stringify(workflow)); // Deep copy
|
|
239
|
+
// inputValues format: "nodeId_parameterName" -> value
|
|
240
|
+
for (const [key, value] of Object.entries(inputValues)) {
|
|
241
|
+
const [nodeId, paramName] = key.split('_');
|
|
242
|
+
const node = updatedWorkflow[nodeId];
|
|
243
|
+
if (node && node.inputs !== undefined) {
|
|
244
|
+
// Update if value is not empty
|
|
245
|
+
if (value !== null && value !== undefined && value !== '') {
|
|
246
|
+
node.inputs[paramName] = value;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return updatedWorkflow;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Generate node-friendly parameter name
|
|
254
|
+
*/
|
|
255
|
+
function generateParameterKey(nodeId, paramName) {
|
|
256
|
+
return `${nodeId}_${paramName}`;
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=workflow-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-parser.js","sourceRoot":"","sources":["../../nodes/workflow-parser.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "n8n-nodes-comfyui-all",
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "n8n community nodes for ComfyUI workflow execution with dynamic parameter support",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"n8n-community-node-package",
|
|
7
|
+
"n8n",
|
|
8
|
+
"comfyui",
|
|
9
|
+
"stable-diffusion",
|
|
10
|
+
"image-generation",
|
|
11
|
+
"video-generation",
|
|
12
|
+
"langchain"
|
|
13
|
+
],
|
|
14
|
+
"license": "MIT",
|
|
15
|
+
"author": {
|
|
16
|
+
"name": "wwrs"
|
|
17
|
+
},
|
|
18
|
+
"main": "dist/index.js",
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "tsc",
|
|
21
|
+
"dev": "tsc --watch",
|
|
22
|
+
"format": "prettier nodes --write",
|
|
23
|
+
"lint": "eslint nodes package.json",
|
|
24
|
+
"lintfix": "eslint nodes package.json --fix",
|
|
25
|
+
"test": "jest",
|
|
26
|
+
"prepublishOnly": "npm run build && npm run lint -s"
|
|
27
|
+
},
|
|
28
|
+
"files": [
|
|
29
|
+
"dist"
|
|
30
|
+
],
|
|
31
|
+
"n8n": {
|
|
32
|
+
"n8nNodesApiVersion": 1,
|
|
33
|
+
"credentials": [],
|
|
34
|
+
"nodes": [
|
|
35
|
+
"dist/nodes/ComfyUi/ComfyUi.node.js"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"form-data": "^4.0.0"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/jest": "^29.5.0",
|
|
43
|
+
"@types/node": "^20.0.0",
|
|
44
|
+
"@typescript-eslint/eslint-plugin": "^6.0.0",
|
|
45
|
+
"@typescript-eslint/parser": "^6.0.0",
|
|
46
|
+
"eslint": "^8.50.0",
|
|
47
|
+
"eslint-plugin-n8n-nodes-base": "^1.11.0",
|
|
48
|
+
"jest": "^29.5.0",
|
|
49
|
+
"prettier": "^3.0.0",
|
|
50
|
+
"ts-jest": "^29.1.0",
|
|
51
|
+
"typescript": "^5.2.0"
|
|
52
|
+
},
|
|
53
|
+
"peerDependencies": {
|
|
54
|
+
"n8n-workflow": "*"
|
|
55
|
+
}
|
|
56
|
+
}
|