@imgly/plugin-ai-video-generation-web 0.2.5 → 0.2.7

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,12 +2,40 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.2.7] - 2025-09-26
6
+
7
+ ### New Features
8
+
9
+ - [image-generation] **QwenImageEdit Provider**: Added Qwen image editing provider via fal.ai for advanced image-to-image transformation with text prompts, supporting all standard quick actions
10
+ - [video-generation] **MinimaxHailuo02StandardImageToVideo Provider**: Added Minimax Hailuo-02 Standard image-to-video provider via fal.ai for transforming still images into videos with selectable resolutions (512P: 912×512, 768P: 1280×720) and adjustable durations (6 or 10 seconds)
11
+ - [video-generation] **ByteDance Seedance v1 Pro Providers**: Added ByteDance Seedance v1 Pro text-to-video and image-to-video providers via fal.ai with:
12
+ - Text-to-video generation from text descriptions with customizable aspect ratios
13
+ - Image-to-video transformation with dynamic motion generation from still images
14
+ - Multiple aspect ratio options (21:9, 16:9, 4:3, 1:1, 3:4, 9:16, or auto from image for i2v)
15
+ - Adjustable duration (3-12 seconds, default 5)
16
+ - Resolution options (480p, 720p, 1080p)
17
+ - Proper aspect ratio handling in placeholder blocks based on user selection
18
+
19
+ - [all] **Property Configuration System**: Providers can now define default values for their properties. Defaults can be static values or dynamic based on context (language, design state, etc.)
20
+
21
+ - [image-generation] **Recraft Provider Defaults**: Recraft providers (V3 and 20b) now support configurable default values for all properties, including dynamic style defaults based on the selected style type
22
+
23
+ ## [0.2.6] - 2025-09-09
24
+
25
+ ### New Features
26
+
27
+ - [all] **Feature API Integration**: Added comprehensive Feature API support across all AI plugins to control visibility and availability of features through feature flags. Core features include `providerSelect`, `quickAction`, `quickAction.providerSelect`, `fromText`, and `fromImage` flags.
28
+ - [all] **Quick Action Feature Flags**: Each quick action now automatically registers and respects its own feature flag (e.g., `ly.img.plugin-ai-image-generation-web.quickAction.editImage`), allowing fine-grained control over which quick actions are available to users.
29
+ - [image-generation] **Provider Style Group Control**: Added Feature API support for Recraft providers to control style group visibility. RecraftV3 supports `style.image` and `style.vector` flags, while Recraft20b adds `style.icon` flag for controlling icon style availability.
30
+ - [all] **Provider Selection Feature Flags**: Added support for controlling provider selection UI in both panels (`providerSelect`) and quick actions (`quickAction.providerSelect`), with proper handling when multiple providers are configured.
31
+
5
32
  ## [0.2.5] - 2025-09-03
6
33
 
7
34
  ### New Features
8
35
 
9
36
  - [image-generation] **NanoBanana Provider**: Added NanoBanana text-to-image provider via fal.ai with fast generation times, 1024×1024 resolution, support for multiple output formats (JPEG, PNG), configurable number of images (1-4), and remixPageWithPrompt quick action
10
37
  - [image-generation] **NanoBananaEdit Provider**: Added NanoBananaEdit image-to-image provider via fal.ai for editing existing images with text prompts, supporting all standard quick actions (editImage, swapBackground, styleTransfer, artistTransfer, createVariant, combineImages with up to 10 images, remixPage, remixPageWithPrompt)
38
+ - [all] **AI Style Asset Library Translations**: AI style presets in asset libraries now automatically use localized names and descriptions from provider translation files, eliminating the need for manual translation configuration
11
39
 
12
40
  ### Bug Fixes
13
41
 
