@imgly/plugin-ai-image-generation-web 0.2.6 → 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,35 @@
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
+
16
+ ## [0.2.7] - 2025-09-26
17
+
18
+ ### New Features
19
+
20
+ - [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
21
+ - [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)
22
+ - [video-generation] **ByteDance Seedance v1 Pro Providers**: Added ByteDance Seedance v1 Pro text-to-video and image-to-video providers via fal.ai with:
23
+ - Text-to-video generation from text descriptions with customizable aspect ratios
24
+ - Image-to-video transformation with dynamic motion generation from still images
25
+ - Multiple aspect ratio options (21:9, 16:9, 4:3, 1:1, 3:4, 9:16, or auto from image for i2v)
26
+ - Adjustable duration (3-12 seconds, default 5)
27
+ - Resolution options (480p, 720p, 1080p)
28
+ - Proper aspect ratio handling in placeholder blocks based on user selection
29
+
30
+ - [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.)
31
+
32
+ - [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
33
+
5
34
  ## [0.2.6] - 2025-09-09
6
35
 
7
36
  ### New Features
package/README.md CHANGED
@@ -176,6 +176,11 @@ text2image: FalAiImage.RecraftV3({
176
176
  headers: {
177
177
  'x-custom-header': 'value',
178
178
  'x-client-version': '1.0.0'
179
+ },
180
+ // Optional: Configure default property values
181
+ properties: {
182
+ style: { default: 'realistic_image' }, // Default style
183
+ image_size: { default: 'square_hd' } // Default size
179
184
  }
180
185
  })
181
186
  ```
@@ -187,6 +192,97 @@ Key features:
187
192
  - Adjustable quality settings
188
193
  - Custom headers support for API requests
189
194
 
195
+ **Available Property Values:**
196
+
197
+ ```typescript
198
+ // image_size options:
199
+ 'square_hd' // 1024x1024 (default)
200
+ 'square' // 512x512
201
+ 'portrait_4_3' // 768x1024
202
+ 'portrait_16_9' // 576x1024
203
+ 'landscape_4_3' // 1024x768
204
+ 'landscape_16_9' // 1024x576
205
+
206
+ // style options (grouped by category):
207
+ // Base styles:
208
+ 'any' // Let model decide
209
+ 'realistic_image' // Photorealistic (default)
210
+ 'digital_illustration' // Digital art
211
+ 'vector_illustration' // Vector graphics
212
+
213
+ // Realistic substyles:
214
+ 'realistic_image/b_and_w' // Black and white
215
+ 'realistic_image/hard_flash' // Hard flash photography
216
+ 'realistic_image/hdr' // HDR photography
217
+ 'realistic_image/natural_light' // Natural lighting
218
+ 'realistic_image/studio_portrait' // Studio portrait
219
+ 'realistic_image/enterprise' // Business/corporate
220
+ 'realistic_image/motion_blur' // Motion blur effect
221
+ 'realistic_image/evening_light' // Evening lighting
222
+ 'realistic_image/faded_nostalgia' // Nostalgic/faded look
223
+ 'realistic_image/forest_life' // Forest/nature
224
+ 'realistic_image/mystic_naturalism' // Mystic nature
225
+ 'realistic_image/natural_tones' // Natural color tones
226
+ 'realistic_image/organic_calm' // Organic/calm aesthetic
227
+ 'realistic_image/real_life_glow' // Natural glow
228
+ 'realistic_image/retro_realism' // Retro realistic
229
+ 'realistic_image/retro_snapshot' // Retro photo
230
+ 'realistic_image/urban_drama' // Urban/dramatic
231
+ 'realistic_image/village_realism' // Village/rural
232
+ 'realistic_image/warm_folk' // Warm/folk style
233
+
234
+ // Digital illustration substyles:
235
+ 'digital_illustration/pixel_art' // Pixel art
236
+ 'digital_illustration/hand_drawn' // Hand-drawn
237
+ 'digital_illustration/grain' // Grainy texture
238
+ 'digital_illustration/infantile_sketch' // Child-like sketch
239
+ 'digital_illustration/2d_art_poster' // 2D poster art
240
+ 'digital_illustration/handmade_3d' // Handmade 3D look
241
+ 'digital_illustration/hand_drawn_outline' // Hand-drawn outline
242
+ 'digital_illustration/engraving_color' // Color engraving
243
+ 'digital_illustration/2d_art_poster_2' // Alternative poster style
244
+ 'digital_illustration/antiquarian' // Antique/vintage
245
+ 'digital_illustration/bold_fantasy' // Bold fantasy art
246
+ 'digital_illustration/child_book' // Children's book
247
+ 'digital_illustration/child_books' // Children's book alt
248
+ 'digital_illustration/cover' // Book/album cover
249
+ 'digital_illustration/crosshatch' // Crosshatching
250
+ 'digital_illustration/digital_engraving' // Digital engraving
251
+ 'digital_illustration/expressionism' // Expressionist
252
+ // ... and many more digital illustration styles
253
+
254
+ // Vector illustration substyles:
255
+ 'vector_illustration/cartoon' // Cartoon style
256
+ 'vector_illustration/kawaii' // Kawaii/cute
257
+ 'vector_illustration/comic' // Comic book
258
+ 'vector_illustration/line_art' // Line art
259
+ 'vector_illustration/noir_silhouette' // Noir silhouette
260
+ ```
261
+
262
+ **Configuration Example with All Properties:**
263
+
264
+ ```typescript
265
+ text2image: FalAiImage.RecraftV3({
266
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
267
+ properties: {
268
+ prompt: { default: '' }, // User will fill this
269
+ style: { default: 'realistic_image/natural_light' },
270
+ image_size: { default: 'landscape_16_9' },
271
+
272
+ // Dynamic style based on context
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';
280
+ }
281
+ }
282
+ }
283
+ })
284
+ ```
285
+
190
286
  **Style Group Control:**
191
287
  You can control which style groups (image/vector) are available using the Feature API:
192
288
 
@@ -221,6 +317,19 @@ text2image: FalAiImage.Recraft20b({
221
317
  headers: {
222
318
  'x-custom-header': 'value',
223
319
  'x-client-version': '1.0.0'
320
+ },
321
+ // Optional: Configure default property values
322
+ properties: {
323
+ // Dynamic style defaults based on style type
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
+ }
330
+ },
331
+ image_size: { default: 'square_hd' },
332
+ n_colors: { default: 4 } // Default color count for icon styles
224
333
  }
225
334
  })
226
335
  ```
