@imgly/plugin-ai-video-generation-web 0.1.9 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,40 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.2.0] - 2025-07-15
6
+
7
+ ### Breaking Changes
8
+
9
+ - [all] **Provider Initialization**: `initProvider` is replaced with `initializeProviders` and `initializeProvider` with a different signature
10
+ - [all] **Quick Actions Structure**: `provider.input.quickctions.actions` replaced with `provider.input.quickActions.supported`
11
+ - [all] **History Asset Sources**: Combined history asset source is now not added to the default asset libraries anymore. Add the following sources to any library entry (default or not):
12
+ - Image Generation History: `ly.img.ai.image-generation.history`
13
+ - Video Generation History: `ly.img.ai.video-generation.history`
14
+ - Audio Generation History: `ly.img.ai.audio-generation.history`
15
+ - Sticker Generation History: `ly.img.ai.sticker-generation.history`
16
+ - [all] **ID Format Standardization**: All `ly.img.ai/` prefixed IDs changed to use dot notation `ly.img.ai.` for consistency
17
+ - Panel IDs: `ly.img.ai/apps` → `ly.img.ai.apps`, `ly.img.ai/image-generation` → `ly.img.ai.image-generation`
18
+ - Dock IDs: `ly.img.ai/apps.dock` → `ly.img.ai.apps.dock`
19
+
20
+ ### New Features
21
+
22
+ - [all] **Multiple Providers Support**: All plugin packages now support arrays of providers with automatic selection UI
23
+ - [image-generation] **Recraft20b Provider**: Added new Recraft20b (v2) provider via fal.ai with support for icon styles including `broken_line`, `colored_outline`, `colored_shapes`, and more
24
+ - [sticker-generation] **New Sticker Generation Plugin**: Added `@imgly/plugin-ai-sticker-generation-web` plugin for AI-powered sticker generation with support for text-to-sticker generation using Recraft20b provider with icon styles
25
+ - [image-generation] **Flux Pro Kontext Provider**: Added Flux Pro Kontext provider for image editing with style transfer and artist style options
26
+ - [image-generation] **Flux Pro Kontext Max Provider**: Added Flux Pro Kontext Max provider for enhanced image editing capabilities
27
+ - [video-generation] **Veo3 Provider**: Added Veo3 text-to-video provider via fal.ai with support for 16:9, 9:16, and 1:1 aspect ratios and 8-second duration
28
+ - [video-generation] **Kling Video V2.1 Master Providers**: Added Kling Video V2.1 Master providers for both text-to-video and image-to-video generation with configurable duration (5s/10s) and aspect ratios
29
+ - [text-generation] **Model Selection**: OpenAI and Anthropic providers now support configurable model selection through the `model` parameter
30
+
31
+ ### Deprecated Features
32
+
33
+ - [all] **Middleware Configuration**: The `middleware` property in provider configurations is deprecated. Use `middlewares` instead. The old property will continue to work for now.
34
+
35
+ ## [0.1.10] - 2025-06-20
36
+
37
+ - [all] Fix issue with GPT provider when using text provider
38
+
5
39
  ## [0.1.9] - 2025-06-05
6
40
 
7
41
  - [all] Add support for custom headers
package/README.md CHANGED
@@ -27,6 +27,8 @@ npm install @imgly/plugin-ai-video-generation-web
27
27
 
28
28
  To use the plugin, import it and configure it with your preferred providers:
29
29
 
