@ibracob.dev/n8n-nodes-fal 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +216 -0
  3. package/dist/credentials/FalApi.credentials.d.ts +10 -0
  4. package/dist/credentials/FalApi.credentials.d.ts.map +1 -0
  5. package/dist/credentials/FalApi.credentials.js +36 -0
  6. package/dist/credentials/FalApi.credentials.js.map +1 -0
  7. package/dist/credentials/fal-ai-logo.svg +3 -0
  8. package/dist/nodes/Fal/Fal.node.d.ts +6 -0
  9. package/dist/nodes/Fal/Fal.node.d.ts.map +1 -0
  10. package/dist/nodes/Fal/Fal.node.js +202 -0
  11. package/dist/nodes/Fal/Fal.node.js.map +1 -0
  12. package/dist/nodes/Fal/enums/index.d.ts +2 -0
  13. package/dist/nodes/Fal/enums/index.d.ts.map +1 -0
  14. package/dist/nodes/Fal/enums/index.js +18 -0
  15. package/dist/nodes/Fal/enums/index.js.map +1 -0
  16. package/dist/nodes/Fal/enums/queue-status.enum.d.ts +7 -0
  17. package/dist/nodes/Fal/enums/queue-status.enum.d.ts.map +1 -0
  18. package/dist/nodes/Fal/enums/queue-status.enum.js +11 -0
  19. package/dist/nodes/Fal/enums/queue-status.enum.js.map +1 -0
  20. package/dist/nodes/Fal/fal-ai-logo.svg +3 -0
  21. package/dist/nodes/Fal/interfaces/index.d.ts +3 -0
  22. package/dist/nodes/Fal/interfaces/index.d.ts.map +1 -0
  23. package/dist/nodes/Fal/interfaces/index.js +19 -0
  24. package/dist/nodes/Fal/interfaces/index.js.map +1 -0
  25. package/dist/nodes/Fal/interfaces/queue-status-response.interface.d.ts +14 -0
  26. package/dist/nodes/Fal/interfaces/queue-status-response.interface.d.ts.map +1 -0
  27. package/dist/nodes/Fal/interfaces/queue-status-response.interface.js +3 -0
  28. package/dist/nodes/Fal/interfaces/queue-status-response.interface.js.map +1 -0
  29. package/dist/nodes/Fal/interfaces/queue-submit-response.interface.d.ts +6 -0
  30. package/dist/nodes/Fal/interfaces/queue-submit-response.interface.d.ts.map +1 -0
  31. package/dist/nodes/Fal/interfaces/queue-submit-response.interface.js +3 -0
  32. package/dist/nodes/Fal/interfaces/queue-submit-response.interface.js.map +1 -0
  33. package/dist/nodes/Fal/resources/image-editing/description.d.ts +5 -0
  34. package/dist/nodes/Fal/resources/image-editing/description.d.ts.map +1 -0
  35. package/dist/nodes/Fal/resources/image-editing/description.js +178 -0
  36. package/dist/nodes/Fal/resources/image-editing/description.js.map +1 -0
  37. package/dist/nodes/Fal/resources/image-editing/execute/index.d.ts +3 -0
  38. package/dist/nodes/Fal/resources/image-editing/execute/index.d.ts.map +1 -0
  39. package/dist/nodes/Fal/resources/image-editing/execute/index.js +63 -0
  40. package/dist/nodes/Fal/resources/image-editing/execute/index.js.map +1 -0
  41. package/dist/nodes/Fal/resources/image-editing/index.d.ts +4 -0
  42. package/dist/nodes/Fal/resources/image-editing/index.d.ts.map +1 -0
  43. package/dist/nodes/Fal/resources/image-editing/index.js +41 -0
  44. package/dist/nodes/Fal/resources/image-editing/index.js.map +1 -0
  45. package/dist/nodes/Fal/resources/image-editing/models.d.ts +6 -0
  46. package/dist/nodes/Fal/resources/image-editing/models.d.ts.map +1 -0
  47. package/dist/nodes/Fal/resources/image-editing/models.js +31 -0
  48. package/dist/nodes/Fal/resources/image-editing/models.js.map +1 -0
  49. package/dist/nodes/Fal/resources/image-to-video/description.d.ts +5 -0
  50. package/dist/nodes/Fal/resources/image-to-video/description.d.ts.map +1 -0
  51. package/dist/nodes/Fal/resources/image-to-video/description.js +236 -0
  52. package/dist/nodes/Fal/resources/image-to-video/description.js.map +1 -0
  53. package/dist/nodes/Fal/resources/image-to-video/execute/index.d.ts +3 -0
  54. package/dist/nodes/Fal/resources/image-to-video/execute/index.d.ts.map +1 -0
  55. package/dist/nodes/Fal/resources/image-to-video/execute/index.js +64 -0
  56. package/dist/nodes/Fal/resources/image-to-video/execute/index.js.map +1 -0
  57. package/dist/nodes/Fal/resources/image-to-video/index.d.ts +4 -0
  58. package/dist/nodes/Fal/resources/image-to-video/index.d.ts.map +1 -0
  59. package/dist/nodes/Fal/resources/image-to-video/index.js +41 -0
  60. package/dist/nodes/Fal/resources/image-to-video/index.js.map +1 -0
  61. package/dist/nodes/Fal/resources/image-to-video/models.d.ts +6 -0
  62. package/dist/nodes/Fal/resources/image-to-video/models.d.ts.map +1 -0
  63. package/dist/nodes/Fal/resources/image-to-video/models.js +66 -0
  64. package/dist/nodes/Fal/resources/image-to-video/models.js.map +1 -0
  65. package/dist/nodes/Fal/resources/llm/description.d.ts +5 -0
  66. package/dist/nodes/Fal/resources/llm/description.d.ts.map +1 -0
  67. package/dist/nodes/Fal/resources/llm/description.js +132 -0
  68. package/dist/nodes/Fal/resources/llm/description.js.map +1 -0
  69. package/dist/nodes/Fal/resources/llm/execute/index.d.ts +3 -0
  70. package/dist/nodes/Fal/resources/llm/execute/index.d.ts.map +1 -0
  71. package/dist/nodes/Fal/resources/llm/execute/index.js +49 -0
  72. package/dist/nodes/Fal/resources/llm/execute/index.js.map +1 -0
  73. package/dist/nodes/Fal/resources/llm/index.d.ts +4 -0
  74. package/dist/nodes/Fal/resources/llm/index.d.ts.map +1 -0
  75. package/dist/nodes/Fal/resources/llm/index.js +41 -0
  76. package/dist/nodes/Fal/resources/llm/index.js.map +1 -0
  77. package/dist/nodes/Fal/resources/llm/models.d.ts +6 -0
  78. package/dist/nodes/Fal/resources/llm/models.d.ts.map +1 -0
  79. package/dist/nodes/Fal/resources/llm/models.js +136 -0
  80. package/dist/nodes/Fal/resources/llm/models.js.map +1 -0
  81. package/dist/nodes/Fal/resources/queue/description.d.ts +4 -0
  82. package/dist/nodes/Fal/resources/queue/description.d.ts.map +1 -0
  83. package/dist/nodes/Fal/resources/queue/description.js +149 -0
  84. package/dist/nodes/Fal/resources/queue/description.js.map +1 -0
  85. package/dist/nodes/Fal/resources/queue/execute/index.d.ts +3 -0
  86. package/dist/nodes/Fal/resources/queue/execute/index.d.ts.map +1 -0
  87. package/dist/nodes/Fal/resources/queue/execute/index.js +220 -0
  88. package/dist/nodes/Fal/resources/queue/execute/index.js.map +1 -0
  89. package/dist/nodes/Fal/resources/queue/index.d.ts +4 -0
  90. package/dist/nodes/Fal/resources/queue/index.d.ts.map +1 -0
  91. package/dist/nodes/Fal/resources/queue/index.js +9 -0
  92. package/dist/nodes/Fal/resources/queue/index.js.map +1 -0
  93. package/dist/nodes/Fal/resources/queue/models.d.ts +75 -0
  94. package/dist/nodes/Fal/resources/queue/models.d.ts.map +1 -0
  95. package/dist/nodes/Fal/resources/queue/models.js +12 -0
  96. package/dist/nodes/Fal/resources/queue/models.js.map +1 -0
  97. package/dist/nodes/Fal/resources/text-to-image/description.d.ts +5 -0
  98. package/dist/nodes/Fal/resources/text-to-image/description.d.ts.map +1 -0
  99. package/dist/nodes/Fal/resources/text-to-image/description.js +165 -0
  100. package/dist/nodes/Fal/resources/text-to-image/description.js.map +1 -0
  101. package/dist/nodes/Fal/resources/text-to-image/execute/index.d.ts +3 -0
  102. package/dist/nodes/Fal/resources/text-to-image/execute/index.d.ts.map +1 -0
  103. package/dist/nodes/Fal/resources/text-to-image/execute/index.js +64 -0
  104. package/dist/nodes/Fal/resources/text-to-image/execute/index.js.map +1 -0
  105. package/dist/nodes/Fal/resources/text-to-image/index.d.ts +4 -0
  106. package/dist/nodes/Fal/resources/text-to-image/index.d.ts.map +1 -0
  107. package/dist/nodes/Fal/resources/text-to-image/index.js +41 -0
  108. package/dist/nodes/Fal/resources/text-to-image/index.js.map +1 -0
  109. package/dist/nodes/Fal/resources/text-to-image/models.d.ts +6 -0
  110. package/dist/nodes/Fal/resources/text-to-image/models.d.ts.map +1 -0
  111. package/dist/nodes/Fal/resources/text-to-image/models.js +36 -0
  112. package/dist/nodes/Fal/resources/text-to-image/models.js.map +1 -0
  113. package/dist/nodes/Fal/resources/text-to-video/description.d.ts +5 -0
  114. package/dist/nodes/Fal/resources/text-to-video/description.d.ts.map +1 -0
  115. package/dist/nodes/Fal/resources/text-to-video/description.js +174 -0
  116. package/dist/nodes/Fal/resources/text-to-video/description.js.map +1 -0
  117. package/dist/nodes/Fal/resources/text-to-video/execute/index.d.ts +3 -0
  118. package/dist/nodes/Fal/resources/text-to-video/execute/index.d.ts.map +1 -0
  119. package/dist/nodes/Fal/resources/text-to-video/execute/index.js +57 -0
  120. package/dist/nodes/Fal/resources/text-to-video/execute/index.js.map +1 -0
  121. package/dist/nodes/Fal/resources/text-to-video/index.d.ts +4 -0
  122. package/dist/nodes/Fal/resources/text-to-video/index.d.ts.map +1 -0
  123. package/dist/nodes/Fal/resources/text-to-video/index.js +41 -0
  124. package/dist/nodes/Fal/resources/text-to-video/index.js.map +1 -0
  125. package/dist/nodes/Fal/resources/text-to-video/models.d.ts +6 -0
  126. package/dist/nodes/Fal/resources/text-to-video/models.d.ts.map +1 -0
  127. package/dist/nodes/Fal/resources/text-to-video/models.js +26 -0
  128. package/dist/nodes/Fal/resources/text-to-video/models.js.map +1 -0
  129. package/dist/nodes/Fal/resources/utility/description.d.ts +5 -0
  130. package/dist/nodes/Fal/resources/utility/description.d.ts.map +1 -0
  131. package/dist/nodes/Fal/resources/utility/description.js +101 -0
  132. package/dist/nodes/Fal/resources/utility/description.js.map +1 -0
  133. package/dist/nodes/Fal/resources/utility/execute/index.d.ts +3 -0
  134. package/dist/nodes/Fal/resources/utility/execute/index.d.ts.map +1 -0
  135. package/dist/nodes/Fal/resources/utility/execute/index.js +56 -0
  136. package/dist/nodes/Fal/resources/utility/execute/index.js.map +1 -0
  137. package/dist/nodes/Fal/resources/utility/index.d.ts +4 -0
  138. package/dist/nodes/Fal/resources/utility/index.d.ts.map +1 -0
  139. package/dist/nodes/Fal/resources/utility/index.js +41 -0
  140. package/dist/nodes/Fal/resources/utility/index.js.map +1 -0
  141. package/dist/nodes/Fal/resources/utility/models.d.ts +6 -0
  142. package/dist/nodes/Fal/resources/utility/models.d.ts.map +1 -0
  143. package/dist/nodes/Fal/resources/utility/models.js +31 -0
  144. package/dist/nodes/Fal/resources/utility/models.js.map +1 -0
  145. package/dist/nodes/Fal/resources/video-to-video/description.d.ts +5 -0
  146. package/dist/nodes/Fal/resources/video-to-video/description.d.ts.map +1 -0
  147. package/dist/nodes/Fal/resources/video-to-video/description.js +144 -0
  148. package/dist/nodes/Fal/resources/video-to-video/description.js.map +1 -0
  149. package/dist/nodes/Fal/resources/video-to-video/execute/index.d.ts +3 -0
  150. package/dist/nodes/Fal/resources/video-to-video/execute/index.d.ts.map +1 -0
  151. package/dist/nodes/Fal/resources/video-to-video/execute/index.js +47 -0
  152. package/dist/nodes/Fal/resources/video-to-video/execute/index.js.map +1 -0
  153. package/dist/nodes/Fal/resources/video-to-video/index.d.ts +4 -0
  154. package/dist/nodes/Fal/resources/video-to-video/index.d.ts.map +1 -0
  155. package/dist/nodes/Fal/resources/video-to-video/index.js +41 -0
  156. package/dist/nodes/Fal/resources/video-to-video/index.js.map +1 -0
  157. package/dist/nodes/Fal/resources/video-to-video/models.d.ts +6 -0
  158. package/dist/nodes/Fal/resources/video-to-video/models.d.ts.map +1 -0
  159. package/dist/nodes/Fal/resources/video-to-video/models.js +11 -0
  160. package/dist/nodes/Fal/resources/video-to-video/models.js.map +1 -0
  161. package/dist/nodes/Fal/resources/vision/description.d.ts +5 -0
  162. package/dist/nodes/Fal/resources/vision/description.d.ts.map +1 -0
  163. package/dist/nodes/Fal/resources/vision/description.js +146 -0
  164. package/dist/nodes/Fal/resources/vision/description.js.map +1 -0
  165. package/dist/nodes/Fal/resources/vision/execute/index.d.ts +3 -0
  166. package/dist/nodes/Fal/resources/vision/execute/index.d.ts.map +1 -0
  167. package/dist/nodes/Fal/resources/vision/execute/index.js +56 -0
  168. package/dist/nodes/Fal/resources/vision/execute/index.js.map +1 -0
  169. package/dist/nodes/Fal/resources/vision/index.d.ts +4 -0
  170. package/dist/nodes/Fal/resources/vision/index.d.ts.map +1 -0
  171. package/dist/nodes/Fal/resources/vision/index.js +41 -0
  172. package/dist/nodes/Fal/resources/vision/index.js.map +1 -0
  173. package/dist/nodes/Fal/resources/vision/models.d.ts +6 -0
  174. package/dist/nodes/Fal/resources/vision/models.d.ts.map +1 -0
  175. package/dist/nodes/Fal/resources/vision/models.js +46 -0
  176. package/dist/nodes/Fal/resources/vision/models.js.map +1 -0
  177. package/dist/nodes/Fal/resources/workflow/description.d.ts +4 -0
  178. package/dist/nodes/Fal/resources/workflow/description.d.ts.map +1 -0
  179. package/dist/nodes/Fal/resources/workflow/description.js +178 -0
  180. package/dist/nodes/Fal/resources/workflow/description.js.map +1 -0
  181. package/dist/nodes/Fal/resources/workflow/execute/index.d.ts +3 -0
  182. package/dist/nodes/Fal/resources/workflow/execute/index.d.ts.map +1 -0
  183. package/dist/nodes/Fal/resources/workflow/execute/index.js +120 -0
  184. package/dist/nodes/Fal/resources/workflow/execute/index.js.map +1 -0
  185. package/dist/nodes/Fal/resources/workflow/index.d.ts +4 -0
  186. package/dist/nodes/Fal/resources/workflow/index.d.ts.map +1 -0
  187. package/dist/nodes/Fal/resources/workflow/index.js +9 -0
  188. package/dist/nodes/Fal/resources/workflow/index.js.map +1 -0
  189. package/dist/nodes/Fal/resources/workflow/models.d.ts +65 -0
  190. package/dist/nodes/Fal/resources/workflow/models.d.ts.map +1 -0
  191. package/dist/nodes/Fal/resources/workflow/models.js +9 -0
  192. package/dist/nodes/Fal/resources/workflow/models.js.map +1 -0
  193. package/dist/nodes/Fal/utils/poll-queue.util.d.ts +9 -0
  194. package/dist/nodes/Fal/utils/poll-queue.util.d.ts.map +1 -0
  195. package/dist/nodes/Fal/utils/poll-queue.util.js +62 -0
  196. package/dist/nodes/Fal/utils/poll-queue.util.js.map +1 -0
  197. package/package.json +86 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-submit-response.interface.d.ts","sourceRoot":"","sources":["../../../../nodes/Fal/interfaces/queue-submit-response.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=queue-submit-response.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-submit-response.interface.js","sourceRoot":"","sources":["../../../../nodes/Fal/interfaces/queue-submit-response.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { INodeProperties } from 'n8n-workflow';
