@marcmeese/n8n-nodes-communityapi-ai-client 0.3.8

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 (92) hide show
  1. package/LICENSE.md +19 -0
  2. package/README.md +290 -0
  3. package/dist/config/endpoints.d.ts +84 -0
  4. package/dist/config/endpoints.js +162 -0
  5. package/dist/config/endpoints.js.map +1 -0
  6. package/dist/credentials/CommunityAPIAIServer.credentials.d.ts +9 -0
  7. package/dist/credentials/CommunityAPIAIServer.credentials.js +36 -0
  8. package/dist/credentials/CommunityAPIAIServer.credentials.js.map +1 -0
  9. package/dist/credentials/marcmeeselogo.png +0 -0
  10. package/dist/index.d.ts +19 -0
  11. package/dist/index.js +38 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/nodes/CommunityAPIAIServer/AdvancedVoice/AdvancedVoice.node.d.ts +6 -0
  14. package/dist/nodes/CommunityAPIAIServer/AdvancedVoice/AdvancedVoice.node.js +191 -0
  15. package/dist/nodes/CommunityAPIAIServer/AdvancedVoice/AdvancedVoice.node.js.map +1 -0
  16. package/dist/nodes/CommunityAPIAIServer/AdvancedVoice/marcmeeselogo.png +0 -0
  17. package/dist/nodes/CommunityAPIAIServer/AudioDatasetCreator/AudioDatasetCreator.node.d.ts +6 -0
  18. package/dist/nodes/CommunityAPIAIServer/AudioDatasetCreator/AudioDatasetCreator.node.js +186 -0
  19. package/dist/nodes/CommunityAPIAIServer/AudioDatasetCreator/AudioDatasetCreator.node.js.map +1 -0
  20. package/dist/nodes/CommunityAPIAIServer/AudioDatasetCreator/marcmeeselogo.png +0 -0
  21. package/dist/nodes/CommunityAPIAIServer/ComfyuiImageModifyFaceswapDetailer/ComfyuiImageModifyFaceswapDetailer.node.d.ts +6 -0
  22. package/dist/nodes/CommunityAPIAIServer/ComfyuiImageModifyFaceswapDetailer/ComfyuiImageModifyFaceswapDetailer.node.js +142 -0
  23. package/dist/nodes/CommunityAPIAIServer/ComfyuiImageModifyFaceswapDetailer/ComfyuiImageModifyFaceswapDetailer.node.js.map +1 -0
  24. package/dist/nodes/CommunityAPIAIServer/ComfyuiImageModifyFaceswapDetailer/marcmeeselogo.png +0 -0
  25. package/dist/nodes/CommunityAPIAIServer/ComfyuiImageUpscaleFluxMagnific/ComfyuiImageUpscaleFluxMagnific.node.d.ts +6 -0
  26. package/dist/nodes/CommunityAPIAIServer/ComfyuiImageUpscaleFluxMagnific/ComfyuiImageUpscaleFluxMagnific.node.js +160 -0
  27. package/dist/nodes/CommunityAPIAIServer/ComfyuiImageUpscaleFluxMagnific/ComfyuiImageUpscaleFluxMagnific.node.js.map +1 -0
  28. package/dist/nodes/CommunityAPIAIServer/ComfyuiImageUpscaleFluxMagnific/marcmeeselogo.png +0 -0
  29. package/dist/nodes/CommunityAPIAIServer/ComfyuiImageUpscaleSdxlClarity/ComfyuiImageUpscaleSdxlClarity.node.d.ts +6 -0
  30. package/dist/nodes/CommunityAPIAIServer/ComfyuiImageUpscaleSdxlClarity/ComfyuiImageUpscaleSdxlClarity.node.js +160 -0
  31. package/dist/nodes/CommunityAPIAIServer/ComfyuiImageUpscaleSdxlClarity/ComfyuiImageUpscaleSdxlClarity.node.js.map +1 -0
  32. package/dist/nodes/CommunityAPIAIServer/ComfyuiImageUpscaleSdxlClarity/marcmeeselogo.png +0 -0
  33. package/dist/nodes/CommunityAPIAIServer/ComfyuiImageUpscaleSeedvr2/ComfyuiImageUpscaleSeedvr2.node.d.ts +6 -0
  34. package/dist/nodes/CommunityAPIAIServer/ComfyuiImageUpscaleSeedvr2/ComfyuiImageUpscaleSeedvr2.node.js +170 -0
  35. package/dist/nodes/CommunityAPIAIServer/ComfyuiImageUpscaleSeedvr2/ComfyuiImageUpscaleSeedvr2.node.js.map +1 -0
  36. package/dist/nodes/CommunityAPIAIServer/ComfyuiImageUpscaleSeedvr2/marcmeeselogo.png +0 -0
  37. package/dist/nodes/CommunityAPIAIServer/ComfyuiImageUpscaleStablesr/ComfyuiImageUpscaleStablesr.node.d.ts +6 -0
  38. package/dist/nodes/CommunityAPIAIServer/ComfyuiImageUpscaleStablesr/ComfyuiImageUpscaleStablesr.node.js +170 -0
  39. package/dist/nodes/CommunityAPIAIServer/ComfyuiImageUpscaleStablesr/ComfyuiImageUpscaleStablesr.node.js.map +1 -0
  40. package/dist/nodes/CommunityAPIAIServer/ComfyuiImageUpscaleStablesr/marcmeeselogo.png +0 -0
  41. package/dist/nodes/CommunityAPIAIServer/DownloadJob/DownloadJob.node.d.ts +6 -0
  42. package/dist/nodes/CommunityAPIAIServer/DownloadJob/DownloadJob.node.js +147 -0
  43. package/dist/nodes/CommunityAPIAIServer/DownloadJob/DownloadJob.node.js.map +1 -0
  44. package/dist/nodes/CommunityAPIAIServer/DownloadJob/marcmeeselogo.png +0 -0
  45. package/dist/nodes/CommunityAPIAIServer/ElevenLabsSTS/ElevenLabsSTS.node.d.ts +6 -0
  46. package/dist/nodes/CommunityAPIAIServer/ElevenLabsSTS/ElevenLabsSTS.node.js +266 -0
  47. package/dist/nodes/CommunityAPIAIServer/ElevenLabsSTS/ElevenLabsSTS.node.js.map +1 -0
  48. package/dist/nodes/CommunityAPIAIServer/ElevenLabsSTS/marcmeeselogo.png +0 -0
  49. package/dist/nodes/CommunityAPIAIServer/ElevenLabsTTS/ElevenLabsTTS.node.d.ts +6 -0
  50. package/dist/nodes/CommunityAPIAIServer/ElevenLabsTTS/ElevenLabsTTS.node.js +285 -0
  51. package/dist/nodes/CommunityAPIAIServer/ElevenLabsTTS/ElevenLabsTTS.node.js.map +1 -0
  52. package/dist/nodes/CommunityAPIAIServer/ElevenLabsTTS/marcmeeselogo.png +0 -0
  53. package/dist/nodes/CommunityAPIAIServer/GetJob/GetJob.node.d.ts +6 -0
  54. package/dist/nodes/CommunityAPIAIServer/GetJob/GetJob.node.js +51 -0
  55. package/dist/nodes/CommunityAPIAIServer/GetJob/GetJob.node.js.map +1 -0
  56. package/dist/nodes/CommunityAPIAIServer/GetJob/marcmeeselogo.png +0 -0
  57. package/dist/nodes/CommunityAPIAIServer/GetUserInfo/GetUserInfo.node.d.ts +6 -0
  58. package/dist/nodes/CommunityAPIAIServer/GetUserInfo/GetUserInfo.node.js +41 -0
  59. package/dist/nodes/CommunityAPIAIServer/GetUserInfo/GetUserInfo.node.js.map +1 -0
  60. package/dist/nodes/CommunityAPIAIServer/GetUserInfo/marcmeeselogo.png +0 -0
  61. package/dist/nodes/CommunityAPIAIServer/GptVision/marcmeeselogo.png +0 -0
  62. package/dist/nodes/CommunityAPIAIServer/MultimediaTranscriber/MultimediaTranscriber.node.d.ts +6 -0
  63. package/dist/nodes/CommunityAPIAIServer/MultimediaTranscriber/MultimediaTranscriber.node.js +157 -0
  64. package/dist/nodes/CommunityAPIAIServer/MultimediaTranscriber/MultimediaTranscriber.node.js.map +1 -0
  65. package/dist/nodes/CommunityAPIAIServer/MultimediaTranscriber/marcmeeselogo.png +0 -0
  66. package/dist/nodes/CommunityAPIAIServer/Soundstorm/Soundstorm.node.d.ts +6 -0
  67. package/dist/nodes/CommunityAPIAIServer/Soundstorm/Soundstorm.node.js +191 -0
  68. package/dist/nodes/CommunityAPIAIServer/Soundstorm/Soundstorm.node.js.map +1 -0
  69. package/dist/nodes/CommunityAPIAIServer/Soundstorm/marcmeeselogo.png +0 -0
  70. package/dist/nodes/CommunityAPIAIServer/TopazVideoUpscale/TopazVideoUpscale.node.d.ts +6 -0
  71. package/dist/nodes/CommunityAPIAIServer/TopazVideoUpscale/TopazVideoUpscale.node.js +163 -0
  72. package/dist/nodes/CommunityAPIAIServer/TopazVideoUpscale/TopazVideoUpscale.node.js.map +1 -0
  73. package/dist/nodes/CommunityAPIAIServer/TopazVideoUpscale/marcmeeselogo.png +0 -0
  74. package/dist/nodes/CommunityAPIAIServer/UploadFile/UploadFile.node.d.ts +6 -0
  75. package/dist/nodes/CommunityAPIAIServer/UploadFile/UploadFile.node.js +115 -0
  76. package/dist/nodes/CommunityAPIAIServer/UploadFile/UploadFile.node.js.map +1 -0
  77. package/dist/nodes/CommunityAPIAIServer/UploadFile/marcmeeselogo.png +0 -0
  78. package/dist/nodes/CommunityAPIAIServer/UploadFiles/UploadFiles.node.d.ts +6 -0
  79. package/dist/nodes/CommunityAPIAIServer/UploadFiles/UploadFiles.node.js +132 -0
  80. package/dist/nodes/CommunityAPIAIServer/UploadFiles/UploadFiles.node.js.map +1 -0
  81. package/dist/nodes/CommunityAPIAIServer/UploadFiles/marcmeeselogo.png +0 -0
  82. package/dist/nodes/CommunityAPIAIServer/WebpageScraper/WebpageScraper.node.d.ts +6 -0
  83. package/dist/nodes/CommunityAPIAIServer/WebpageScraper/WebpageScraper.node.js +147 -0
  84. package/dist/nodes/CommunityAPIAIServer/WebpageScraper/WebpageScraper.node.js.map +1 -0
  85. package/dist/nodes/CommunityAPIAIServer/WebpageScraper/marcmeeselogo.png +0 -0
  86. package/dist/utils/fileUploads.d.ts +37 -0
  87. package/dist/utils/fileUploads.js +166 -0
  88. package/dist/utils/fileUploads.js.map +1 -0
  89. package/dist/utils/inputProcessing.d.ts +29 -0
  90. package/dist/utils/inputProcessing.js +147 -0
  91. package/dist/utils/inputProcessing.js.map +1 -0
  92. package/package.json +69 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mGAAsF;AAA7E,wIAAA,oBAAoB,OAAA;AAC7B,4FAA0E;AAC1E,kFAAgE;AAChE,0FAAwE;AACxE,4FAA0E;AAC1E,4FAA0E;AAC1E,gHAA8F;AAC9F,4GAA0F;AAC1F,oIAAkH;AAClH,kIAAgH;AAChH,4HAA0G;AAC1G,0HAAwG;AACxG,0IAAwH;AACxH,wGAAsF;AACtF,gGAA8E;AAC9E,0FAAwE;AACxE,gGAA8E;AAC9E,gGAA8E;AAC9E,kGAAgF"}