30
+ #### Single Provider Configuration
31
+
30
32
  ```typescript
31
33
  import CreativeEditorSDK from '@cesdk/cesdk-js';
32
34
  import VideoGeneration from '@imgly/plugin-ai-video-generation-web';
@@ -42,12 +44,72 @@ CreativeEditorSDK.create(domElement, {
42
44
  VideoGeneration({
43
45
  // Text-to-video provider
44
46
  text2video: FalAiVideo.MinimaxVideo01Live({
45
- proxyUrl: 'https://your-fal-ai-proxy.example.com'
47
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
48
+ headers: {
49
+ 'x-custom-header': 'value',
50
+ 'x-client-version': '1.0.0'
51
+ }
52
+ }),
53
+
54
+ // Image-to-video provider (optional)
55
+ image2video: FalAiVideo.MinimaxVideo01LiveImageToVideo({
56
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
57
+ headers: {
58
+ 'x-custom-header': 'value',
59
+ 'x-client-version': '1.0.0'
60
+ }
46
61
  }),
47
62
 
63
+ // Optional configuration
64
+ debug: false,
65
+ dryRun: false
66
+ })
67
+ );
68
+ });
69
+ ```
70
+
71
+ #### Multiple Providers Configuration
72
+
73
+ You can configure multiple providers for each generation type, and users will see a selection box to choose between them:
74
+
75
+ ```typescript
76
+ import CreativeEditorSDK from '@cesdk/cesdk-js';
77
+ import VideoGeneration from '@imgly/plugin-ai-video-generation-web';
78
+ import FalAiVideo from '@imgly/plugin-ai-video-generation-web/fal-ai';
79
+
80
+ // Initialize CreativeEditor SDK
81
+ CreativeEditorSDK.create(domElement, {
82
+ license: 'your-license-key'
83
+ // Other configuration options...
84
+ }).then(async (cesdk) => {
85
+ // Add the video generation plugin with multiple providers
86
+ cesdk.addPlugin(
87
+ VideoGeneration({
88
+ // Multiple text-to-video providers
89
+ text2video: [
90
+ FalAiVideo.MinimaxVideo01Live({
91
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
92
+ headers: {
93
+ 'x-custom-header': 'value',
94
+ 'x-client-version': '1.0.0'
95
+ }
96
+ }),
97
+ FalAiVideo.PixverseV35TextToVideo({
98
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
99
+ headers: {
100
+ 'x-custom-header': 'value',
101
+ 'x-client-version': '1.0.0'
102
+ }
103
+ })
104
+ ],
105
+
48
106
  // Image-to-video provider (optional)
49
107
  image2video: FalAiVideo.MinimaxVideo01LiveImageToVideo({
50
- proxyUrl: 'https://your-fal-ai-proxy.example.com'
108
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
109
+ headers: {
110
+ 'x-custom-header': 'value',
111
+ 'x-client-version': '1.0.0'
112
+ }
51
113
  }),
52
114
 
53
115
  // Optional configuration
@@ -68,7 +130,11 @@ A model that generates videos based on text prompts:
68
130
 
69
131
  ```typescript
70
132
  text2video: FalAiVideo.MinimaxVideo01Live({
71
- proxyUrl: 'https://your-fal-ai-proxy.example.com'
133
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
134
+ headers: {
135
+ 'x-custom-header': 'value',
136
+ 'x-client-version': '1.0.0'
137
+ }
72
138
  });
73
139
  ```
74
140
 
@@ -77,6 +143,7 @@ Key features:
77
143
  - Generate videos from text descriptions
78
144
  - Fixed output dimensions (1280×720)
79
145
  - 5-second video duration
146
+ - Custom headers support for API requests
80
147
 
81
148
  #### 2. MinimaxVideo01LiveImageToVideo (Image-to-Video)
82
149
 
@@ -84,7 +151,11 @@ A model that transforms still images into videos:
84
151
 
85
152
  ```typescript
86
153
  image2video: FalAiVideo.MinimaxVideo01LiveImageToVideo({
87
- proxyUrl: 'https://your-fal-ai-proxy.example.com'
154
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
155
+ headers: {
156
+ 'x-custom-header': 'value',
157
+ 'x-client-version': '1.0.0'
158
+ }
88
159
  });
89
160
  ```
90
161
 
@@ -93,6 +164,7 @@ Key features:
93
164
  - Transform existing images into videos
94
165
  - Available through canvas quick actions
95
166
  - Maintains original image aspect ratio
167
+ - Custom headers support for API requests
96
168
 
97
169
  #### 3. PixverseV35TextToVideo (Text-to-Video)
98
170
 
@@ -100,21 +172,81 @@ An alternative text-to-video model:
100
172
 
101
173
  ```typescript