@@ -232,6 +341,67 @@ Key features:
232
341
  - Same image size presets and custom dimensions support
233
342
  - Cost-effective alternative to RecraftV3
234
343
 
344
+ **Available Property Values:**
345
+
346
+ ```typescript
347
+ // image_size options (same as RecraftV3):
348
+ 'square_hd' // 1024x1024 (default)
349
+ 'square' // 512x512
350
+ 'portrait_4_3' // 768x1024
351
+ 'portrait_16_9' // 576x1024
352
+ 'landscape_4_3' // 1024x768
353
+ 'landscape_16_9' // 1024x576
354
+
355
+ // style options - includes all RecraftV3 styles PLUS icon styles:
356
+ // All RecraftV3 styles are supported (see RecraftV3 above)
357
+
358
+ // Additional Icon styles (unique to Recraft20b):
359
+ 'icon/broken_line' // Broken line icon style
360
+ 'icon/colored_outline' // Colored outline icons
361
+ 'icon/colored_shapes' // Solid colored shapes
362
+ 'icon/colored_shapes_gradient' // Gradient colored shapes
363
+ 'icon/doodle_fill' // Doodle-filled icons
364
+ 'icon/doodle_offset_fill' // Offset doodle fill
365
+ 'icon/offset_fill' // Offset fill style
366
+ 'icon/outline' // Simple outline
367
+ 'icon/outline_gradient' // Gradient outline
368
+ 'icon/uneven_fill' // Uneven/artistic fill
369
+
370
+ // Logo styles:
371
+ 'logo' // Logo design
372
+
373
+ // n_colors options (for icon styles):
374
+ 1 // Monochrome
375
+ 2 // Two colors (default)
376
+ 3 // Three colors
377
+ 4 // Four colors
378
+ // ... up to any reasonable number
379
+ ```
380
+
381
+ **Configuration Example with All Properties:**
382
+
383
+ ```typescript
384
+ text2image: FalAiImage.Recraft20b({
385
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
386
+ properties: {
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
391
+
392
+ // Dynamic style based on use case
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
+ }
400
+ }
401
+ }
402
+ })
403
+ ```
404
+
235
405
  **Style Group Control:**