@@ -0,0 +1,6 @@
1
+ import type { IExecuteFunctions } from 'n8n-workflow';
2
+ import { INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
3
+ export declare class AdvancedVoice implements INodeType {
4
+ description: INodeTypeDescription;
5
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
6
+ }
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AdvancedVoice = void 0;
4
+ const endpoints_1 = require("../../../config/endpoints");
5
+ class AdvancedVoice {
6
+ constructor() {
7
+ this.description = {
8
+ displayName: '(AI) Advanced Voice',
9
+ name: 'aiToolsAdvancedVoice',
10
+ icon: 'file:marcmeeselogo.png',
11
+ group: ['transform'],
12
+ version: 1,
13
+ description: 'Create advanced voice synthesis using AI models',
14
+ defaults: { name: 'AdvancedVoice' },
15
+ inputs: ['main'],
16
+ outputs: ['main'],
17
+ credentials: [
18
+ {
19
+ name: 'CommunityAPIAIServer',
20
+ required: true,
21
+ },
22
+ ],
23
+ properties: [
24
+ {
25
+ displayName: 'Scripts',
26
+ name: 'scripts',
27
+ type: 'string',
28
+ typeOptions: {
29
+ multipleValues: true,
30
+ },
31
+ required: true,
32
+ default: [],
33
+ description: "Scripts to be used for voice synthesis",
34
+ },
35
+ {
36
+ displayName: 'Instruction',
37
+ name: 'instruction',
38
+ type: 'string',
39
+ required: true,
40
+ default: 'Speak in a happy and energetic tone.',
41
+ description: 'Instruction on how to speak for the voice synthesis',
42
+ },
43
+ {
44
+ displayName: 'Language',
45
+ name: 'language',
46
+ type: 'options',
47
+ required: true,
48
+ options: [
49
+ { name: 'German', value: 'german' },
50
+ { name: 'English', value: 'english' },
51
+ ],
52
+ default: 'german',
53
+ description: 'The language in which the scripts are written.',
54
+ },
55
+ {
56
+ displayName: 'Gender',
57
+ name: 'gender',
58
+ type: 'options',
59
+ required: true,
60
+ options: [
61
+ { name: 'Male', value: 'male' },
62
+ { name: 'Female', value: 'female' }
63
+ ],
64
+ default: 'male',
65
+ description: 'The gender of the voice to be used for synthesis.',
66
+ },
67
+ {
68
+ displayName: 'Target format',
69
+ name: 'target_format',
70
+ type: 'options',
71
+ required: true,
72
+ options: [
73
+ { name: 'mp3', value: 'mp3' },
74
+ { name: 'wav', value: 'wav' },
75
+ ],
76
+ default: 'mp3',
77
+ description: 'Target audio format for the output files.',
78
+ },
79
+ {
80
+ displayName: 'Speed',
81
+ name: 'speed',
82
+ type: 'number',
83
+ required: false,
84
+ default: 1.0,
85
+ description: 'Speed of the voice synthesis (must be > 0)',
86
+ typeOptions: {
87
+ minValue: 0.1,
88
+ maxValue: 8.0,
89
+ numberPrecision: 2,
90
+ },
91
+ },
92
+ {
93
+ displayName: 'Callback URL',
94
+ name: 'callback_url',
95
+ type: 'string',
96
+ required: false,
97
+ default: '',
98
+ description: 'Eine optionale URL, die aufgerufen wird, wenn der Job abgeschlossen ist',
99
+ typeOptions: {
100
+ alwaysOpenEditWindow: true,
101
+ },
102
+ },
103
+ {
104
+ displayName: 'Callback Data',
105
+ name: 'callback_payload',
106
+ type: 'fixedCollection',
107
+ placeholder: 'Add Callback Data',
108
+ description: 'Custom data that will be returned with the job completion notification',
109
+ default: {},
110
+ typeOptions: {
111
+ multipleValues: true,
112
+ },
113
+ options: [
114
+ {
115
+ displayName: 'Parameters',
116
+ name: 'parameters',
117
+ values: [
118
+ {
119
+ displayName: 'Key',
120
+ name: 'key',
121
+ type: 'string',
122
+ default: '',
123
+ description: 'Parameter key',
124
+ required: true,
125
+ },
126
+ {
127
+ displayName: 'Value',
128
+ name: 'value',
129
+ type: 'string',
130
+ default: '',
131
+ description: 'Parameter value (can be mapped from previous nodes)',
132
+ required: true,
133
+ },
134
+ ],
135
+ }
136
+ ]
137
+ },
138
+ ],
139
+ };
140
+ }
141
+ async execute() {
142
+ const items = this.getInputData();
143
+ const returnData = [];
144
+ for (let i = 0; i < items.length; i++) {
145
+ const scripts = this.getNodeParameter('scripts', i);
146
+ const instruction = this.getNodeParameter('instruction', i);
147
+ const language = this.getNodeParameter('language', i);
148
+ const gender = this.getNodeParameter('gender', i);
149
+ const targetFormat = this.getNodeParameter('target_format', i);
150
+ const speed = this.getNodeParameter('speed', i);
151
+ const callbackUrl = this.getNodeParameter('callback_url', i);
152
+ const callbackPayloadRaw = this.getNodeParameter('callback_payload', i);
153
+ // Job erstellen mit file_id
154
+ const formData = {
155
+ scripts: scripts,
156
+ instruction: instruction,
157
+ language: language,
158
+ gender: gender,
159
+ target_format: targetFormat,
160
+ speed: speed
161
+ };
162
+ if (callbackUrl) {
163
+ formData['callback_url'] = callbackUrl;
164
+ }
165
+ // Callback Payload von fixedCollection in JSON umwandeln
166
+ if (callbackPayloadRaw && callbackPayloadRaw.parameters) {
167
+ const callbackPayload = {};
168
+ // Jedes Key-Value Paar aus der fixedCollection in ein Objekt umwandeln
169
+ for (const param of callbackPayloadRaw.parameters) {
170
+ if (param.key && param.value !== undefined) {
171
+ callbackPayload[param.key] = param.value;
172
+ }
173
+ }
174
+ // Nur hinzufügen wenn es tatsächlich Daten gibt
175
+ if (Object.keys(callbackPayload).length > 0) {
176
+ formData['callback_payload'] = JSON.stringify(callbackPayload);
177
+ }
178
+ }
179
+ const response = await this.helpers.requestWithAuthentication.call(this, 'CommunityAPIAIServer', {
180
+ method: 'POST',
181
+ url: endpoints_1.EndpointBuilder.getAdvancedVoiceUrl(),
182
+ formData: formData,
183
+ json: true
184
+ });
185
+ returnData.push({ json: response });
186
+ }
187
+ return this.prepareOutputData(returnData);
188
+ }
189
+ }
190
+ exports.AdvancedVoice = AdvancedVoice;
191
+ //# sourceMappingURL=AdvancedVoice.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdvancedVoice.node.js","sourceRoot":"","sources":["../../../../src/nodes/CommunityAPIAIServer/AdvancedVoice/AdvancedVoice.node.ts"],"names":[],"mappings":";;;AAOA,yDAA+E;AAE/E,MAAa,aAAa;IAA1B;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,qBAAqB;YAClC,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,iDAAiD;YAC9D,QAAQ,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;YACnC,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,sBAAsB;oBAC5B,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,UAAU,EAAE;gBACX;oBACC,WAAW,EAAE,SAAS;oBACtB,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;wBACZ,cAAc,EAAE,IAAI;qBACpB;oBACD,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,wCAAwC;iBACrD;gBACD;oBACC,WAAW,EAAE,aAAa;oBAC1B,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,sCAAsC;oBAC/C,WAAW,EAAE,qDAAqD;iBAClE;gBACD;oBACC,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE;wBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;wBACnC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;qBACrC;oBACD,OAAO,EAAE,QAAQ;oBACjB,WAAW,EAAE,gDAAgD;iBAC7D;gBACD;oBACC,WAAW,EAAE,QAAQ;oBACrB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE;wBACR,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;wBAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;qBACnC;oBACD,OAAO,EAAE,MAAM;oBACf,WAAW,EAAE,mDAAmD;iBAChE;gBACD;oBACC,WAAW,EAAE,eAAe;oBAC5B,IAAI,EAAE,eAAe;oBACrB,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE;wBACR,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;wBAC7B,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;qBAC7B;oBACD,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,2CAA2C;iBACxD;gBACD;oBACC,WAAW,EAAE,OAAO;oBACpB,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,GAAG;oBACZ,WAAW,EAAE,4CAA4C;oBACzD,WAAW,EAAE;wBACZ,QAAQ,EAAE,GAAG;wBACb,QAAQ,EAAE,GAAG;wBACb,eAAe,EAAE,CAAC;qBAClB;iBACD;gBACD;oBACC,WAAW,EAAE,cAAc;oBAC3B,IAAI,EAAE,cAAc;oBACpB,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,yEAAyE;oBACtF,WAAW,EAAE;wBACZ,oBAAoB,EAAE,IAAI;qBAC1B;iBACD;gBACD;oBACC,WAAW,EAAE,eAAe;oBAC5B,IAAI,EAAE,kBAAkB;oBACxB,IAAI,EAAE,iBAAiB;oBACvB,WAAW,EAAE,mBAAmB;oBAChC,WAAW,EAAE,wEAAwE;oBACrF,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE;wBACZ,cAAc,EAAE,IAAI;qBACpB;oBACD,OAAO,EAAE;wBACR;4BACC,WAAW,EAAE,YAAY;4BACzB,IAAI,EAAE,YAAY;4BAClB,MAAM,EAAE;gCACP;oCACC,WAAW,EAAE,KAAK;oCAClB,IAAI,EAAE,KAAK;oCACX,IAAI,EAAE,QAAQ;oCACd,OAAO,EAAE,EAAE;oCACX,WAAW,EAAE,eAAe;oCAC5B,QAAQ,EAAE,IAAI;iCACd;gCACD;oCACC,WAAW,EAAE,OAAO;oCACpB,IAAI,EAAE,OAAO;oCACb,IAAI,EAAE,QAAQ;oCACd,OAAO,EAAE,EAAE;oCACX,WAAW,EAAE,qDAAqD;oCAClE,QAAQ,EAAE,IAAI;iCACd;6BACD;yBACD;qBAAC;iBACH;aACD;SACD,CAAC;IA+DH,CAAC;IA7DA,KAAK,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,UAAU,GAAyB,EAAE,CAAC;QAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAa,CAAC;YAChE,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAW,CAAC;YACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAW,CAAC;YAChE,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAW,CAAC;YAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,CAAW,CAAC;YACzE,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAW,CAAC;YAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAW,CAAC;YACvE,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,CAAQ,CAAC;YAE/E,4BAA4B;YAC5B,MAAM,QAAQ,GAAgB;gBAC7B,OAAO,EAAE,OAAO;gBAChB,WAAW,EAAE,WAAW;gBACxB,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,MAAM;gBACd,aAAa,EAAE,YAAY;gBAC3B,KAAK,EAAE,KAAK;aACZ,CAAC;YAEF,IAAI,WAAW,EAAE,CAAC;gBACjB,QAAQ,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;YACxC,CAAC;YAED,yDAAyD;YACzD,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,UAAU,EAAE,CAAC;gBACzD,MAAM,eAAe,GAAgB,EAAE,CAAC;gBAExC,uEAAuE;gBACvE,KAAK,MAAM,KAAK,IAAI,kBAAkB,CAAC,UAAU,EAAE,CAAC;oBACnD,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;wBAC5C,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;oBAC1C,CAAC;gBACF,CAAC;gBAED,gDAAgD;gBAChD,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7C,QAAQ,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;gBAChE,CAAC;YACF,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,CACjE,IAAI,EACJ,sBAAsB,EACtB;gBACC,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,2BAAe,CAAC,mBAAmB,EAAE;gBAC1C,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,IAAI;aACV,CACD,CAAC;YAEF,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAuB,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;CACD;AAnMD,sCAmMC"}
@@ -0,0 +1,6 @@
1
+ import type { IExecuteFunctions } from 'n8n-workflow';
2
+ import { INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
3
+ export declare class AudioDatasetCreator implements INodeType {
4
+ description: INodeTypeDescription;
5
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
6
+ }
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AudioDatasetCreator = void 0;
4
+ const endpoints_1 = require("../../../config/endpoints");
5
+ const inputProcessing_1 = require("../../../utils/inputProcessing");
6
+ class AudioDatasetCreator {
7
+ constructor() {
8
+ this.description = {
9
+ displayName: '(AI) Audio-Dataset-Creator',
10
+ name: 'aiToolsAudioDatasetCreator',
11
+ icon: 'file:marcmeeselogo.png',
12
+ group: ['transform'],
13
+ version: 1,
14
+ description: 'Erstellt TTS-Training-Datasets aus Audio- und Video-Dateien',
15
+ defaults: { name: 'AudioDatasetCreator' },
16
+ inputs: ['main'],
17
+ outputs: ['main'],
18
+ credentials: [
19
+ {
20
+ name: 'CommunityAPIAIServer',
21
+ required: true,
22
+ },
23
+ ],
24
+ properties: [
25
+ {
26
+ displayName: 'Input Media Paths',
27
+ name: 'input_multimedia',
28
+ type: 'string',
29
+ typeOptions: {
30
+ multipleValues: true,
31
+ },
32
+ required: true,
33
+ default: [],
34
+ description: (0, inputProcessing_1.getInputDescription)('Audio- oder Video', true),
35
+ placeholder: 'UUID, https://example.com/podcast.mp3, oder /path/to/video.mp4',
36
+ },
37
+ {
38
+ displayName: 'Use WhisperX',
39
+ name: 'use_x',
40
+ type: 'boolean',
41
+ required: true,
42
+ default: true,
43
+ description: 'Ob WhisperX (erweiterte Engine) für die Transkription verwendet werden soll',
44
+ },
45
+ {
46
+ displayName: 'Minimum Segment Length',
47
+ name: 'min_segment_length',
48
+ type: 'number',
49
+ required: true,
50
+ default: 2.0,
51
+ description: 'Minimale Länge der Audio-Segmente in Sekunden',
52
+ typeOptions: {
53
+ minValue: 0.1,
54
+ maxValue: 30,
55
+ numberPrecision: 1,
56
+ },
57
+ },
58
+ {
59
+ displayName: 'Maximum Segment Length',
60
+ name: 'max_segment_length',
61
+ type: 'number',
62
+ required: true,
63
+ default: 10.0,
64
+ description: 'Maximale Länge der Audio-Segmente in Sekunden',
65
+ typeOptions: {
66
+ minValue: 1,
67
+ maxValue: 30,
68
+ numberPrecision: 1,
69
+ },
70
+ },
71
+ {
72
+ displayName: 'Minimum Text Length',
73
+ name: 'min_text_length',
74
+ type: 'number',
75
+ required: true,
76
+ default: 10,
77
+ description: 'Minimale Textlänge in Zeichen pro Segment',
78
+ typeOptions: {
79
+ minValue: 1,
80
+ maxValue: 500,
81
+ },
82
+ },
83
+ {
84
+ displayName: 'Callback URL',
85
+ name: 'callback_url',
86
+ type: 'string',
87
+ required: false,
88
+ default: '',
89
+ description: 'Eine optionale URL, die aufgerufen wird, wenn der Job abgeschlossen ist',
90
+ typeOptions: {
91
+ alwaysOpenEditWindow: true,
92
+ },
93
+ },
94
+ {
95
+ displayName: 'Callback Data',
96
+ name: 'callback_payload',
97
+ type: 'fixedCollection',
98
+ placeholder: 'Add Callback Data',
99
+ description: 'Custom data that will be returned with the job completion notification',
100
+ default: {},
101
+ typeOptions: {
102
+ multipleValues: true,
103
+ },
104
+ options: [
105
+ {
106
+ displayName: 'Parameters',
107
+ name: 'parameters',
108
+ values: [
109
+ {
110
+ displayName: 'Key',
111
+ name: 'key',
112
+ type: 'string',
113
+ default: '',
114
+ description: 'Parameter key',
115
+ required: true,
116
+ },
117
+ {
118
+ displayName: 'Value',
119
+ name: 'value',
120
+ type: 'string',
121
+ default: '',
122
+ description: 'Parameter value (can be mapped from previous nodes)',
123
+ required: true,
124
+ },
125
+ ],
126
+ }
127
+ ]
128
+ },
129
+ ],
130
+ };
131
+ }
132
+ async execute() {
133
+ const items = this.getInputData();
134
+ const returnData = [];
135
+ for (let i = 0; i < items.length; i++) {
136
+ const inputMediaPaths = this.getNodeParameter('input_multimedia', i);
137
+ const useX = this.getNodeParameter('use_x', i);
138
+ const minSegmentLength = this.getNodeParameter('min_segment_length', i);
139
+ const maxSegmentLength = this.getNodeParameter('max_segment_length', i);
140
+ const minTextLength = this.getNodeParameter('min_text_length', i);
141
+ const callbackUrl = this.getNodeParameter('callback_url', i);
142
+ const callbackPayloadRaw = this.getNodeParameter('callback_payload', i);
143
+ // Definiere gültige Dateierweiterungen für Multimedia
144
+ const validExtensions = [...endpoints_1.SUPPORTED_FORMATS.AUDIO, ...endpoints_1.SUPPORTED_FORMATS.VIDEO];
145
+ // Eingabe intelligent verarbeiten mit inputProcessing Utils
146
+ const processedInputMediaPaths = await (0, inputProcessing_1.processMediaInputs)(this, inputMediaPaths, validExtensions);
147
+ // Debug-Information loggen
148
+ (0, inputProcessing_1.logInputsProcessing)(inputMediaPaths, processedInputMediaPaths);
149
+ // Job erstellen
150
+ const formData = {
151
+ input_multimedia: processedInputMediaPaths,
152
+ use_x: useX,
153
+ min_segment_length: minSegmentLength,
154
+ max_segment_length: maxSegmentLength,
155
+ min_text_length: minTextLength
156
+ };
157
+ if (callbackUrl) {
158
+ formData['callback_url'] = callbackUrl;
159
+ }
160
+ // Callback Payload von fixedCollection in JSON umwandeln
161
+ if (callbackPayloadRaw && callbackPayloadRaw.parameters) {
162
+ const callbackPayload = {};
163
+ // Jedes Key-Value Paar aus der fixedCollection in ein Objekt umwandeln
164
+ for (const param of callbackPayloadRaw.parameters) {
165
+ if (param.key && param.value !== undefined) {
166
+ callbackPayload[param.key] = param.value;
167
+ }
168
+ }
169
+ // Nur hinzufügen wenn es tatsächlich Daten gibt
170
+ if (Object.keys(callbackPayload).length > 0) {
171
+ formData['callback_payload'] = JSON.stringify(callbackPayload);
172
+ }
173
+ }
174
+ const response = await this.helpers.requestWithAuthentication.call(this, 'CommunityAPIAIServer', {
175
+ method: 'POST',
176
+ url: endpoints_1.EndpointBuilder.getAudioDatasetCreatorUrl(),
177
+ form: formData,
178
+ json: true
179
+ });
180
+ returnData.push({ json: response });
181
+ }
182
+ return this.prepareOutputData(returnData);
183
+ }
184
+ }
185
+ exports.AudioDatasetCreator = AudioDatasetCreator;
186
+ //# sourceMappingURL=AudioDatasetCreator.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioDatasetCreator.node.js","sourceRoot":"","sources":["../../../../src/nodes/CommunityAPIAIServer/AudioDatasetCreator/AudioDatasetCreator.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { IExecuteFunctions } from 'n8n-workflow';
2
+ import { INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
3
+ export declare class ComfyuiImageModifyFaceswapDetailer implements INodeType {
4
+ description: INodeTypeDescription;
5
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
6
+ }
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ComfyuiImageModifyFaceswapDetailer = void 0;
4
+ const endpoints_1 = require("../../../config/endpoints");
5
+ const inputProcessing_1 = require("../../../utils/inputProcessing");
6
+ class ComfyuiImageModifyFaceswapDetailer {
7
+ constructor() {
8
+ this.description = {
9
+ displayName: '(AI) Faceswap Detailer',
10
+ name: 'aiToolsComfyuiImageModifyFaceswapDetailer',
11
+ icon: 'file:marcmeeselogo.png',
12
+ group: ['transform'],
13
+ version: 1,
14
+ description: 'Modify images using ComfyUI Faceswap Detailer',
15
+ defaults: { name: 'ComfyuiImageModifyFaceswapDetailer' },
16
+ inputs: ['main'],
17
+ outputs: ['main'],
18
+ credentials: [
19
+ {
20
+ name: 'CommunityAPIAIServer',
21
+ required: true,
22
+ },
23
+ ],
24
+ properties: [
25
+ {
26
+ displayName: 'Input Image Paths',
27
+ name: 'input_images',
28
+ type: 'string',
29
+ typeOptions: {
30
+ multipleValues: true,
31
+ },
32
+ required: true,
33
+ default: [],
34
+ description: (0, inputProcessing_1.getInputDescription)('Bild', true),
35
+ },
36
+ {
37
+ displayName: 'Input Face Image',
38
+ name: 'input_face_image',
39
+ type: 'string',
40
+ required: true,
41
+ default: "",
42
+ description: (0, inputProcessing_1.getInputDescription)('Gesichts-Bild', false),
43
+ },
44
+ {
45
+ displayName: 'Callback URL',
46
+ name: 'callback_url',
47
+ type: 'string',
48
+ required: false,
49
+ default: '',
50
+ description: 'Eine optionale URL, die aufgerufen wird, wenn der Job abgeschlossen ist',
51
+ typeOptions: {
52
+ alwaysOpenEditWindow: true,
53
+ },
54
+ },
55
+ {
56
+ displayName: 'Callback Data',
57
+ name: 'callback_payload',
58
+ type: 'fixedCollection',
59
+ placeholder: 'Add Callback Data',
60
+ description: 'Custom data that will be returned with the job completion notification',
61
+ default: {},
62
+ typeOptions: {
63
+ multipleValues: true,
64
+ },
65
+ options: [
66
+ {
67
+ displayName: 'Parameters',
68
+ name: 'parameters',
69
+ values: [
70
+ {
71
+ displayName: 'Key',
72
+ name: 'key',
73
+ type: 'string',
74
+ default: '',
75
+ description: 'Parameter key',
76
+ required: true,
77
+ },
78
+ {
79
+ displayName: 'Value',
80
+ name: 'value',
81
+ type: 'string',
82
+ default: '',
83
+ description: 'Parameter value (can be mapped from previous nodes)',
84
+ required: true,
85
+ },
86
+ ],
87
+ }
88
+ ]
89
+ },
90
+ ],
91
+ };
92
+ }
93
+ async execute() {
94
+ const items = this.getInputData();
95
+ const returnData = [];
96
+ for (let i = 0; i < items.length; i++) {
97
+ const inputImagePaths = this.getNodeParameter('input_images', i);
98
+ const inputFaceImage = this.getNodeParameter('input_face_image', i);
99
+ const callbackUrl = this.getNodeParameter('callback_url', i);
100
+ const callbackPayloadRaw = this.getNodeParameter('callback_payload', i);
101
+ const validExtensions = [...endpoints_1.SUPPORTED_FORMATS.IMAGE];
102
+ // Eingabe intelligent verarbeiten mit inputProcessing Utils
103
+ const processedInputImagePaths = await (0, inputProcessing_1.processMediaInputs)(this, inputImagePaths, validExtensions);
104
+ const processedInputFaceImage = await (0, inputProcessing_1.processMediaInput)(this, inputFaceImage, validExtensions);
105
+ // Debug-Informationen loggen
106
+ (0, inputProcessing_1.logInputsProcessing)(inputImagePaths, processedInputImagePaths);
107
+ (0, inputProcessing_1.logInputProcessing)(inputFaceImage, processedInputFaceImage);
108
+ // Job erstellen
109
+ const formData = {
110
+ input_images: processedInputImagePaths,
111
+ input_face_image: processedInputFaceImage,
112
+ };
113
+ if (callbackUrl) {
114
+ formData['callback_url'] = callbackUrl;
115
+ }
116
+ // Callback Payload von fixedCollection in JSON umwandeln
117
+ if (callbackPayloadRaw && callbackPayloadRaw.parameters) {
118
+ const callbackPayload = {};
119
+ // Jedes Key-Value Paar aus der fixedCollection in ein Objekt umwandeln
120
+ for (const param of callbackPayloadRaw.parameters) {
121
+ if (param.key && param.value !== undefined) {
122
+ callbackPayload[param.key] = param.value;
123
+ }
124
+ }
125
+ // Nur hinzufügen wenn es tatsächlich Daten gibt
126
+ if (Object.keys(callbackPayload).length > 0) {
127
+ formData['callback_payload'] = JSON.stringify(callbackPayload);
128
+ }
129
+ }
130
+ const response = await this.helpers.requestWithAuthentication.call(this, 'CommunityAPIAIServer', {
131
+ method: 'POST',
132
+ url: endpoints_1.EndpointBuilder.getComfyuiImageModifyFaceswapDetailerUrl(),
133
+ form: formData,
134
+ json: true
135
+ });
136
+ returnData.push({ json: response });
137
+ }
138
+ return this.prepareOutputData(returnData);
139
+ }
140
+ }
141
+ exports.ComfyuiImageModifyFaceswapDetailer = ComfyuiImageModifyFaceswapDetailer;
142
+ //# sourceMappingURL=ComfyuiImageModifyFaceswapDetailer.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComfyuiImageModifyFaceswapDetailer.node.js","sourceRoot":"","sources":["../../../../src/nodes/CommunityAPIAIServer/ComfyuiImageModifyFaceswapDetailer/ComfyuiImageModifyFaceswapDetailer.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { IExecuteFunctions } from 'n8n-workflow';
2
+ import { INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
3
+ export declare class ComfyuiImageUpscaleFluxMagnific implements INodeType {
4
+ description: INodeTypeDescription;
5
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
6
+ }