n8n-nodes-cutpro 0.0.0-stage → 0.1.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Cut.Pro
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,80 @@
1
- # Temporary Holding Version
1
+ # n8n-nodes-cutpro: Seedance, Wan, Kling, Veo, Nano Banana and Gemini TTS in n8n
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ [![npm](https://img.shields.io/npm/v/n8n-nodes-cutpro)](https://www.npmjs.com/package/n8n-nodes-cutpro) [![license](https://img.shields.io/npm/l/n8n-nodes-cutpro)](LICENSE)
4
+
5
+ An [n8n](https://n8n.io) community node for [Cut.Pro](https://cut.pro): generate videos, images and voices in your workflows with Seedance 2.5, Wan 3, Kling O3, Veo 3.1, Gemini Omni Flash, Nano Banana Pro, Seedream 5, Qwen Image, GPT Image, Grok Imagine, MiniMax and Gemini TTS voices, all with one API key. Priced per second of video, per image or per 1,000 characters of voice, in reais and dollars: see the [live price list](https://cut.pro/en/models). Pay with Pix or card; companies get an invoice.
6
+
7
+ - [Installation](#installation)
8
+ - [Credentials](#credentials)
9
+ - [Operations](#operations)
10
+ - [Example workflows](#example-workflows)
11
+ - [Compatibility](#compatibility)
12
+
13
+ ## Installation
14
+
15
+ In n8n, open **Settings > Community Nodes > Install** and enter `n8n-nodes-cutpro`. See the [n8n guide to community nodes](https://docs.n8n.io/integrations/community-nodes/installation/).
16
+
17
+ ## Credentials
18
+
19
+ 1. Create a key at [cut.pro/studio/me/api-keys](https://cut.pro/studio/me/api-keys). Every account starts with free credits.
20
+ 2. In n8n, add a **Cut.Pro API** credential and paste the key. n8n checks it against `GET /workspace`, which charges nothing.
21
+
22
+ The key spends credits: share the credential only with people who may generate.
23
+
24
+ ## Operations
25
+
26
+ ### Generation: Generate
27
+
28
+ Gets the price, starts the generation with that price and, with **Wait for Completion** on (the default), waits until the file is ready.
29
+
30
+ | Field | What it does |
31
+ |---|---|
32
+ | Kind | Image, Video or Voice. Filters the model list. |
33
+ | Model | Loaded from the live catalog, with the lowest price per unit. |
34
+ | Prompt | What to make, in any language. For a voice, the text it reads. |
35
+ | Voice | For a voice: loaded from the chosen model. |
36
+ | Seconds | For a video, such as 5 or 10. |
37
+ | Resolution | Such as `480p`, `720p`, `1080p` or `2k`. Empty uses the default. |
38
+ | Aspect Ratio | `16:9`, `9:16`, `1:1`, `4:5` and more. |
39
+ | Image URLs | Public links: one image is the first frame of a video, two are the first and last frames, more are references (for example Nano Banana Pro with a product and a scene). |
40
+ | Additional Fields | Mode, Seed, Sound (on or off), Webhook URL, Idempotency Key and Agreed Credits (a total from Quote; if the price changed, nothing is charged). |
41
+
42
+ The output is the generation (`id`, `status`, `credits_charged`, `seed`, `output`, `outputs`) plus `url`, the link to the file, valid for 6 hours. Download it with an **HTTP Request** node (response format: File) to get binary data.
43
+
44
+ With **Wait for Completion** off, the node returns right away with `status: processing`; read it later with **Get**, or set a **Webhook URL**.
45
+
46
+ When the model refuses the content (`SAFETY_BLOCKED`, `COPYRIGHT_BLOCKED`, `REAL_FACES_BLOCKED`) or the generation fails, the node fails with that code and the credits come back on their own.
47
+
48
+ ### Generation: Quote
49
+
50
+ The exact price in credits of the same fields, without generating anything. Use it before Generate when a person must approve the cost.
51
+
52
+ ### Generation: Get
53
+
54
+ Reads a generation by id. **Wait for Completion** holds the answer up to 60 seconds while it is still processing.
55
+
56
+ ### Model: Get Many
57
+
58
+ Lists the models with their modes, resolutions, seconds, voices and prices, one item per model. Filter by kind, or only the featured ones.
59
+
60
+ ## Example workflows
61
+
62
+ Ready to import workflows (Seedance 2.5 text to video, Wan 3 image to video, Nano Banana Pro with references, Gemini TTS) are in [getcutpro/examples](https://github.com/getcutpro/examples/tree/main/n8n), including a version that uses only the built-in HTTP Request node.
63
+
64
+ ## Errors
65
+
66
+ API errors carry a stable code, such as `INSUFFICIENT_CREDITS`, `PRICE_CHANGED`, `SECONDS_INVALID` (the allowed values come in the details) or `TOO_MANY_RUNNING`. Every code is explained in the [error catalog](https://cut.pro/docs/en/errors).
67
+
68
+ ## Compatibility
69
+
70
+ Built with `@n8n/node-cli` 0.55 against `n8n-workflow` 2.x. No runtime dependencies.
71
+
72
+ ## Resources
73
+
74
+ - [Cut.Pro generation guide](https://cut.pro/docs/en/generations)
75
+ - [Model catalog and prices](https://cut.pro/en/models)
76
+ - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
77
+
78
+ ## License
79
+
80
+ MIT
@@ -0,0 +1,10 @@
1
+ import type { IAuthenticateGeneric, Icon, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
2
+ export declare class CutProApi implements ICredentialType {
3
+ name: string;
4
+ displayName: string;
5
+ icon: Icon;
6
+ documentationUrl: string;
7
+ properties: INodeProperties[];
8
+ authenticate: IAuthenticateGeneric;
9
+ test: ICredentialTestRequest;
10
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CutProApi = void 0;
4
+ class CutProApi {
5
+ constructor() {
6
+ this.name = 'cutProApi';
7
+ this.displayName = 'Cut.Pro API';
8
+ this.icon = { light: 'file:../nodes/CutPro/cutpro.svg', dark: 'file:../nodes/CutPro/cutpro.dark.svg' };
9
+ this.documentationUrl = 'https://github.com/getcutpro/n8n-nodes-cutpro#credentials';
10
+ this.properties = [
11
+ {
12
+ displayName: 'API Key',
13
+ name: 'apiKey',
14
+ type: 'string',
15
+ typeOptions: { password: true },
16
+ required: true,
17
+ default: '',
18
+ description: 'Create a key at https://cut.pro/studio/me/api-keys',
19
+ },
20
+ ];
21
+ this.authenticate = {
22
+ type: 'generic',
23
+ properties: {
24
+ headers: {
25
+ 'X-Api-Key': '={{$credentials.apiKey}}',
26
+ },
27
+ },
28
+ };
29
+ this.test = {
30
+ request: {
31
+ baseURL: 'https://api.cut.pro/api/v1',
32
+ url: '/workspace',
33
+ },
34
+ };
35
+ }
36
+ }
37
+ exports.CutProApi = CutProApi;
38
+ //# sourceMappingURL=CutProApi.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CutProApi.credentials.js","sourceRoot":"","sources":["../../credentials/CutProApi.credentials.ts"],"names":[],"mappings":";;;AAEA,MAAa,SAAS;IAAtB;QACC,SAAI,GAAG,WAAW,CAAC;QAEnB,gBAAW,GAAG,aAAa,CAAC;QAE5B,SAAI,GAAS,EAAE,KAAK,EAAE,iCAAiC,EAAE,IAAI,EAAE,sCAAsC,EAAE,CAAC;QAExG,qBAAgB,GAAG,2DAA2D,CAAC;QAE/E,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,oDAAoD;aACjE;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,WAAW,EAAE,0BAA0B;iBACvC;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,4BAA4B;gBACrC,GAAG,EAAE,YAAY;aACjB;SACD,CAAC;IACH,CAAC;CAAA;AApCD,8BAoCC"}
@@ -0,0 +1,11 @@
1
+ import type { IExecuteFunctions, ILoadOptionsFunctions, INodeExecutionData, INodePropertyOptions, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class CutPro implements INodeType {
3
+ description: INodeTypeDescription;
4
+ methods: {
5
+ loadOptions: {
6
+ getModels(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
7
+ getVoices(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
8
+ };
9
+ };
10
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
11
+ }
@@ -0,0 +1,424 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CutPro = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const BASE_URL = 'https://api.cut.pro/api/v1';
6
+ const MAX_SERVER_WAIT_SECONDS = 60;
7
+ const HTTP_TIMEOUT_MS = (MAX_SERVER_WAIT_SECONDS + 30) * 1000;
8
+ const GENERATION_KINDS = ['image', 'video', 'speech'];
9
+ const ASPECT_RATIOS = ['21:9', '16:9', '3:2', '4:3', '5:4', '1:1', '4:5', '3:4', '2:3', '9:16'];
10
+ const UNIT_NAMES = { image: 'image', second: 'second', '1k_characters': '1,000 characters' };
11
+ async function cutProRequest(method, path, options = {}) {
12
+ var _a;
13
+ const response = await this.helpers.httpRequestWithAuthentication.call(this, 'cutProApi', {
14
+ method,
15
+ url: `${BASE_URL}${path}`,
16
+ body: options.body,
17
+ qs: options.qs,
18
+ headers: options.headers,
19
+ json: true,
20
+ timeout: HTTP_TIMEOUT_MS,
21
+ returnFullResponse: true,
22
+ ignoreHttpStatusErrors: true,
23
+ });
24
+ const body = (_a = response.body) !== null && _a !== void 0 ? _a : {};
25
+ if (response.statusCode >= 400) {
26
+ const code = typeof body.code === 'string' ? body.code : 'UNEXPECTED_RESPONSE';
27
+ throw new n8n_workflow_1.NodeApiError(this.getNode(), body, {
28
+ httpCode: String(response.statusCode),
29
+ message: `Cut.Pro answered ${code}`,
30
+ description: body.extra ? `Details: ${JSON.stringify(body.extra)}. Codes are explained at https://cut.pro/docs/en/errors` : 'Codes are explained at https://cut.pro/docs/en/errors',
31
+ });
32
+ }
33
+ return body;
34
+ }
35
+ function lowestPrice(model) {
36
+ var _a;
37
+ const pricing = Array.isArray(model.pricing) ? model.pricing : [];
38
+ const lowest = pricing.reduce((best, row) => (!best || Number(row.credits) < Number(best.credits) ? row : best), undefined);
39
+ if (!lowest)
40
+ return '';
41
+ return `From ${Math.ceil(Number(lowest.credits))} credits per ${(_a = UNIT_NAMES[String(lowest.unit)]) !== null && _a !== void 0 ? _a : String(lowest.unit)}`;
42
+ }
43
+ function outputUrl(generation) {
44
+ const output = generation.output;
45
+ return output && typeof output === 'object' && 'url' in output && typeof output.url === 'string' ? output.url : null;
46
+ }
47
+ function generationRequest(itemIndex) {
48
+ const text = (name) => String(this.getNodeParameter(name, itemIndex, ''));
49
+ const kind = text('kind');
50
+ const request = { kind, model: text('model'), prompt: text('prompt') };
51
+ if (kind === 'speech')
52
+ request.voice = text('voice');
53
+ if (kind === 'video')
54
+ request.seconds = Number(this.getNodeParameter('seconds', itemIndex, 5));
55
+ if (kind !== 'speech') {
56
+ const urls = this.getNodeParameter('imageUrls', itemIndex, []);
57
+ const imageUrls = Array.isArray(urls) ? urls.map(String).filter(Boolean) : [];
58
+ if (imageUrls.length)
59
+ request.image_urls = imageUrls;
60
+ if (text('aspectRatio'))
61
+ request.aspect_ratio = text('aspectRatio');
62
+ if (text('resolution'))
63
+ request.resolution = text('resolution');
64
+ }
65
+ if (text('additionalFields.mode'))
66
+ request.mode = text('additionalFields.mode');
67
+ if (kind === 'video' && text('additionalFields.audio') === 'false')
68
+ request.audio = false;
69
+ if (text('additionalFields.seed') !== '')
70
+ request.seed = Number(this.getNodeParameter('additionalFields.seed', itemIndex));
71
+ return request;
72
+ }
73
+ async function generate(itemIndex) {
74
+ const request = generationRequest.call(this, itemIndex);
75
+ const agreed = this.getNodeParameter('additionalFields.credits', itemIndex, '');
76
+ const credits = agreed === '' ? (await cutProRequest.call(this, 'POST', '/generations/quote', { body: request })).credits : Number(agreed);
77
+ const webhookUrl = String(this.getNodeParameter('additionalFields.webhookUrl', itemIndex, ''));
78
+ const idempotencyKey = String(this.getNodeParameter('additionalFields.idempotencyKey', itemIndex, ''));
79
+ const waitForCompletion = Boolean(this.getNodeParameter('waitForCompletion', itemIndex, true));
80
+ let generation = await cutProRequest.call(this, 'POST', '/generations', {
81
+ body: { ...request, credits, ...(webhookUrl ? { webhook_url: webhookUrl } : {}) },
82
+ qs: waitForCompletion ? { wait: MAX_SERVER_WAIT_SECONDS } : {},
83
+ headers: idempotencyKey ? { 'Idempotency-Key': idempotencyKey } : {},
84
+ });
85
+ if (!waitForCompletion)
86
+ return generation;
87
+ const deadline = Date.now() + Number(this.getNodeParameter('timeoutMinutes', itemIndex, 10)) * 60000;
88
+ while (generation.status === 'processing') {
89
+ const seconds = Math.min(MAX_SERVER_WAIT_SECONDS, Math.floor((deadline - Date.now()) / 1000));
90
+ if (seconds <= 0) {
91
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Generation ${String(generation.id)} is still processing`, {
92
+ itemIndex,
93
+ description: 'It keeps running and its credits stay charged. Read it later with the Get Generation operation, or raise Timeout (Minutes).',
94
+ });
95
+ }
96
+ generation = await cutProRequest.call(this, 'GET', `/generations/${encodeURIComponent(String(generation.id))}`, { qs: { wait: seconds } });
97
+ }
98
+ if (generation.status === 'failed') {
99
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Generation failed: ${String(generation.error_code)}`, {
100
+ itemIndex,
101
+ description: 'The credits were given back. SAFETY_BLOCKED, COPYRIGHT_BLOCKED and REAL_FACES_BLOCKED mean the model refused the content: change the prompt or the model. TIMEOUT and MEDIA_FAILED are worth another try.',
102
+ });
103
+ }
104
+ return { ...generation, url: outputUrl(generation) };
105
+ }
106
+ const generationFields = { show: { resource: ['generation'], operation: ['generate', 'quote'] } };
107
+ class CutPro {
108
+ constructor() {
109
+ this.description = {
110
+ displayName: 'Cut.Pro',
111
+ name: 'cutPro',
112
+ icon: { light: 'file:cutpro.svg', dark: 'file:cutpro.dark.svg' },
113
+ group: ['transform'],
114
+ version: [1],
115
+ subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
116
+ description: 'Generate videos, images and voices with Seedance, Wan, Kling, Veo, Nano Banana, Seedream, GPT Image and Gemini TTS',
117
+ defaults: { name: 'Cut.Pro' },
118
+ inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
119
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
120
+ usableAsTool: true,
121
+ credentials: [{ name: 'cutProApi', required: true }],
122
+ properties: [
123
+ {
124
+ displayName: 'Resource',
125
+ name: 'resource',
126
+ type: 'options',
127
+ noDataExpression: true,
128
+ options: [
129
+ { name: 'Generation', value: 'generation' },
130
+ { name: 'Model', value: 'model' },
131
+ ],
132
+ default: 'generation',
133
+ },
134
+ {
135
+ displayName: 'Operation',
136
+ name: 'operation',
137
+ type: 'options',
138
+ noDataExpression: true,
139
+ displayOptions: { show: { resource: ['generation'] } },
140
+ options: [
141
+ { name: 'Generate', value: 'generate', action: 'Generate media', description: 'Get the price, generate and optionally wait for the file' },
142
+ { name: 'Get', value: 'get', action: 'Get a generation', description: 'Read the status and the file link of a generation' },
143
+ { name: 'Quote', value: 'quote', action: 'Get the price of a generation', description: 'Exact price in credits, without generating anything' },
144
+ ],
145
+ default: 'generate',
146
+ },
147
+ {
148
+ displayName: 'Operation',
149
+ name: 'operation',
150
+ type: 'options',
151
+ noDataExpression: true,
152
+ displayOptions: { show: { resource: ['model'] } },
153
+ options: [{ name: 'Get Many', value: 'getAll', action: 'Get many models', description: 'List the models with their options and prices' }],
154
+ default: 'getAll',
155
+ },
156
+ {
157
+ displayName: 'Kind',
158
+ name: 'kind',
159
+ type: 'options',
160
+ displayOptions: generationFields,
161
+ options: [
162
+ { name: 'Image', value: 'image' },
163
+ { name: 'Video', value: 'video' },
164
+ { name: 'Voice', value: 'speech' },
165
+ ],
166
+ default: 'video',
167
+ },
168
+ {
169
+ displayName: 'Model Name or ID',
170
+ name: 'model',
171
+ type: 'options',
172
+ required: true,
173
+ displayOptions: generationFields,
174
+ typeOptions: { loadOptionsMethod: 'getModels', loadOptionsDependsOn: ['kind'] },
175
+ default: '',
176
+ description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
177
+ },
178
+ {
179
+ displayName: 'Prompt',
180
+ name: 'prompt',
181
+ type: 'string',
182
+ required: true,
183
+ typeOptions: { rows: 4 },
184
+ displayOptions: generationFields,
185
+ default: '',
186
+ description: 'What to make, in any language. For a voice, the text it reads word for word.',
187
+ },
188
+ {
189
+ displayName: 'Voice Name or ID',
190
+ name: 'voice',
191
+ type: 'options',
192
+ required: true,
193
+ displayOptions: { show: { ...generationFields.show, kind: ['speech'] } },
194
+ typeOptions: { loadOptionsMethod: 'getVoices', loadOptionsDependsOn: ['model'] },
195
+ default: '',
196
+ description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
197
+ },
198
+ {
199
+ displayName: 'Seconds',
200
+ name: 'seconds',
201
+ type: 'number',
202
+ displayOptions: { show: { ...generationFields.show, kind: ['video'] } },
203
+ typeOptions: { minValue: 1, maxValue: 60 },
204
+ default: 5,
205
+ description: 'Length of the video. The nearest length the model makes is used.',
206
+ },
207
+ {
208
+ displayName: 'Resolution',
209
+ name: 'resolution',
210
+ type: 'string',
211
+ displayOptions: { show: { ...generationFields.show, kind: ['image', 'video'] } },
212
+ default: '',
213
+ placeholder: '720p',
214
+ description: 'One of the model resolutions, such as 480p, 720p, 1080p or 2k. Empty uses the default.',
215
+ },
216
+ {
217
+ displayName: 'Aspect Ratio',
218
+ name: 'aspectRatio',
219
+ type: 'options',
220
+ displayOptions: { show: { ...generationFields.show, kind: ['image', 'video'] } },
221
+ options: [{ name: 'Default (9:16 or the One in the Prompt)', value: '' }, ...ASPECT_RATIOS.map((ratio) => ({ name: ratio, value: ratio }))],
222
+ default: '',
223
+ },
224
+ {
225
+ displayName: 'Image URLs',
226
+ name: 'imageUrls',
227
+ type: 'string',
228
+ typeOptions: { multipleValues: true },
229
+ displayOptions: { show: { ...generationFields.show, kind: ['image', 'video'] } },
230
+ default: [],
231
+ placeholder: 'https://example.com/product.jpg',
232
+ description: 'Public image links: one is the first frame of a video, two are the first and last frames, more are references',
233
+ },
234
+ {
235
+ displayName: 'Wait for Completion',
236
+ name: 'waitForCompletion',
237
+ type: 'boolean',
238
+ displayOptions: { show: { resource: ['generation'], operation: ['generate'] } },
239
+ default: true,
240
+ description: 'Whether to wait until the file is ready and return its link. Otherwise the node returns right away and the generation keeps running.',
241
+ },
242
+ {
243
+ displayName: 'Timeout (Minutes)',
244
+ name: 'timeoutMinutes',
245
+ type: 'number',
246
+ displayOptions: { show: { resource: ['generation'], operation: ['generate'], waitForCompletion: [true] } },
247
+ typeOptions: { minValue: 1, maxValue: 60 },
248
+ default: 10,
249
+ },
250
+ {
251
+ displayName: 'Additional Fields',
252
+ name: 'additionalFields',
253
+ type: 'collection',
254
+ placeholder: 'Add Field',
255
+ displayOptions: generationFields,
256
+ default: {},
257
+ options: [
258
+ {
259
+ displayName: 'Agreed Credits',
260
+ name: 'credits',
261
+ type: 'number',
262
+ default: '',
263
+ description: 'Total from a previous Quote. Empty quotes first and agrees to that total. If the price changed, nothing is charged and the node fails with PRICE_CHANGED.',
264
+ displayOptions: { show: { '/operation': ['generate'] } },
265
+ },
266
+ {
267
+ displayName: 'Idempotency Key',
268
+ name: 'idempotencyKey',
269
+ type: 'string',
270
+ default: '',
271
+ description: 'Any unique string. Repeating the same request with the same key within 24 hours never charges twice.',
272
+ displayOptions: { show: { '/operation': ['generate'] } },
273
+ },
274
+ {
275
+ displayName: 'Mode',
276
+ name: 'mode',
277
+ type: 'options',
278
+ options: [
279
+ { name: 'Frames (First and Last Image)', value: 'frames' },
280
+ { name: 'Image (First Frame)', value: 'image' },
281
+ { name: 'References', value: 'references' },
282
+ { name: 'Text', value: 'text' },
283
+ ],
284
+ default: 'text',
285
+ description: 'Left out, it follows the images sent',
286
+ },
287
+ {
288
+ displayName: 'Seed',
289
+ name: 'seed',
290
+ type: 'number',
291
+ default: '',
292
+ description: 'The same seed with the same request makes the closest result again',
293
+ },
294
+ {
295
+ displayName: 'Sound',
296
+ name: 'audio',
297
+ type: 'options',
298
+ options: [
299
+ { name: 'With Sound', value: 'true' },
300
+ { name: 'Without Sound', value: 'false' },
301
+ ],
302
+ default: 'true',
303
+ description: 'Whether the video has sound. Without sound usually costs less, on models that allow it.',
304
+ },
305
+ {
306
+ displayName: 'Webhook URL',
307
+ name: 'webhookUrl',
308
+ type: 'string',
309
+ default: '',
310
+ description: 'Public https address that gets a signed POST when the generation ends',
311
+ displayOptions: { show: { '/operation': ['generate'] } },
312
+ },
313
+ ],
314
+ },
315
+ {
316
+ displayName: 'Generation ID',
317
+ name: 'generationId',
318
+ type: 'string',
319
+ required: true,
320
+ displayOptions: { show: { resource: ['generation'], operation: ['get'] } },
321
+ default: '',
322
+ },
323
+ {
324
+ displayName: 'Wait for Completion',
325
+ name: 'waitForGeneration',
326
+ type: 'boolean',
327
+ displayOptions: { show: { resource: ['generation'], operation: ['get'] } },
328
+ default: false,
329
+ description: 'Whether to hold the answer up to 60 seconds while the generation is still processing',
330
+ },
331
+ {
332
+ displayName: 'Kind',
333
+ name: 'modelKind',
334
+ type: 'options',
335
+ displayOptions: { show: { resource: ['model'], operation: ['getAll'] } },
336
+ options: [
337
+ { name: 'All', value: '' },
338
+ { name: 'Audio', value: 'audio' },
339
+ { name: 'Avatar', value: 'avatar' },
340
+ { name: 'Image', value: 'image' },
341
+ { name: 'Music', value: 'music' },
342
+ { name: 'Video', value: 'video' },
343
+ { name: 'Voice', value: 'speech' },
344
+ ],
345
+ default: '',
346
+ },
347
+ {
348
+ displayName: 'Featured Only',
349
+ name: 'featuredOnly',
350
+ type: 'boolean',
351
+ displayOptions: { show: { resource: ['model'], operation: ['getAll'] } },
352
+ default: false,
353
+ description: 'Whether to list only the strongest models of each kind',
354
+ },
355
+ ],
356
+ };
357
+ this.methods = {
358
+ loadOptions: {
359
+ async getModels() {
360
+ var _a;
361
+ const kind = String((_a = this.getCurrentNodeParameter('kind')) !== null && _a !== void 0 ? _a : 'video');
362
+ const { models } = await cutProRequest.call(this, 'GET', '/models', { qs: { endpoint: 'generations', kind: GENERATION_KINDS.includes(kind) ? kind : 'video' } });
363
+ const list = Array.isArray(models) ? models : [];
364
+ return list.map((model) => ({ name: String(model.name), value: String(model.id), description: lowestPrice(model) }));
365
+ },
366
+ async getVoices() {
367
+ var _a;
368
+ const model = String((_a = this.getCurrentNodeParameter('model')) !== null && _a !== void 0 ? _a : '');
369
+ if (!model)
370
+ return [];
371
+ const { models } = await cutProRequest.call(this, 'GET', '/models', { qs: { id: model } });
372
+ const [found] = Array.isArray(models) ? models : [];
373
+ const voices = Array.isArray(found === null || found === void 0 ? void 0 : found.voices) ? found.voices : [];
374
+ return voices.map((voice) => ({
375
+ name: String(voice.name),
376
+ value: String(voice.id),
377
+ description: [voice.gender, voice.style, voice.language].filter(Boolean).join(', '),
378
+ }));
379
+ },
380
+ },
381
+ };
382
+ }
383
+ async execute() {
384
+ const items = this.getInputData();
385
+ const results = [];
386
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
387
+ try {
388
+ const resource = this.getNodeParameter('resource', itemIndex);
389
+ const operation = this.getNodeParameter('operation', itemIndex);
390
+ if (resource === 'model') {
391
+ const kind = String(this.getNodeParameter('modelKind', itemIndex, ''));
392
+ const path = this.getNodeParameter('featuredOnly', itemIndex, false) ? '/models/featured' : '/models';
393
+ const { models } = await cutProRequest.call(this, 'GET', path, { qs: { endpoint: 'generations', ...(kind ? { kind } : {}) } });
394
+ const list = Array.isArray(models) ? models : [];
395
+ for (const model of list)
396
+ results.push({ json: model, pairedItem: { item: itemIndex } });
397
+ }
398
+ else if (operation === 'quote') {
399
+ const quote = await cutProRequest.call(this, 'POST', '/generations/quote', { body: generationRequest.call(this, itemIndex) });
400
+ results.push({ json: quote, pairedItem: { item: itemIndex } });
401
+ }
402
+ else if (operation === 'get') {
403
+ const id = String(this.getNodeParameter('generationId', itemIndex));
404
+ const wait = this.getNodeParameter('waitForGeneration', itemIndex, false);
405
+ const generation = await cutProRequest.call(this, 'GET', `/generations/${encodeURIComponent(id)}`, { qs: wait ? { wait: MAX_SERVER_WAIT_SECONDS } : {} });
406
+ results.push({ json: { ...generation, url: outputUrl(generation) }, pairedItem: { item: itemIndex } });
407
+ }
408
+ else {
409
+ results.push({ json: await generate.call(this, itemIndex), pairedItem: { item: itemIndex } });
410
+ }
411
+ }
412
+ catch (error) {
413
+ if (this.continueOnFail()) {
414
+ results.push({ json: { error: error.message }, pairedItem: { item: itemIndex } });
415
+ continue;
416
+ }
417
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, { itemIndex });
418
+ }
419
+ }
420
+ return [results];
421
+ }
422
+ }
423
+ exports.CutPro = CutPro;
424
+ //# sourceMappingURL=CutPro.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CutPro.node.js","sourceRoot":"","sources":["../../../nodes/CutPro/CutPro.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ {
2
+ "node": "n8n-nodes-cutpro.cutPro",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": ["Marketing & Content", "Productivity"],
6
+ "resources": {
7
+ "credentialDocumentation": [
8
+ {
9
+ "url": "https://github.com/getcutpro/n8n-nodes-cutpro?tab=readme-ov-file#credentials"
10
+ }
11
+ ],
12
+ "primaryDocumentation": [
13
+ {
14
+ "url": "https://github.com/getcutpro/n8n-nodes-cutpro?tab=readme-ov-file"
15
+ }
16
+ ]
17
+ }
18
+ }
@@ -0,0 +1,4 @@
1
+ <svg width="684" height="571" viewBox="0 0 684 571" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M379.435 346.827C363.942 331.618 355.258 310.781 355.258 289.055V281.945C355.258 260.219 363.942 239.382 379.435 224.173L545.42 60.8329C546.9 59.4504 548.38 58.0678 549.959 56.784C527.459 22.6148 488.874 0 445.257 0H125.426C56.4465 0 0 56.4877 0 125.517V445.483C0 514.512 56.4465 571 125.426 571H445.158C488.874 571 527.459 548.286 549.86 514.216C548.38 512.932 546.801 511.648 545.321 510.167L379.337 346.925L379.435 346.827Z" fill="#FFFFFF"/>
3
+ <path d="M657.919 59.8454C627.722 31.2065 581.144 30.3177 549.861 56.784C562.887 76.535 570.486 100.137 570.486 125.419V445.384C570.486 470.665 562.887 494.268 549.861 514.019C581.144 540.485 627.722 539.695 657.919 510.957C674.004 495.65 683.182 474.418 683.182 452.198V118.604C683.182 96.3847 674.103 75.1524 657.919 59.8454Z" fill="#FFFFFF"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="684" height="571" viewBox="0 0 684 571" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M379.435 346.827C363.942 331.618 355.258 310.781 355.258 289.055V281.945C355.258 260.219 363.942 239.382 379.435 224.173L545.42 60.8329C546.9 59.4504 548.38 58.0678 549.959 56.784C527.459 22.6148 488.874 0 445.257 0H125.426C56.4465 0 0 56.4877 0 125.517V445.483C0 514.512 56.4465 571 125.426 571H445.158C488.874 571 527.459 548.286 549.86 514.216C548.38 512.932 546.801 511.648 545.321 510.167L379.337 346.925L379.435 346.827Z" fill="#0A0A0A"/>
3
+ <path d="M657.919 59.8454C627.722 31.2065 581.144 30.3177 549.861 56.784C562.887 76.535 570.486 100.137 570.486 125.419V445.384C570.486 470.665 562.887 494.268 549.861 514.019C581.144 540.485 627.722 539.695 657.919 510.957C674.004 495.65 683.182 474.418 683.182 452.198V118.604C683.182 96.3847 674.103 75.1524 657.919 59.8454Z" fill="#0A0A0A"/>
4
+ </svg>
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "n8n-nodes-cutpro",
3
+ "version": "0.1.0",
4
+ "description": "n8n node for Cut.Pro: generate videos, images and voices with Seedance, Wan, Kling, Veo, Nano Banana, Seedream, GPT Image and Gemini TTS using one API key",
5
+ "license": "MIT",
6
+ "homepage": "https://github.com/getcutpro/n8n-nodes-cutpro#readme",
7
+ "keywords": [
8
+ "n8n-community-node-package",
9
+ "n8n",
10
+ "cutpro",
11
+ "seedance",
12
+ "wan",
13
+ "kling",
14
+ "veo",
15
+ "nano-banana",
16
+ "seedream",
17
+ "gemini-tts",
18
+ "video-generation",
19
+ "image-generation",
20
+ "text-to-speech"
21
+ ],
22
+ "author": {
23
+ "name": "Cut.Pro",
24
+ "email": "contact@cut.pro"
25
+ },
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "git+https://github.com/getcutpro/n8n-nodes-cutpro.git"
29
+ },
30
+ "publishConfig": {
31
+ "access": "public",
32
+ "provenance": true
33
+ },
34
+ "scripts": {
35
+ "build": "n8n-node build",
36
+ "build:watch": "tsc --watch",
37
+ "dev": "n8n-node dev",
38
+ "lint": "n8n-node lint",
39
+ "lint:fix": "n8n-node lint --fix",
40
+ "release": "n8n-node release",
41
+ "prepublishOnly": "n8n-node prerelease"
42
+ },
43
+ "files": [
44
+ "dist"
45
+ ],
46
+ "n8n": {
47
+ "n8nNodesApiVersion": 1,
48
+ "strict": true,
49
+ "credentials": [
50
+ "dist/credentials/CutProApi.credentials.js"
51
+ ],
52
+ "nodes": [
53
+ "dist/nodes/CutPro/CutPro.node.js"
54
+ ]
55
+ },
56
+ "devDependencies": {
57
+ "@n8n/node-cli": "^0.55.5",
58
+ "eslint": "9.32.0",
59
+ "prettier": "3.6.2",
60
+ "release-it": "^21.1.0",
61
+ "typescript": "5.9.2"
62
+ },
63
+ "peerDependencies": {
64
+ "n8n-workflow": "*"
65
+ }
66
+ }
package/package.json CHANGED
@@ -1,6 +1,66 @@
1
1
  {
2
- "name": "n8n-nodes-cutpro",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
2
+ "name": "n8n-nodes-cutpro",
3
+ "version": "0.1.0",
4
+ "description": "n8n node for Cut.Pro: generate videos, images and voices with Seedance, Wan, Kling, Veo, Nano Banana, Seedream, GPT Image and Gemini TTS using one API key",
5
+ "license": "MIT",
6
+ "homepage": "https://github.com/getcutpro/n8n-nodes-cutpro#readme",
7
+ "keywords": [
8
+ "n8n-community-node-package",
9
+ "n8n",
10
+ "cutpro",
11
+ "seedance",
12
+ "wan",
13
+ "kling",
14
+ "veo",
15
+ "nano-banana",
16
+ "seedream",
17
+ "gemini-tts",
18
+ "video-generation",
19
+ "image-generation",
20
+ "text-to-speech"
21
+ ],
22
+ "author": {
23
+ "name": "Cut.Pro",
24
+ "email": "contact@cut.pro"
25
+ },
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "git+https://github.com/getcutpro/n8n-nodes-cutpro.git"
29
+ },
30
+ "publishConfig": {
31
+ "access": "public",
32
+ "provenance": true
33
+ },
34
+ "scripts": {
35
+ "build": "n8n-node build",
36
+ "build:watch": "tsc --watch",
37
+ "dev": "n8n-node dev",
38
+ "lint": "n8n-node lint",
39
+ "lint:fix": "n8n-node lint --fix",
40
+ "release": "n8n-node release",
41
+ "prepublishOnly": "n8n-node prerelease"
42
+ },
43
+ "files": [
44
+ "dist"
45
+ ],
46
+ "n8n": {
47
+ "n8nNodesApiVersion": 1,
48
+ "strict": true,
49
+ "credentials": [
50
+ "dist/credentials/CutProApi.credentials.js"
51
+ ],
52
+ "nodes": [
53
+ "dist/nodes/CutPro/CutPro.node.js"
54
+ ]
55
+ },
56
+ "devDependencies": {
57
+ "@n8n/node-cli": "^0.55.5",
58
+ "eslint": "9.32.0",
59
+ "prettier": "3.6.2",
60
+ "release-it": "^21.1.0",
61
+ "typescript": "5.9.2"
62
+ },
63
+ "peerDependencies": {
64
+ "n8n-workflow": "*"
65
+ }
66
+ }