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.
Files changed (38) hide show
  1. package/README.md +882 -0
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +8 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/nodes/ComfyUi/ComfyUi.node.d.ts +248 -0
  7. package/dist/nodes/ComfyUi/ComfyUi.node.d.ts.map +1 -0
  8. package/dist/nodes/ComfyUi/ComfyUi.node.js +484 -0
  9. package/dist/nodes/ComfyUi/ComfyUi.node.js.map +1 -0
  10. package/dist/nodes/ComfyUiClient.d.ts +63 -0
  11. package/dist/nodes/ComfyUiClient.d.ts.map +1 -0
  12. package/dist/nodes/ComfyUiClient.js +281 -0
  13. package/dist/nodes/ComfyUiClient.js.map +1 -0
  14. package/dist/nodes/constants.d.ts +49 -0
  15. package/dist/nodes/constants.d.ts.map +1 -0
  16. package/dist/nodes/constants.js +86 -0
  17. package/dist/nodes/constants.js.map +1 -0
  18. package/dist/nodes/logger.d.ts +29 -0
  19. package/dist/nodes/logger.d.ts.map +1 -0
  20. package/dist/nodes/logger.js +59 -0
  21. package/dist/nodes/logger.js.map +1 -0
  22. package/dist/nodes/types.d.ts +71 -0
  23. package/dist/nodes/types.d.ts.map +1 -0
  24. package/dist/nodes/types.js +6 -0
  25. package/dist/nodes/types.js.map +1 -0
  26. package/dist/nodes/validation.d.ts +23 -0
  27. package/dist/nodes/validation.d.ts.map +1 -0
  28. package/dist/nodes/validation.js +175 -0
  29. package/dist/nodes/validation.js.map +1 -0
  30. package/dist/nodes/workflow-builder.d.ts +22 -0
  31. package/dist/nodes/workflow-builder.d.ts.map +1 -0
  32. package/dist/nodes/workflow-builder.js +240 -0
  33. package/dist/nodes/workflow-builder.js.map +1 -0
  34. package/dist/nodes/workflow-parser.d.ts +51 -0
  35. package/dist/nodes/workflow-parser.d.ts.map +1 -0
  36. package/dist/nodes/workflow-parser.js +258 -0
  37. package/dist/nodes/workflow-parser.js.map +1 -0
  38. 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
+ }