236
406
  You can control which style groups (image/vector/icon) are available using the Feature API:
237
407
 
@@ -270,6 +440,12 @@ text2image: OpenAiImage.GptImage1.Text2Image({
270
440
  headers: {
271
441
  'x-api-key': 'your-key',
272
442
  'x-request-source': 'cesdk-plugin'
443
+ },
444
+ // Optional: Configure default property values
445
+ properties: {
446
+ size: { default: '1024x1024' }, // Options: '1024x1024', '1792x1024', '1024x1792'
447
+ quality: { default: 'standard' }, // Options: 'standard', 'hd'
448
+ style: { default: 'vivid' } // Options: 'vivid', 'natural'
273
449
  }
274
450
  })
275
451
  ```
@@ -291,6 +467,12 @@ image2image: FalAiImage.GeminiFlashEdit({
291
467
  headers: {
292
468
  'x-custom-header': 'value',
293
469
  'x-client-version': '1.0.0'
470
+ },
471
+ // Optional: Configure default property values
472
+ properties: {
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
294
476
  }
295
477
  })
296
478
  ```
@@ -343,6 +525,12 @@ text2image: FalAiImage.IdeogramV3({
343
525
  headers: {
344
526
  'x-custom-header': 'value',
345
527
  'x-client-version': '1.0.0'
528
+ },
529
+ // Optional: Configure default property values
530
+ properties: {
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
346
534
  }
347
535
  })
348
536
  ```
@@ -362,6 +550,12 @@ image2image: FalAiImage.IdeogramV3Remix({
362
550
  headers: {
363
551
  'x-custom-header': 'value',
364
552
  'x-client-version': '1.0.0'
553
+ },
554
+ // Optional: Configure default property values
555
+ properties: {
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)
365
559
  }
366
560
  })
367
561
  ```
@@ -372,7 +566,34 @@ Key features:
372
566
  - Multiple image size presets: square HD, square, portrait 4:3/16:9, landscape 4:3/16:9
373
567
  - Custom dimensions support (64x64 to 14142x14142 pixels)
374
568
 
375
- #### 7. FluxProKontextEdit (Image-to-Image)
569
+ #### 7. QwenImageEdit (Image-to-Image)
570
+
571
+ A powerful image editing model with superior text editing capabilities from fal.ai:
572
+
573
+ ```typescript
574
+ image2image: FalAiImage.QwenImageEdit({
575
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
576
+ headers: {
577
+ 'x-custom-header': 'value',
578
+ 'x-client-version': '1.0.0'
579
+ },
580
+ // Optional: Configure default property values
581
+ properties: {
582
+ seed: { default: 12345 }, // Fixed seed for reproducibility
583
+ guidance_scale: { default: 7.5 } // Guidance strength (0-20)
584
+ }
585
+ })
586
+ ```
587
+
588
+ Key features:
589
+ - **Superior text editing capabilities** for image transformation
590
+ - Transform existing images with detailed text prompts
591
+ - Available through all canvas quick actions (edit, background swap, style transfer, artist styles, variants)
592
+ - Maintains original image dimensions
593
+ - Custom headers support for API requests
594
+ ```
595
+
596
+ #### 8. FluxProKontextEdit (Image-to-Image)
376
597
 
377
598
  A versatile image editing model that applies stylistic changes and transformations:
378
599
 
@@ -387,7 +608,7 @@ Key features:
387
608
  - Built-in quick actions for style transfer, artist styles, background swapping, and variants
388
609
  - Keeps original image dimensions
389
610
 
390
- #### 8. FluxProKontextMaxEdit (Image-to-Image)
611
+ #### 9. FluxProKontextMaxEdit (Image-to-Image)
391
612
 
392
613
  A high-quality variant of FluxProKontext offering more detailed results:
393
614
 
@@ -413,6 +634,10 @@ text2image: FalAiImage.NanoBanana({
413
634
  headers: {
414
635
  'x-custom-header': 'value',
415
636
  'x-client-version': '1.0.0'
637
+ },
638
+ // Optional: Configure default property values
639
+ properties: {
640
+ output_format: { default: 'PNG' } // Options: 'PNG', 'JPEG'
416
641
  }
417
642
  })
418
643
  ```