102
174
  text2video: FalAiVideo.PixverseV35TextToVideo({
103
- proxyUrl: 'https://your-fal-ai-proxy.example.com'
175
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
176
+ headers: {
177
+ 'x-custom-header': 'value',
178
+ 'x-client-version': '1.0.0'
179
+ }
104
180
  });
105
181
  ```
106
182
 
183
+ Key features:
184
+
185
+ - Alternative text-to-video generation
186
+ - Custom headers support for API requests
187
+
188
+ #### 4. KlingVideoV21MasterTextToVideo (Text-to-Video)
189
+
190
+ A model based on KlingVideo V2.1 that generates videos from text prompts:
191
+
192
+ ```typescript
193
+ text2video: FalAiVideo.KlingVideoV21MasterTextToVideo({
194
+ proxyUrl: 'http://your-proxy-server.com/api/proxy'
195
+ });
196
+ ```
197
+
198
+ Key features:
199
+
200
+ - Generate videos from text descriptions
201
+ - Adjustable aspect ratios (16:9, 9:16, 1:1)
202
+ - Selectable durations (5 s or 10 s)
203
+ - Adaptive resolution (height fixed at 720 px, width is calculated)
204
+
205
+ #### 5. KlingVideoV21MasterImageToVideo (Image-to-Video)
206
+
207
+ A model that converts still images into videos using KlingVideo V2.1:
208
+
209
+ ```typescript
210
+ image2video: FalAiVideo.KlingVideoV21MasterImageToVideo({
211
+ proxyUrl: 'http://your-proxy-server.com/api/proxy'
212
+ });
213
+ ```
214
+
215
+ Key features:
216
+
217
+ - Transform existing images into videos
218
+ - Maintains original image aspect ratio (fallback to 1280 × 720)
219
+ - Canvas quick-action integration
220
+ - Selectable durations (5 s or 10 s)
221
+
222
+ #### 6. Veo3TextToVideo (Text-to-Video)
223
+
224
+ An advanced text-to-video model:
225
+
226
+ ```typescript
227
+ text2video: FalAiVideo.Veo3TextToVideo({
228
+ proxyUrl: 'http://your-proxy-server.com/api/proxy'
229
+ });
230
+ ```
231
+
232
+ Key features:
233
+
234
+ - Generate videos from text descriptions
235
+ - Supports aspect ratios 16:9, 9:16 and 1:1 (defaults to 16:9)
236
+ - Fixed duration of 8 seconds
237
+ - Optional audio generation via `generate_audio`
238
+
107
239
  ### Configuration Options
108
240
 
109
241
  The plugin accepts the following configuration options:
110
242
 
111
- | Option | Type | Description | Default |
112
- | ------------- | --------- | ----------------------------------------------- | --------- |
113
- | `text2video` | Provider | Provider for text-to-video generation | undefined |
114
- | `image2video` | Provider | Provider for image-to-video transformation | undefined |
115
- | `debug` | boolean | Enable debug logging | false |
116
- | `dryRun` | boolean | Simulate generation without API calls | false |
117
- | `middleware` | Function[] | Array of middleware functions for the generation | undefined |
243
+ | Option | Type | Description | Default |
244
+ | ------------- | -------------------- | ----------------------------------------------- | --------- |
245
+ | `text2video` | Provider \| Provider[] | Provider(s) for text-to-video generation. When multiple providers are provided, users can select between them | undefined |
246
+ | `image2video` | Provider \| Provider[] | Provider(s) for image-to-video transformation. When multiple providers are provided, users can select between them | undefined |
247
+ | `debug` | boolean | Enable debug logging | false |
248
+ | `dryRun` | boolean | Simulate generation without API calls | false |
249
+ | `middleware` | Function[] | Array of middleware functions for the generation | undefined |
118
250
 
119
251
  ### Middleware Configuration
120
252
 
@@ -159,7 +291,7 @@ const customMiddleware = async (input, options, next) => {
159
291
  cesdk.addPlugin(
160
292
  VideoGeneration({
161
293
  text2video: FalAiVideo.MinimaxVideo01Live({
162
- proxyUrl: 'https://your-fal-ai-proxy.example.com'
294
+ proxyUrl: 'http://your-proxy-server.com/api/proxy'
163
295
  }),
164
296
  middleware: [logging, rateLimit, customMiddleware] // Apply middleware in order
165
297
  })
@@ -179,10 +311,20 @@ For security reasons, it's recommended to use a proxy server to handle API reque
179
311
 
180
312
  ```typescript
