@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.
Files changed (126) hide show
  1. package/README.md +144 -7
  2. package/dist/nodes/Alibaba/Alibaba.node.json +10 -0
  3. package/dist/nodes/Alibaba/FrankLabAlibaba.node.d.ts +5 -0
  4. package/dist/nodes/Alibaba/FrankLabAlibaba.node.js +167 -0
  5. package/dist/nodes/Alibaba/FrankLabAlibaba.node.js.map +1 -0
  6. package/dist/nodes/Alibaba/alibaba.svg +4 -0
  7. package/dist/nodes/Aries/Aries.node.json +10 -0
  8. package/dist/nodes/Aries/FrankLabAries.node.d.ts +5 -0
  9. package/dist/nodes/Aries/FrankLabAries.node.js +48 -0
  10. package/dist/nodes/Aries/FrankLabAries.node.js.map +1 -0
  11. package/dist/nodes/Aries/aries.svg +6 -0
  12. package/dist/nodes/C2pa/FrankLabC2pa.node.js +1 -0
  13. package/dist/nodes/C2pa/FrankLabC2pa.node.js.map +1 -1
  14. package/dist/nodes/Dola/Dola.node.json +10 -0
  15. package/dist/nodes/Dola/FrankLabDola.node.d.ts +5 -0
  16. package/dist/nodes/Dola/FrankLabDola.node.js +155 -0
  17. package/dist/nodes/Dola/FrankLabDola.node.js.map +1 -0
  18. package/dist/nodes/Dola/dola.svg +6 -0
  19. package/dist/nodes/Holst/FrankLabHolst.node.js +9 -12
  20. package/dist/nodes/Holst/FrankLabHolst.node.js.map +1 -1
  21. package/dist/nodes/HotCoffe/FrankLabHotCoffe.node.d.ts +5 -0
  22. package/dist/nodes/HotCoffe/FrankLabHotCoffe.node.js +129 -0
  23. package/dist/nodes/HotCoffe/FrankLabHotCoffe.node.js.map +1 -0
  24. package/dist/nodes/HotCoffe/HotCoffe.node.json +10 -0
  25. package/dist/nodes/HotCoffe/hotcoffe.svg +6 -0
  26. package/dist/nodes/Jupiter/FrankLabJupiter.node.d.ts +5 -0
  27. package/dist/nodes/Jupiter/FrankLabJupiter.node.js +132 -0
  28. package/dist/nodes/Jupiter/FrankLabJupiter.node.js.map +1 -0
  29. package/dist/nodes/Jupiter/Jupiter.node.json +10 -0
  30. package/dist/nodes/Jupiter/jupiter.svg +7 -0
  31. package/dist/nodes/Kley/FrankLabKley.node.js +1 -0
  32. package/dist/nodes/Kley/FrankLabKley.node.js.map +1 -1
  33. package/dist/nodes/Kusok/FrankLabKusok.node.d.ts +5 -0
  34. package/dist/nodes/Kusok/FrankLabKusok.node.js +188 -0
  35. package/dist/nodes/Kusok/FrankLabKusok.node.js.map +1 -0
  36. package/dist/nodes/Kusok/Kusok.node.json +10 -0
  37. package/dist/nodes/Kusok/kusok.svg +7 -0
  38. package/dist/nodes/Mars/FrankLabMars.node.d.ts +5 -0
  39. package/dist/nodes/Mars/FrankLabMars.node.js +178 -0
  40. package/dist/nodes/Mars/FrankLabMars.node.js.map +1 -0
  41. package/dist/nodes/Mars/Mars.node.json +10 -0
  42. package/dist/nodes/Mars/mars.svg +6 -0
  43. package/dist/nodes/Mercury/FrankLabMercury.node.d.ts +5 -0
  44. package/dist/nodes/Mercury/FrankLabMercury.node.js +84 -0
  45. package/dist/nodes/Mercury/FrankLabMercury.node.js.map +1 -0
  46. package/dist/nodes/Mercury/Mercury.node.json +10 -0
  47. package/dist/nodes/Mercury/mercury.svg +6 -0
  48. package/dist/nodes/Minimax/FrankLabMinimax.node.d.ts +5 -0
  49. package/dist/nodes/Minimax/FrankLabMinimax.node.js +157 -0
  50. package/dist/nodes/Minimax/FrankLabMinimax.node.js.map +1 -0
  51. package/dist/nodes/Minimax/Minimax.node.json +10 -0
  52. package/dist/nodes/Minimax/minimax.svg +5 -0
  53. package/dist/nodes/Moon/FrankLabMoon.node.d.ts +5 -0
  54. package/dist/nodes/Moon/FrankLabMoon.node.js +132 -0
  55. package/dist/nodes/Moon/FrankLabMoon.node.js.map +1 -0
  56. package/dist/nodes/Moon/Moon.node.json +10 -0
  57. package/dist/nodes/Moon/moon.svg +5 -0
  58. package/dist/nodes/Neptune/FrankLabNeptune.node.d.ts +5 -0
  59. package/dist/nodes/Neptune/FrankLabNeptune.node.js +80 -0
  60. package/dist/nodes/Neptune/FrankLabNeptune.node.js.map +1 -0
  61. package/dist/nodes/Neptune/Neptune.node.json +10 -0
  62. package/dist/nodes/Neptune/neptune.svg +5 -0
  63. package/dist/nodes/Omni/FrankLabOmni.node.d.ts +5 -0
  64. package/dist/nodes/Omni/FrankLabOmni.node.js +194 -0
  65. package/dist/nodes/Omni/FrankLabOmni.node.js.map +1 -0
  66. package/dist/nodes/Omni/Omni.node.json +10 -0
  67. package/dist/nodes/Omni/omni.svg +6 -0
  68. package/dist/nodes/Orkestr/FrankLabOrkestr.node.d.ts +5 -0
  69. package/dist/nodes/Orkestr/FrankLabOrkestr.node.js +243 -0
  70. package/dist/nodes/Orkestr/FrankLabOrkestr.node.js.map +1 -0
  71. package/dist/nodes/Orkestr/Orkestr.node.json +10 -0
  72. package/dist/nodes/Orkestr/orkestr.svg +6 -0
  73. package/dist/nodes/Plastinka/FrankLabPlastinka.node.js +1 -0
  74. package/dist/nodes/Plastinka/FrankLabPlastinka.node.js.map +1 -1
  75. package/dist/nodes/Pluto/FrankLabPluto.node.d.ts +5 -0
  76. package/dist/nodes/Pluto/FrankLabPluto.node.js +74 -0
  77. package/dist/nodes/Pluto/FrankLabPluto.node.js.map +1 -0
  78. package/dist/nodes/Pluto/Pluto.node.json +10 -0
  79. package/dist/nodes/Pluto/pluto.svg +6 -0
  80. package/dist/nodes/Saturn/FrankLabSaturn.node.d.ts +5 -0
  81. package/dist/nodes/Saturn/FrankLabSaturn.node.js +117 -0
  82. package/dist/nodes/Saturn/FrankLabSaturn.node.js.map +1 -0
  83. package/dist/nodes/Saturn/Saturn.node.json +10 -0
  84. package/dist/nodes/Saturn/saturn.svg +5 -0
  85. package/dist/nodes/Sufler/FrankLabSufler.node.d.ts +5 -0
  86. package/dist/nodes/Sufler/FrankLabSufler.node.js +129 -0
  87. package/dist/nodes/Sufler/FrankLabSufler.node.js.map +1 -0
  88. package/dist/nodes/Sufler/Sufler.node.json +10 -0
  89. package/dist/nodes/Sufler/sufler.svg +6 -0
  90. package/dist/nodes/TextSticker/FrankLabTextSticker.node.d.ts +5 -0
  91. package/dist/nodes/TextSticker/FrankLabTextSticker.node.js +89 -0
  92. package/dist/nodes/TextSticker/FrankLabTextSticker.node.js.map +1 -0
  93. package/dist/nodes/TextSticker/TextSticker.node.json +10 -0
  94. package/dist/nodes/TextSticker/textsticker.svg +8 -0
  95. package/dist/nodes/Titan/FrankLabTitan.node.d.ts +5 -0
  96. package/dist/nodes/Titan/FrankLabTitan.node.js +85 -0
  97. package/dist/nodes/Titan/FrankLabTitan.node.js.map +1 -0
  98. package/dist/nodes/Titan/Titan.node.json +10 -0
  99. package/dist/nodes/Titan/titan.svg +7 -0
  100. package/dist/nodes/Venus/FrankLabVenus.node.d.ts +5 -0
  101. package/dist/nodes/Venus/FrankLabVenus.node.js +95 -0
  102. package/dist/nodes/Venus/FrankLabVenus.node.js.map +1 -0
  103. package/dist/nodes/Venus/Venus.node.json +10 -0
  104. package/dist/nodes/Venus/venus.svg +7 -0
  105. package/dist/nodes/Volna/FrankLabVolna.node.js +1 -0
  106. package/dist/nodes/Volna/FrankLabVolna.node.js.map +1 -1
  107. package/dist/nodes/X/FrankLabX.node.d.ts +5 -0
  108. package/dist/nodes/X/FrankLabX.node.js +133 -0
  109. package/dist/nodes/X/FrankLabX.node.js.map +1 -0
  110. package/dist/nodes/X/X.node.json +10 -0
  111. package/dist/nodes/X/x.svg +4 -0
  112. package/dist/nodes/shared/client.js +34 -9
  113. package/dist/nodes/shared/client.js.map +1 -1
  114. package/dist/nodes/shared/node-utils.d.ts +1 -0
  115. package/dist/nodes/shared/node-utils.js +233 -21
  116. package/dist/nodes/shared/node-utils.js.map +1 -1
  117. package/dist/nodes/shared/registry.d.ts +4 -2
  118. package/dist/nodes/shared/registry.js +325 -0
  119. package/dist/nodes/shared/registry.js.map +1 -1
  120. package/dist/nodes/shared/url.d.ts +1 -1
  121. package/dist/nodes/shared/url.js +9 -7
  122. package/dist/nodes/shared/url.js.map +1 -1
  123. package/dist/package.json +52 -15
  124. package/examples/moon-text-to-video.workflow.json +21 -0
  125. package/examples/saturn-turbo-video.workflow.json +20 -0
  126. package/package.json +52 -15
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FrankLabKusok = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const node_utils_1 = require("../shared/node-utils");
6
+ const elementIdProperty = {
7
+ displayName: 'Element ID',
8
+ name: 'id',
9
+ type: 'string',
10
+ default: '',
11
+ required: true,
12
+ displayOptions: {
13
+ show: {
14
+ operation: ['getElement', 'deleteElement', 'getAdvancedPreset'],
15
+ },
16
+ },
17
+ };
18
+ const voiceIdProperty = {
19
+ displayName: 'Voice ID',
20
+ name: 'voiceId',
21
+ type: 'string',
22
+ default: '',
23
+ required: true,
24
+ displayOptions: {
25
+ show: {
26
+ operation: ['getVoice', 'deleteVoice', 'getCustomVoice'],
27
+ },
28
+ },
29
+ };
30
+ const kusokFields = [
31
+ {
32
+ displayName: 'Image URL',
33
+ name: 'image_url',
34
+ type: 'string',
35
+ default: '',
36
+ required: true,
37
+ description: 'Public http(s) portrait image, sent as the first refer_images entry',
38
+ displayOptions: { show: { operation: ['createElement', 'createElementAsync'] } },
39
+ },
40
+ {
41
+ displayName: 'Element Name',
42
+ name: 'element_name',
43
+ type: 'string',
44
+ default: '',
45
+ required: true,
46
+ displayOptions: { show: { operation: ['createElement', 'createElementAsync'] } },
47
+ },
48
+ {
49
+ displayName: 'Element Description',
50
+ name: 'element_description',
51
+ type: 'string',
52
+ typeOptions: { rows: 3 },
53
+ default: '',
54
+ required: true,
55
+ displayOptions: { show: { operation: ['createElement', 'createElementAsync'] } },
56
+ },
57
+ {
58
+ displayName: 'Reference Type',
59
+ name: 'reference_type',
60
+ type: 'options',
61
+ noDataExpression: true,
62
+ default: 'image_refer',
63
+ options: [
64
+ { name: 'Image', value: 'image', action: 'Use an image reference' },
65
+ { name: 'Image Refer', value: 'image_refer', action: 'Use an image refer reference' },
66
+ { name: 'Img', value: 'img', action: 'Use an img reference' },
67
+ { name: 'Vid', value: 'vid', action: 'Use a vid reference' },
68
+ { name: 'Video', value: 'video', action: 'Use a video reference' },
69
+ { name: 'Video Refer', value: 'video_refer', action: 'Use a video refer reference' },
70
+ ],
71
+ required: true,
72
+ displayOptions: { show: { operation: ['createElement', 'createElementAsync'] } },
73
+ },
74
+ {
75
+ displayName: 'Image URL',
76
+ name: 'image',
77
+ type: 'string',
78
+ default: '',
79
+ required: true,
80
+ description: 'Public http(s) URL of the portrait image to recognize',
81
+ displayOptions: { show: { operation: ['recognize', 'recognizeAsync'] } },
82
+ },
83
+ {
84
+ displayName: 'Voice Name',
85
+ name: 'voice_name',
86
+ type: 'string',
87
+ default: '',
88
+ required: true,
89
+ displayOptions: { show: { operation: ['createVoice'] } },
90
+ },
91
+ {
92
+ displayName: 'Voice URL',
93
+ name: 'voice_url',
94
+ type: 'string',
95
+ default: '',
96
+ description: 'Optional public http(s) URL of the voice sample instead of Additional JSON audio list',
97
+ displayOptions: { show: { operation: ['createVoice'] } },
98
+ },
99
+ {
100
+ displayName: 'Page Number',
101
+ name: 'pageNum',
102
+ type: 'number',
103
+ default: '',
104
+ description: 'Optional results page for List Elements',
105
+ displayOptions: { show: { operation: ['listElements', 'listVoices', 'listPresetVoices', 'listTags', 'listElementVoices', 'listAdvancedPresets', 'listCustomVoices'] } },
106
+ },
107
+ {
108
+ displayName: 'Page Size',
109
+ name: 'pageSize',
110
+ type: 'number',
111
+ default: '',
112
+ description: 'Optional page size for list operations',
113
+ displayOptions: { show: { operation: ['listElements', 'listVoices', 'listPresetVoices', 'listTags', 'listElementVoices', 'listAdvancedPresets', 'listCustomVoices'] } },
114
+ },
115
+ ];
116
+ class FrankLabKusok {
117
+ constructor() {
118
+ this.description = {
119
+ displayName: 'FrankLab KUSOK',
120
+ name: 'frankLabKusok',
121
+ icon: 'file:kusok.svg',
122
+ subtitle: '={{$parameter["operation"]}}',
123
+ group: ['transform'],
124
+ version: 1,
125
+ description: 'Manage KUSOK elements and voices, recognize portrait images, and poll KUSOK tasks (requires a Kusok-capable partner key).',
126
+ defaults: {
127
+ name: 'FrankLab KUSOK',
128
+ },
129
+ inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
130
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
131
+ credentials: [
132
+ {
133
+ name: 'frankLabApi',
134
+ required: true,
135
+ },
136
+ ],
137
+ usableAsTool: true,
138
+ properties: [
139
+ {
140
+ displayName: 'Operation',
141
+ name: 'operation',
142
+ type: 'options',
143
+ noDataExpression: true,
144
+ default: 'createElement',
145
+ options: [
146
+ { name: 'Create Custom Voice', value: 'createCustomVoice', action: 'Create a custom voice' },
147
+ { name: 'Create Element', value: 'createElement', action: 'Create a KUSOK element' },
148
+ { name: 'Create Element (Async)', value: 'createElementAsync', action: 'Create a KUSOK element asynchronously' },
149
+ { name: 'Create Voice', value: 'createVoice', action: 'Create a KUSOK voice' },
150
+ { name: 'Delete Custom Voices', value: 'deleteCustomVoices', action: 'Delete custom voices' },
151
+ { name: 'Delete Element', value: 'deleteElement', action: 'Delete a KUSOK element' },
152
+ { name: 'Delete Voice', value: 'deleteVoice', action: 'Delete a KUSOK voice' },
153
+ { name: 'Get Advanced Preset', value: 'getAdvancedPreset', action: 'Get an advanced preset element' },
154
+ { name: 'Get Async Task', value: 'getAsyncTask', action: 'Get a KUSOK async task' },
155
+ { name: 'Get Custom Voice', value: 'getCustomVoice', action: 'Get a custom voice' },
156
+ { name: 'Get Element', value: 'getElement', action: 'Get a KUSOK element' },
157
+ { name: 'Get Task', value: 'getTask', action: 'Get a KUSOK task' },
158
+ { name: 'Get Voice', value: 'getVoice', action: 'Get a KUSOK voice' },
159
+ { name: 'List Advanced Presets', value: 'listAdvancedPresets', action: 'List advanced preset elements' },
160
+ { name: 'List Custom Voices', value: 'listCustomVoices', action: 'List custom voices' },
161
+ { name: 'List Element Tags', value: 'listTags', action: 'List element tags' },
162
+ { name: 'List Element Voices', value: 'listElementVoices', action: 'List element voices' },
163
+ { name: 'List Elements', value: 'listElements', action: 'List KUSOK elements' },
164
+ { name: 'List Preset Voices', value: 'listPresetVoices', action: 'List KUSOK preset voices' },
165
+ { name: 'List Voices', value: 'listVoices', action: 'List KUSOK voices' },
166
+ { name: 'Recognize', value: 'recognize', action: 'Recognize a portrait image' },
167
+ { name: 'Recognize (Async)', value: 'recognizeAsync', action: 'Recognize a portrait image asynchronously' },
168
+ ],
169
+ },
170
+ ...kusokFields,
171
+ elementIdProperty,
172
+ voiceIdProperty,
173
+ node_utils_1.jobIdProperty,
174
+ node_utils_1.payloadProperty,
175
+ node_utils_1.waitProperty,
176
+ ],
177
+ };
178
+ }
179
+ async execute() {
180
+ return (0, node_utils_1.executeFrankLabModule)(this, 'kusok', {
181
+ default: 'getTask',
182
+ createElementAsync: 'getAsyncTask',
183
+ recognizeAsync: 'getAsyncTask',
184
+ });
185
+ }
186
+ }
187
+ exports.FrankLabKusok = FrankLabKusok;
188
+ //# sourceMappingURL=FrankLabKusok.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FrankLabKusok.node.js","sourceRoot":"","sources":["../../../nodes/Kusok/FrankLabKusok.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ {
2
+ "node": "n8n-nodes-base.frankLabKusok",
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#kusok" }]
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 KUSOK">
2
+ <rect width="64" height="64" rx="8" fill="#111827"/>
3
+ <rect x="14" y="14" width="16" height="16" rx="3" fill="#38bdf8"/>
4
+ <rect x="34" y="14" width="16" height="16" rx="3" fill="#22c55e"/>
5
+ <rect x="14" y="34" width="16" height="16" rx="3" fill="#f59e0b"/>
6
+ <rect x="34" y="34" width="16" height="16" rx="3" fill="#f8fafc"/>
7
+ </svg>
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class FrankLabMars implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<import("n8n-workflow").INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FrankLabMars = 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
+ required: true,
14
+ displayOptions: { show: { operation: ['textToVideo'] } },
15
+ },
16
+ {
17
+ displayName: 'Prompt',
18
+ name: 'prompt',
19
+ type: 'string',
20
+ typeOptions: { rows: 4 },
21
+ default: '',
22
+ displayOptions: { show: { operation: ['imageToVideo', 'motionControl'] } },
23
+ },
24
+ {
25
+ displayName: 'Image URL',
26
+ name: 'image',
27
+ type: 'string',
28
+ default: '',
29
+ required: true,
30
+ description: 'Public http(s) URL of the first frame or effects image',
31
+ displayOptions: { show: { operation: ['imageToVideo', 'effects'] } },
32
+ },
33
+ {
34
+ displayName: 'Video URL',
35
+ name: 'video_url',
36
+ type: 'string',
37
+ default: '',
38
+ required: true,
39
+ description: 'Public http(s) URL of the source video',
40
+ displayOptions: { show: { operation: ['motionControl'] } },
41
+ },
42
+ {
43
+ displayName: 'Reference Frame URL',
44
+ name: 'image_url',
45
+ type: 'string',
46
+ default: '',
47
+ required: true,
48
+ description: 'Public http(s) URL of the anchor frame for motion control',
49
+ displayOptions: { show: { operation: ['motionControl'] } },
50
+ },
51
+ {
52
+ displayName: 'Effect Scene',
53
+ name: 'effect_scene',
54
+ type: 'options',
55
+ noDataExpression: true,
56
+ default: 'single_character',
57
+ options: [
58
+ { name: 'Dual Character', value: 'dual_character', action: 'Use the dual character effect scene' },
59
+ { name: 'Single Character', value: 'single_character', action: 'Use the single character effect scene' },
60
+ ],
61
+ displayOptions: { show: { operation: ['effects'] } },
62
+ },
63
+ {
64
+ displayName: 'Effect',
65
+ name: 'effect',
66
+ type: 'string',
67
+ default: '',
68
+ required: true,
69
+ description: 'Effect identifier applied to the scene',
70
+ displayOptions: { show: { operation: ['effects'] } },
71
+ },
72
+ {
73
+ displayName: 'Tail Image URL',
74
+ name: 'image_tail',
75
+ type: 'string',
76
+ default: '',
77
+ description: 'Optional public http(s) URL of the tail frame image',
78
+ displayOptions: { show: { operation: ['effects'] } },
79
+ },
80
+ {
81
+ displayName: 'Aspect Ratio',
82
+ name: 'aspect_ratio',
83
+ type: 'string',
84
+ default: '',
85
+ displayOptions: { show: { operation: ['textToVideo', 'imageToVideo'] } },
86
+ },
87
+ {
88
+ displayName: 'Duration',
89
+ name: 'duration',
90
+ type: 'number',
91
+ default: '',
92
+ required: true,
93
+ description: 'Video duration in seconds (3-15)',
94
+ displayOptions: { show: { operation: ['textToVideo', 'imageToVideo'] } },
95
+ },
96
+ {
97
+ displayName: 'Duration',
98
+ name: 'duration',
99
+ type: 'string',
100
+ default: '',
101
+ required: true,
102
+ description: 'Motion control duration in seconds (3-30) as a string',
103
+ displayOptions: { show: { operation: ['motionControl'] } },
104
+ },
105
+ {
106
+ displayName: 'Model',
107
+ name: 'model',
108
+ type: 'string',
109
+ default: '',
110
+ description: 'Optional model ID',
111
+ displayOptions: { show: { operation: ['textToVideo', 'imageToVideo'] } },
112
+ },
113
+ {
114
+ displayName: 'Negative Prompt',
115
+ name: 'negative_prompt',
116
+ type: 'string',
117
+ default: '',
118
+ displayOptions: { show: { operation: ['textToVideo'] } },
119
+ },
120
+ ];
121
+ class FrankLabMars {
122
+ constructor() {
123
+ this.description = {
124
+ displayName: 'FrankLab MARS',
125
+ name: 'frankLabMars',
126
+ icon: 'file:mars.svg',
127
+ subtitle: '={{$parameter["operation"]}}',
128
+ group: ['transform'],
129
+ version: 1,
130
+ description: 'Generate videos from text or images, apply effects and motion control with FrankLab MARS.',
131
+ defaults: {
132
+ name: 'FrankLab MARS',
133
+ },
134
+ inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
135
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
136
+ credentials: [
137
+ {
138
+ name: 'frankLabApi',
139
+ required: true,
140
+ },
141
+ ],
142
+ usableAsTool: true,
143
+ properties: [
144
+ {
145
+ displayName: 'Operation',
146
+ name: 'operation',
147
+ type: 'options',
148
+ noDataExpression: true,
149
+ default: 'textToVideo',
150
+ options: [
151
+ { name: 'Get Image Video Status', value: 'getImageStatus', action: 'Get an image to video task status' },
152
+ { name: 'Get Motion Status', value: 'getMotionStatus', action: 'Get a motion control task status' },
153
+ { name: 'Get Text Video Status', value: 'getTextStatus', action: 'Get a text to video task status' },
154
+ { name: 'Get Video Effects Status', value: 'getEffectsStatus', action: 'Get a video effects task status' },
155
+ { name: 'Image to Video', value: 'imageToVideo', action: 'Generate a video from an image' },
156
+ { name: 'Motion Control', value: 'motionControl', action: 'Apply motion control to a video' },
157
+ { name: 'Text to Video', value: 'textToVideo', action: 'Generate a video from text' },
158
+ { name: 'Video Effects', value: 'effects', action: 'Apply effects to a video' },
159
+ ],
160
+ },
161
+ ...videoFields,
162
+ node_utils_1.jobIdProperty,
163
+ node_utils_1.payloadProperty,
164
+ node_utils_1.waitProperty,
165
+ ],
166
+ };
167
+ }
168
+ async execute() {
169
+ return (0, node_utils_1.executeFrankLabModule)(this, 'mars', {
170
+ default: 'getTextStatus',
171
+ imageToVideo: 'getImageStatus',
172
+ effects: 'getEffectsStatus',
173
+ motionControl: 'getMotionStatus',
174
+ });
175
+ }
176
+ }
177
+ exports.FrankLabMars = FrankLabMars;
178
+ //# sourceMappingURL=FrankLabMars.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FrankLabMars.node.js","sourceRoot":"","sources":["../../../nodes/Mars/FrankLabMars.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ {
2
+ "node": "n8n-nodes-base.frankLabMars",
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#mars" }]
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 MARS">
2
+ <rect width="64" height="64" rx="8" fill="#111827"/>
3
+ <circle cx="32" cy="32" r="14" fill="#f8734a"/>
4
+ <path d="M8 26c8-2 14 2 18 6" stroke="#f8fafc" stroke-width="2" fill="none"/>
5
+ <path d="M38 46c6-4 12-4 18-2" stroke="#f8fafc" stroke-width="2" fill="none"/>
6
+ </svg>
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class FrankLabMercury implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<import("n8n-workflow").INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FrankLabMercury = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const node_utils_1 = require("../shared/node-utils");
6
+ const lipSyncFields = [
7
+ {
8
+ displayName: 'Video URL',
9
+ name: 'video_url',
10
+ type: 'string',
11
+ default: '',
12
+ required: true,
13
+ description: 'Public http(s) URL of the video to lip-sync',
14
+ displayOptions: { show: { operation: ['lipSync', 'advancedLipSync'] } },
15
+ },
16
+ {
17
+ displayName: 'Audio URL',
18
+ name: 'audio_url',
19
+ type: 'string',
20
+ default: '',
21
+ required: true,
22
+ description: 'Public http(s) URL of the speech audio',
23
+ displayOptions: { show: { operation: ['lipSync', 'advancedLipSync'] } },
24
+ },
25
+ {
26
+ displayName: 'Image URL',
27
+ name: 'image_url',
28
+ type: 'string',
29
+ default: '',
30
+ required: true,
31
+ description: 'Public http(s) image for face identification',
32
+ displayOptions: { show: { operation: ['identifyFace'] } },
33
+ },
34
+ ];
35
+ class FrankLabMercury {
36
+ constructor() {
37
+ this.description = {
38
+ displayName: 'FrankLab MERCURY',
39
+ name: 'frankLabMercury',
40
+ icon: 'file:mercury.svg',
41
+ subtitle: '={{$parameter["operation"]}}',
42
+ group: ['transform'],
43
+ version: 1,
44
+ description: 'Lip-sync videos to speech audio and identify faces with FrankLab MERCURY.',
45
+ defaults: {
46
+ name: 'FrankLab MERCURY',
47
+ },
48
+ inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
49
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
50
+ credentials: [
51
+ {
52
+ name: 'frankLabApi',
53
+ required: true,
54
+ },
55
+ ],
56
+ usableAsTool: true,
57
+ properties: [
58
+ {
59
+ displayName: 'Operation',
60
+ name: 'operation',
61
+ type: 'options',
62
+ noDataExpression: true,
63
+ default: 'lipSync',
64
+ options: [
65
+ { name: 'Advanced Lip Sync', value: 'advancedLipSync', action: 'Run an advanced lip sync' },
66
+ { name: 'Get Advanced Lip Sync Status', value: 'getAdvancedLipSyncStatus', action: 'Get an advanced lip sync status' },
67
+ { name: 'Get Lip Sync Status', value: 'getLipSyncStatus', action: 'Get a lip sync status' },
68
+ { name: 'Identify Face', value: 'identifyFace', action: 'Identify faces in an image' },
69
+ { name: 'Lip Sync', value: 'lipSync', action: 'Lip sync a video to audio' },
70
+ ],
71
+ },
72
+ ...lipSyncFields,
73
+ node_utils_1.jobIdProperty,
74
+ node_utils_1.payloadProperty,
75
+ node_utils_1.waitProperty,
76
+ ],
77
+ };
78
+ }
79
+ async execute() {
80
+ return (0, node_utils_1.executeFrankLabModule)(this, 'mercury', { default: 'getLipSyncStatus', advancedLipSync: 'getAdvancedLipSyncStatus', identifyFace: '' });
81
+ }
82
+ }
83
+ exports.FrankLabMercury = FrankLabMercury;
84
+ //# sourceMappingURL=FrankLabMercury.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FrankLabMercury.node.js","sourceRoot":"","sources":["../../../nodes/Mercury/FrankLabMercury.node.ts"],"names":[],"mappings":";;;AACA,+CAAmD;AACnD,qDAA2G;AAE3G,MAAM,aAAa,GAAsB;IACxC;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,6CAA6C;QAC1D,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,EAAE;KACvE;IACD;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,wCAAwC;QACrD,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,EAAE;KACvE;IACD;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,8CAA8C;QAC3D,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE;KACzD;CACD,CAAC;AAEF,MAAa,eAAe;IAA5B;QAEC,gBAAW,GAAyB;YACnC,WAAW,EAAE,kBAAkB;YAC/B,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,kBAAkB;YACxB,QAAQ,EAAE,8BAA8B;YACxC,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,2EAA2E;YACxF,QAAQ,EAAE;gBACT,IAAI,EAAE,kBAAkB;aACxB;YACD,MAAM,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YAClC,OAAO,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YACnC,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE;gBACX;oBACC,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE,SAAS;oBAClB,OAAO,EAAE;wBACR,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,0BAA0B,EAAE;wBAC3F,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,0BAA0B,EAAE,MAAM,EAAE,iCAAiC,EAAE;wBACtH,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,uBAAuB,EAAE;wBAC3F,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,4BAA4B,EAAE;wBACtF,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,2BAA2B,EAAE;qBAC3E;iBACD;gBACD,GAAG,aAAa;gBAChB,0BAAa;gBACb,4BAAe;gBACf,yBAAY;aACZ;SACD,CAAC;IAKH,CAAC;IAHA,KAAK,CAAC,OAAO;QACZ,OAAO,IAAA,kCAAqB,EAAC,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,0BAA0B,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/I,CAAC;CACD;AA/CD,0CA+CC"}
@@ -0,0 +1,10 @@
1
+ {
2
+ "node": "n8n-nodes-base.frankLabMercury",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": ["Marketing & Content", "Communication"],
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#mercury" }]
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 MERCURY">
2
+ <rect width="64" height="64" rx="8" fill="#111827"/>
3
+ <circle cx="32" cy="26" r="10" fill="none" stroke="#38bdf8" stroke-width="3"/>
4
+ <path d="M22 52c2-10 6-14 10-14s8 4 10 14" fill="#f8fafc"/>
5
+ <path d="M28 30q4 4 8 0" stroke="#22c55e" stroke-width="2" fill="none"/>
6
+ </svg>
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class FrankLabMinimax implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<import("n8n-workflow").INodeExecutionData[][]>;
5
+ }