@@ -437,7 +662,53 @@ cesdk.i18n.setTranslations({
437
662
  });
438
663
  ```
439
664
 
440
- #### 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)
441
712
 
442
713
  An image editing model from fal.ai that transforms existing images using text prompts:
443
714
 
@@ -447,6 +718,11 @@ image2image: FalAiImage.NanoBananaEdit({
447
718
  headers: {
448
719
  'x-custom-header': 'value',
449
720
  'x-client-version': '1.0.0'
721
+ },
722
+ // Optional: Configure default property values
723
+ properties: {
724
+ strength: { default: 0.7 }, // Edit strength (0.0-1.0)
725
+ output_format: { default: 'PNG' } // Options: 'PNG', 'JPEG'
450
726
  }
451
727
  })
452
728
  ```
@@ -795,6 +1071,16 @@ FalAiImage.GeminiFlashEdit(config: {
795
1071
  })
796
1072
  ```
797
1073
 
1074
+ #### QwenImageEdit
1075
+
1076
+ ```typescript
1077
+ FalAiImage.QwenImageEdit(config: {
1078
+ proxyUrl: string;
1079
+ headers?: Record<string, string>;
1080
+ debug?: boolean;
1081
+ })
1082
+ ```
1083
+
798
1084
  ### OpenAI Providers
799
1085
 
800
1086
  #### GptImage1.Text2Image
@@ -855,6 +1141,26 @@ FalAiImage.NanoBananaEdit(config: {
855
1141
  })
856
1142
  ```
857
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
+
858
1164
  ## UI Integration
859
1165
 
860
1166
  The plugin automatically registers the following UI components:
@@ -943,12 +1249,15 @@ const myImageProvider = {
943
1249
  - IdeogramV3: `ly.img.ai.fal-ai/ideogram/v3`
944
1250
  - IdeogramV3Remix: `ly.img.ai.fal-ai/ideogram/v3/remix`
945
1251
  - GeminiFlashEdit: `ly.img.ai.fal-ai/gemini-flash-edit`
1252
+ - QwenImageEdit: `ly.img.ai.fal-ai/qwen-image-edit`
946
1253
  - GptImage1.Text2Image: `ly.img.ai.open-ai/gpt-image-1/text2image`
947
1254
  - GptImage1.Image2Image: `ly.img.ai.open-ai/gpt-image-1/image2image`
948
1255
  - FluxProKontextEdit: `ly.img.ai.fal-ai/flux-pro/kontext`
949
1256
  - FluxProKontextMaxEdit: `ly.img.ai.fal-ai/flux-pro/kontext/max`
950
1257
  - NanoBanana: `ly.img.ai.fal-ai/nano-banana`
951
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`
952
1261
 
953
1262
  ### Asset History
954
1263
 
@@ -958,12 +1267,15 @@ Generated images are automatically stored in asset sources with the following ID
958
1267
  - IdeogramV3: `fal-ai/ideogram/v3.history`
959
1268
  - IdeogramV3Remix: `fal-ai/ideogram/v3/remix.history`
960
1269
  - GeminiFlashEdit: `fal-ai/gemini-flash-edit.history`
1270
+ - QwenImageEdit: `fal-ai/qwen-image-edit.history`
961
1271
  - GptImage1.Text2Image: `open-ai/gpt-image-1/text2image.history`
962
1272
  - GptImage1.Image2Image: `open-ai/gpt-image-1/image2image.history`
963
1273
  - FluxProKontextEdit: `fal-ai/flux-pro/kontext.history`
964
1274
  - FluxProKontextMaxEdit: `fal-ai/flux-pro/kontext/max.history`
965
1275
  - NanoBanana: `fal-ai/nano-banana.history`
966
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`
967
1279
 
968
1280
  ### Dock Integration
969
1281