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

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,11 +2,35 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.2.5] - 2025-09-03
6
+
7
+ ### New Features
8
+
9
+ - [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
+ - [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)
11
+
12
+ ### Bug Fixes
13
+
14
+ - [all] **fal.ai Provider Configuration**: Fixed singleton configuration conflict when using multiple fal.ai providers with different proxy URLs. Each provider now maintains its own client instance instead of overwriting a global configuration
15
+ - [video-generation] **Missing Dependency**: Added missing `@fal-ai/client` dependency to plugin-ai-video-generation-web package.json to ensure the package works correctly when installed independently
16
+
17
+ ## [0.2.4] - 2025-08-07
18
+
19
+ ### New Features
20
+
21
+ - [all] **Provider Label Translations**: Added support for provider label translations
22
+ - [all] **Extended Provider Configuration**: Added support for `history` and `supportedQuickActions` configuration fields in `CommonProviderConfiguration`, allowing customers to:
23
+ - Override provider's default history asset source (`history` field) - can be set to `false` to disable history, `'@imgly/local'` for temporary storage, `'@imgly/indexedDB'` for persistent browser storage, or any custom asset source ID
24
+ - Configure supported quick actions (`supportedQuickActions` field) - can disable quick actions by setting to `false`/`null`, keep defaults with `true`, or override with custom mappings and configurations
25
+ - Both fields are optional and maintain backward compatibility with existing provider configurations
26
+ - [generation-web] **Utility Function**: Added `mergeQuickActionsConfig` utility function for merging provider defaults with user configuration overrides, exported from `@imgly/plugin-ai-generation-web` with comprehensive Jest test coverage
27
+
5
28
  ## [0.2.3] - 2025-07-23
6
29
 
7
30
  - [all] **Automatic History Asset Library Entries**: Composite history asset sources now automatically have corresponding asset library entries created with the same IDs (e.g., `ly.img.ai.image-generation.history`)
8
31
  - [all] **Provider Selection in Expanded Quick Actions**: When a quick action is expanded, users can now switch between all providers that support that specific quick action, enhancing flexibility in provider selection
9
32
  - [all] **Quick Action Can Disable Lock**: Some quick actions can now decide to not lock the block when operating on a block. Examples are `CreateVariant` and `CombineImages`.
33
+ - [image-generation] **Ideogram V3**: Added support for Ideogram V3 provider for image generation, which supports text-to-image and image-to-image generation
10
34
 
11
35
  ## [0.2.2] - 2025-07-16
12
36
 
package/README.md CHANGED
@@ -145,6 +145,16 @@ Key features:
145
145
  - 5-second video duration
146
146
  - Custom headers support for API requests
147
147
 
148
+ **Custom Translations:**
149
+
150
+ ```typescript
151
+ cesdk.i18n.setTranslations({
152
+ en: {
153
+ 'ly.img.plugin-ai-video-generation-web.fal-ai/minimax/video-01-live.property.prompt': 'Describe your Minimax video'
154
+ }
155
+ });
156
+ ```
157
+
148
158
  #### 2. MinimaxVideo01LiveImageToVideo (Image-to-Video)
149
159
 
150
160
  A model that transforms still images into videos:
@@ -202,6 +212,18 @@ Key features:
202
212
  - Selectable durations (5 s or 10 s)
203
213
  - Adaptive resolution (height fixed at 720 px, width is calculated)
204
214
 
215
+ **Custom Translations:**
216
+
217
+ ```typescript
218
+ cesdk.i18n.setTranslations({
219
+ en: {
220
+ 'ly.img.plugin-ai-video-generation-web.fal-ai/kling-video/v2.1/master/text-to-video.property.prompt': 'Describe your KlingVideo',
221
+ 'ly.img.plugin-ai-video-generation-web.fal-ai/kling-video/v2.1/master/text-to-video.property.aspect_ratio': 'Video Format',
222
+ 'ly.img.plugin-ai-video-generation-web.fal-ai/kling-video/v2.1/master/text-to-video.property.duration': 'Video Length (seconds)'
223
+ }
224
+ });
225
+ ```
226
+
205
227
  #### 5. KlingVideoV21MasterImageToVideo (Image-to-Video)
206
228
 
207
229
  A model that converts still images into videos using KlingVideo V2.1:
@@ -236,6 +258,68 @@ Key features:
236
258
  - Fixed duration of 8 seconds
237
259
  - Optional audio generation via `generate_audio`
238
260
 
261
+ ### Customizing Labels and Translations
262
+
263
+ 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.
264
+
265
+ #### Translation Key Structure
266
+
267
+ The system checks for translations in this order (highest to lowest priority):
268
+
269
+ 1. **Provider-specific**: `ly.img.plugin-ai-video-generation-web.${provider}.property.${field}` - Override labels for a specific AI provider
270
+ 2. **Generic**: `ly.img.plugin-ai-generation-web.property.${field}` - Override labels for all AI plugins
271
+
272
+ #### Basic Example
273
+
274
+ ```typescript
275
+ // Customize labels for your AI video generation interface
276
+ cesdk.i18n.setTranslations({
277
+ en: {
278
+ // Generic labels (applies to ALL AI plugins)
279
+ 'ly.img.plugin-ai-generation-web.property.prompt': 'Describe what you want to create',
280
+ 'ly.img.plugin-ai-generation-web.property.duration': 'Video Duration',
281
+
282
+ // Provider-specific for MinimaxVideo01Live
283
+ 'ly.img.plugin-ai-video-generation-web.fal-ai/minimax/video-01-live.property.prompt': 'Describe your video',
284
+ 'ly.img.plugin-ai-video-generation-web.fal-ai/minimax/video-01-live.property.duration': 'Video Length',
285
+
286
+ // Provider-specific for KlingVideoV21Master
287
+ 'ly.img.plugin-ai-video-generation-web.fal-ai/kling-video/v2.1/master/text-to-video.property.aspect_ratio': 'Video Aspect Ratio',
288
+ 'ly.img.plugin-ai-video-generation-web.fal-ai/kling-video/v2.1/master/text-to-video.property.duration': 'Video Duration (seconds)'
289
+ }
290
+ });
291
+ ```
292
+
293
+ #### QuickAction Translations
294
+
295
+ Video QuickActions (like "Create Video from Image") use their own translation keys with provider-specific overrides:
296
+
297
+ ```typescript
298
+ cesdk.i18n.setTranslations({
299
+ en: {
300
+ // Provider-specific translations (highest priority)
301
+ 'ly.img.plugin-ai-video-generation-web.fal-ai/minimax/video-01-live.quickAction.createVideo': 'Generate Minimax Video...',
302
+ 'ly.img.plugin-ai-video-generation-web.fal-ai/minimax/video-01-live.quickAction.createVideo.prompt': 'Minimax Video Prompt',
303
+
304
+ // Generic plugin translations
305
+ 'ly.img.plugin-ai-video-generation-web.quickAction.createVideo': 'Create Video...',
306
+ 'ly.img.plugin-ai-video-generation-web.quickAction.createVideo.prompt': 'Video Prompt',
307
+ 'ly.img.plugin-ai-video-generation-web.quickAction.createVideo.prompt.placeholder': 'e.g. "Make the image move slowly"',
308
+ 'ly.img.plugin-ai-video-generation-web.quickAction.createVideo.apply': 'Generate'
309
+ }
310
+ });
311
+ ```
312
+
313
+ **QuickAction Translation Priority:**
314
+ 1. Provider-specific: `ly.img.plugin-ai-video-generation-web.${provider}.quickAction.${action}.${field}`
315
+ 2. Generic plugin: `ly.img.plugin-ai-video-generation-web.quickAction.${action}.${field}`
316
+
317
+ **Translation Structure:**
318
+ - Base key (e.g., `.quickAction.createVideo`): Button text when QuickAction is collapsed
319
+ - `.prompt`: Label for input field when expanded
320
+ - `.prompt.placeholder`: Placeholder text for input field
321
+ - `.apply`: Text for action/submit button
322
+
239
323
  ### Configuration Options
240
324
 
241
325
  The plugin accepts the following configuration options:
@@ -466,6 +550,10 @@ currentOrder.splice(2, 0, 'ly.img.ai.video-generation.dock');
466
550
  cesdk.ui.setDockOrder(currentOrder);
467
551
  ```
468
552
 
553
+ ## Translations
554
+
555
+ For customization and localization, see the [translations.json](https://github.com/imgly/plugins/tree/main/packages/plugin-ai-video-generation-web/translations.json) file which contains provider-specific translation keys for video generation interfaces.
556
+
469
557
  ## Related Packages
470
558
 
471
559
  - [@imgly/plugin-ai-generation-web](https://github.com/imgly/plugins/tree/main/packages/plugin-ai-generation-web) - Core utilities for AI generation
@@ -0,0 +1,3 @@
1
+ import { type FalClient as FalClientType } from '@fal-ai/client';
2
+ export type FalClient = FalClientType;
3
+ export declare function createFalClient(proxyUrl: string, headers?: Record<string, string>): FalClient;
@@ -10,6 +10,16 @@ type VideoProviderConfiguration = {
10
10
  * @deprecated Use `middlewares` instead.
11
11
  */
12
12
  middleware?: Middleware<any, any>[];
13
+ /**
14
+ * Override provider's default history asset source
15
+ */
16
+ history?: false | '@imgly/local' | '@imgly/indexedDB' | (string & {});
17
+ /**
18
+ * Configure supported quick actions
19
+ */
20
+ supportedQuickActions?: {
21
+ [quickActionId: string]: Partial<VideoQuickActionSupportMap<any>[string]> | false | null;
22
+ };
13
23
  };
14
24
  /**
15
25
  * Creates a base provider from schema. This should work out of the box