@imgly/plugin-ai-image-generation-web 0.2.7 → 0.2.8

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,17 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.2.8] - 2025-09-29
6
+
7
+ ### New Features
8
+
9
+ - [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
10
+ - [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)
11
+
12
+ ### Fixed
13
+
14
+ - [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
15
+
5
16
  ## [0.2.7] - 2025-09-26
6
17
 
7
18
  ### New Features
package/README.md CHANGED
@@ -179,8 +179,8 @@ text2image: FalAiImage.RecraftV3({
179
179
  },
180
180
  // Optional: Configure default property values
181
181
  properties: {
182
- style: 'realistic_image', // Default style
183
- image_size: 'square_hd' // Default size
182
+ style: { default: 'realistic_image' }, // Default style
183
+ image_size: { default: 'square_hd' } // Default size
184
184
  }
185
185
  })
186
186
  ```
@@ -265,17 +265,19 @@ Key features:
265
265
  text2image: FalAiImage.RecraftV3({
266
266
  proxyUrl: 'http://your-proxy-server.com/api/proxy',
267
267
  properties: {
268
- prompt: '', // User will fill this
269
- style: 'realistic_image/natural_light',
270
- image_size: 'landscape_16_9',
268
+ prompt: { default: '' }, // User will fill this
269
+ style: { default: 'realistic_image/natural_light' },
270
+ image_size: { default: 'landscape_16_9' },
271
271
 
272
272
  // Dynamic style based on context
273
- style: (context) => {
274
- const hour = new Date().getHours();
275
- if (hour < 6 || hour > 18) {
276
- return 'realistic_image/evening_light';
273
+ style: {
274
+ default: (context) => {
275
+ const hour = new Date().getHours();
276
+ if (hour < 6 || hour > 18) {
277
+ return 'realistic_image/evening_light';
278
+ }
279
+ return 'realistic_image/natural_light';
277
280
  }
278
- return 'realistic_image/natural_light';
279
281
  }
280
282
  }
281
283
  })
@@ -319,13 +321,15 @@ text2image: FalAiImage.Recraft20b({
319
321
  // Optional: Configure default property values
320
322
  properties: {
321
323
  // Dynamic style defaults based on style type
322
- style: (context) => {
323
- // Different defaults for different style categories
324
- // This is handled internally by the provider
325
- return 'broken_line'; // Default for icon styles
324
+ style: {
325
+ default: (context) => {
326
+ // Different defaults for different style categories
327
+ // This is handled internally by the provider
328
+ return 'broken_line'; // Default for icon styles
329
+ }
326
330
  },
327
- image_size: 'square_hd',
328
- n_colors: 4 // Default color count for icon styles
331
+ image_size: { default: 'square_hd' },
332
+ n_colors: { default: 4 } // Default color count for icon styles
329
333
  }
330
334
  })
331
335
  ```
@@ -380,17 +384,19 @@ Key features:
380
384
  text2image: FalAiImage.Recraft20b({
381
385
  proxyUrl: 'http://your-proxy-server.com/api/proxy',
382
386
  properties: {
383
- prompt: '', // User will fill this
384
- style: 'icon/colored_outline', // Default to icon style
385
- image_size: 'square',
386
- n_colors: 3, // Number of colors for icon styles
387
+ prompt: { default: '' }, // User will fill this
388
+ style: { default: 'icon/colored_outline' }, // Default to icon style
389
+ image_size: { default: 'square' },
390
+ n_colors: { default: 3 }, // Number of colors for icon styles
387
391
 
388
392
  // Dynamic style based on use case
389
- style: (context) => {
390
- // You could check block type or other context
391
- const engine = context.engine;
392
- // Return appropriate style
393
- return 'icon/broken_line';
393
+ style: {
394
+ default: (context) => {
395
+ // You could check block type or other context
396
+ const engine = context.engine;
397
+ // Return appropriate style
398
+ return 'icon/broken_line';
399
+ }
394
400
  }
395
401
  }
396
402
  })
@@ -437,9 +443,9 @@ text2image: OpenAiImage.GptImage1.Text2Image({
437
443
  },
438
444
  // Optional: Configure default property values
439
445
  properties: {
440
- size: '1024x1024', // Options: '1024x1024', '1792x1024', '1024x1792'
441
- quality: 'standard', // Options: 'standard', 'hd'
442
- style: 'vivid' // Options: 'vivid', 'natural'
446
+ size: { default: '1024x1024' }, // Options: '1024x1024', '1792x1024', '1024x1792'
447
+ quality: { default: 'standard' }, // Options: 'standard', 'hd'
448
+ style: { default: 'vivid' } // Options: 'vivid', 'natural'
443
449
  }
444
450
  })
445
451
  ```
@@ -464,9 +470,9 @@ image2image: FalAiImage.GeminiFlashEdit({
464
470
  },
465
471
  // Optional: Configure default property values
466
472
  properties: {
467
- strength: 0.8, // Transformation strength (0.0-1.0)
468
- guidance_scale: 7.5, // Guidance scale (0-20)
469
- num_inference_steps: 50 // Number of inference steps
473
+ strength: { default: 0.8 }, // Transformation strength (0.0-1.0)
474
+ guidance_scale: { default: 7.5 }, // Guidance scale (0-20)
475
+ num_inference_steps: { default: 50 } // Number of inference steps
470
476
  }
471
477
  })
472
478
  ```
@@ -522,9 +528,9 @@ text2image: FalAiImage.IdeogramV3({
522
528
  },
523
529
  // Optional: Configure default property values
524
530
  properties: {
525
- style: 'GENERAL', // Options: 'AUTO', 'GENERAL', 'REALISTIC', 'DESIGN'
526
- image_size: 'square_hd', // Same options as Recraft
527
- seed: 12345 // Fixed seed for reproducibility
531
+ style: { default: 'GENERAL' }, // Options: 'AUTO', 'GENERAL', 'REALISTIC', 'DESIGN'
532
+ image_size: { default: 'square_hd' }, // Same options as Recraft
533
+ seed: { default: 12345 } // Fixed seed for reproducibility
528
534
  }
529
535
  })