package/README.md CHANGED
@@ -48,6 +48,11 @@ CreativeEditorSDK.create(domElement, {
48
48
  headers: {
49
49
  'x-custom-header': 'value',
50
50
  'x-client-version': '1.0.0'
51
+ },
52
+ // Optional: Configure default property values
53
+ properties: {
54
+ duration: 5, // Default duration in seconds
55
+ aspect_ratio: '16:9' // Default aspect ratio
51
56
  }
52
57
  }),
53
58
 
@@ -134,6 +139,10 @@ text2video: FalAiVideo.MinimaxVideo01Live({
134
139
  headers: {
135
140
  'x-custom-header': 'value',
136
141
  'x-client-version': '1.0.0'
142
+ },
143
+ // Optional: Configure default property values
144
+ properties: {
145
+ prompt_optimizer: true // Enable automatic prompt enhancement
137
146
  }
138
147
  });
139
148
  ```
@@ -165,6 +174,10 @@ image2video: FalAiVideo.MinimaxVideo01LiveImageToVideo({
165
174
  headers: {
166
175
  'x-custom-header': 'value',
167
176
  'x-client-version': '1.0.0'
177
+ },
178
+ // Optional: Configure default property values
179
+ properties: {
180
+ prompt_optimizer: true // Enable automatic prompt enhancement
168
181
  }
169
182
  });
170
183
  ```
@@ -176,7 +189,34 @@ Key features:
176
189
  - Maintains original image aspect ratio
177
190
  - Custom headers support for API requests
178
191
 
179
- #### 3. PixverseV35TextToVideo (Text-to-Video)
192
+ #### 3. MinimaxHailuo02StandardImageToVideo (Image-to-Video)
193
+
194
+ An advanced model that transforms still images into videos using Hailuo 02 Standard:
195
+
196
+ ```typescript
197
+ image2video: FalAiVideo.MinimaxHailuo02StandardImageToVideo({
198
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
199
+ headers: {
200
+ 'x-custom-header': 'value',
201
+ 'x-client-version': '1.0.0'
202
+ },
203
+ // Optional: Configure default property values
204
+ properties: {
205
+ resolution: '768P', // Options: '512P' (912×512), '768P' (1280×720)
206
+ duration: 6 // Duration in seconds (6 or 10)
207
+ }
208
+ });
209
+ ```
210
+
211
+ Key features:
212
+
213
+ - Transform existing images into videos
214
+ - Available through canvas quick actions
215
+ - Selectable resolutions (512P: 912×512, 768P: 1280×720)
216
+ - Adjustable durations (6 or 10 seconds)
217
+ - Custom headers support for API requests
218
+
219
+ #### 4. PixverseV35TextToVideo (Text-to-Video)
180
220
 
181
221
  An alternative text-to-video model:
182
222
 
@@ -186,6 +226,10 @@ text2video: FalAiVideo.PixverseV35TextToVideo({
186
226
  headers: {
187
227
  'x-custom-header': 'value',
188
228
  'x-client-version': '1.0.0'
229
+ },
230
+ // Optional: Configure default property values
231
+ properties: {
232
+ seed: 42 // Fixed seed for reproducible generation
189
233
  }
190
234
  });
191
235
  ```
@@ -195,13 +239,18 @@ Key features:
195
239
  - Alternative text-to-video generation
196
240
  - Custom headers support for API requests
197
241
 
198
- #### 4. KlingVideoV21MasterTextToVideo (Text-to-Video)
242
+ #### 5. KlingVideoV21MasterTextToVideo (Text-to-Video)
199
243
 
200
244
  A model based on KlingVideo V2.1 that generates videos from text prompts:
201
245
 
202
246
  ```typescript
203
247
  text2video: FalAiVideo.KlingVideoV21MasterTextToVideo({
204
- proxyUrl: 'http://your-proxy-server.com/api/proxy'
248
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
249
+ // Optional: Configure default property values
250
+ properties: {
251
+ aspect_ratio: '16:9', // Options: '16:9', '9:16', '1:1'
252
+ duration: '5s' // Options: '5s', '10s'
253
+ }
205
254
  });
