@imgly/plugin-ai-video-generation-web 0.2.8 → 0.2.10
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 +43 -0
- package/README.md +226 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/fal-ai/Veo31FastFirstLastFrameToVideo.d.ts +21 -0
- package/dist/fal-ai/Veo31FastImageToVideo.d.ts +24 -0
- package/dist/fal-ai/Veo31FastTextToVideo.d.ts +23 -0
- package/dist/fal-ai/Veo31FirstLastFrameToVideo.d.ts +21 -0
- package/dist/fal-ai/Veo31ImageToVideo.d.ts +20 -0
- package/dist/fal-ai/Veo31TextToVideo.d.ts +23 -0
- package/dist/fal-ai/index.d.ts +12 -0
- package/dist/fal-ai/index.mjs +10 -10
- package/dist/fal-ai/index.mjs.map +4 -4
- package/dist/index.mjs +8 -8
- package/dist/index.mjs.map +4 -4
- package/dist/quickActions/AnimateBetweenImages.d.ts +32 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,49 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.2.10] - 2025-10-22
|
|
6
|
+
|
|
7
|
+
### New Features
|
|
8
|
+
|
|
9
|
+
- [video-generation] **Google Veo 3.1 Provider Suite**: Added comprehensive Google Veo 3.1 video generation providers via fal.ai, offering multiple models optimized for different use cases:
|
|
10
|
+
- **Text-to-Video Providers**:
|
|
11
|
+
- `Veo31TextToVideo`: Standard quality text-to-video with configurable aspect ratios (16:9, 9:16, 1:1), variable duration (4s, 6s, 8s), resolution options (720p, 1080p), and optional audio generation
|
|
12
|
+
- `Veo31FastTextToVideo`: Faster and more cost-effective text-to-video variant with same capabilities as standard version
|
|
13
|
+
- **Image-to-Video Providers**:
|
|
14
|
+
- `Veo31ImageToVideo`: Standard quality image-to-video with auto aspect ratio detection, multiple preset options (16:9, 9:16, 1:1), resolution options (720p, 1080p), fixed 8-second duration, and optional audio generation
|
|
15
|
+
- `Veo31FastImageToVideo`: Faster and more cost-effective image-to-video variant with same capabilities
|
|
16
|
+
- **First-Last Frame Providers** (experimental dual-image transformation):
|
|
17
|
+
- `Veo31FirstLastFrameToVideo`: Standard quality interpolation between two images (first and last frame)
|
|
18
|
+
- `Veo31FastFirstLastFrameToVideo`: Faster variant with dual image input UI, multiple aspect ratios (16:9, 9:16, 1:1, 4:3, 3:4), resolution options (480p, 720p, 1080p), adjustable duration (2-8 seconds), optional prompt guidance, and optional audio generation
|
|
19
|
+
- **Quick Action Support**: Added "Animate Between Images" quick action for creating smooth transitions between two selected images using the first-last-frame providers
|
|
20
|
+
|
|
21
|
+
## [0.2.9] - 2025-10-16
|
|
22
|
+
|
|
23
|
+
### New Features
|
|
24
|
+
|
|
25
|
+
- [image-generation] **GeminiFlash25 Provider**: Added Google Gemini Flash 2.5 text-to-image provider via fal.ai with fast generation times, multiple aspect ratios (1:1, 3:4, 4:3, 9:16, 16:9), custom dimensions support, and multiple output formats (JPEG, PNG, WEBP)
|
|
26
|
+
- [image-generation] **Gemini25FlashImageEdit Provider**: Added Google Gemini 2.5 Flash Image Edit provider via fal.ai for advanced image editing with multi-image support (1-10 images), comprehensive quick actions support (editImage, swapBackground, styleTransfer, artistTransfer, createVariant, combineImages, remixPage, remixPageWithPrompt), text-based editing instructions, and fast processing times
|
|
27
|
+
|
|
28
|
+
### Improvements
|
|
29
|
+
|
|
30
|
+
- [generation-web] **Middleware preventDefault() API**: Added `options.preventDefault()` method to suppress default UI feedback (notifications, block states, console logging) when handling errors in custom middleware
|
|
31
|
+
- [all] **Internationalization Support**: All hardcoded strings across AI plugins have been removed and replaced with translation keys, enabling full localization support for plugin labels, actions, styles, and error messages
|
|
32
|
+
- [all] **Translation Keys Available**: Added comprehensive translation keys for:
|
|
33
|
+
- Panel and dock labels (AI Image, AI Video, AI Sticker, AI Voice, Sound Generation)
|
|
34
|
+
- Action labels (Generate Image, Generate Video, Generate Sticker)
|
|
35
|
+
- Style transfer options (None, Anime, Cyberpunk, Kodak 400, Watercolor, Dark Fantasy, Vaporwave, Vector Flat, 3D Animation, Ukiyo-e, Surreal, Steampunk, Night Bokeh, Pop Art)
|
|
36
|
+
- Error messages and UI elements
|
|
37
|
+
- [all] **Backwards Compatibility**: Translation system automatically detects CE.SDK version and gracefully falls back to English strings for CE.SDK versions < 1.59.0, ensuring no breaking changes for existing integrations
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
|
|
41
|
+
- [generation-web] **Placeholder Block Error State**: Fixed placeholder blocks getting stuck in Pending state when generation fails or is aborted. Blocks are now properly destroyed when generation is aborted, or moved to Error state when generation fails, preventing perpetual loading spinners in the UI.
|
|
42
|
+
- [generation-web] **Middleware Block Targeting**: Fixed middleware to correctly receive block IDs for placeholder blocks and quick action targets. Previously, middleware would fall back to `findAllSelected()` which could target incorrect blocks if the selection changed during generation. Now placeholder blocks created during panel generation and target blocks from quick actions are explicitly passed to middleware, ensuring operations like pending state, locking, and highlighting affect the correct blocks.
|
|
43
|
+
|
|
44
|
+
### Changed
|
|
45
|
+
|
|
46
|
+
- [generation-web] **BlockIds Type Refinement**: Removed unused `| null` type from `blockIds` parameter in `GenerationOptions` and `Generate` function signature. The `null` value was documented but never implemented or used. Use an empty array `[]` instead of `null` to explicitly target no blocks.
|
|
47
|
+
|
|
5
48
|
## [0.2.8] - 2025-09-29
|
|
6
49
|
|
|
7
50
|
### New Features
|
package/README.md
CHANGED
|
@@ -364,6 +364,140 @@ Key features:
|
|
|
364
364
|
- Fixed duration of 8 seconds
|
|
365
365
|
- Optional audio generation via `generate_audio`
|
|
366
366
|
|
|
367
|
+
#### 9. Veo31TextToVideo (Text-to-Video)
|
|
368
|
+
|
|
369
|
+
Google's Veo 3.1 text-to-video model with enhanced capabilities:
|
|
370
|
+
|
|
371
|
+
```typescript
|
|
372
|
+
text2video: FalAiVideo.Veo31TextToVideo({
|
|
373
|
+
proxyUrl: 'http://your-proxy-server.com/api/proxy',
|
|
374
|
+
// Optional: Configure default property values
|
|
375
|
+
properties: {
|
|
376
|
+
aspect_ratio: { default: '16:9' }, // Options: '16:9', '9:16', '1:1'
|
|
377
|
+
duration: { default: '8s' }, // Options: '4s', '6s', '8s'
|
|
378
|
+
resolution: { default: '720p' }, // Options: '720p', '1080p'
|
|
379
|
+
generate_audio: { default: true } // Enable audio generation
|
|
380
|
+
}
|
|
381
|
+
});
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
Key features:
|
|
385
|
+
|
|
386
|
+
- Generate videos from text descriptions
|
|
387
|
+
- Supports aspect ratios 16:9, 9:16 and 1:1 (defaults to 16:9)
|
|
388
|
+
- Variable duration options: 4s, 6s, or 8s
|
|
389
|
+
- Resolution options: 720p (1280×720) or 1080p (1920×1080)
|
|
390
|
+
- Optional audio generation
|
|
391
|
+
|
|
392
|
+
#### 10. Veo31FastTextToVideo (Text-to-Video)
|
|
393
|
+
|
|
394
|
+
Faster and more cost-effective version of Google's Veo 3.1 text-to-video model:
|
|
395
|
+
|
|
396
|
+
```typescript
|
|
397
|
+
text2video: FalAiVideo.Veo31FastTextToVideo({
|
|
398
|
+
proxyUrl: 'http://your-proxy-server.com/api/proxy',
|
|
399
|
+
// Optional: Configure default property values
|
|
400
|
+
properties: {
|
|
401
|
+
aspect_ratio: { default: '16:9' }, // Options: '16:9', '9:16', '1:1'
|
|
402
|
+
duration: { default: '8s' }, // Options: '4s', '6s', '8s'
|
|
403
|
+
resolution: { default: '720p' }, // Options: '720p', '1080p'
|
|
404
|
+
generate_audio: { default: true } // Enable audio generation
|
|
405
|
+
}
|
|
406
|
+
});
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
Key features:
|
|
410
|
+
|
|
411
|
+
- Generate videos from text descriptions with faster processing
|
|
412
|
+
- Supports aspect ratios 16:9, 9:16 and 1:1 (defaults to 16:9)
|
|
413
|
+
- Variable duration options: 4s, 6s, or 8s
|
|
414
|
+
- Resolution options: 720p (1280×720) or 1080p (1920×1080)
|
|
415
|
+
- Optional audio generation
|
|
416
|
+
- More cost-effective than the standard Veo 3.1 model
|
|
417
|
+
|
|
418
|
+
#### 11. Veo31ImageToVideo (Image-to-Video)
|
|
419
|
+
|
|
420
|
+
A model that transforms still images into videos using Google's Veo 3.1:
|
|
421
|
+
|
|
422
|
+
```typescript
|
|
423
|
+
image2video: FalAiVideo.Veo31ImageToVideo({
|
|
424
|
+
proxyUrl: 'http://your-proxy-server.com/api/proxy',
|
|
425
|
+
// Optional: Configure default property values
|
|
426
|
+
properties: {
|
|
427
|
+
aspect_ratio: { default: 'auto' }, // Options: 'auto', '9:16', '16:9', '1:1'
|
|
428
|
+
resolution: { default: '720p' }, // Options: '720p', '1080p'
|
|
429
|
+
duration: { default: '8s' }, // Fixed at 8 seconds
|
|
430
|
+
generate_audio: { default: true } // Enable audio generation
|
|
431
|
+
}
|
|
432
|
+
});
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
Key features:
|
|
436
|
+
|
|
437
|
+
- Transform existing images into videos
|
|
438
|
+
- Multiple aspect ratio options (auto, 9:16, 16:9, 1:1)
|
|
439
|
+
- Resolution options: 720p (1280×720) or 1080p (1920×1080)
|
|
440
|
+
- Fixed duration of 8 seconds
|
|
441
|
+
- Optional audio generation
|
|
442
|
+
- Canvas quick-action integration
|
|
443
|
+
- Auto aspect ratio preserves source image dimensions
|
|
444
|
+
|
|
445
|
+
#### 12. Veo31FastImageToVideo (Image-to-Video)
|
|
446
|
+
|
|
447
|
+
Faster and more cost-effective version of Google's Veo 3.1 image-to-video model:
|
|
448
|
+
|
|
449
|
+
```typescript
|
|
450
|
+
image2video: FalAiVideo.Veo31FastImageToVideo({
|
|
451
|
+
proxyUrl: 'http://your-proxy-server.com/api/proxy',
|
|
452
|
+
// Optional: Configure default property values
|
|
453
|
+
properties: {
|
|
454
|
+
aspect_ratio: { default: 'auto' }, // Options: 'auto', '9:16', '16:9', '1:1'
|
|
455
|
+
resolution: { default: '720p' }, // Options: '720p', '1080p'
|
|
456
|
+
duration: { default: '8s' }, // Fixed at 8 seconds
|
|
457
|
+
generate_audio: { default: true } // Enable audio generation
|
|
458
|
+
}
|
|
459
|
+
});
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
Key features:
|
|
463
|
+
|
|
464
|
+
- Transform existing images into videos with faster processing
|
|
465
|
+
- Multiple aspect ratio options (auto, 9:16, 16:9, 1:1)
|
|
466
|
+
- Resolution options: 720p (1280×720) or 1080p (1920×1080)
|
|
467
|
+
- Fixed duration of 8 seconds
|
|
468
|
+
- Optional audio generation
|
|
469
|
+
- Canvas quick-action integration
|
|
470
|
+
- More cost-effective than the standard Veo 3.1 model
|
|
471
|
+
- Auto aspect ratio preserves source image dimensions
|
|
472
|
+
|
|
473
|
+
#### 13. Veo31FastFirstLastFrameToVideo (Image-to-Video)
|
|
474
|
+
|
|
475
|
+
An experimental dual-image transformation model using Veo 3.1 Fast that creates videos by interpolating between two images:
|
|
476
|
+
|
|
477
|
+
```typescript
|
|
478
|
+
image2video: FalAiVideo.Veo31FastFirstLastFrameToVideo({
|
|
479
|
+
proxyUrl: 'http://your-proxy-server.com/api/proxy',
|
|
480
|
+
// Optional: Configure default property values
|
|
481
|
+
properties: {
|
|
482
|
+
aspect_ratio: { default: 'auto' }, // Options: 'auto', '9:16', '16:9', '1:1'
|
|
483
|
+
resolution: { default: '720p' }, // Options: '720p', '1080p'
|
|
484
|
+
duration: { default: '8s' } // Fixed at 8 seconds
|
|
485
|
+
}
|
|
486
|
+
});
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
Key features:
|
|
490
|
+
|
|
491
|
+
- Transform two images (first frame and last frame) into smooth video transitions
|
|
492
|
+
- Multiple aspect ratio options (auto, 9:16, 16:9, 1:1)
|
|
493
|
+
- Resolution options (720p, 1080p)
|
|
494
|
+
- Fixed duration of 8 seconds
|
|
495
|
+
- Custom UI with dual image selectors for first and last frames
|
|
496
|
+
- Optional prompt guidance for transition control
|
|
497
|
+
- Optional audio generation
|
|
498
|
+
|
|
499
|
+
**Note:** This provider uses a custom UI implementation with two image input fields (first_frame_url and last_frame_url) instead of the standard single image selector. This is a proof-of-concept implementation for handling multiple image inputs in video generation.
|
|
500
|
+
|
|
367
501
|
### Feature Control
|
|
368
502
|
|
|
369
503
|
You can control various aspects of the video generation plugin using the Feature API:
|
|
@@ -515,6 +649,43 @@ Built-in middleware options:
|
|
|
515
649
|
|
|
516
650
|
You can also create custom middleware functions to meet your specific needs.
|
|
517
651
|
|
|
652
|
+
#### Preventing Default Feedback
|
|
653
|
+
|
|
654
|
+
Middleware can suppress default UI feedback behaviors using `options.preventDefault()`:
|
|
655
|
+
|
|
656
|
+
```typescript
|
|
657
|
+
const customErrorMiddleware = async (input, options, next) => {
|
|
658
|
+
try {
|
|
659
|
+
return await next(input, options);
|
|
660
|
+
} catch (error) {
|
|
661
|
+
// Prevent default error notification
|
|
662
|
+
options.preventDefault();
|
|
663
|
+
|
|
664
|
+
// Show custom error notification
|
|
665
|
+
options.cesdk?.ui.showNotification({
|
|
666
|
+
type: 'error',
|
|
667
|
+
message: `Video generation failed: ${error.message}`,
|
|
668
|
+
action: {
|
|
669
|
+
label: 'Try Again',
|
|
670
|
+
onClick: () => {/* retry logic */}
|
|
671
|
+
}
|
|
672
|
+
});
|
|
673
|
+
|
|
674
|
+
throw error;
|
|
675
|
+
}
|
|
676
|
+
};
|
|
677
|
+
```
|
|
678
|
+
|
|
679
|
+
**What gets prevented:**
|
|
680
|
+
- Error/success notifications
|
|
681
|
+
- Block error state
|
|
682
|
+
- Console error logging
|
|
683
|
+
|
|
684
|
+
**What is NOT prevented:**
|
|
685
|
+
- Pending → Ready transition (loading spinner always stops)
|
|
686
|
+
|
|
687
|
+
For more details, see the [@imgly/plugin-ai-generation-web documentation](https://github.com/imgly/plugins/tree/main/packages/plugin-ai-generation-web#preventing-default-feedback).
|
|
688
|
+
|
|
518
689
|
### Using a Proxy
|
|
519
690
|
|
|
520
691
|
For security reasons, it's recommended to use a proxy server to handle API requests to fal.ai. The proxy URL is required when configuring providers:
|
|
@@ -655,6 +826,51 @@ FalAiVideo.Veo3TextToVideo(config: {
|
|
|
655
826
|
}): AiVideoProvider
|
|
656
827
|
```
|
|
657
828
|
|
|
829
|
+
#### Veo31TextToVideo
|
|
830
|
+
|
|
831
|
+
```typescript
|
|
832
|
+
FalAiVideo.Veo31TextToVideo(config: {
|
|
833
|
+
proxyUrl: string;
|
|
834
|
+
debug?: boolean;
|
|
835
|
+
}): AiVideoProvider
|
|
836
|
+
```
|
|
837
|
+
|
|
838
|
+
#### Veo31FastTextToVideo
|
|
839
|
+
|
|
840
|
+
```typescript
|
|
841
|
+
FalAiVideo.Veo31FastTextToVideo(config: {
|
|
842
|
+
proxyUrl: string;
|
|
843
|
+
debug?: boolean;
|
|
844
|
+
}): AiVideoProvider
|
|
845
|
+
```
|
|
846
|
+
|
|
847
|
+
#### Veo31ImageToVideo
|
|
848
|
+
|
|
849
|
+
```typescript
|
|
850
|
+
FalAiVideo.Veo31ImageToVideo(config: {
|
|
851
|
+
proxyUrl: string;
|
|
852
|
+
debug?: boolean;
|
|
853
|
+
}): AiVideoProvider
|
|
854
|
+
```
|
|
855
|
+
|
|
856
|
+
#### Veo31FastImageToVideo
|
|
857
|
+
|
|
858
|
+
```typescript
|
|
859
|
+
FalAiVideo.Veo31FastImageToVideo(config: {
|
|
860
|
+
proxyUrl: string;
|
|
861
|
+
debug?: boolean;
|
|
862
|
+
}): AiVideoProvider
|
|
863
|
+
```
|
|
864
|
+
|
|
865
|
+
#### Veo31FastFirstLastFrameToVideo
|
|
866
|
+
|
|
867
|
+
```typescript
|
|
868
|
+
FalAiVideo.Veo31FastFirstLastFrameToVideo(config: {
|
|
869
|
+
proxyUrl: string;
|
|
870
|
+
debug?: boolean;
|
|
871
|
+
}): AiVideoProvider
|
|
872
|
+
```
|
|
873
|
+
|
|
658
874
|
## UI Integration
|
|
659
875
|
|
|
660
876
|
The plugin automatically registers the following UI components:
|
|
@@ -678,6 +894,11 @@ The plugin automatically registers the following UI components:
|
|
|
678
894
|
- ByteDanceSeedanceV1ProImageToVideo: `ly.img.ai.fal-ai/bytedance/seedance/v1/pro/image-to-video`
|
|
679
895
|
- ByteDanceSeedanceV1ProTextToVideo: `ly.img.ai.fal-ai/bytedance/seedance/v1/pro/text-to-video`
|
|
680
896
|
- Veo3TextToVideo: `ly.img.ai.fal-ai/veo3`
|
|
897
|
+
- Veo31TextToVideo: `ly.img.ai.fal-ai/veo3.1`
|
|
898
|
+
- Veo31FastTextToVideo: `ly.img.ai.fal-ai/veo3.1/fast`
|
|
899
|
+
- Veo31ImageToVideo: `ly.img.ai.fal-ai/veo3.1/image-to-video`
|
|
900
|
+
- Veo31FastImageToVideo: `ly.img.ai.fal-ai/veo3.1/fast/image-to-video`
|
|
901
|
+
- Veo31FastFirstLastFrameToVideo: `ly.img.ai.fal-ai/veo3.1/fast/first-last-frame-to-video`
|
|
681
902
|
|
|
682
903
|
### Asset History
|
|
683
904
|
|
|
@@ -692,6 +913,11 @@ Generated videos are automatically stored in asset sources with the following ID
|
|
|
692
913
|
- ByteDanceSeedanceV1ProImageToVideo: `fal-ai/bytedance/seedance/v1/pro/image-to-video.history`
|
|
693
914
|
- ByteDanceSeedanceV1ProTextToVideo: `fal-ai/bytedance/seedance/v1/pro/text-to-video.history`
|
|
694
915
|
- Veo3TextToVideo: `fal-ai/veo3.history`
|
|
916
|
+
- Veo31TextToVideo: `fal-ai/veo3.1.history`
|
|
917
|
+
- Veo31FastTextToVideo: `fal-ai/veo3.1/fast.history`
|
|
918
|
+
- Veo31ImageToVideo: `fal-ai/veo3.1/image-to-video.history`
|
|
919
|
+
- Veo31FastImageToVideo: `fal-ai/veo3.1/fast/image-to-video.history`
|
|
920
|
+
- Veo31FastFirstLastFrameToVideo: `fal-ai/veo3.1/fast/first-last-frame-to-video.history`
|
|
695
921
|
|
|
696
922
|
### Dock Integration
|
|
697
923
|
|