530
536
  ```
@@ -547,9 +553,9 @@ image2image: FalAiImage.IdeogramV3Remix({
547
553
  },
548
554
  // Optional: Configure default property values
549
555
  properties: {
550
- style: 'AUTO', // Options: 'AUTO', 'GENERAL', 'REALISTIC', 'DESIGN'
551
- image_size: 'square_hd',
552
- remix_strength: 0.7 // How much to transform (0.0-1.0)
556
+ style: { default: 'AUTO' }, // Options: 'AUTO', 'GENERAL', 'REALISTIC', 'DESIGN'
557
+ image_size: { default: 'square_hd' },
558
+ remix_strength: { default: 0.7 } // How much to transform (0.0-1.0)
553
559
  }
554
560
  })
555
561
  ```
@@ -573,8 +579,8 @@ image2image: FalAiImage.QwenImageEdit({
573
579
  },
574
580
  // Optional: Configure default property values
575
581
  properties: {
576
- seed: 12345, // Fixed seed for reproducibility
577
- guidance_scale: 7.5 // Guidance strength (0-20)
582
+ seed: { default: 12345 }, // Fixed seed for reproducibility
583
+ guidance_scale: { default: 7.5 } // Guidance strength (0-20)
578
584
  }
579
585
  })
580
586
  ```
@@ -631,7 +637,7 @@ text2image: FalAiImage.NanoBanana({
631
637
  },
632
638
  // Optional: Configure default property values
633
639
  properties: {
634
- output_format: 'PNG' // Options: 'PNG', 'JPEG'
640
+ output_format: { default: 'PNG' } // Options: 'PNG', 'JPEG'
635
641
  }
636
642
  })
637
643
  ```
@@ -656,7 +662,53 @@ cesdk.i18n.setTranslations({
656
662
  });