206
255
  ```
207
256
 
@@ -224,13 +273,17 @@ cesdk.i18n.setTranslations({
224
273
  });
225
274
  ```
226
275
 
227
- #### 5. KlingVideoV21MasterImageToVideo (Image-to-Video)
276
+ #### 6. KlingVideoV21MasterImageToVideo (Image-to-Video)
228
277
 
229
278
  A model that converts still images into videos using KlingVideo V2.1:
230
279
 
231
280
  ```typescript
232
281
  image2video: FalAiVideo.KlingVideoV21MasterImageToVideo({
233
- proxyUrl: 'http://your-proxy-server.com/api/proxy'
282
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
283
+ // Optional: Configure default property values
284
+ properties: {
285
+ duration: '5s' // Options: '5s', '10s'
286
+ }
234
287
  });
235
288
  ```
236
289
 
@@ -241,13 +294,66 @@ Key features:
241
294
  - Canvas quick-action integration
242
295
  - Selectable durations (5 s or 10 s)
243
296
 
244
- #### 6. Veo3TextToVideo (Text-to-Video)
297
+ #### 6. ByteDanceSeedanceV1ProImageToVideo (Image-to-Video)
298
+
299
+ A model that transforms images into videos using ByteDance Seedance v1 Pro:
300
+
301
+ ```typescript
302
+ image2video: FalAiVideo.ByteDanceSeedanceV1ProImageToVideo({
303
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
304
+ // Optional: Configure default property values
305
+ properties: {
306
+ aspect_ratio: 'auto', // Options: '21:9', '16:9', '4:3', '1:1', '3:4', '9:16', 'auto'
307
+ duration: 5, // Duration in seconds (3-12)
308
+ resolution: '720p' // Options: '480p', '720p', '1080p'
309
+ }
310
+ });
311
+ ```
312
+
313
+ Key features:
314
+
315
+ - Transform existing images into dynamic videos
316
+ - Multiple aspect ratio options (21:9, 16:9, 4:3, 1:1, 3:4, 9:16, or auto from image)
317
+ - Adjustable duration (3-12 seconds, default 5)
318
+ - Resolution options (480p, 720p, 1080p)
319
+ - Maintains image quality while adding motion
320
+
321
+ #### 7. ByteDanceSeedanceV1ProTextToVideo (Text-to-Video)
322
+
323
+ A model that generates videos from text using ByteDance Seedance v1 Pro:
324
+
325
+ ```typescript
326
+ text2video: FalAiVideo.ByteDanceSeedanceV1ProTextToVideo({
327
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
328
+ // Optional: Configure default property values
329
+ properties: {
330
+ aspect_ratio: '16:9', // Options: '21:9', '16:9', '4:3', '1:1', '3:4', '9:16'
331
+ duration: 5, // Duration in seconds (3-12)
332
+ resolution: '720p' // Options: '480p', '720p', '1080p'
333
+ }
334
+ });
335
+ ```
336
+
337
+ Key features:
338
+
339
+ - Generate videos from text descriptions
340
+ - Multiple aspect ratio options (21:9, 16:9, 4:3, 1:1, 3:4, 9:16)
341
+ - Adjustable duration (3-12 seconds, default 5)
342
+ - Resolution options (480p, 720p, 1080p)
343
+ - High-quality motion synthesis from text prompts
344
+
345
+ #### 8. Veo3TextToVideo (Text-to-Video)
245
346
 
246
347
  An advanced text-to-video model:
247
348
 
248
349
  ```typescript
249
350
  text2video: FalAiVideo.Veo3TextToVideo({
250
- proxyUrl: 'http://your-proxy-server.com/api/proxy'
351
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
352
+ // Optional: Configure default property values
353
+ properties: {
354
+ aspect_ratio: '16:9', // Options: '16:9', '9:16', '1:1'
355
+ duration: 8 // Fixed at 8 seconds for this provider
356
+ }
251
357
  });
252
358
  ```
253
359
 
@@ -258,6 +364,26 @@ Key features:
258
364
  - Fixed duration of 8 seconds
