@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
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 ibracob.dev
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,216 @@
1
+ # n8n-nodes-fal
2
+
3
+ This is an n8n community node that integrates with [Fal.ai](https://fal.ai) to provide comprehensive AI capabilities including text generation, image/video generation, and multimodal AI models.
4
+
5
+ ## Features
6
+
7
+ - **LLM (Text Generation)** with 25+ language models including GPT, Claude, Gemini, DeepSeek, and Llama
8
+ - **Text-to-Image** generation using FLUX and Stable Diffusion models
9
+ - **Text-to-Video** generation with OpenAI Sora 2 and Google Veo 3.1
10
+ - **Image Editing** (image-to-image transformation) with FLUX, Reve, and Seedream
11
+ - **Image-to-Video** generation with Sora 2, Veo 3.1, and more
12
+ - **Video-to-Video** transformation with Sora 2 Remix
13
+ - **Vision Language Models** for image analysis with GPT, Claude, Gemini, Llama
14
+ - **Workflow Execution** - Chain multiple AI models together in custom workflows
15
+ - **Queue Management** - Advanced control over request submission, status monitoring, and cancellation
16
+ - **Utility Operations** (upscaling, background removal, NSFW detection)
17
+ - Support for 60+ AI models across all capabilities
18
+ - Queue-based processing with automatic status polling
19
+ - Webhook support for asynchronous operations
20
+
21
+ ## Installation
22
+
23
+ ### Option 1: Via n8n Community Nodes (Recommended - when published)
24
+
25
+ 1. In n8n, go to **Settings** → **Community Nodes**
26
+ 2. Click **Install a community node**
27
+ 3. Enter: `n8n-nodes-fal`
28
+ 4. Click **Install**
29
+
30
+ ### Option 2: Manual Installation (Development)
31
+
32
+ ```bash
33
+ # Clone the repository
34
+ git clone https://github.com/ibraschwan/n8n-nodes-fal.git
35
+ cd n8n-nodes-fal
36
+
37
+ # Install dependencies and build
38
+ npm install
39
+ npm run build
40
+
41
+ # Link to your n8n installation
42
+ cd ~/.n8n/custom/
43
+ npm link /path/to/n8n-nodes-fal
44
+
45
+ # Restart n8n
46
+ ```
47
+
48
+ ## Quick Start
49
+
50
+ 1. **Get your Fal.ai API key** from [fal.ai/dashboard/keys](https://fal.ai/dashboard/keys)
51
+ 2. **Add the Fal node** to your workflow
52
+ 3. **Configure credentials** with your API key
53
+ 4. **Choose a resource** (Text to Image, LLM, etc.)
54
+ 5. **Set parameters** and execute!
55
+
56
+ See the [**Complete Usage Guide**](./USAGE_GUIDE.md) for detailed examples and workflows.
57
+
58
+ ## Credentials
59
+
60
+ You'll need a Fal.ai API key. You can obtain one from [fal.ai/dashboard/keys](https://fal.ai/dashboard/keys).
61
+
62
+ ## Operations
63
+
64
+ ### LLM (Text Generation)
65
+ Generate text using state-of-the-art language models (25+ models):
66
+
67
+ **OpenAI Models:**
68
+ - **GPT-5 Chat** (Premium 10x) - Latest GPT-5 model
69
+ - **O3** (Premium 10x) - OpenAI's reasoning model
70
+ - **GPT-4.1** (Premium 10x) - Advanced GPT-4
71
+ - **GPT-4o** (Premium 10x) - Optimized GPT-4
72
+ - GPT-5 Mini, GPT-5 Nano, GPT-4o Mini
73
+ - GPT-OSS 120B - Open source variant
74
+
75
+ **Anthropic Claude:**
76
+ - **Claude 3.7 Sonnet** (Premium 10x) - Latest Claude
77
+ - **Claude 3.5 Sonnet** (Premium 10x) - Advanced reasoning
78
+ - **Claude 3.5 Haiku** (Premium 10x) - Fast Claude
79
+ - Claude 3 Haiku
80
+
81
+ **Google Gemini:**
82
+ - **Gemini 2.5 Pro** (Premium 10x) - Most capable Gemini
83
+ - **Gemini Pro 1.5** (Premium 10x) - Advanced model
84
+ - Gemini 2.5 Flash, Gemini 2.0 Flash
85
+ - Gemini Flash 1.5, Flash 1.5 8B
86
+ - Gemini 2.5 Flash Lite (default, cost-effective)
87
+
88
+ **Meta Llama:**
89
+ - Llama 3.1 70B, Llama 3.1 8B
90
+ - Llama 3.2 3B, Llama 3.2 1B
91
+ - Llama 4 Maverick, Llama 4 Scout
92
+
93
+ **Other:**
94
+ - **DeepSeek R1** (Premium 10x) - Advanced reasoning model
95
+
96
+ **Features:**
97
+ - System prompts for custom instructions
98
+ - Temperature control (0-2) for creativity/consistency
99
+ - Max tokens configuration
100
+ - Priority settings (throughput/latency)
101
+ - Reasoning mode for compatible models
102
+
103
+ ### Text to Image
104
+ Generate images from text prompts using various AI models:
105
+ - **FLUX 1.1 Pro** - High-quality text-to-image generation
106
+ - **FLUX 1 Pro/Dev/Schnell** - Professional and fast variants
107
+ - **Stable Diffusion XL** - Fast SDXL generation
108
+ - **Stable Diffusion 3.5 Large** - Latest SD model
109
+
110
+ ### Text to Video
111
+ Generate videos from text prompts with state-of-the-art models:
112
+ - **Sora 2 Pro** - OpenAI's richly detailed videos with audio
113
+ - **Sora 2** - OpenAI's state-of-the-art video generation with audio
114
+ - **Veo 3.1** - Google's most advanced AI video generation with sound
115
+ - **Veo 3.1 Fast** - Faster and more cost-effective version
116
+ - Supports 4s, 6s, and 8s video durations
117
+ - Multiple aspect ratios (16:9, 9:16, 1:1)
118
+ - Audio generation support
119
+
120
+ ### Image Editing
121
+ Edit and transform existing images using text prompts:
122
+ - **Reve Edit** - Transform images via text prompts
123
+ - **Nano Banana Edit** - Google's state-of-the-art editing model
124
+ - **Seedream V4 Edit** - ByteDance unified generation/editing
125
+ - **FLUX Pro Kontext** - Targeted local edits and scene transformations
126
+ - **FLUX Kontext LoRA** - Fast editing with LoRA support
127
+
128
+ ### Image to Video
129
+ Convert images into videos using AI models:
130
+ - **Sora 2 Pro Image to Video** - OpenAI's richly detailed videos with audio from images
131
+ - **Sora 2 Image to Video** - OpenAI's state-of-the-art image to video with audio
132
+ - **Veo 3.1 Image to Video** - Google's state-of-the-art image animation
133
+ - **Veo 3.1 First-Last Frame** - Generate videos from start/end frames
134
+ - **Veo 3.1 Reference to Video** - Videos from reference images
135
+ - **Kling V1.6 Pro/Standard** - High-quality image to video
136
+ - **Runway Gen3** - Fast Turbo generation
137
+ - **Luma Dream Machine** - Luma AI video generation
138
+
139
+ ### Video to Video
140
+ Transform and remix existing videos:
141
+ - **Sora 2 Remix** - Transform videos based on text/image prompts
142
+ - Rich edits and style changes
143
+ - Creative reinterpretations
144
+ - Preserves motion and structure
145
+ - Supports aspect ratio and duration customization
146
+
147
+ ### Vision (Image Analysis)
148
+ Analyze images using vision language models:
149
+ - **Gemini 2.5 Flash/Pro** - Google's latest vision models
150
+ - **Claude 3.7/3.5 Sonnet** - Anthropic's advanced vision AI
151
+ - **GPT-4o** - OpenAI's vision model
152
+ - **Llama 3.2 90B Vision** - Meta's vision model
153
+ - Support for multiple images per request
154
+ - Customizable temperature and token limits
155
+
156
+ ### Workflow
157
+ Execute custom workflows or pre-built workflow endpoints:
158
+ - **Execute Custom Workflow** - Define multi-step workflows with JSON
159
+ - **Execute Pre-Built Workflow** - Use Fal's pre-built workflows (e.g., `workflows/fal-ai/sdxl-sticker`)
160
+ - Chain multiple models together in sequence
161
+ - Webhook support for asynchronous processing
162
+ - Example: Generate image → Remove background → Create sticker (all in one workflow)
163
+
164
+ ### Queue Management
165
+ Advanced queue control for long-running or batch operations:
166
+ - **Submit Request** - Queue any model request and get a request ID
167
+ - **Get Status** - Check request status, queue position, and logs
168
+ - **Stream Status** - Real-time status updates via Server-Sent Events
169
+ - **Get Response** - Retrieve completed results
170
+ - **Cancel Request** - Cancel queued requests before processing
171
+ - Perfect for monitoring, batching, and advanced orchestration
172
+
173
+ ### Utility
174
+ Professional-grade utility operations:
175
+ - **Image Upscaling** - Enhance images with Topaz AI (2x or 4x)
176
+ - **Video Upscaling** - Professional video upscaling with Topaz (2x or 4x)
177
+ - **Remove Background (Image)** - Bria RMBG 2.0 for clean cutouts
178
+ - **Remove Background (Video)** - Automatic video background removal
179
+ - **NSFW Detection** - Predict if images are NSFW or SFW
180
+
181
+ ## Example Workflows
182
+
183
+ ### Simple Image Generation
184
+ ```
185
+ Manual Trigger → Fal (Text to Image, FLUX 1.1 Pro, "sunset over ocean")
186
+ ```
187
+
188
+ ### AI Content Pipeline
189
+ ```
190
+ Fal (Generate) → Fal (Edit) → Fal (Upscale)
191
+ ```
192
+
193
+ ### Queue-Based Processing
194
+ ```
195
+ Fal (Queue: Submit) → Wait → Fal (Queue: Get Status) → IF → Fal (Queue: Get Response)
196
+ ```
197
+
198
+ ### Multi-Step Video Creation
199
+ ```
200
+ Fal (Text→Image) → Fal (Image→Video) → Fal (Upscale Video)
201
+ ```
202
+
203
+ See the [**Complete Usage Guide**](./USAGE_GUIDE.md) for more examples!
204
+
205
+ ## Compatibility
206
+
207
+ Tested with n8n version 1.0.0 and above.
208
+
209
+ ## Resources
210
+
211
+ - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
212
+ - [Fal.ai Documentation](https://fal.ai/docs)
213
+
214
+ ## License
215
+
216
+ MIT
@@ -0,0 +1,10 @@
1
+ import { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
2
+ export declare class FalApi implements ICredentialType {
3
+ name: string;
4
+ displayName: string;
5
+ documentationUrl: string;
6
+ properties: INodeProperties[];
7
+ authenticate: IAuthenticateGeneric;
8
+ test: ICredentialTestRequest;
9
+ }
10
+ //# sourceMappingURL=FalApi.credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FalApi.credentials.d.ts","sourceRoot":"","sources":["../../credentials/FalApi.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,MAAM,cAAc,CAAC;AAEtB,qBAAa,MAAO,YAAW,eAAe;IAC7C,IAAI,SAAY;IAChB,WAAW,SAAa;IACxB,gBAAgB,SAAyB;IACzC,UAAU,EAAE,eAAe,EAAE,CAU3B;IAEF,YAAY,EAAE,oBAAoB,CAOhC;IAEF,IAAI,EAAE,sBAAsB,CAM1B;CACF"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FalApi = void 0;
4
+ class FalApi {
5
+ name = 'falApi';
6
+ displayName = 'Fal API';
7
+ documentationUrl = 'https://fal.ai/docs';
8
+ properties = [
9
+ {
10
+ displayName: 'API Key',
11
+ name: 'apiKey',
12
+ type: 'string',
13
+ typeOptions: { password: true },
14
+ default: '',
15
+ required: true,
16
+ description: 'The API key for Fal.ai. You can obtain one from your Fal.ai dashboard.',
17
+ },
18
+ ];
19
+ authenticate = {
20
+ type: 'generic',
21
+ properties: {
22
+ headers: {
23
+ Authorization: '=Key {{$credentials.apiKey}}',
24
+ },
25
+ },
26
+ };
27
+ test = {
28
+ request: {
29
+ baseURL: 'https://queue.fal.run',
30
+ url: '/fal-ai/fast-sdxl/requests',
31
+ method: 'GET',
32
+ },
33
+ };
34
+ }
35
+ exports.FalApi = FalApi;
36
+ //# sourceMappingURL=FalApi.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FalApi.credentials.js","sourceRoot":"","sources":["../../credentials/FalApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,MAAM;IAClB,IAAI,GAAG,QAAQ,CAAC;IAChB,WAAW,GAAG,SAAS,CAAC;IACxB,gBAAgB,GAAG,qBAAqB,CAAC;IACzC,UAAU,GAAsB;QAC/B;YACC,WAAW,EAAE,SAAS;YACtB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC/B,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,wEAAwE;SACrF;KACD,CAAC;IAEF,YAAY,GAAyB;QACpC,IAAI,EAAE,SAAS;QACf,UAAU,EAAE;YACX,OAAO,EAAE;gBACR,aAAa,EAAE,8BAA8B;aAC7C;SACD;KACD,CAAC;IAEF,IAAI,GAA2B;QAC9B,OAAO,EAAE;YACR,OAAO,EAAE,uBAAuB;YAChC,GAAG,EAAE,4BAA4B;YACjC,MAAM,EAAE,KAAK;SACb;KACD,CAAC;CACF;AAhCD,wBAgCC"}
@@ -0,0 +1,3 @@
1
+ <svg width="170" height="171" viewBox="0 0 170 171" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M109.571 0.690002C112.515 0.690002 114.874 3.08348 115.155 6.01352C117.665 32.149 138.466 52.948 164.603 55.458C167.534 55.7394 169.927 58.0985 169.927 61.042V110.255C169.927 113.198 167.534 115.557 164.603 115.839C138.466 118.349 117.665 139.148 115.155 165.283C114.874 168.213 112.515 170.607 109.571 170.607H60.3553C57.4116 170.607 55.0524 168.213 54.7709 165.283C52.2608 139.148 31.4601 118.349 5.32289 115.839C2.39266 115.557 -0.000976562 113.198 -0.000976562 110.255V61.042C-0.000976562 58.0985 2.39267 55.7394 5.3229 55.458C31.4601 52.948 52.2608 32.149 54.7709 6.01351C55.0524 3.08348 57.4116 0.690002 60.3553 0.690002H109.571ZM34.1182 85.5045C34.1182 113.776 57.0124 136.694 85.2539 136.694C113.495 136.694 136.39 113.776 136.39 85.5045C136.39 57.2332 113.495 34.3147 85.2539 34.3147C57.0124 34.3147 34.1182 57.2332 34.1182 85.5045Z" fill="black"/>
3
+ </svg>
@@ -0,0 +1,6 @@
1
+ import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class Fal implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }
6
+ //# sourceMappingURL=Fal.node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Fal.node.d.ts","sourceRoot":"","sources":["../../../nodes/Fal/Fal.node.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EAEpB,MAAM,cAAc,CAAC;AAYtB,qBAAa,GAAI,YAAW,SAAS;IACpC,WAAW,EAAE,oBAAoB,CAyF/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CA8DvE"}
@@ -0,0 +1,202 @@
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.Fal = void 0;
37
+ const n8n_workflow_1 = require("n8n-workflow");
38
+ const textToImage = __importStar(require("./resources/text-to-image"));
39
+ const textToVideo = __importStar(require("./resources/text-to-video"));
40
+ const imageEditing = __importStar(require("./resources/image-editing"));
41
+ const imageToVideo = __importStar(require("./resources/image-to-video"));
42
+ const videoToVideo = __importStar(require("./resources/video-to-video"));
43
+ const vision = __importStar(require("./resources/vision"));
44
+ const llm = __importStar(require("./resources/llm"));
45
+ const utility = __importStar(require("./resources/utility"));
46
+ const workflow = __importStar(require("./resources/workflow"));
47
+ const queue = __importStar(require("./resources/queue"));
48
+ class Fal {
49
+ description = {
50
+ displayName: 'Fal',
51
+ name: 'fal',
52
+ icon: 'file:fal-ai-logo.svg',
53
+ group: ['transform'],
54
+ version: 1,
55
+ subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
56
+ description: 'Interact with Fal.ai API',
57
+ defaults: {
58
+ name: 'Fal',
59
+ },
60
+ inputs: ['main'],
61
+ outputs: ['main'],
62
+ credentials: [
63
+ {
64
+ name: 'falApi',
65
+ required: true,
66
+ },
67
+ ],
68
+ requestDefaults: {
69
+ baseURL: 'https://queue.fal.run',
70
+ headers: {
71
+ Accept: 'application/json',
72
+ 'Content-Type': 'application/json',
73
+ },
74
+ },
75
+ properties: [
76
+ {
77
+ displayName: 'Resource',
78
+ name: 'resource',
79
+ type: 'options',
80
+ noDataExpression: true,
81
+ options: [
82
+ {
83
+ name: 'LLM (Text Generation)',
84
+ value: 'llm',
85
+ },
86
+ {
87
+ name: 'Text to Image',
88
+ value: 'textToImage',
89
+ },
90
+ {
91
+ name: 'Text to Video',
92
+ value: 'textToVideo',
93
+ },
94
+ {
95
+ name: 'Image Editing',
96
+ value: 'imageEditing',
97
+ },
98
+ {
99
+ name: 'Image to Video',
100
+ value: 'imageToVideo',
101
+ },
102
+ {
103
+ name: 'Video to Video',
104
+ value: 'videoToVideo',
105
+ },
106
+ {
107
+ name: 'Vision (Image Analysis)',
108
+ value: 'vision',
109
+ },
110
+ {
111
+ name: 'Workflow',
112
+ value: 'workflow',
113
+ },
114
+ {
115
+ name: 'Queue',
116
+ value: 'queue',
117
+ },
118
+ {
119
+ name: 'Utility',
120
+ value: 'utility',
121
+ },
122
+ ],
123
+ default: 'textToImage',
124
+ },
125
+ ...llm.description,
126
+ ...textToImage.description,
127
+ ...textToVideo.description,
128
+ ...imageEditing.description,
129
+ ...imageToVideo.description,
130
+ ...videoToVideo.description,
131
+ ...vision.description,
132
+ ...workflow.workflowOperations,
133
+ ...workflow.workflowFields,
134
+ ...queue.queueOperations,
135
+ ...queue.queueFields,
136
+ ...utility.description,
137
+ ],
138
+ };
139
+ async execute() {
140
+ const items = this.getInputData();
141
+ const returnData = [];
142
+ const resource = this.getNodeParameter('resource', 0);
143
+ for (let i = 0; i < items.length; i++) {
144
+ try {
145
+ let responseData;
146
+ if (resource === 'llm') {
147
+ responseData = await llm.execute.execute.call(this, i);
148
+ }
149
+ else if (resource === 'textToImage') {
150
+ responseData = await textToImage.execute.execute.call(this, i);
151
+ }
152
+ else if (resource === 'textToVideo') {
153
+ responseData = await textToVideo.execute.execute.call(this, i);
154
+ }
155
+ else if (resource === 'imageEditing') {
156
+ responseData = await imageEditing.execute.execute.call(this, i);
157
+ }
158
+ else if (resource === 'imageToVideo') {
159
+ responseData = await imageToVideo.execute.execute.call(this, i);
160
+ }
161
+ else if (resource === 'videoToVideo') {
162
+ responseData = await videoToVideo.execute.execute.call(this, i);
163
+ }
164
+ else if (resource === 'vision') {
165
+ responseData = await vision.execute.execute.call(this, i);
166
+ }
167
+ else if (resource === 'workflow') {
168
+ responseData = await workflow.executeWorkflow.call(this, i);
169
+ }
170
+ else if (resource === 'queue') {
171
+ responseData = await queue.executeQueue.call(this, i);
172
+ }
173
+ else if (resource === 'utility') {
174
+ responseData = await utility.execute.execute.call(this, i);
175
+ }
176
+ else {
177
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The resource "${resource}" is not known!`, {
178
+ itemIndex: i,
179
+ });
180
+ }
181
+ const executionData = this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray(responseData), { itemData: { item: i } });
182
+ returnData.push(...executionData);
183
+ }
184
+ catch (error) {
185
+ if (this.continueOnFail()) {
186
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
187
+ returnData.push({
188
+ json: {
189
+ error: errorMessage,
190
+ },
191
+ pairedItem: { item: i },
192
+ });
193
+ continue;
194
+ }
195
+ throw error;
196
+ }
197
+ }
198
+ return [returnData];
199
+ }
200
+ }
201
+ exports.Fal = Fal;
202
+ //# sourceMappingURL=Fal.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Fal.node.js","sourceRoot":"","sources":["../../../nodes/Fal/Fal.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './queue-status.enum';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../nodes/Fal/enums/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,18 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./queue-status.enum"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../nodes/Fal/enums/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC"}
@@ -0,0 +1,7 @@
1
+ export declare enum QueueStatus {
2
+ InQueue = "IN_QUEUE",
3
+ InProgress = "IN_PROGRESS",
4
+ Completed = "COMPLETED",
5
+ Failed = "FAILED"
6
+ }
7
+ //# sourceMappingURL=queue-status.enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-status.enum.d.ts","sourceRoot":"","sources":["../../../../nodes/Fal/enums/queue-status.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACtB,OAAO,aAAa;IACpB,UAAU,gBAAgB;IAC1B,SAAS,cAAc;IACvB,MAAM,WAAW;CACjB"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueueStatus = void 0;
4
+ var QueueStatus;
5
+ (function (QueueStatus) {
6
+ QueueStatus["InQueue"] = "IN_QUEUE";
7
+ QueueStatus["InProgress"] = "IN_PROGRESS";
8
+ QueueStatus["Completed"] = "COMPLETED";
9
+ QueueStatus["Failed"] = "FAILED";
10
+ })(QueueStatus || (exports.QueueStatus = QueueStatus = {}));
11
+ //# sourceMappingURL=queue-status.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-status.enum.js","sourceRoot":"","sources":["../../../../nodes/Fal/enums/queue-status.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAKX;AALD,WAAY,WAAW;IACtB,mCAAoB,CAAA;IACpB,yCAA0B,CAAA;IAC1B,sCAAuB,CAAA;IACvB,gCAAiB,CAAA;AAClB,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB"}
@@ -0,0 +1,3 @@
1
+ <svg width="170" height="171" viewBox="0 0 170 171" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M109.571 0.690002C112.515 0.690002 114.874 3.08348 115.155 6.01352C117.665 32.149 138.466 52.948 164.603 55.458C167.534 55.7394 169.927 58.0985 169.927 61.042V110.255C169.927 113.198 167.534 115.557 164.603 115.839C138.466 118.349 117.665 139.148 115.155 165.283C114.874 168.213 112.515 170.607 109.571 170.607H60.3553C57.4116 170.607 55.0524 168.213 54.7709 165.283C52.2608 139.148 31.4601 118.349 5.32289 115.839C2.39266 115.557 -0.000976562 113.198 -0.000976562 110.255V61.042C-0.000976562 58.0985 2.39267 55.7394 5.3229 55.458C31.4601 52.948 52.2608 32.149 54.7709 6.01351C55.0524 3.08348 57.4116 0.690002 60.3553 0.690002H109.571ZM34.1182 85.5045C34.1182 113.776 57.0124 136.694 85.2539 136.694C113.495 136.694 136.39 113.776 136.39 85.5045C136.39 57.2332 113.495 34.3147 85.2539 34.3147C57.0124 34.3147 34.1182 57.2332 34.1182 85.5045Z" fill="black"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ export * from './queue-submit-response.interface';
2
+ export * from './queue-status-response.interface';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../nodes/Fal/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC"}
@@ -0,0 +1,19 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./queue-submit-response.interface"), exports);
18
+ __exportStar(require("./queue-status-response.interface"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../nodes/Fal/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oEAAkD;AAClD,oEAAkD"}
@@ -0,0 +1,14 @@
1
+ import { QueueStatus } from '../enums';
2
+ export interface QueueStatusResponse {
3
+ status: QueueStatus;
4
+ response_url?: string;
5
+ logs?: Array<{
6
+ message: string;
7
+ timestamp: string;
8
+ level: string;
9
+ }>;
10
+ metrics?: {
11
+ inference_time?: number;
12
+ };
13
+ }
14
+ //# sourceMappingURL=queue-status-response.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-status-response.interface.d.ts","sourceRoot":"","sources":["../../../../nodes/Fal/interfaces/queue-status-response.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,mBAAmB;IACnC,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,KAAK,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,OAAO,CAAC,EAAE;QACT,cAAc,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=queue-status-response.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-status-response.interface.js","sourceRoot":"","sources":["../../../../nodes/Fal/interfaces/queue-status-response.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export interface QueueSubmitResponse {
2
+ request_id: string;
3
+ status_url: string;
4
+ response_url?: string;
5
+ }
6
+ //# sourceMappingURL=queue-submit-response.interface.d.ts.map