657
663
  ```
658
664
 
659
- #### 10. NanoBananaEdit (Image-to-Image)
665
+ #### 10. SeedreamV4 (Text-to-Image)
666
+
667
+ A powerful text-to-image model from ByteDance's Seedream 4.0 available through fal.ai:
668
+
669
+ ```typescript
670
+ text2image: FalAiImage.SeedreamV4({
671
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
672
+ headers: {
673
+ 'x-custom-header': 'value',
674
+ 'x-client-version': '1.0.0'
675
+ },
676
+ // Optional: Configure default property values
677
+ properties: {
678
+ image_size: { default: 'square_hd' } // Options: square_hd, square, portrait/landscape variants
679
+ }
680
+ })
681
+ ```
682
+
683
+ Key features:
684
+ - High-quality image generation with ByteDance's Seedream 4.0 model
685
+ - Multiple image size presets: square HD (2048×2048), square (1024×1024), portrait 4:3/16:9, landscape 4:3/16:9
686
+ - Custom dimensions support (1024-4096 pixels)
687
+ - Fast generation times
688
+ - Safety checker enabled by default
689
+
690
+ #### 11. SeedreamV4Edit (Image-to-Image)
691
+
692
+ An advanced image editing model from ByteDance's Seedream 4.0 for transforming existing images:
693
+
694
+ ```typescript
695
+ image2image: FalAiImage.SeedreamV4Edit({
696
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
697
+ headers: {
698
+ 'x-custom-header': 'value',
699
+ 'x-client-version': '1.0.0'
700
+ }
701
+ })
702
+ ```
703
+
704
+ Key features:
705
+ - Unified architecture for both generation and editing
706
+ - Supports multiple input images (up to 10)
707
+ - Full canvas quick actions support: edit image, swap background, style transfer, artist styles, create variants, combine images, remix page
708
+ - Maintains original image dimensions
709
+ - Custom headers support for API requests
710
+
711
+ #### 12. NanoBananaEdit (Image-to-Image)
660
712
 
661
713
  An image editing model from fal.ai that transforms existing images using text prompts:
662
714
 
@@ -669,8 +721,8 @@ image2image: FalAiImage.NanoBananaEdit({
669
721
  },
670
722
  // Optional: Configure default property values
671
723
  properties: {
672
- strength: 0.7, // Edit strength (0.0-1.0)
673
- output_format: 'PNG' // Options: 'PNG', 'JPEG'
724
+ strength: { default: 0.7 }, // Edit strength (0.0-1.0)
725
+ output_format: { default: 'PNG' } // Options: 'PNG', 'JPEG'
674
726
  }
675
727
  })
676
728
  ```
@@ -1089,6 +1141,26 @@ FalAiImage.NanoBananaEdit(config: {
1089
1141
  })
1090
1142
  ```
1091
1143
 
1144
+ #### SeedreamV4
1145
+
1146
+ ```typescript
1147
+ FalAiImage.SeedreamV4(config: {
1148
+ proxyUrl: string;
1149
+ headers?: Record<string, string>;
1150
+ debug?: boolean;
1151
+ })
1152
+ ```
1153
+
1154
+ #### SeedreamV4Edit
1155
+
1156
+ ```typescript
1157
+ FalAiImage.SeedreamV4Edit(config: {
1158
+ proxyUrl: string;
1159
+ headers?: Record<string, string>;
1160
+ debug?: boolean;
1161
+ })
1162
+ ```
1163
+
1092
1164
  ## UI Integration
1093
1165
 
1094
1166
  The plugin automatically registers the following UI components:
@@ -1184,6 +1256,8 @@ const myImageProvider = {
1184
1256
  - FluxProKontextMaxEdit: `ly.img.ai.fal-ai/flux-pro/kontext/max`
1185
1257
  - NanoBanana: `ly.img.ai.fal-ai/nano-banana`
1186
1258
  - NanoBananaEdit: `ly.img.ai.fal-ai/nano-banana/edit`
1259
+ - SeedreamV4: `ly.img.ai.fal-ai/bytedance/seedream/v4/text-to-image`
1260
+ - SeedreamV4Edit: `ly.img.ai.fal-ai/bytedance/seedream/v4/edit`
1187
1261
 
1188
1262
  ### Asset History
1189
1263
 
@@ -1200,6 +1274,8 @@ Generated images are automatically stored in asset sources with the following ID
1200
1274
  - FluxProKontextMaxEdit: `fal-ai/flux-pro/kontext/max.history`
1201
1275
  - NanoBanana: `fal-ai/nano-banana.history`
1202
1276
  - NanoBananaEdit: `fal-ai/nano-banana/edit.history`
1277
+ - SeedreamV4: `fal-ai/bytedance/seedream/v4/text-to-image.history`
1278
+ - SeedreamV4Edit: `fal-ai/bytedance/seedream/v4/edit.history`
1203
1279
 
1204
1280
  ### Dock Integration
1205
1281