259
365
  - Optional audio generation via `generate_audio`
260
366
 
367
+ ### Feature Control
368
+
369
+ You can control various aspects of the video generation plugin using the Feature API:
370
+
371
+ ```typescript
372
+ // Disable text-to-video generation
373
+ cesdk.feature.enable('ly.img.plugin-ai-video-generation-web.fromText', false);
374
+
375
+ // Disable image-to-video generation
376
+ cesdk.feature.enable('ly.img.plugin-ai-video-generation-web.fromImage', false);
377
+
378
+ // Disable provider selection
379
+ cesdk.feature.enable('ly.img.plugin-ai-video-generation-web.providerSelect', false);
380
+
381
+ // Disable specific quick actions
382
+ cesdk.feature.enable('ly.img.plugin-ai-video-generation-web.quickAction.createVideo', false);
383
+ ```
384
+
385
+ For more information about Feature API and available feature flags, see the [@imgly/plugin-ai-generation-web documentation](https://github.com/imgly/plugins/tree/main/packages/plugin-ai-generation-web#available-feature-flags).
386
+
261
387
  ### Customizing Labels and Translations
262
388
 
263
389
  You can customize all labels and text in the AI video generation interface using the translation system. This allows you to provide better labels for your users in any language.
@@ -464,6 +590,16 @@ FalAiVideo.MinimaxVideo01LiveImageToVideo(config: {
464
590
  }): AiVideoProvider
465
591
  ```
466
592
 
593
+ #### MinimaxHailuo02StandardImageToVideo
594
+
595
+ ```typescript
596
+ FalAiVideo.MinimaxHailuo02StandardImageToVideo(config: {
597
+ proxyUrl: string;
598
+ headers?: Record<string, string>;
599
+ debug?: boolean;
600
+ }): AiVideoProvider
601
+ ```
602
+
467
603
  #### PixverseV35TextToVideo
468
604
 
469
605
  ```typescript
@@ -492,6 +628,24 @@ FalAiVideo.KlingVideoV21MasterImageToVideo(config: {
492
628
  }): AiVideoProvider
493
629
  ```
494
630
 
631
+ #### ByteDanceSeedanceV1ProImageToVideo
632
+
633
+ ```typescript
634
+ FalAiVideo.ByteDanceSeedanceV1ProImageToVideo(config: {
635
+ proxyUrl: string;
636
+ debug?: boolean;
637
+ }): AiVideoProvider
638
+ ```
639
+
640
+ #### ByteDanceSeedanceV1ProTextToVideo
641
+
642
+ ```typescript
643
+ FalAiVideo.ByteDanceSeedanceV1ProTextToVideo(config: {
644
+ proxyUrl: string;
645
+ debug?: boolean;
646
+ }): AiVideoProvider
647
+ ```
648
+
495
649
  #### Veo3TextToVideo
496
650
 
497
651
  ```typescript
@@ -517,9 +671,12 @@ The plugin automatically registers the following UI components:
517
671
  - Provider-specific panels:
518
672
  - MinimaxVideo01Live: `ly.img.ai.fal-ai/minimax/video-01-live`
519
673
  - MinimaxVideo01LiveImageToVideo: `ly.img.ai.fal-ai/minimax/video-01-live/image-to-video`
674
+ - MinimaxHailuo02StandardImageToVideo: `ly.img.ai.fal-ai/minimax/hailuo-02/standard/image-to-video`
520
675
  - PixverseV35TextToVideo: `ly.img.ai.fal-ai/pixverse/v3.5/text-to-video`
521
676
  - KlingVideoV21MasterTextToVideo: `ly.img.ai.fal-ai/kling-video/v2.1/master/text-to-video`
522
677
  - KlingVideoV21MasterImageToVideo: `ly.img.ai.fal-ai/kling-video/v2.1/master/image-to-video`
678
+ - ByteDanceSeedanceV1ProImageToVideo: `ly.img.ai.fal-ai/bytedance/seedance/v1/pro/image-to-video`
679
+ - ByteDanceSeedanceV1ProTextToVideo: `ly.img.ai.fal-ai/bytedance/seedance/v1/pro/text-to-video`
523
680
  - Veo3TextToVideo: `ly.img.ai.fal-ai/veo3`
524
681
 
525
682
  ### Asset History
@@ -528,9 +685,12 @@ Generated videos are automatically stored in asset sources with the following ID
528
685
 
529
686
  - MinimaxVideo01Live: `fal-ai/minimax/video-01-live.history`
530
687
  - MinimaxVideo01LiveImageToVideo: `fal-ai/minimax/video-01-live/image-to-video.history`
688
+ - MinimaxHailuo02StandardImageToVideo: `fal-ai/minimax/hailuo-02/standard/image-to-video.history`
531
689
  - PixverseV35TextToVideo: `fal-ai/pixverse/v3.5/text-to-video.history`
532
690
  - KlingVideoV21MasterTextToVideo: `fal-ai/kling-video/v2.1/master/text-to-video.history`
533
691
  - KlingVideoV21MasterImageToVideo: `fal-ai/kling-video/v2.1/master/image-to-video.history`
692
+ - ByteDanceSeedanceV1ProImageToVideo: `fal-ai/bytedance/seedance/v1/pro/image-to-video.history`
693
+ - ByteDanceSeedanceV1ProTextToVideo: `fal-ai/bytedance/seedance/v1/pro/text-to-video.history`
534
694
  - Veo3TextToVideo: `fal-ai/veo3.history`
535
695
 
536
696
  ### Dock Integration
@@ -0,0 +1,22 @@
1
+ import { VideoOutput, type Provider, CommonProviderConfiguration } from '@imgly/plugin-ai-generation-web';
2
+ import CreativeEditorSDK from '@cesdk/cesdk-js';
3
+ interface ByteDanceSeedanceV1ProImageToVideoInput {
4
+ prompt: string;
5
+ image_url: string;
6
+ aspect_ratio?: '21:9' | '16:9' | '4:3' | '1:1' | '3:4' | '9:16' | 'auto';
7
+ resolution?: '480p' | '720p' | '1080p';
8
+ duration?: number;
9
+ camera_fixed?: boolean;
10
+ seed?: number;
11
+ enable_safety_checker?: boolean;
12
+ }
13
+ interface ProviderConfiguration extends CommonProviderConfiguration<ByteDanceSeedanceV1ProImageToVideoInput, VideoOutput> {
14
+ }
15
+ export declare function ByteDanceSeedanceV1ProImageToVideo(config: ProviderConfiguration): (context: {
16
+ cesdk: CreativeEditorSDK;
17
+ }) => Promise<Provider<'video', ByteDanceSeedanceV1ProImageToVideoInput, VideoOutput>>;
18
+ declare function getProvider(cesdk: CreativeEditorSDK, config: ProviderConfiguration): Provider<'video', ByteDanceSeedanceV1ProImageToVideoInput, {
19
+ kind: 'video';
20
+ url: string;
21
+ }>;
22
+ export default getProvider;
@@ -0,0 +1,21 @@
1
+ import { VideoOutput, type Provider, CommonProviderConfiguration } from '@imgly/plugin-ai-generation-web';
2
+ import CreativeEditorSDK from '@cesdk/cesdk-js';
3
+ interface ByteDanceSeedanceV1ProTextToVideoInput {
4
+ prompt: string;
5
+ aspect_ratio?: '21:9' | '16:9' | '4:3' | '1:1' | '3:4' | '9:16';
6
+ resolution?: '480p' | '720p' | '1080p';
7
+ duration?: number;
8
+ camera_fixed?: boolean;
9
+ seed?: number;
10
+ enable_safety_checker?: boolean;
11
+ }
12
+ interface ProviderConfiguration extends CommonProviderConfiguration<ByteDanceSeedanceV1ProTextToVideoInput, VideoOutput> {
13
+ }
14
+ export declare function ByteDanceSeedanceV1ProTextToVideo(config: ProviderConfiguration): (context: {
15
+ cesdk: CreativeEditorSDK;
16
+ }) => Promise<Provider<'video', ByteDanceSeedanceV1ProTextToVideoInput, VideoOutput>>;
17
+ declare function getProvider(cesdk: CreativeEditorSDK, config: ProviderConfiguration): Provider<'video', ByteDanceSeedanceV1ProTextToVideoInput, {
18
+ kind: 'video';
19
+ url: string;
20
+ }>;
21
+ export default getProvider;
@@ -0,0 +1,18 @@
1
+ import { VideoOutput, type Provider, CommonProviderConfiguration } from '@imgly/plugin-ai-generation-web';
2
+ import CreativeEditorSDK from '@cesdk/cesdk-js';
3
+ interface MinimaxHailuo02StandardImageToVideoInput {
4
+ prompt: string;
5
+ image_url: string;
6
+ duration?: '6' | '10';
7
+ resolution?: '512P' | '768P';
8
+ }
9
+ interface ProviderConfiguration extends CommonProviderConfiguration<MinimaxHailuo02StandardImageToVideoInput, VideoOutput> {
10
+ }
11
+ export declare function MinimaxHailuo02StandardImageToVideo(config: ProviderConfiguration): (context: {
12
+ cesdk: CreativeEditorSDK;
13
+ }) => Promise<Provider<'video', MinimaxHailuo02StandardImageToVideoInput, VideoOutput>>;
14
+ declare function getProvider(cesdk: CreativeEditorSDK, config: ProviderConfiguration): Provider<'video', MinimaxHailuo02StandardImageToVideoInput, {
15
+ kind: 'video';
16
+ url: string;
17
+ }>;
18
+ export default getProvider;
@@ -1,15 +1,21 @@
1
1
  import { MinimaxVideo01Live } from './MinimaxVideo01Live';
2
2
  import { MinimaxVideo01LiveImageToVideo } from './MinimaxVideo01LiveImageToVideo';
3
+ import { MinimaxHailuo02StandardImageToVideo } from './MinimaxHailuo02StandardImageToVideo';
3
4
  import { KlingVideoV21MasterImageToVideo } from './KlingVideoV21MasterImageToVideo';
4
5
  import { PixverseV35TextToVideo } from './PixverseV35TextToVideo';
5
6
  import { KlingVideoV21MasterTextToVideo } from './KlingVideoV21MasterTextToVideo';
6
7
  import { Veo3TextToVideo } from './Veo3TextToVideo';
8
+ import { ByteDanceSeedanceV1ProImageToVideo } from './ByteDanceSeedanceV1ProImageToVideo';
9
+ import { ByteDanceSeedanceV1ProTextToVideo } from './ByteDanceSeedanceV1ProTextToVideo';
7
10
  declare const FalAi: {
8
11
  MinimaxVideo01Live: typeof MinimaxVideo01Live;
9
12
  MinimaxVideo01LiveImageToVideo: typeof MinimaxVideo01LiveImageToVideo;
13
+ MinimaxHailuo02StandardImageToVideo: typeof MinimaxHailuo02StandardImageToVideo;
10
14
  KlingVideoV21MasterImageToVideo: typeof KlingVideoV21MasterImageToVideo;
11
15
  PixverseV35TextToVideo: typeof PixverseV35TextToVideo;
12
16
  KlingVideoV21MasterTextToVideo: typeof KlingVideoV21MasterTextToVideo;
13
17
  Veo3TextToVideo: typeof Veo3TextToVideo;
18
+ ByteDanceSeedanceV1ProImageToVideo: typeof ByteDanceSeedanceV1ProImageToVideo;
19
+ ByteDanceSeedanceV1ProTextToVideo: typeof ByteDanceSeedanceV1ProTextToVideo;
14
20
  };
15
21
  export default FalAi;