@imgly/plugin-ai-video-generation-web 0.2.7 → 0.2.9
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 +38 -0
- package/README.md +55 -18
- package/dist/.tsbuildinfo +1 -0
- package/dist/fal-ai/index.mjs +18 -41
- package/dist/fal-ai/index.mjs.map +4 -4
- package/dist/index.mjs +15 -38
- package/dist/index.mjs.map +4 -4
- package/package.json +7 -15
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,44 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.2.9] - 2025-10-16
|
|
6
|
+
|
|
7
|
+
### New Features
|
|
8
|
+
|
|
9
|
+
- [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)
|
|
10
|
+
- [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
|
|
11
|
+
|
|
12
|
+
### Improvements
|
|
13
|
+
|
|
14
|
+
- [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
|
|
15
|
+
- [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
|
|
16
|
+
- [all] **Translation Keys Available**: Added comprehensive translation keys for:
|
|
17
|
+
- Panel and dock labels (AI Image, AI Video, AI Sticker, AI Voice, Sound Generation)
|
|
18
|
+
- Action labels (Generate Image, Generate Video, Generate Sticker)
|
|
19
|
+
- Style transfer options (None, Anime, Cyberpunk, Kodak 400, Watercolor, Dark Fantasy, Vaporwave, Vector Flat, 3D Animation, Ukiyo-e, Surreal, Steampunk, Night Bokeh, Pop Art)
|
|
20
|
+
- Error messages and UI elements
|
|
21
|
+
- [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
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- [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.
|
|
26
|
+
- [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.
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
|
|
30
|
+
- [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.
|
|
31
|
+
|
|
32
|
+
## [0.2.8] - 2025-09-29
|
|
33
|
+
|
|
34
|
+
### New Features
|
|
35
|
+
|
|
36
|
+
- [image-generation] **SeedreamV4 Provider**: Added ByteDance Seedream 4.0 text-to-image provider via fal.ai for high-quality image generation with multiple size presets (square HD 2048×2048, square 1024×1024, portrait/landscape variants), custom dimensions support (1024-4096 pixels), and safety checker enabled by default
|
|
37
|
+
- [image-generation] **SeedreamV4Edit Provider**: Added ByteDance Seedream 4.0 image-to-image provider via fal.ai for advanced image editing with unified generation/editing architecture, support for multiple input images (up to 10), and full canvas quick actions support (editImage, swapBackground, styleTransfer, artistTransfer, createVariant, combineImages, remixPage, remixPageWithPrompt)
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
|
|
41
|
+
- [sticker-generation] **Fixed Input Types Not Enabled**: Fixed an issue where the sticker generation panel would show "No input types are enabled" error by properly enabling the `fromText` and `fromImage` feature flags during plugin initialization
|
|
42
|
+
|
|
5
43
|
## [0.2.7] - 2025-09-26
|
|
6
44
|
|
|
7
45
|
### New Features
|
package/README.md
CHANGED
|
@@ -51,8 +51,8 @@ CreativeEditorSDK.create(domElement, {
|
|
|
51
51
|
},
|
|
52
52
|
// Optional: Configure default property values
|
|
53
53
|
properties: {
|
|
54
|
-
duration: 5, // Default duration in seconds
|
|
55
|
-
aspect_ratio: '16:9' // Default aspect ratio
|
|
54
|
+
duration: { default: 5 }, // Default duration in seconds
|
|
55
|
+
aspect_ratio: { default: '16:9' } // Default aspect ratio
|
|
56
56
|
}
|
|
57
57
|
}),
|
|
58
58
|
|
|
@@ -142,7 +142,7 @@ text2video: FalAiVideo.MinimaxVideo01Live({
|
|
|
142
142
|
},
|
|
143
143
|
// Optional: Configure default property values
|
|
144
144
|
properties: {
|
|
145
|
-
prompt_optimizer: true // Enable automatic prompt enhancement
|
|
145
|
+
prompt_optimizer: { default: true } // Enable automatic prompt enhancement
|
|
146
146
|
}
|
|
147
147
|
});
|
|
148
148
|
```
|
|
@@ -177,7 +177,7 @@ image2video: FalAiVideo.MinimaxVideo01LiveImageToVideo({
|
|
|
177
177
|
},
|
|
178
178
|
// Optional: Configure default property values
|
|
179
179
|
properties: {
|
|
180
|
-
prompt_optimizer: true // Enable automatic prompt enhancement
|
|
180
|
+
prompt_optimizer: { default: true } // Enable automatic prompt enhancement
|
|
181
181
|
}
|
|
182
182
|
});
|
|
183
183
|
```
|
|
@@ -202,8 +202,8 @@ image2video: FalAiVideo.MinimaxHailuo02StandardImageToVideo({
|
|
|
202
202
|
},
|
|
203
203
|
// Optional: Configure default property values
|
|
204
204
|
properties: {
|
|
205
|
-
resolution: '768P', // Options: '512P' (912×512), '768P' (1280×720)
|
|
206
|
-
duration: 6 // Duration in seconds (6 or 10)
|
|
205
|
+
resolution: { default: '768P' }, // Options: '512P' (912×512), '768P' (1280×720)
|
|
206
|
+
duration: { default: 6 } // Duration in seconds (6 or 10)
|
|
207
207
|
}
|
|
208
208
|
});
|
|
209
209
|
```
|
|
@@ -229,7 +229,7 @@ text2video: FalAiVideo.PixverseV35TextToVideo({
|
|
|
229
229
|
},
|
|
230
230
|
// Optional: Configure default property values
|
|
231
231
|
properties: {
|
|
232
|
-
seed: 42 // Fixed seed for reproducible generation
|
|
232
|
+
seed: { default: 42 } // Fixed seed for reproducible generation
|
|
233
233
|
}
|
|
234
234
|
});
|
|
235
235
|
```
|
|
@@ -248,8 +248,8 @@ text2video: FalAiVideo.KlingVideoV21MasterTextToVideo({
|
|
|
248
248
|
proxyUrl: 'http://your-proxy-server.com/api/proxy',
|
|
249
249
|
// Optional: Configure default property values
|
|
250
250
|
properties: {
|
|
251
|
-
aspect_ratio: '16:9', // Options: '16:9', '9:16', '1:1'
|
|
252
|
-
duration: '5s' // Options: '5s', '10s'
|
|
251
|
+
aspect_ratio: { default: '16:9' }, // Options: '16:9', '9:16', '1:1'
|
|
252
|
+
duration: { default: '5s' } // Options: '5s', '10s'
|
|
253
253
|
}
|
|
254
254
|
});
|
|
255
255
|
```
|
|
@@ -282,7 +282,7 @@ image2video: FalAiVideo.KlingVideoV21MasterImageToVideo({
|
|
|
282
282
|
proxyUrl: 'http://your-proxy-server.com/api/proxy',
|
|
283
283
|
// Optional: Configure default property values
|
|
284
284
|
properties: {
|
|
285
|
-
duration: '5s' // Options: '5s', '10s'
|
|
285
|
+
duration: { default: '5s' } // Options: '5s', '10s'
|
|
286
286
|
}
|
|
287
287
|
});
|
|
288
288
|
```
|
|
@@ -303,9 +303,9 @@ image2video: FalAiVideo.ByteDanceSeedanceV1ProImageToVideo({
|
|
|
303
303
|
proxyUrl: 'http://your-proxy-server.com/api/proxy',
|
|
304
304
|
// Optional: Configure default property values
|
|
305
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'
|
|
306
|
+
aspect_ratio: { default: 'auto' }, // Options: '21:9', '16:9', '4:3', '1:1', '3:4', '9:16', 'auto'
|
|
307
|
+
duration: { default: 5 }, // Duration in seconds (3-12)
|
|
308
|
+
resolution: { default: '720p' } // Options: '480p', '720p', '1080p'
|
|
309
309
|
}
|
|
310
310
|
});
|
|
311
311
|
```
|
|
@@ -327,9 +327,9 @@ text2video: FalAiVideo.ByteDanceSeedanceV1ProTextToVideo({
|
|
|
327
327
|
proxyUrl: 'http://your-proxy-server.com/api/proxy',
|
|
328
328
|
// Optional: Configure default property values
|
|
329
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'
|
|
330
|
+
aspect_ratio: { default: '16:9' }, // Options: '21:9', '16:9', '4:3', '1:1', '3:4', '9:16'
|
|
331
|
+
duration: { default: 5 }, // Duration in seconds (3-12)
|
|
332
|
+
resolution: { default: '720p' } // Options: '480p', '720p', '1080p'
|
|
333
333
|
}
|
|
334
334
|
});
|
|
335
335
|
```
|
|
@@ -351,8 +351,8 @@ text2video: FalAiVideo.Veo3TextToVideo({
|
|
|
351
351
|
proxyUrl: 'http://your-proxy-server.com/api/proxy',
|
|
352
352
|
// Optional: Configure default property values
|
|
353
353
|
properties: {
|
|
354
|
-
aspect_ratio: '16:9', // Options: '16:9', '9:16', '1:1'
|
|
355
|
-
duration: 8 // Fixed at 8 seconds for this provider
|
|
354
|
+
aspect_ratio: { default: '16:9' }, // Options: '16:9', '9:16', '1:1'
|
|
355
|
+
duration: { default: 8 } // Fixed at 8 seconds for this provider
|
|
356
356
|
}
|
|
357
357
|
});
|
|
358
358
|
```
|
|
@@ -515,6 +515,43 @@ Built-in middleware options:
|
|
|
515
515
|
|
|
516
516
|
You can also create custom middleware functions to meet your specific needs.
|
|
517
517
|
|
|
518
|
+
#### Preventing Default Feedback
|
|
519
|
+
|
|
520
|
+
Middleware can suppress default UI feedback behaviors using `options.preventDefault()`:
|
|
521
|
+
|
|
522
|
+
```typescript
|
|
523
|
+
const customErrorMiddleware = async (input, options, next) => {
|
|
524
|
+
try {
|
|
525
|
+
return await next(input, options);
|
|
526
|
+
} catch (error) {
|
|
527
|
+
// Prevent default error notification
|
|
528
|
+
options.preventDefault();
|
|
529
|
+
|
|
530
|
+
// Show custom error notification
|
|
531
|
+
options.cesdk?.ui.showNotification({
|
|
532
|
+
type: 'error',
|
|
533
|
+
message: `Video generation failed: ${error.message}`,
|
|
534
|
+
action: {
|
|
535
|
+
label: 'Try Again',
|
|
536
|
+
onClick: () => {/* retry logic */}
|
|
537
|
+
}
|
|
538
|
+
});
|
|
539
|
+
|
|
540
|
+
throw error;
|
|
541
|
+
}
|
|
542
|
+
};
|
|
543
|
+
```
|
|
544
|
+
|
|
545
|
+
**What gets prevented:**
|
|
546
|
+
- Error/success notifications
|
|
547
|
+
- Block error state
|
|
548
|
+
- Console error logging
|
|
549
|
+
|
|
550
|
+
**What is NOT prevented:**
|
|
551
|
+
- Pending → Ready transition (loading spinner always stops)
|
|
552
|
+
|
|
553
|
+
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).
|
|
554
|
+
|
|
518
555
|
### Using a Proxy
|
|
519
556
|
|
|
520
557
|
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:
|