181
313
  text2video: FalAiVideo.MinimaxVideo01Live({
182
- proxyUrl: 'https://your-fal-ai-proxy.example.com'
314
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
315
+ headers: {
316
+ 'x-custom-header': 'value',
317
+ 'x-client-version': '1.0.0'
318
+ }
183
319
  });
184
320
  ```
185
321
 
322
+ The `headers` option allows you to include custom HTTP headers in all API requests. This is useful for:
323
+ - Adding custom client identification headers
324
+ - Including version information
325
+ - Passing through metadata required by your API
326
+ - Adding correlation IDs for request tracing
327
+
186
328
  You'll need to implement a proxy server that forwards requests to fal.ai and handles authentication.
187
329
 
188
330
  ## API Reference
@@ -199,11 +341,11 @@ Creates and returns a plugin that can be added to CreativeEditor SDK.
199
341
 
200
342
  ```typescript
201
343
  interface PluginConfiguration {
202
- // Provider for text-to-video generation
203
- text2video?: AiVideoProvider;
344
+ // Provider(s) for text-to-video generation
345
+ text2video?: AiVideoProvider | AiVideoProvider[];
204
346
 
205
- // Provider for image-to-video generation
206
- image2video?: AiVideoProvider;
347
+ // Provider(s) for image-to-video generation
348
+ image2video?: AiVideoProvider | AiVideoProvider[];
207
349
 
208
350
  // Enable debug logging
209
351
  debug?: boolean;
@@ -223,6 +365,7 @@ interface PluginConfiguration {
223
365
  ```typescript
224
366
  FalAiVideo.MinimaxVideo01Live(config: {
225
367
  proxyUrl: string;
368
+ headers?: Record<string, string>;
226
369
  debug?: boolean;
227
370
  }): AiVideoProvider
228
371
  ```
@@ -232,6 +375,7 @@ FalAiVideo.MinimaxVideo01Live(config: {
232
375
  ```typescript
233
376
  FalAiVideo.MinimaxVideo01LiveImageToVideo(config: {
234
377
  proxyUrl: string;
378
+ headers?: Record<string, string>;
235
379
  debug?: boolean;
236
380
  }): AiVideoProvider
237
381
  ```
@@ -240,6 +384,34 @@ FalAiVideo.MinimaxVideo01LiveImageToVideo(config: {
240
384
 
241
385
  ```typescript
242
386
  FalAiVideo.PixverseV35TextToVideo(config: {
387
+ proxyUrl: string;
388
+ headers?: Record<string, string>;
389
+ debug?: boolean;
390
+ }): AiVideoProvider
391
+ ```
392
+
393
+ #### KlingVideoV21MasterTextToVideo
394
+
395
+ ```typescript
396
+ FalAiVideo.KlingVideoV21MasterTextToVideo(config: {
397
+ proxyUrl: string;
398
+ debug?: boolean;
399
+ }): AiVideoProvider
400
+ ```
401
+
402
+ #### KlingVideoV21MasterImageToVideo
403
+
404
+ ```typescript
405
+ FalAiVideo.KlingVideoV21MasterImageToVideo(config: {
406
+ proxyUrl: string;
407
+ debug?: boolean;
408
+ }): AiVideoProvider
409
+ ```
410
+
411
+ #### Veo3TextToVideo
412
+
413
+ ```typescript
414
+ FalAiVideo.Veo3TextToVideo(config: {
243
415
  proxyUrl: string;
244
416
  debug?: boolean;
245
417
  }): AiVideoProvider
@@ -256,12 +428,15 @@ The plugin automatically registers the following UI components:
256
428
 
257
429
  ### Panel IDs
258
430
 
259
- - Main panel: `ly.img.ai/video-generation`
431
+ - Main panel: `ly.img.ai.video-generation`
260
432
  - Canvas quick actions: `ly.img.ai.video.canvasMenu`
261
433
  - Provider-specific panels:
262
- - MinimaxVideo01Live: `ly.img.ai/fal-ai/minimax/video-01-live`
263
- - MinimaxVideo01LiveImageToVideo: `ly.img.ai/fal-ai/minimax/video-01-live/image-to-video`
264
- - PixverseV35TextToVideo: `ly.img.ai/fal-ai/pixverse/v3.5/text-to-video`
434
+ - MinimaxVideo01Live: `ly.img.ai.fal-ai/minimax/video-01-live`
435
+ - MinimaxVideo01LiveImageToVideo: `ly.img.ai.fal-ai/minimax/video-01-live/image-to-video`
436
+ - PixverseV35TextToVideo: `ly.img.ai.fal-ai/pixverse/v3.5/text-to-video`
437
+ - KlingVideoV21MasterTextToVideo: `ly.img.ai.fal-ai/kling-video/v2.1/master/text-to-video`
438
+ - KlingVideoV21MasterImageToVideo: `ly.img.ai.fal-ai/kling-video/v2.1/master/image-to-video`
439
+ - Veo3TextToVideo: `ly.img.ai.fal-ai/veo3`
265
440
 
266
441
  ### Asset History
267
442
 
@@ -270,6 +445,9 @@ Generated videos are automatically stored in asset sources with the following ID
270
445
  - MinimaxVideo01Live: `fal-ai/minimax/video-01-live.history`
271
446
  - MinimaxVideo01LiveImageToVideo: `fal-ai/minimax/video-01-live/image-to-video.history`
272
447
  - PixverseV35TextToVideo: `fal-ai/pixverse/v3.5/text-to-video.history`
448
+ - KlingVideoV21MasterTextToVideo: `fal-ai/kling-video/v2.1/master/text-to-video.history`
449
+ - KlingVideoV21MasterImageToVideo: `fal-ai/kling-video/v2.1/master/image-to-video.history`
450
+ - Veo3TextToVideo: `fal-ai/veo3.history`
273
451
 
274
452
  ### Dock Integration
275
453
 
@@ -278,21 +456,21 @@ The plugin automatically registers a dock component with a sparkle icon that ope
278
456
  ```typescript
279
457
  // Add the AI Video component to the beginning of the dock
280
458
  cesdk.ui.setDockOrder([
281
- 'ly.img.ai/video-generation.dock',
459
+ 'ly.img.ai.video-generation.dock',
282
460
  ...cesdk.ui.getDockOrder()
283
461
  ]);
284
462
 
285
463
  // Or add it at a specific position
286
464
  const currentOrder = cesdk.ui.getDockOrder();
287
- currentOrder.splice(2, 0, 'ly.img.ai/video-generation.dock');
465
+ currentOrder.splice(2, 0, 'ly.img.ai.video-generation.dock');
288
466
  cesdk.ui.setDockOrder(currentOrder);
289
467
  ```
290
468
 
291
469
  ## Related Packages
292
470
 
293
- - [@imgly/plugin-ai-generation-web](https://github.com/imgly/plugin-ai-generation-web) - Core utilities for AI generation
294
- - [@imgly/plugin-ai-image-generation-web](https://github.com/imgly/plugin-ai-image-generation-web) - AI image generation
295
- - [@imgly/plugin-ai-audio-generation-web](https://github.com/imgly/plugin-ai-audio-generation-web) - AI audio generation
471
+ - [@imgly/plugin-ai-generation-web](https://github.com/imgly/plugins/tree/main/packages/plugin-ai-generation-web) - Core utilities for AI generation
472
+ - [@imgly/plugin-ai-image-generation-web](https://github.com/imgly/plugins/tree/main/packages/plugin-ai-image-generation-web) - AI image generation
473
+ - [@imgly/plugin-ai-audio-generation-web](https://github.com/imgly/plugins/tree/main/packages/plugin-ai-audio-generation-web) - AI audio generation
296
474
 
297
475
  ## License
298
476
 
@@ -1 +1,6 @@
1
1
  export declare const PLUGIN_ID = "@imgly/plugin-ai-video-generation-web";
2
+ /**
3
+ * Default order for video quick actions.
4
+ * This is used as a fallback when children is undefined in canvas menu order.
5
+ */
6
+ export declare const DEFAULT_VIDEO_QUICK_ACTION_ORDER: string[];
@@ -0,0 +1,19 @@
1
+ import { VideoOutput, type Provider, CommonProviderConfiguration } from '@imgly/plugin-ai-generation-web';
2
+ import CreativeEditorSDK from '@cesdk/cesdk-js';
3
+ type KlingVideoV21MasterImageToVideoInput = {
4
+ prompt: string;
5
+ image_url: string;
6
+ duration?: '5' | '10';
7
+ negative_prompt?: string;
8
+ cfg_scale?: number;
9
+ };
10
+ interface ProviderConfiguration extends CommonProviderConfiguration<KlingVideoV21MasterImageToVideoInput, VideoOutput> {
11
+ }
12
+ export declare function KlingVideoV21MasterImageToVideo(config: ProviderConfiguration): (context: {
13
+ cesdk: CreativeEditorSDK;
14
+ }) => Promise<Provider<'video', KlingVideoV21MasterImageToVideoInput, VideoOutput>>;
15
+ declare function getProvider(cesdk: CreativeEditorSDK, config: ProviderConfiguration): Provider<'video', KlingVideoV21MasterImageToVideoInput, {
16
+ kind: 'video';
17
+ url: string;
18
+ }>;
19
+ export default getProvider;
@@ -0,0 +1,19 @@
1
+ import { CommonProviderConfiguration, VideoOutput, type Provider } from '@imgly/plugin-ai-generation-web';
2
+ import CreativeEditorSDK from '@cesdk/cesdk-js';
3
+ interface ProviderConfiguration extends CommonProviderConfiguration<KlingVideoV21MasterTextToVideoInput, VideoOutput> {
4
+ }
5
+ type KlingVideoV21MasterTextToVideoInput = {
6
+ prompt: string;
7
+ duration?: '5' | '10';
8
+ aspect_ratio?: '16:9' | '9:16' | '1:1';
9
+ negative_prompt?: string;
10
+ cfg_scale?: number;
11
+ };
12
+ export declare function KlingVideoV21MasterTextToVideo(config: ProviderConfiguration): (context: {
13
+ cesdk: CreativeEditorSDK;
14
+ }) => Promise<Provider<'video', KlingVideoV21MasterTextToVideoInput, VideoOutput>>;
15
+ declare function getProvider(cesdk: CreativeEditorSDK, config: ProviderConfiguration): Provider<'video', KlingVideoV21MasterTextToVideoInput, {
16
+ kind: 'video';
17
+ url: string;
18
+ }>;
19
+ export default getProvider;
@@ -0,0 +1,18 @@
1
+ import { CommonProviderConfiguration, VideoOutput, type Provider } from '@imgly/plugin-ai-generation-web';
2
+ import CreativeEditorSDK from '@cesdk/cesdk-js';
3
+ interface ProviderConfiguration extends CommonProviderConfiguration<Veo3Input, VideoOutput> {
4
+ }
5
+ type Veo3Input = {
6
+ prompt: string;
7
+ aspect_ratio?: '16:9' | '9:16' | '1:1';
8
+ duration?: '8s';
9
+ generate_audio?: boolean;
10
+ };
11
+ export declare function Veo3TextToVideo(config: ProviderConfiguration): (context: {
12
+ cesdk: CreativeEditorSDK;
13
+ }) => Promise<Provider<'video', Veo3Input, VideoOutput>>;
14
+ declare function getProvider(cesdk: CreativeEditorSDK, config: ProviderConfiguration): Provider<'video', Veo3Input, {
15
+ kind: 'video';
16
+ url: string;
17
+ }>;
18
+ export default getProvider;
@@ -1,9 +1,15 @@
1
1
  import { type OpenAPIV3 } from 'openapi-types';
2
2
  import CreativeEditorSDK, { CreativeEngine } from '@cesdk/cesdk-js';
3
- import { Provider, RenderCustomProperty, VideoOutput, GetBlockInput, Middleware, QuickAction } from '@imgly/plugin-ai-generation-web';
3
+ import { Provider, RenderCustomProperty, VideoOutput, GetBlockInput, Middleware } from '@imgly/plugin-ai-generation-web';
4
+ import { VideoQuickActionSupportMap } from '../types';
4
5
  type VideoProviderConfiguration = {
5
6
  proxyUrl: string;
6
7
  debug?: boolean;
8
+ middlewares?: Middleware<any, any>[];
9
+ /**
10
+ * @deprecated Use `middlewares` instead.
11
+ */
12
+ middleware?: Middleware<any, any>[];
7
13
  };
8
14
  /**
9
15
  * Creates a base provider from schema. This should work out of the box
@@ -11,6 +17,7 @@ type VideoProviderConfiguration = {
11
17
  */
12
18
  declare function createVideoProvider<I extends Record<string, any>>(options: {
13
19
  modelKey: string;
20
+ name?: string;
14
21
  schema: OpenAPIV3.Document;
15
22
  inputReference: string;
16
23
  useFlow?: 'placeholder' | 'generation-only';
@@ -20,7 +27,7 @@ declare function createVideoProvider<I extends Record<string, any>>(options: {
20
27
  }) => void;
21
28
  renderCustomProperty?: RenderCustomProperty;
22
29
  getBlockInput: GetBlockInput<'video', I>;
23
- quickActions?: QuickAction<I, VideoOutput>[];
30
+ supportedQuickActions?: VideoQuickActionSupportMap<I>;
24
31
  middleware?: Middleware<I, VideoOutput>[];
25
32
  headers?: Record<string, string>;
26
33
  cesdk?: CreativeEditorSDK;
@@ -1,9 +1,15 @@
1
1
  import { MinimaxVideo01Live } from './MinimaxVideo01Live';
2
2
  import { MinimaxVideo01LiveImageToVideo } from './MinimaxVideo01LiveImageToVideo';
3
+ import { KlingVideoV21MasterImageToVideo } from './KlingVideoV21MasterImageToVideo';
3
4
  import { PixverseV35TextToVideo } from './PixverseV35TextToVideo';
5
+ import { KlingVideoV21MasterTextToVideo } from './KlingVideoV21MasterTextToVideo';
6
+ import { Veo3TextToVideo } from './Veo3TextToVideo';
4
7
  declare const FalAi: {
5
8
  MinimaxVideo01Live: typeof MinimaxVideo01Live;
6
9
  MinimaxVideo01LiveImageToVideo: typeof MinimaxVideo01LiveImageToVideo;
10
+ KlingVideoV21MasterImageToVideo: typeof KlingVideoV21MasterImageToVideo;
7
11
  PixverseV35TextToVideo: typeof PixverseV35TextToVideo;
12
+ KlingVideoV21MasterTextToVideo: typeof KlingVideoV21MasterTextToVideo;
13
+ Veo3TextToVideo: typeof Veo3TextToVideo;
8
14
  };
9
15
  export default FalAi;