2
+ export declare const imageEditingOperations: INodeProperties[];
3
+ export declare const imageEditingFields: INodeProperties[];
4
+ export declare const description: INodeProperties[];
5
+ //# sourceMappingURL=description.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"description.d.ts","sourceRoot":"","sources":["../../../../../nodes/Fal/resources/image-editing/description.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,eAAO,MAAM,sBAAsB,EAAE,eAAe,EAqBnD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,eAAe,EAsJ/C,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,eAAe,EAAuD,CAAC"}
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.description = exports.imageEditingFields = exports.imageEditingOperations = void 0;
4
+ const models_1 = require("./models");
5
+ exports.imageEditingOperations = [
6
+ {
7
+ displayName: 'Operation',
8
+ name: 'operation',
9
+ type: 'options',
10
+ noDataExpression: true,
11
+ displayOptions: {
12
+ show: {
13
+ resource: ['imageEditing'],
14
+ },
15
+ },
16
+ options: [
17
+ {
18
+ name: 'Edit',
19
+ value: 'edit',
20
+ description: 'Edit an image using a text prompt',
21
+ action: 'Edit an image using a text prompt',
22
+ },
23
+ ],
24
+ default: 'edit',
25
+ },
26
+ ];
27
+ exports.imageEditingFields = [
28
+ {
29
+ displayName: 'Model',
30
+ name: 'model',
31
+ type: 'options',
32
+ displayOptions: {
33
+ show: {
34
+ resource: ['imageEditing'],
35
+ operation: ['edit'],
36
+ },
37
+ },
38
+ options: models_1.imageEditingModels,
39
+ default: 'fal-ai/flux-pro/kontext',
40
+ description: 'The AI model to use for image editing',
41
+ },
42
+ {
43
+ displayName: 'Image URL',
44
+ name: 'imageUrl',
45
+ type: 'string',
46
+ displayOptions: {
47
+ show: {
48
+ resource: ['imageEditing'],
49
+ operation: ['edit'],
50
+ },
51
+ },
52
+ default: '',
53
+ required: true,
54
+ placeholder: '={{$json.imageUrl}} or https://example.com/image.jpg',
55
+ description: 'The URL of the image to edit. Supports expressions from previous nodes.',
56
+ },
57
+ {
58
+ displayName: 'Prompt',
59
+ name: 'prompt',
60
+ type: 'string',
61
+ typeOptions: {
62
+ rows: 4,
63
+ },
64
+ displayOptions: {
65
+ show: {
66
+ resource: ['imageEditing'],
67
+ operation: ['edit'],
68
+ },
69
+ },
70
+ default: '',
71
+ required: true,
72
+ placeholder: '={{$json.editInstruction}} or Transform this into a watercolor painting',
73
+ description: 'The text prompt describing the edits to make. Supports expressions from previous nodes.',
74
+ },
75
+ {
76
+ displayName: 'Additional Options',
77
+ name: 'additionalOptions',
78
+ type: 'collection',
79
+ placeholder: 'Add Option',
80
+ default: {},
81
+ displayOptions: {
82
+ show: {
83
+ resource: ['imageEditing'],
84
+ operation: ['edit'],
85
+ },
86
+ },
87
+ options: [
88
+ {
89
+ displayName: 'Image Size',
90
+ name: 'imageSize',
91
+ type: 'options',
92
+ options: [
93
+ {
94
+ name: 'Square (1024x1024)',
95
+ value: 'square',
96
+ },
97
+ {
98
+ name: 'Landscape (1280x720)',
99
+ value: 'landscape',
100
+ },
101
+ {
102
+ name: 'Portrait (720x1280)',
103
+ value: 'portrait',
104
+ },
105
+ {
106
+ name: 'Custom',
107
+ value: 'custom',
108
+ },
109
+ ],
110
+ default: 'square',
111
+ description: 'The size of the edited image',
112
+ },
113
+ {
114
+ displayName: 'Width',
115
+ name: 'width',
116
+ type: 'number',
117
+ displayOptions: {
118
+ show: {
119
+ imageSize: ['custom'],
120
+ },
121
+ },
122
+ default: 1024,
123
+ description: 'Width of the edited image',
124
+ },
125
+ {
126
+ displayName: 'Height',
127
+ name: 'height',
128
+ type: 'number',
129
+ displayOptions: {
130
+ show: {
131
+ imageSize: ['custom'],
132
+ },
133
+ },
134
+ default: 1024,
135
+ description: 'Height of the edited image',
136
+ },
137
+ {
138
+ displayName: 'Seed',
139
+ name: 'seed',
140
+ type: 'number',
141
+ default: -1,
142
+ description: 'Random seed for reproducibility. Use -1 for random.',
143
+ },
144
+ {
145
+ displayName: 'Guidance Scale',
146
+ name: 'guidanceScale',
147
+ type: 'number',
148
+ typeOptions: {
149
+ minValue: 0,
150
+ maxValue: 20,
151
+ },
152
+ default: 7.5,
153
+ description: 'How closely to follow the prompt (0-20)',
154
+ },
155
+ {
156
+ displayName: 'Strength',
157
+ name: 'strength',
158
+ type: 'number',
159
+ typeOptions: {
160
+ minValue: 0,
161
+ maxValue: 1,
162
+ numberPrecision: 2,
163
+ },
164
+ default: 0.8,
165
+ description: 'How much to transform the original image (0-1)',
166
+ },
167
+ {
168
+ displayName: 'Number of Inference Steps',
169
+ name: 'numInferenceSteps',
170
+ type: 'number',
171
+ default: 50,
172
+ description: 'Number of denoising steps',
173
+ },
174
+ ],
175
+ },
176
+ ];
177
+ exports.description = [...exports.imageEditingOperations, ...exports.imageEditingFields];
178
+ //# sourceMappingURL=description.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"description.js","sourceRoot":"","sources":["../../../../../nodes/Fal/resources/image-editing/description.ts"],"names":[],"mappings":";;;AACA,qCAA8C;AAEjC,QAAA,sBAAsB,GAAsB;IACxD;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,cAAc,CAAC;aAC1B;SACD;QACD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;gBACb,WAAW,EAAE,mCAAmC;gBAChD,MAAM,EAAE,mCAAmC;aAC3C;SACD;QACD,OAAO,EAAE,MAAM;KACf;CACD,CAAC;AAEW,QAAA,kBAAkB,GAAsB;IACpD;QACC,WAAW,EAAE,OAAO;QACpB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,SAAS;QACf,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,cAAc,CAAC;gBAC1B,SAAS,EAAE,CAAC,MAAM,CAAC;aACnB;SACD;QACD,OAAO,EAAE,2BAAkB;QAC3B,OAAO,EAAE,yBAAyB;QAClC,WAAW,EAAE,uCAAuC;KACpD;IACD;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,cAAc,CAAC;gBAC1B,SAAS,EAAE,CAAC,MAAM,CAAC;aACnB;SACD;QACD,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,sDAAsD;QACnE,WAAW,EAAE,yEAAyE;KACtF;IACD;QACC,WAAW,EAAE,QAAQ;QACrB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE;YACZ,IAAI,EAAE,CAAC;SACP;QACD,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,cAAc,CAAC;gBAC1B,SAAS,EAAE,CAAC,MAAM,CAAC;aACnB;SACD;QACD,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,yEAAyE;QACtF,WAAW,EACV,yFAAyF;KAC1F;IACD;QACC,WAAW,EAAE,oBAAoB;QACjC,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,EAAE;QACX,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,cAAc,CAAC;gBAC1B,SAAS,EAAE,CAAC,MAAM,CAAC;aACnB;SACD;QACD,OAAO,EAAE;YACR;gBACC,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE;oBACR;wBACC,IAAI,EAAE,oBAAoB;wBAC1B,KAAK,EAAE,QAAQ;qBACf;oBACD;wBACC,IAAI,EAAE,sBAAsB;wBAC5B,KAAK,EAAE,WAAW;qBAClB;oBACD;wBACC,IAAI,EAAE,qBAAqB;wBAC3B,KAAK,EAAE,UAAU;qBACjB;oBACD;wBACC,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,QAAQ;qBACf;iBACD;gBACD,OAAO,EAAE,QAAQ;gBACjB,WAAW,EAAE,8BAA8B;aAC3C;YACD;gBACC,WAAW,EAAE,OAAO;gBACpB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,cAAc,EAAE;oBACf,IAAI,EAAE;wBACL,SAAS,EAAE,CAAC,QAAQ,CAAC;qBACrB;iBACD;gBACD,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,2BAA2B;aACxC;YACD;gBACC,WAAW,EAAE,QAAQ;gBACrB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,cAAc,EAAE;oBACf,IAAI,EAAE;wBACL,SAAS,EAAE,CAAC,QAAQ,CAAC;qBACrB;iBACD;gBACD,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,4BAA4B;aACzC;YACD;gBACC,WAAW,EAAE,MAAM;gBACnB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC,CAAC;gBACX,WAAW,EAAE,qDAAqD;aAClE;YACD;gBACC,WAAW,EAAE,gBAAgB;gBAC7B,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACZ,QAAQ,EAAE,CAAC;oBACX,QAAQ,EAAE,EAAE;iBACZ;gBACD,OAAO,EAAE,GAAG;gBACZ,WAAW,EAAE,yCAAyC;aACtD;YACD;gBACC,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACZ,QAAQ,EAAE,CAAC;oBACX,QAAQ,EAAE,CAAC;oBACX,eAAe,EAAE,CAAC;iBAClB;gBACD,OAAO,EAAE,GAAG;gBACZ,WAAW,EAAE,gDAAgD;aAC7D;YACD;gBACC,WAAW,EAAE,2BAA2B;gBACxC,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,2BAA2B;aACxC;SACD;KACD;CACD,CAAC;AAEW,QAAA,WAAW,GAAsB,CAAC,GAAG,8BAAsB,EAAE,GAAG,0BAAkB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { IExecuteFunctions, IDataObject } from 'n8n-workflow';
2
+ export declare function execute(this: IExecuteFunctions, itemIndex: number): Promise<IDataObject>;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../nodes/Fal/resources/image-editing/execute/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAgB,MAAM,cAAc,CAAC;AAI5E,wBAAsB,OAAO,CAAC,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAmE9F"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.execute = execute;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const poll_queue_util_1 = require("../../../utils/poll-queue.util");
6
+ async function execute(itemIndex) {
7
+ const model = this.getNodeParameter('model', itemIndex);
8
+ const imageUrl = this.getNodeParameter('imageUrl', itemIndex);
9
+ const prompt = this.getNodeParameter('prompt', itemIndex);
10
+ const additionalOptions = this.getNodeParameter('additionalOptions', itemIndex, {});
11
+ // Build the request body
12
+ const body = {
13
+ image_url: imageUrl,
14
+ prompt,
15
+ };
16
+ // Handle image size
17
+ const imageSize = additionalOptions.imageSize || 'square';
18
+ if (imageSize === 'custom') {
19
+ body.image_size = {
20
+ width: additionalOptions.width || 1024,
21
+ height: additionalOptions.height || 1024,
22
+ };
23
+ }
24
+ else {
25
+ const sizes = {
26
+ square: { width: 1024, height: 1024 },
27
+ landscape: { width: 1280, height: 720 },
28
+ portrait: { width: 720, height: 1280 },
29
+ };
30
+ body.image_size = sizes[imageSize];
31
+ }
32
+ // Add optional parameters
33
+ if (additionalOptions.seed && additionalOptions.seed !== -1) {
34
+ body.seed = additionalOptions.seed;
35
+ }
36
+ if (additionalOptions.guidanceScale) {
37
+ body.guidance_scale = additionalOptions.guidanceScale;
38
+ }
39
+ if (additionalOptions.strength !== undefined) {
40
+ body.strength = additionalOptions.strength;
41
+ }
42
+ if (additionalOptions.numInferenceSteps) {
43
+ body.num_inference_steps = additionalOptions.numInferenceSteps;
44
+ }
45
+ // Submit the request to the queue
46
+ const submitResponse = await this.helpers.httpRequestWithAuthentication.call(this, 'falApi', {
47
+ method: 'POST',
48
+ url: `/${model}`,
49
+ body,
50
+ json: true,
51
+ });
52
+ const queueData = submitResponse;
53
+ if (!queueData.request_id) {
54
+ throw new n8n_workflow_1.NodeApiError(this.getNode(), {
55
+ message: 'Failed to submit request to queue',
56
+ description: 'No request_id received',
57
+ });
58
+ }
59
+ // Poll for completion
60
+ const result = await poll_queue_util_1.pollQueue.call(this, queueData.request_id, queueData.response_url);
61
+ return result;
62
+ }
63
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../nodes/Fal/resources/image-editing/execute/index.ts"],"names":[],"mappings":";;AAIA,0BAmEC;AAvED,+CAA4E;AAC5E,oEAA2D;AAGpD,KAAK,UAAU,OAAO,CAA0B,SAAiB;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAW,CAAC;IAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAW,CAAC;IACxE,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAW,CAAC;IACpE,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAC9C,mBAAmB,EACnB,SAAS,EACT,EAAE,CACa,CAAC;IAEjB,yBAAyB;IACzB,MAAM,IAAI,GAAgB;QACzB,SAAS,EAAE,QAAQ;QACnB,MAAM;KACN,CAAC;IAEF,oBAAoB;IACpB,MAAM,SAAS,GAAI,iBAAiB,CAAC,SAAoB,IAAI,QAAQ,CAAC;IACtE,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG;YACjB,KAAK,EAAE,iBAAiB,CAAC,KAAK,IAAI,IAAI;YACtC,MAAM,EAAE,iBAAiB,CAAC,MAAM,IAAI,IAAI;SACxC,CAAC;IACH,CAAC;SAAM,CAAC;QACP,MAAM,KAAK,GAAyD;YACnE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;YACrC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;YACvC,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;SACtC,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,0BAA0B;IAC1B,IAAI,iBAAiB,CAAC,IAAI,IAAI,iBAAiB,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;QAC7D,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC;IACpC,CAAC;IACD,IAAI,iBAAiB,CAAC,aAAa,EAAE,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC,aAAa,CAAC;IACvD,CAAC;IACD,IAAI,iBAAiB,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC9C,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC;IAC5C,CAAC;IACD,IAAI,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;QACzC,IAAI,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC;IAChE,CAAC;IAED,kCAAkC;IAClC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE;QAC5F,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,IAAI,KAAK,EAAE;QAChB,IAAI;QACJ,IAAI,EAAE,IAAI;KACV,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,cAAqC,CAAC;IAExD,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;QAC3B,MAAM,IAAI,2BAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;YACtC,OAAO,EAAE,mCAAmC;YAC5C,WAAW,EAAE,wBAAwB;SACrC,CAAC,CAAC;IACJ,CAAC;IAED,sBAAsB;IACtB,MAAM,MAAM,GAAG,MAAM,2BAAS,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IAExF,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as execute from './execute';
2
+ export { description } from './description';
3
+ export { execute };
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../nodes/Fal/resources/image-editing/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.execute = exports.description = void 0;
37
+ const execute = __importStar(require("./execute"));
38
+ exports.execute = execute;
39
+ var description_1 = require("./description");
40
+ Object.defineProperty(exports, "description", { enumerable: true, get: function () { return description_1.description; } });
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/Fal/resources/image-editing/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAqC;AAG5B,0BAAO;AADhB,6CAA4C;AAAnC,0GAAA,WAAW,OAAA"}
@@ -0,0 +1,6 @@
1
+ export declare const imageEditingModels: {
2
+ name: string;
3
+ value: string;
4
+ description: string;
5
+ }[];
6
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../../../nodes/Fal/resources/image-editing/models.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB;;;;GA0B9B,CAAC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.imageEditingModels = void 0;
4
+ exports.imageEditingModels = [
5
+ {
6
+ name: 'Reve Edit',
7
+ value: 'fal-ai/reve/edit',
8
+ description: 'Upload an image and transform it via text prompt',
9
+ },
10
+ {
11
+ name: 'Nano Banana Edit',
12
+ value: 'fal-ai/nano-banana/edit',
13
+ description: "Google's state-of-the-art image generation and editing model",
14
+ },
15
+ {
16
+ name: 'Seedream V4 Edit',
17
+ value: 'fal-ai/bytedance/seedream/v4/edit',
18
+ description: 'ByteDance Seedream 4.0 - unified image generation and editing',
19
+ },
20
+ {
21
+ name: 'FLUX Pro Kontext',
22
+ value: 'fal-ai/flux-pro/kontext',
23
+ description: 'FLUX.1 Kontext for targeted local edits and scene transformations',
24
+ },
25
+ {
26
+ name: 'FLUX Kontext LoRA',
27
+ value: 'fal-ai/flux-kontext-lora',
28
+ description: 'Fast FLUX.1 Kontext with LoRA support for specific styles',
29
+ },
30
+ ];
31
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../../../nodes/Fal/resources/image-editing/models.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG;IACjC;QACC,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,kDAAkD;KAC/D;IACD;QACC,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,8DAA8D;KAC3E;IACD;QACC,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,mCAAmC;QAC1C,WAAW,EAAE,+DAA+D;KAC5E;IACD;QACC,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,mEAAmE;KAChF;IACD;QACC,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,2DAA2D;KACxE;CACD,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { INodeProperties } from 'n8n-workflow';
2
+ export declare const imageToVideoOperations: INodeProperties[];
3
+ export declare const imageToVideoFields: INodeProperties[];
4
+ export declare const description: INodeProperties[];
5
+ //# sourceMappingURL=description.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"description.d.ts","sourceRoot":"","sources":["../../../../../nodes/Fal/resources/image-to-video/description.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,eAAO,MAAM,sBAAsB,EAAE,eAAe,EAqBnD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,eAAe,EAmN/C,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,eAAe,EAAuD,CAAC"}
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.description = exports.imageToVideoFields = exports.imageToVideoOperations = void 0;
4
+ const models_1 = require("./models");
5
+ exports.imageToVideoOperations = [
6
+ {
7
+ displayName: 'Operation',
8
+ name: 'operation',
9
+ type: 'options',
10
+ noDataExpression: true,
11
+ displayOptions: {
12
+ show: {
13
+ resource: ['imageToVideo'],
14
+ },
15
+ },
16
+ options: [
17
+ {
18
+ name: 'Generate',
19
+ value: 'generate',
20
+ description: 'Generate a video from an image',
21
+ action: 'Generate a video from an image',
22
+ },
23
+ ],
24
+ default: 'generate',
25
+ },
26
+ ];
27
+ exports.imageToVideoFields = [
28
+ {
29
+ displayName: 'Model',
30
+ name: 'model',
31
+ type: 'options',
32
+ displayOptions: {
33
+ show: {
34
+ resource: ['imageToVideo'],
35
+ operation: ['generate'],
36
+ },
37
+ },
38
+ options: models_1.imageToVideoModels,
39
+ default: 'fal-ai/veo3.1/image-to-video',
40
+ description: 'The AI model to use for video generation',
41
+ },
42
+ {
43
+ displayName: 'Image URL',
44
+ name: 'imageUrl',
45
+ type: 'string',
46
+ displayOptions: {
47
+ show: {
48
+ resource: ['imageToVideo'],
49
+ operation: ['generate'],
50
+ },
51
+ hide: {
52
+ model: [
53
+ 'fal-ai/veo3.1/first-last-frame-to-video',
54
+ 'fal-ai/veo3.1/fast/first-last-frame-to-video',
55
+ ],
56
+ },
57
+ },
58
+ default: '',
59
+ required: true,
60
+ placeholder: '={{$json.imageUrl}} or https://example.com/image.jpg',
61
+ description: 'The URL of the image to animate. Supports expressions from previous nodes.',
62
+ },
63
+ {
64
+ displayName: 'First Frame URL',
65
+ name: 'firstFrameUrl',
66
+ type: 'string',
67
+ displayOptions: {
68
+ show: {
69
+ resource: ['imageToVideo'],
70
+ operation: ['generate'],
71
+ model: [
72
+ 'fal-ai/veo3.1/first-last-frame-to-video',
73
+ 'fal-ai/veo3.1/fast/first-last-frame-to-video',
74
+ ],
75
+ },
76
+ },
77
+ default: '',
78
+ required: true,
79
+ placeholder: '={{$json.firstFrame}} or https://example.com/frame1.jpg',
80
+ description: 'The URL of the first frame of the video. Supports expressions from previous nodes.',
81
+ },
82
+ {
83
+ displayName: 'Last Frame URL',
84
+ name: 'lastFrameUrl',
85
+ type: 'string',
86
+ displayOptions: {
87
+ show: {
88
+ resource: ['imageToVideo'],
89
+ operation: ['generate'],
90
+ model: [
91
+ 'fal-ai/veo3.1/first-last-frame-to-video',
92
+ 'fal-ai/veo3.1/fast/first-last-frame-to-video',
93
+ ],
94
+ },
95
+ },
96
+ default: '',
97
+ required: true,
98
+ placeholder: '={{$json.lastFrame}} or https://example.com/frame2.jpg',
99
+ description: 'The URL of the last frame of the video. Supports expressions from previous nodes.',
100
+ },
101
+ {
102
+ displayName: 'Prompt',
103
+ name: 'prompt',
104
+ type: 'string',
105
+ typeOptions: {
106
+ rows: 4,
107
+ },
108
+ displayOptions: {
109
+ show: {
110
+ resource: ['imageToVideo'],
111
+ operation: ['generate'],
112
+ model: [
113
+ 'fal-ai/veo3.1/first-last-frame-to-video',
114
+ 'fal-ai/veo3.1/fast/first-last-frame-to-video',
115
+ ],
116
+ },
117
+ },
118
+ default: '',
119
+ required: true,
120
+ placeholder: '={{$json.videoDescription}} or A person walking through a forest',
121
+ description: 'The text prompt describing the video you want to generate. Supports expressions from previous nodes.',
122
+ },
123
+ {
124
+ displayName: 'Prompt',
125
+ name: 'prompt',
126
+ type: 'string',
127
+ typeOptions: {
128
+ rows: 4,
129
+ },
130
+ displayOptions: {
131
+ show: {
132
+ resource: ['imageToVideo'],
133
+ operation: ['generate'],
134
+ },
135
+ hide: {
136
+ model: [
137
+ 'fal-ai/veo3.1/first-last-frame-to-video',
138
+ 'fal-ai/veo3.1/fast/first-last-frame-to-video',
139
+ ],
140
+ },
141
+ },
142
+ default: '',
143
+ placeholder: '={{$json.guidance}}',
144
+ description: 'Optional text prompt to guide the video generation. Supports expressions from previous nodes.',
145
+ },
146
+ {
147
+ displayName: 'Additional Options',
148
+ name: 'additionalOptions',
149
+ type: 'collection',
150
+ placeholder: 'Add Option',
151
+ default: {},
152
+ displayOptions: {
153
+ show: {
154
+ resource: ['imageToVideo'],
155
+ operation: ['generate'],
156
+ },
157
+ },
158
+ options: [
159
+ {
160
+ displayName: 'Duration',
161
+ name: 'duration',
162
+ type: 'options',
163
+ options: [
164
+ {
165
+ name: '5 seconds',
166
+ value: '5s',
167
+ },
168
+ {
169
+ name: '8 seconds',
170
+ value: '8s',
171
+ },
172
+ {
173
+ name: '10 seconds',
174
+ value: '10s',
175
+ },
176
+ ],
177
+ default: '5s',
178
+ description: 'Duration of the generated video in seconds',
179
+ },
180
+ {
181
+ displayName: 'Resolution',
182
+ name: 'resolution',
183
+ type: 'options',
184
+ options: [
185
+ {
186
+ name: '720p',
187
+ value: '720p',
188
+ },
189
+ {
190
+ name: '1080p',
191
+ value: '1080p',
192
+ },
193
+ ],
194
+ default: '720p',
195
+ description: 'Resolution of the generated video',
196
+ },
197
+ {
198
+ displayName: 'Generate Audio',
199
+ name: 'generateAudio',
200
+ type: 'boolean',
201
+ default: true,
202
+ description: 'Whether to generate audio. If false, 33% less credits will be used.',
203
+ },
204
+ {
205
+ displayName: 'Aspect Ratio',
206
+ name: 'aspectRatio',
207
+ type: 'options',
208
+ options: [
209
+ {
210
+ name: '16:9',
211
+ value: '16:9',
212
+ },
213
+ {
214
+ name: '9:16',
215
+ value: '9:16',
216
+ },
217
+ {
218
+ name: '1:1',
219
+ value: '1:1',
220
+ },
221
+ ],
222
+ default: '16:9',
223
+ description: 'Aspect ratio of the generated video',
224
+ },
225
+ {
226
+ displayName: 'Seed',
227
+ name: 'seed',
228
+ type: 'number',
229
+ default: -1,
230
+ description: 'Random seed for reproducibility. Use -1 for random.',
231
+ },
232
+ ],
233
+ },
234
+ ];
235
+ exports.description = [...exports.imageToVideoOperations, ...exports.imageToVideoFields];
236
+ //# sourceMappingURL=description.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"description.js","sourceRoot":"","sources":["../../../../../nodes/Fal/resources/image-to-video/description.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { IExecuteFunctions, IDataObject } from 'n8n-workflow';
2
+ export declare function execute(this: IExecuteFunctions, itemIndex: number): Promise<IDataObject>;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../nodes/Fal/resources/image-to-video/execute/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAgB,MAAM,cAAc,CAAC;AAI5E,wBAAsB,OAAO,CAAC,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAqE9F"}