@apergrex/n8n-nodes-franklab 0.1.2 → 0.2.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 +144 -7
- package/dist/nodes/Alibaba/Alibaba.node.json +10 -0
- package/dist/nodes/Alibaba/FrankLabAlibaba.node.d.ts +5 -0
- package/dist/nodes/Alibaba/FrankLabAlibaba.node.js +167 -0
- package/dist/nodes/Alibaba/FrankLabAlibaba.node.js.map +1 -0
- package/dist/nodes/Alibaba/alibaba.svg +4 -0
- package/dist/nodes/Aries/Aries.node.json +10 -0
- package/dist/nodes/Aries/FrankLabAries.node.d.ts +5 -0
- package/dist/nodes/Aries/FrankLabAries.node.js +48 -0
- package/dist/nodes/Aries/FrankLabAries.node.js.map +1 -0
- package/dist/nodes/Aries/aries.svg +6 -0
- package/dist/nodes/C2pa/FrankLabC2pa.node.js +1 -0
- package/dist/nodes/C2pa/FrankLabC2pa.node.js.map +1 -1
- package/dist/nodes/Dola/Dola.node.json +10 -0
- package/dist/nodes/Dola/FrankLabDola.node.d.ts +5 -0
- package/dist/nodes/Dola/FrankLabDola.node.js +155 -0
- package/dist/nodes/Dola/FrankLabDola.node.js.map +1 -0
- package/dist/nodes/Dola/dola.svg +6 -0
- package/dist/nodes/Holst/FrankLabHolst.node.js +9 -12
- package/dist/nodes/Holst/FrankLabHolst.node.js.map +1 -1
- package/dist/nodes/HotCoffe/FrankLabHotCoffe.node.d.ts +5 -0
- package/dist/nodes/HotCoffe/FrankLabHotCoffe.node.js +129 -0
- package/dist/nodes/HotCoffe/FrankLabHotCoffe.node.js.map +1 -0
- package/dist/nodes/HotCoffe/HotCoffe.node.json +10 -0
- package/dist/nodes/HotCoffe/hotcoffe.svg +6 -0
- package/dist/nodes/Jupiter/FrankLabJupiter.node.d.ts +5 -0
- package/dist/nodes/Jupiter/FrankLabJupiter.node.js +132 -0
- package/dist/nodes/Jupiter/FrankLabJupiter.node.js.map +1 -0
- package/dist/nodes/Jupiter/Jupiter.node.json +10 -0
- package/dist/nodes/Jupiter/jupiter.svg +7 -0
- package/dist/nodes/Kley/FrankLabKley.node.js +1 -0
- package/dist/nodes/Kley/FrankLabKley.node.js.map +1 -1
- package/dist/nodes/Kusok/FrankLabKusok.node.d.ts +5 -0
- package/dist/nodes/Kusok/FrankLabKusok.node.js +188 -0
- package/dist/nodes/Kusok/FrankLabKusok.node.js.map +1 -0
- package/dist/nodes/Kusok/Kusok.node.json +10 -0
- package/dist/nodes/Kusok/kusok.svg +7 -0
- package/dist/nodes/Mars/FrankLabMars.node.d.ts +5 -0
- package/dist/nodes/Mars/FrankLabMars.node.js +178 -0
- package/dist/nodes/Mars/FrankLabMars.node.js.map +1 -0
- package/dist/nodes/Mars/Mars.node.json +10 -0
- package/dist/nodes/Mars/mars.svg +6 -0
- package/dist/nodes/Mercury/FrankLabMercury.node.d.ts +5 -0
- package/dist/nodes/Mercury/FrankLabMercury.node.js +84 -0
- package/dist/nodes/Mercury/FrankLabMercury.node.js.map +1 -0
- package/dist/nodes/Mercury/Mercury.node.json +10 -0
- package/dist/nodes/Mercury/mercury.svg +6 -0
- package/dist/nodes/Minimax/FrankLabMinimax.node.d.ts +5 -0
- package/dist/nodes/Minimax/FrankLabMinimax.node.js +157 -0
- package/dist/nodes/Minimax/FrankLabMinimax.node.js.map +1 -0
- package/dist/nodes/Minimax/Minimax.node.json +10 -0
- package/dist/nodes/Minimax/minimax.svg +5 -0
- package/dist/nodes/Moon/FrankLabMoon.node.d.ts +5 -0
- package/dist/nodes/Moon/FrankLabMoon.node.js +132 -0
- package/dist/nodes/Moon/FrankLabMoon.node.js.map +1 -0
- package/dist/nodes/Moon/Moon.node.json +10 -0
- package/dist/nodes/Moon/moon.svg +5 -0
- package/dist/nodes/Neptune/FrankLabNeptune.node.d.ts +5 -0
- package/dist/nodes/Neptune/FrankLabNeptune.node.js +80 -0
- package/dist/nodes/Neptune/FrankLabNeptune.node.js.map +1 -0
- package/dist/nodes/Neptune/Neptune.node.json +10 -0
- package/dist/nodes/Neptune/neptune.svg +5 -0
- package/dist/nodes/Omni/FrankLabOmni.node.d.ts +5 -0
- package/dist/nodes/Omni/FrankLabOmni.node.js +194 -0
- package/dist/nodes/Omni/FrankLabOmni.node.js.map +1 -0
- package/dist/nodes/Omni/Omni.node.json +10 -0
- package/dist/nodes/Omni/omni.svg +6 -0
- package/dist/nodes/Orkestr/FrankLabOrkestr.node.d.ts +5 -0
- package/dist/nodes/Orkestr/FrankLabOrkestr.node.js +243 -0
- package/dist/nodes/Orkestr/FrankLabOrkestr.node.js.map +1 -0
- package/dist/nodes/Orkestr/Orkestr.node.json +10 -0
- package/dist/nodes/Orkestr/orkestr.svg +6 -0
- package/dist/nodes/Plastinka/FrankLabPlastinka.node.js +1 -0
- package/dist/nodes/Plastinka/FrankLabPlastinka.node.js.map +1 -1
- package/dist/nodes/Pluto/FrankLabPluto.node.d.ts +5 -0
- package/dist/nodes/Pluto/FrankLabPluto.node.js +74 -0
- package/dist/nodes/Pluto/FrankLabPluto.node.js.map +1 -0
- package/dist/nodes/Pluto/Pluto.node.json +10 -0
- package/dist/nodes/Pluto/pluto.svg +6 -0
- package/dist/nodes/Saturn/FrankLabSaturn.node.d.ts +5 -0
- package/dist/nodes/Saturn/FrankLabSaturn.node.js +117 -0
- package/dist/nodes/Saturn/FrankLabSaturn.node.js.map +1 -0
- package/dist/nodes/Saturn/Saturn.node.json +10 -0
- package/dist/nodes/Saturn/saturn.svg +5 -0
- package/dist/nodes/Sufler/FrankLabSufler.node.d.ts +5 -0
- package/dist/nodes/Sufler/FrankLabSufler.node.js +129 -0
- package/dist/nodes/Sufler/FrankLabSufler.node.js.map +1 -0
- package/dist/nodes/Sufler/Sufler.node.json +10 -0
- package/dist/nodes/Sufler/sufler.svg +6 -0
- package/dist/nodes/TextSticker/FrankLabTextSticker.node.d.ts +5 -0
- package/dist/nodes/TextSticker/FrankLabTextSticker.node.js +89 -0
- package/dist/nodes/TextSticker/FrankLabTextSticker.node.js.map +1 -0
- package/dist/nodes/TextSticker/TextSticker.node.json +10 -0
- package/dist/nodes/TextSticker/textsticker.svg +8 -0
- package/dist/nodes/Titan/FrankLabTitan.node.d.ts +5 -0
- package/dist/nodes/Titan/FrankLabTitan.node.js +85 -0
- package/dist/nodes/Titan/FrankLabTitan.node.js.map +1 -0
- package/dist/nodes/Titan/Titan.node.json +10 -0
- package/dist/nodes/Titan/titan.svg +7 -0
- package/dist/nodes/Venus/FrankLabVenus.node.d.ts +5 -0
- package/dist/nodes/Venus/FrankLabVenus.node.js +95 -0
- package/dist/nodes/Venus/FrankLabVenus.node.js.map +1 -0
- package/dist/nodes/Venus/Venus.node.json +10 -0
- package/dist/nodes/Venus/venus.svg +7 -0
- package/dist/nodes/Volna/FrankLabVolna.node.js +1 -0
- package/dist/nodes/Volna/FrankLabVolna.node.js.map +1 -1
- package/dist/nodes/X/FrankLabX.node.d.ts +5 -0
- package/dist/nodes/X/FrankLabX.node.js +133 -0
- package/dist/nodes/X/FrankLabX.node.js.map +1 -0
- package/dist/nodes/X/X.node.json +10 -0
- package/dist/nodes/X/x.svg +4 -0
- package/dist/nodes/shared/client.js +34 -9
- package/dist/nodes/shared/client.js.map +1 -1
- package/dist/nodes/shared/node-utils.d.ts +1 -0
- package/dist/nodes/shared/node-utils.js +233 -21
- package/dist/nodes/shared/node-utils.js.map +1 -1
- package/dist/nodes/shared/registry.d.ts +4 -2
- package/dist/nodes/shared/registry.js +325 -0
- package/dist/nodes/shared/registry.js.map +1 -1
- package/dist/nodes/shared/url.d.ts +1 -1
- package/dist/nodes/shared/url.js +9 -7
- package/dist/nodes/shared/url.js.map +1 -1
- package/dist/package.json +52 -15
- package/examples/moon-text-to-video.workflow.json +21 -0
- package/examples/saturn-turbo-video.workflow.json +20 -0
- package/package.json +52 -15
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class FrankLabSaturn implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
execute(this: IExecuteFunctions): Promise<import("n8n-workflow").INodeExecutionData[][]>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FrankLabSaturn = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const node_utils_1 = require("../shared/node-utils");
|
|
6
|
+
const videoFields = [
|
|
7
|
+
{
|
|
8
|
+
displayName: 'Prompt',
|
|
9
|
+
name: 'prompt',
|
|
10
|
+
type: 'string',
|
|
11
|
+
typeOptions: { rows: 4 },
|
|
12
|
+
default: '',
|
|
13
|
+
displayOptions: { show: { operation: ['video', 'turboTextToVideo', 'turboImageToVideo'] } },
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
displayName: 'Model',
|
|
17
|
+
name: 'model_name',
|
|
18
|
+
type: 'string',
|
|
19
|
+
default: '',
|
|
20
|
+
description: 'Optional SATURN model ID',
|
|
21
|
+
displayOptions: { show: { operation: ['video'] } },
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
displayName: 'Mode',
|
|
25
|
+
name: 'mode',
|
|
26
|
+
type: 'string',
|
|
27
|
+
default: '',
|
|
28
|
+
description: 'Optional generation mode',
|
|
29
|
+
displayOptions: { show: { operation: ['video'] } },
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
displayName: 'Image URL',
|
|
33
|
+
name: 'image_url',
|
|
34
|
+
type: 'string',
|
|
35
|
+
default: '',
|
|
36
|
+
required: true,
|
|
37
|
+
description: 'Public http(s) URL of the first frame image',
|
|
38
|
+
displayOptions: { show: { operation: ['turboImageToVideo'] } },
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
displayName: 'Aspect Ratio',
|
|
42
|
+
name: 'aspect_ratio',
|
|
43
|
+
type: 'string',
|
|
44
|
+
default: '',
|
|
45
|
+
displayOptions: { show: { operation: ['video', 'turboTextToVideo', 'turboImageToVideo'] } },
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
displayName: 'Duration',
|
|
49
|
+
name: 'duration',
|
|
50
|
+
type: 'number',
|
|
51
|
+
default: '',
|
|
52
|
+
required: true,
|
|
53
|
+
description: 'Video duration in seconds',
|
|
54
|
+
displayOptions: { show: { operation: ['video', 'turboTextToVideo', 'turboImageToVideo'] } },
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
displayName: 'Resolution',
|
|
58
|
+
name: 'resolution',
|
|
59
|
+
type: 'string',
|
|
60
|
+
default: '',
|
|
61
|
+
displayOptions: { show: { operation: ['turboTextToVideo', 'turboImageToVideo'] } },
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
class FrankLabSaturn {
|
|
65
|
+
constructor() {
|
|
66
|
+
this.description = {
|
|
67
|
+
displayName: 'FrankLab SATURN',
|
|
68
|
+
name: 'frankLabSaturn',
|
|
69
|
+
icon: 'file:saturn.svg',
|
|
70
|
+
subtitle: '={{$parameter["operation"]}}',
|
|
71
|
+
group: ['transform'],
|
|
72
|
+
version: 1,
|
|
73
|
+
description: 'Generate videos with FrankLab SATURN and SATURN Turbo (Kling-backed).',
|
|
74
|
+
defaults: {
|
|
75
|
+
name: 'FrankLab SATURN',
|
|
76
|
+
},
|
|
77
|
+
inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
78
|
+
outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
79
|
+
credentials: [
|
|
80
|
+
{
|
|
81
|
+
name: 'frankLabApi',
|
|
82
|
+
required: true,
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
usableAsTool: true,
|
|
86
|
+
properties: [
|
|
87
|
+
{
|
|
88
|
+
displayName: 'Operation',
|
|
89
|
+
name: 'operation',
|
|
90
|
+
type: 'options',
|
|
91
|
+
noDataExpression: true,
|
|
92
|
+
default: 'video',
|
|
93
|
+
options: [
|
|
94
|
+
{ name: 'Generate Video', value: 'video', action: 'Generate a SATURN video' },
|
|
95
|
+
{ name: 'Get Turbo Status', value: 'getTurboStatus', action: 'Get a saturn turbo task status' },
|
|
96
|
+
{ name: 'Get Video Status', value: 'getVideoStatus', action: 'Get a SATURN video task status' },
|
|
97
|
+
{ name: 'Turbo Image to Video', value: 'turboImageToVideo', action: 'Generate a saturn turbo video from an image' },
|
|
98
|
+
{ name: 'Turbo Text to Video', value: 'turboTextToVideo', action: 'Generate a saturn turbo video from text' },
|
|
99
|
+
],
|
|
100
|
+
},
|
|
101
|
+
...videoFields,
|
|
102
|
+
node_utils_1.jobIdProperty,
|
|
103
|
+
node_utils_1.payloadProperty,
|
|
104
|
+
node_utils_1.waitProperty,
|
|
105
|
+
],
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
async execute() {
|
|
109
|
+
return (0, node_utils_1.executeFrankLabModule)(this, 'saturn', {
|
|
110
|
+
default: 'getVideoStatus',
|
|
111
|
+
turboTextToVideo: 'getTurboStatus',
|
|
112
|
+
turboImageToVideo: 'getTurboStatus',
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
exports.FrankLabSaturn = FrankLabSaturn;
|
|
117
|
+
//# sourceMappingURL=FrankLabSaturn.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrankLabSaturn.node.js","sourceRoot":"","sources":["../../../nodes/Saturn/FrankLabSaturn.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"node": "n8n-nodes-base.frankLabSaturn",
|
|
3
|
+
"nodeVersion": "1.0",
|
|
4
|
+
"codexVersion": "1.0",
|
|
5
|
+
"categories": ["Marketing & Content"],
|
|
6
|
+
"resources": {
|
|
7
|
+
"credentialDocumentation": [{ "url": "https://github.com/d906090-rgb/n8n-nodes-franklab#credentials" }],
|
|
8
|
+
"primaryDocumentation": [{ "url": "https://github.com/d906090-rgb/n8n-nodes-franklab#saturn" }]
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="FrankLab SATURN">
|
|
2
|
+
<rect width="64" height="64" rx="8" fill="#111827"/>
|
|
3
|
+
<circle cx="32" cy="30" r="12" fill="#f59e0b"/>
|
|
4
|
+
<ellipse cx="32" cy="32" rx="24" ry="7" fill="none" stroke="#f8fafc" stroke-width="2" transform="rotate(-18 32 32)"/>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class FrankLabSufler implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
execute(this: IExecuteFunctions): Promise<import("n8n-workflow").INodeExecutionData[][]>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FrankLabSufler = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const node_utils_1 = require("../shared/node-utils");
|
|
6
|
+
const subtitleFields = [
|
|
7
|
+
{
|
|
8
|
+
displayName: 'Video URL',
|
|
9
|
+
name: 'videoUrl',
|
|
10
|
+
type: 'string',
|
|
11
|
+
default: '',
|
|
12
|
+
required: true,
|
|
13
|
+
description: 'Public http(s) URL of the video to burn subtitles into',
|
|
14
|
+
displayOptions: { show: { operation: ['subtitles'] } },
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
displayName: 'Caption Engine',
|
|
18
|
+
name: 'captionEngine',
|
|
19
|
+
type: 'options',
|
|
20
|
+
noDataExpression: true,
|
|
21
|
+
default: 'v2',
|
|
22
|
+
options: [
|
|
23
|
+
{ name: 'V1', value: 'v1', action: 'Use the v1 caption engine' },
|
|
24
|
+
{ name: 'V2', value: 'v2', action: 'Use the v2 caption engine' },
|
|
25
|
+
],
|
|
26
|
+
displayOptions: { show: { operation: ['subtitles'] } },
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
displayName: 'Template ID',
|
|
30
|
+
name: 'templateId',
|
|
31
|
+
type: 'string',
|
|
32
|
+
default: '',
|
|
33
|
+
description: 'Optional subtitle template ID (see FrankLab TextSticker List Subtitle Templates)',
|
|
34
|
+
displayOptions: { show: { operation: ['subtitles'] } },
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
displayName: 'Language',
|
|
38
|
+
name: 'language',
|
|
39
|
+
type: 'string',
|
|
40
|
+
default: '',
|
|
41
|
+
description: 'Source language code, for example ru or en',
|
|
42
|
+
displayOptions: { show: { operation: ['subtitles'] } },
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
displayName: 'Transcription Engine',
|
|
46
|
+
name: 'transcriptionEngine',
|
|
47
|
+
type: 'options',
|
|
48
|
+
noDataExpression: true,
|
|
49
|
+
default: '',
|
|
50
|
+
options: [
|
|
51
|
+
{ name: 'Auto', value: '', action: 'Let the server pick the transcription engine' },
|
|
52
|
+
{ name: 'Whisper', value: 'whisper', action: 'Use Whisper transcription' },
|
|
53
|
+
{ name: 'xAI Grok Transcribe', value: 'xai_grok_transcribe', action: 'Use xAI Grok transcription' },
|
|
54
|
+
{ name: 'Gemini', value: 'gemini', action: 'Use Gemini transcription' },
|
|
55
|
+
],
|
|
56
|
+
displayOptions: { show: { operation: ['subtitles'] } },
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
displayName: 'Highlight Mode',
|
|
60
|
+
name: 'highlightMode',
|
|
61
|
+
type: 'string',
|
|
62
|
+
default: '',
|
|
63
|
+
description: 'Optional word highlight mode',
|
|
64
|
+
displayOptions: { show: { operation: ['subtitles'] } },
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
displayName: 'Platform',
|
|
68
|
+
name: 'platform',
|
|
69
|
+
type: 'string',
|
|
70
|
+
default: '',
|
|
71
|
+
description: 'Optional target platform preset',
|
|
72
|
+
displayOptions: { show: { operation: ['subtitles'] } },
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
displayName: 'Safe Zone Preset',
|
|
76
|
+
name: 'safeZonePreset',
|
|
77
|
+
type: 'string',
|
|
78
|
+
default: '',
|
|
79
|
+
description: 'Optional safe zone preset ID',
|
|
80
|
+
displayOptions: { show: { operation: ['subtitles'] } },
|
|
81
|
+
},
|
|
82
|
+
];
|
|
83
|
+
class FrankLabSufler {
|
|
84
|
+
constructor() {
|
|
85
|
+
this.description = {
|
|
86
|
+
displayName: 'FrankLab SUFLER',
|
|
87
|
+
name: 'frankLabSufler',
|
|
88
|
+
icon: 'file:sufler.svg',
|
|
89
|
+
subtitle: '={{$parameter["operation"]}}',
|
|
90
|
+
group: ['transform'],
|
|
91
|
+
version: 1,
|
|
92
|
+
description: 'Burn styled subtitles and captions into videos with FrankLab SUFLER.',
|
|
93
|
+
defaults: {
|
|
94
|
+
name: 'FrankLab SUFLER',
|
|
95
|
+
},
|
|
96
|
+
inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
97
|
+
outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
98
|
+
credentials: [
|
|
99
|
+
{
|
|
100
|
+
name: 'frankLabApi',
|
|
101
|
+
required: true,
|
|
102
|
+
},
|
|
103
|
+
],
|
|
104
|
+
usableAsTool: true,
|
|
105
|
+
properties: [
|
|
106
|
+
{
|
|
107
|
+
displayName: 'Operation',
|
|
108
|
+
name: 'operation',
|
|
109
|
+
type: 'options',
|
|
110
|
+
noDataExpression: true,
|
|
111
|
+
default: 'subtitles',
|
|
112
|
+
options: [
|
|
113
|
+
{ name: 'Burn Subtitles', value: 'subtitles', action: 'Burn subtitles into a video' },
|
|
114
|
+
{ name: 'Get Job Status', value: 'getStatus', action: 'Get a subtitles job status' },
|
|
115
|
+
],
|
|
116
|
+
},
|
|
117
|
+
...subtitleFields,
|
|
118
|
+
node_utils_1.jobIdProperty,
|
|
119
|
+
node_utils_1.payloadProperty,
|
|
120
|
+
node_utils_1.waitProperty,
|
|
121
|
+
],
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
async execute() {
|
|
125
|
+
return (0, node_utils_1.executeFrankLabModule)(this, 'sufler', 'getStatus');
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
exports.FrankLabSufler = FrankLabSufler;
|
|
129
|
+
//# sourceMappingURL=FrankLabSufler.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrankLabSufler.node.js","sourceRoot":"","sources":["../../../nodes/Sufler/FrankLabSufler.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"node": "n8n-nodes-base.frankLabSufler",
|
|
3
|
+
"nodeVersion": "1.0",
|
|
4
|
+
"codexVersion": "1.0",
|
|
5
|
+
"categories": ["Marketing & Content", "Utility"],
|
|
6
|
+
"resources": {
|
|
7
|
+
"credentialDocumentation": [{ "url": "https://github.com/d906090-rgb/n8n-nodes-franklab#credentials" }],
|
|
8
|
+
"primaryDocumentation": [{ "url": "https://github.com/d906090-rgb/n8n-nodes-franklab#sufler" }]
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="FrankLab SUFLER">
|
|
2
|
+
<rect width="64" height="64" rx="8" fill="#111827"/>
|
|
3
|
+
<path d="M14 16v6h24v8h6V16z" fill="#f8fafc"/>
|
|
4
|
+
<path d="M20 30h24v6H20z" fill="#38bdf8"/>
|
|
5
|
+
<path d="M14 42h30v6H14z" fill="#22c55e"/>
|
|
6
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class FrankLabTextSticker implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
execute(this: IExecuteFunctions): Promise<import("n8n-workflow").INodeExecutionData[][]>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FrankLabTextSticker = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const node_utils_1 = require("../shared/node-utils");
|
|
6
|
+
const overlayFields = [
|
|
7
|
+
{
|
|
8
|
+
displayName: 'Video URL',
|
|
9
|
+
name: 'videoUrl',
|
|
10
|
+
type: 'string',
|
|
11
|
+
default: '',
|
|
12
|
+
required: true,
|
|
13
|
+
description: 'Public http(s) URL of the target video',
|
|
14
|
+
displayOptions: { show: { operation: ['overlay'] } },
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
displayName: 'Platform',
|
|
18
|
+
name: 'platform',
|
|
19
|
+
type: 'string',
|
|
20
|
+
default: '',
|
|
21
|
+
description: 'Optional target platform preset for overlay placement',
|
|
22
|
+
displayOptions: { show: { operation: ['overlay'] } },
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
displayName: 'Config ID',
|
|
26
|
+
name: 'configId',
|
|
27
|
+
type: 'string',
|
|
28
|
+
default: '',
|
|
29
|
+
description: 'Optional saved overlay config ID',
|
|
30
|
+
displayOptions: { show: { operation: ['overlay'] } },
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
class FrankLabTextSticker {
|
|
34
|
+
constructor() {
|
|
35
|
+
this.description = {
|
|
36
|
+
displayName: 'FrankLab TextSticker',
|
|
37
|
+
name: 'frankLabTextSticker',
|
|
38
|
+
icon: 'file:textsticker.svg',
|
|
39
|
+
subtitle: '={{$parameter["operation"]}}',
|
|
40
|
+
group: ['transform'],
|
|
41
|
+
version: 1,
|
|
42
|
+
description: 'Overlay text, stickers, and emoji on videos with FrankLab TextSticker, plus studio option lists.',
|
|
43
|
+
defaults: {
|
|
44
|
+
name: 'FrankLab TextSticker',
|
|
45
|
+
},
|
|
46
|
+
inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
47
|
+
outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
48
|
+
credentials: [
|
|
49
|
+
{
|
|
50
|
+
name: 'frankLabApi',
|
|
51
|
+
required: true,
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
usableAsTool: true,
|
|
55
|
+
properties: [
|
|
56
|
+
{
|
|
57
|
+
displayName: 'Operation',
|
|
58
|
+
name: 'operation',
|
|
59
|
+
type: 'options',
|
|
60
|
+
noDataExpression: true,
|
|
61
|
+
default: 'overlay',
|
|
62
|
+
options: [
|
|
63
|
+
{ name: 'Get Job Status', value: 'getStatus', action: 'Get an overlay job status' },
|
|
64
|
+
{ name: 'List Aspect Ratios', value: 'listAspectRatios', action: 'List aspect ratios' },
|
|
65
|
+
{ name: 'List Emojis', value: 'listEmojis', action: 'List emojis' },
|
|
66
|
+
{ name: 'List Fonts', value: 'listFonts', action: 'List fonts' },
|
|
67
|
+
{ name: 'List Resize Presets', value: 'listResizePresets', action: 'List resize presets' },
|
|
68
|
+
{ name: 'List Safe Zone Options', value: 'listSafeZoneOptions', action: 'List safe zone options' },
|
|
69
|
+
{ name: 'List Stickers', value: 'listStickers', action: 'List stickers' },
|
|
70
|
+
{ name: 'List Subtitle Templates', value: 'listSubtitleTemplates', action: 'List subtitle templates' },
|
|
71
|
+
{ name: 'List Transition Sounds', value: 'listTransitionSounds', action: 'List transition sounds' },
|
|
72
|
+
{ name: 'List Transitions', value: 'listTransitions', action: 'List transitions' },
|
|
73
|
+
{ name: 'List Video Effects', value: 'listVideoEffects', action: 'List video effects' },
|
|
74
|
+
{ name: 'Overlay', value: 'overlay', action: 'Overlay text and stickers on a video' },
|
|
75
|
+
],
|
|
76
|
+
},
|
|
77
|
+
...overlayFields,
|
|
78
|
+
node_utils_1.jobIdProperty,
|
|
79
|
+
node_utils_1.payloadProperty,
|
|
80
|
+
node_utils_1.waitProperty,
|
|
81
|
+
],
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
async execute() {
|
|
85
|
+
return (0, node_utils_1.executeFrankLabModule)(this, 'textSticker', 'getStatus');
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.FrankLabTextSticker = FrankLabTextSticker;
|
|
89
|
+
//# sourceMappingURL=FrankLabTextSticker.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrankLabTextSticker.node.js","sourceRoot":"","sources":["../../../nodes/TextSticker/FrankLabTextSticker.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"node": "n8n-nodes-base.frankLabTextSticker",
|
|
3
|
+
"nodeVersion": "1.0",
|
|
4
|
+
"codexVersion": "1.0",
|
|
5
|
+
"categories": ["Marketing & Content", "Utility"],
|
|
6
|
+
"resources": {
|
|
7
|
+
"credentialDocumentation": [{ "url": "https://github.com/d906090-rgb/n8n-nodes-franklab#credentials" }],
|
|
8
|
+
"primaryDocumentation": [{ "url": "https://github.com/d906090-rgb/n8n-nodes-franklab#textsticker" }]
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="FrankLab TEXTSTICKER">
|
|
2
|
+
<rect width="64" height="64" rx="8" fill="#111827"/>
|
|
3
|
+
<rect x="12" y="14" width="40" height="28" rx="6" fill="#f8fafc"/>
|
|
4
|
+
<path d="M32 42l-6 8v-8z" fill="#f8fafc"/>
|
|
5
|
+
<circle cx="24" cy="28" r="3" fill="#111827"/>
|
|
6
|
+
<circle cx="40" cy="28" r="3" fill="#111827"/>
|
|
7
|
+
<path d="M26 34c2 2 10 2 12 0" stroke="#111827" stroke-width="2" fill="none"/>
|
|
8
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class FrankLabTitan implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
execute(this: IExecuteFunctions): Promise<import("n8n-workflow").INodeExecutionData[][]>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FrankLabTitan = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const node_utils_1 = require("../shared/node-utils");
|
|
6
|
+
const titanFields = [
|
|
7
|
+
{
|
|
8
|
+
displayName: 'Prompt',
|
|
9
|
+
name: 'prompt',
|
|
10
|
+
type: 'string',
|
|
11
|
+
typeOptions: { rows: 4 },
|
|
12
|
+
default: '',
|
|
13
|
+
required: true,
|
|
14
|
+
displayOptions: { show: { operation: ['createVideo'] } },
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
displayName: 'Page Number',
|
|
18
|
+
name: 'pageNum',
|
|
19
|
+
type: 'number',
|
|
20
|
+
default: '',
|
|
21
|
+
description: 'Optional results page for List Tasks',
|
|
22
|
+
displayOptions: { show: { operation: ['listTasks'] } },
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
displayName: 'Page Size',
|
|
26
|
+
name: 'pageSize',
|
|
27
|
+
type: 'number',
|
|
28
|
+
default: '',
|
|
29
|
+
description: 'Optional page size for List Tasks',
|
|
30
|
+
displayOptions: { show: { operation: ['listTasks'] } },
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
class FrankLabTitan {
|
|
34
|
+
constructor() {
|
|
35
|
+
this.description = {
|
|
36
|
+
displayName: 'FrankLab TITAN',
|
|
37
|
+
name: 'frankLabTitan',
|
|
38
|
+
icon: 'file:titan.svg',
|
|
39
|
+
subtitle: '={{$parameter["operation"]}}',
|
|
40
|
+
group: ['transform'],
|
|
41
|
+
version: 1,
|
|
42
|
+
description: 'Compose multi-element videos through a staged selection flow with FrankLab TITAN.',
|
|
43
|
+
defaults: {
|
|
44
|
+
name: 'FrankLab TITAN',
|
|
45
|
+
},
|
|
46
|
+
inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
47
|
+
outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
48
|
+
credentials: [
|
|
49
|
+
{
|
|
50
|
+
name: 'frankLabApi',
|
|
51
|
+
required: true,
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
usableAsTool: true,
|
|
55
|
+
properties: [
|
|
56
|
+
{
|
|
57
|
+
displayName: 'Operation',
|
|
58
|
+
name: 'operation',
|
|
59
|
+
type: 'options',
|
|
60
|
+
noDataExpression: true,
|
|
61
|
+
default: 'createVideo',
|
|
62
|
+
options: [
|
|
63
|
+
{ name: 'Add Selection', value: 'addSelection', action: 'Add elements to the selection' },
|
|
64
|
+
{ name: 'Clear Selection', value: 'clearSelection', action: 'Clear the selection' },
|
|
65
|
+
{ name: 'Create Video', value: 'createVideo', action: 'Create a multi element video' },
|
|
66
|
+
{ name: 'Delete Selection', value: 'deleteSelection', action: 'Delete elements from the selection' },
|
|
67
|
+
{ name: 'Get Task', value: 'getTask', action: 'Get a multi element task' },
|
|
68
|
+
{ name: 'Init Selection', value: 'initSelection', action: 'Initialize the selection' },
|
|
69
|
+
{ name: 'List Tasks', value: 'listTasks', action: 'List multi element tasks' },
|
|
70
|
+
{ name: 'Preview Selection', value: 'previewSelection', action: 'Preview the selection' },
|
|
71
|
+
],
|
|
72
|
+
},
|
|
73
|
+
...titanFields,
|
|
74
|
+
node_utils_1.jobIdProperty,
|
|
75
|
+
node_utils_1.payloadProperty,
|
|
76
|
+
node_utils_1.waitProperty,
|
|
77
|
+
],
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
async execute() {
|
|
81
|
+
return (0, node_utils_1.executeFrankLabModule)(this, 'titan', { default: 'getTask' });
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.FrankLabTitan = FrankLabTitan;
|
|
85
|
+
//# sourceMappingURL=FrankLabTitan.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrankLabTitan.node.js","sourceRoot":"","sources":["../../../nodes/Titan/FrankLabTitan.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"node": "n8n-nodes-base.frankLabTitan",
|
|
3
|
+
"nodeVersion": "1.0",
|
|
4
|
+
"codexVersion": "1.0",
|
|
5
|
+
"categories": ["Marketing & Content"],
|
|
6
|
+
"resources": {
|
|
7
|
+
"credentialDocumentation": [{ "url": "https://github.com/d906090-rgb/n8n-nodes-franklab#credentials" }],
|
|
8
|
+
"primaryDocumentation": [{ "url": "https://github.com/d906090-rgb/n8n-nodes-franklab#titan" }]
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="FrankLab TITAN">
|
|
2
|
+
<rect width="64" height="64" rx="8" fill="#111827"/>
|
|
3
|
+
<rect x="14" y="22" width="10" height="10" rx="2" fill="#38bdf8"/>
|
|
4
|
+
<rect x="27" y="22" width="10" height="10" rx="2" fill="#22c55e"/>
|
|
5
|
+
<rect x="40" y="22" width="10" height="10" rx="2" fill="#f59e0b"/>
|
|
6
|
+
<path d="M32 36v10M26 46h12" stroke="#f8fafc" stroke-width="3" stroke-linecap="round"/>
|
|
7
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class FrankLabVenus implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
execute(this: IExecuteFunctions): Promise<import("n8n-workflow").INodeExecutionData[][]>;
|
|
5
|
+
}
|