@imgly/plugin-ai-image-generation-web 0.2.5 → 0.2.7
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 +28 -0
- package/README.md +263 -2
- package/dist/fal-ai/QwenImageEdit.d.ts +21 -0
- package/dist/fal-ai/Recraft20b.d.ts +5 -14
- package/dist/fal-ai/RecraftV3.d.ts +4 -12
- package/dist/fal-ai/__tests__/RecraftV3.test.d.ts +1 -0
- package/dist/fal-ai/index.d.ts +2 -0
- package/dist/fal-ai/index.mjs +10 -10
- package/dist/fal-ai/index.mjs.map +4 -4
- package/dist/fal-ai/recraftTypes.d.ts +59 -0
- package/dist/fal-ai/recraftUtils.d.ts +29 -0
- package/dist/index.d.ts +1 -3
- package/dist/index.mjs +9 -9
- package/dist/index.mjs.map +4 -4
- package/dist/open-ai/index.mjs +5 -5
- package/dist/open-ai/index.mjs.map +4 -4
- package/dist/quickActions/__tests__/EditImage.test.d.ts +1 -0
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,12 +2,40 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.2.7] - 2025-09-26
|
|
6
|
+
|
|
7
|
+
### New Features
|
|
8
|
+
|
|
9
|
+
- [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
|
|
10
|
+
- [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)
|
|
11
|
+
- [video-generation] **ByteDance Seedance v1 Pro Providers**: Added ByteDance Seedance v1 Pro text-to-video and image-to-video providers via fal.ai with:
|
|
12
|
+
- Text-to-video generation from text descriptions with customizable aspect ratios
|
|
13
|
+
- Image-to-video transformation with dynamic motion generation from still images
|
|
14
|
+
- Multiple aspect ratio options (21:9, 16:9, 4:3, 1:1, 3:4, 9:16, or auto from image for i2v)
|
|
15
|
+
- Adjustable duration (3-12 seconds, default 5)
|
|
16
|
+
- Resolution options (480p, 720p, 1080p)
|
|
17
|
+
- Proper aspect ratio handling in placeholder blocks based on user selection
|
|
18
|
+
|
|
19
|
+
- [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.)
|
|
20
|
+
|
|
21
|
+
- [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
|
|
22
|
+
|
|
23
|
+
## [0.2.6] - 2025-09-09
|
|
24
|
+
|
|
25
|
+
### New Features
|
|
26
|
+
|
|
27
|
+
- [all] **Feature API Integration**: Added comprehensive Feature API support across all AI plugins to control visibility and availability of features through feature flags. Core features include `providerSelect`, `quickAction`, `quickAction.providerSelect`, `fromText`, and `fromImage` flags.
|
|
28
|
+
- [all] **Quick Action Feature Flags**: Each quick action now automatically registers and respects its own feature flag (e.g., `ly.img.plugin-ai-image-generation-web.quickAction.editImage`), allowing fine-grained control over which quick actions are available to users.
|
|
29
|
+
- [image-generation] **Provider Style Group Control**: Added Feature API support for Recraft providers to control style group visibility. RecraftV3 supports `style.image` and `style.vector` flags, while Recraft20b adds `style.icon` flag for controlling icon style availability.
|
|
30
|
+
- [all] **Provider Selection Feature Flags**: Added support for controlling provider selection UI in both panels (`providerSelect`) and quick actions (`quickAction.providerSelect`), with proper handling when multiple providers are configured.
|
|
31
|
+
|
|
5
32
|
## [0.2.5] - 2025-09-03
|
|
6
33
|
|
|
7
34
|
### New Features
|
|
8
35
|
|
|
9
36
|
- [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
37
|
- [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)
|
|
38
|
+
- [all] **AI Style Asset Library Translations**: AI style presets in asset libraries now automatically use localized names and descriptions from provider translation files, eliminating the need for manual translation configuration
|
|
11
39
|
|
|
12
40
|
### Bug Fixes
|
|
13
41
|
|
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: 'realistic_image', // Default style
|
|
183
|
+
image_size: 'square_hd' // Default size
|
|
179
184
|
}
|
|
180
185
|
})
|
|
181
186
|
```
|
|
@@ -187,6 +192,106 @@ 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: '', // User will fill this
|
|
269
|
+
style: 'realistic_image/natural_light',
|
|
270
|
+
image_size: 'landscape_16_9',
|
|
271
|
+
|
|
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';
|
|
277
|
+
}
|
|
278
|
+
return 'realistic_image/natural_light';
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
})
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
**Style Group Control:**
|
|
285
|
+
You can control which style groups (image/vector) are available using the Feature API:
|
|
286
|
+
|
|
287
|
+
```typescript
|
|
288
|
+
// Disable vector styles, only allow image styles
|
|
289
|
+
cesdk.feature.enable('ly.img.plugin-ai-image-generation-web.fal-ai/recraft-v3.style.vector', false);
|
|
290
|
+
|
|
291
|
+
// Or disable image styles, only allow vector styles
|
|
292
|
+
cesdk.feature.enable('ly.img.plugin-ai-image-generation-web.fal-ai/recraft-v3.style.image', false);
|
|
293
|
+
```
|
|
294
|
+
|
|
190
295
|
**Custom Translations:**
|
|
191
296
|
```typescript
|
|
192
297
|
cesdk.i18n.setTranslations({
|
|
@@ -210,6 +315,17 @@ text2image: FalAiImage.Recraft20b({
|
|
|
210
315
|
headers: {
|
|
211
316
|
'x-custom-header': 'value',
|
|
212
317
|
'x-client-version': '1.0.0'
|
|
318
|
+
},
|
|
319
|
+
// Optional: Configure default property values
|
|
320
|
+
properties: {
|
|
321
|
+
// 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
|
|
326
|
+
},
|
|
327
|
+
image_size: 'square_hd',
|
|
328
|
+
n_colors: 4 // Default color count for icon styles
|
|
213
329
|
}
|
|
214
330
|
})
|
|
215
331
|
```
|
|
@@ -221,6 +337,79 @@ Key features:
|
|
|
221
337
|
- Same image size presets and custom dimensions support
|
|
222
338
|
- Cost-effective alternative to RecraftV3
|
|
223
339
|
|
|
340
|
+
**Available Property Values:**
|
|
341
|
+
|
|
342
|
+
```typescript
|
|
343
|
+
// image_size options (same as RecraftV3):
|
|
344
|
+
'square_hd' // 1024x1024 (default)
|
|
345
|
+
'square' // 512x512
|
|
346
|
+
'portrait_4_3' // 768x1024
|
|
347
|
+
'portrait_16_9' // 576x1024
|
|
348
|
+
'landscape_4_3' // 1024x768
|
|
349
|
+
'landscape_16_9' // 1024x576
|
|
350
|
+
|
|
351
|
+
// style options - includes all RecraftV3 styles PLUS icon styles:
|
|
352
|
+
// All RecraftV3 styles are supported (see RecraftV3 above)
|
|
353
|
+
|
|
354
|
+
// Additional Icon styles (unique to Recraft20b):
|
|
355
|
+
'icon/broken_line' // Broken line icon style
|
|
356
|
+
'icon/colored_outline' // Colored outline icons
|
|
357
|
+
'icon/colored_shapes' // Solid colored shapes
|
|
358
|
+
'icon/colored_shapes_gradient' // Gradient colored shapes
|
|
359
|
+
'icon/doodle_fill' // Doodle-filled icons
|
|
360
|
+
'icon/doodle_offset_fill' // Offset doodle fill
|
|
361
|
+
'icon/offset_fill' // Offset fill style
|
|
362
|
+
'icon/outline' // Simple outline
|
|
363
|
+
'icon/outline_gradient' // Gradient outline
|
|
364
|
+
'icon/uneven_fill' // Uneven/artistic fill
|
|
365
|
+
|
|
366
|
+
// Logo styles:
|
|
367
|
+
'logo' // Logo design
|
|
368
|
+
|
|
369
|
+
// n_colors options (for icon styles):
|
|
370
|
+
1 // Monochrome
|
|
371
|
+
2 // Two colors (default)
|
|
372
|
+
3 // Three colors
|
|
373
|
+
4 // Four colors
|
|
374
|
+
// ... up to any reasonable number
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
**Configuration Example with All Properties:**
|
|
378
|
+
|
|
379
|
+
```typescript
|
|
380
|
+
text2image: FalAiImage.Recraft20b({
|
|
381
|
+
proxyUrl: 'http://your-proxy-server.com/api/proxy',
|
|
382
|
+
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
|
+
|
|
388
|
+
// 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';
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
})
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
**Style Group Control:**
|
|
400
|
+
You can control which style groups (image/vector/icon) are available using the Feature API:
|
|
401
|
+
|
|
402
|
+
```typescript
|
|
403
|
+
// Only allow icon styles
|
|
404
|
+
cesdk.feature.enable('ly.img.plugin-ai-image-generation-web.fal-ai/recraft/v2/text-to-image.style.image', false);
|
|
405
|
+
cesdk.feature.enable('ly.img.plugin-ai-image-generation-web.fal-ai/recraft/v2/text-to-image.style.vector', false);
|
|
406
|
+
|
|
407
|
+
// Only allow image and vector styles (disable icon)
|
|
408
|
+
cesdk.feature.enable('ly.img.plugin-ai-image-generation-web.fal-ai/recraft/v2/text-to-image.style.icon', false);
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
Note: When all style groups are disabled, the provider automatically falls back to the 'any' style.
|
|
412
|
+
|
|
224
413
|
**Custom Translations:**
|
|
225
414
|
```typescript
|
|
226
415
|
cesdk.i18n.setTranslations({
|
|
@@ -245,6 +434,12 @@ text2image: OpenAiImage.GptImage1.Text2Image({
|
|
|
245
434
|
headers: {
|
|
246
435
|
'x-api-key': 'your-key',
|
|
247
436
|
'x-request-source': 'cesdk-plugin'
|
|
437
|
+
},
|
|
438
|
+
// Optional: Configure default property values
|
|
439
|
+
properties: {
|
|
440
|
+
size: '1024x1024', // Options: '1024x1024', '1792x1024', '1024x1792'
|
|
441
|
+
quality: 'standard', // Options: 'standard', 'hd'
|
|
442
|
+
style: 'vivid' // Options: 'vivid', 'natural'
|
|
248
443
|
}
|
|
249
444
|
})
|
|
250
445
|
```
|
|
@@ -266,6 +461,12 @@ image2image: FalAiImage.GeminiFlashEdit({
|
|
|
266
461
|
headers: {
|
|
267
462
|
'x-custom-header': 'value',
|
|
268
463
|
'x-client-version': '1.0.0'
|
|
464
|
+
},
|
|
465
|
+
// Optional: Configure default property values
|
|
466
|
+
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
|
|
269
470
|
}
|
|
270
471
|
})
|
|
271
472
|
```
|
|
@@ -318,6 +519,12 @@ text2image: FalAiImage.IdeogramV3({
|
|
|
318
519
|
headers: {
|
|
319
520
|
'x-custom-header': 'value',
|
|
320
521
|
'x-client-version': '1.0.0'
|
|
522
|
+
},
|
|
523
|
+
// Optional: Configure default property values
|
|
524
|
+
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
|
|
321
528
|
}
|
|
322
529
|
})
|
|
323
530
|
```
|
|
@@ -337,6 +544,12 @@ image2image: FalAiImage.IdeogramV3Remix({
|
|
|
337
544
|
headers: {
|
|
338
545
|
'x-custom-header': 'value',
|
|
339
546
|
'x-client-version': '1.0.0'
|
|
547
|
+
},
|
|
548
|
+
// Optional: Configure default property values
|
|
549
|
+
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)
|
|
340
553
|
}
|
|
341
554
|
})
|
|
342
555
|
```
|
|
@@ -347,7 +560,34 @@ Key features:
|
|
|
347
560
|
- Multiple image size presets: square HD, square, portrait 4:3/16:9, landscape 4:3/16:9
|
|
348
561
|
- Custom dimensions support (64x64 to 14142x14142 pixels)
|
|
349
562
|
|
|
350
|
-
#### 7.
|
|
563
|
+
#### 7. QwenImageEdit (Image-to-Image)
|
|
564
|
+
|
|
565
|
+
A powerful image editing model with superior text editing capabilities from fal.ai:
|
|
566
|
+
|
|
567
|
+
```typescript
|
|
568
|
+
image2image: FalAiImage.QwenImageEdit({
|
|
569
|
+
proxyUrl: 'http://your-proxy-server.com/api/proxy',
|
|
570
|
+
headers: {
|
|
571
|
+
'x-custom-header': 'value',
|
|
572
|
+
'x-client-version': '1.0.0'
|
|
573
|
+
},
|
|
574
|
+
// Optional: Configure default property values
|
|
575
|
+
properties: {
|
|
576
|
+
seed: 12345, // Fixed seed for reproducibility
|
|
577
|
+
guidance_scale: 7.5 // Guidance strength (0-20)
|
|
578
|
+
}
|
|
579
|
+
})
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
Key features:
|
|
583
|
+
- **Superior text editing capabilities** for image transformation
|
|
584
|
+
- Transform existing images with detailed text prompts
|
|
585
|
+
- Available through all canvas quick actions (edit, background swap, style transfer, artist styles, variants)
|
|
586
|
+
- Maintains original image dimensions
|
|
587
|
+
- Custom headers support for API requests
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
#### 8. FluxProKontextEdit (Image-to-Image)
|
|
351
591
|
|
|
352
592
|
A versatile image editing model that applies stylistic changes and transformations:
|
|
353
593
|
|
|
@@ -362,7 +602,7 @@ Key features:
|
|
|
362
602
|
- Built-in quick actions for style transfer, artist styles, background swapping, and variants
|
|
363
603
|
- Keeps original image dimensions
|
|
364
604
|
|
|
365
|
-
####
|
|
605
|
+
#### 9. FluxProKontextMaxEdit (Image-to-Image)
|
|
366
606
|
|
|
367
607
|
A high-quality variant of FluxProKontext offering more detailed results:
|
|
368
608
|
|
|
@@ -388,6 +628,10 @@ text2image: FalAiImage.NanoBanana({
|
|
|
388
628
|
headers: {
|
|
389
629
|
'x-custom-header': 'value',
|
|
390
630
|
'x-client-version': '1.0.0'
|
|
631
|
+
},
|
|
632
|
+
// Optional: Configure default property values
|
|
633
|
+
properties: {
|
|
634
|
+
output_format: 'PNG' // Options: 'PNG', 'JPEG'
|
|
391
635
|
}
|
|
392
636
|
})
|
|
393
637
|
```
|
|
@@ -422,6 +666,11 @@ image2image: FalAiImage.NanoBananaEdit({
|
|
|
422
666
|
headers: {
|
|
423
667
|
'x-custom-header': 'value',
|
|
424
668
|
'x-client-version': '1.0.0'
|
|
669
|
+
},
|
|
670
|
+
// Optional: Configure default property values
|
|
671
|
+
properties: {
|
|
672
|
+
strength: 0.7, // Edit strength (0.0-1.0)
|
|
673
|
+
output_format: 'PNG' // Options: 'PNG', 'JPEG'
|
|
425
674
|
}
|
|
426
675
|
})
|
|
427
676
|
```
|
|
@@ -770,6 +1019,16 @@ FalAiImage.GeminiFlashEdit(config: {
|
|
|
770
1019
|
})
|
|
771
1020
|
```
|
|
772
1021
|
|
|
1022
|
+
#### QwenImageEdit
|
|
1023
|
+
|
|
1024
|
+
```typescript
|
|
1025
|
+
FalAiImage.QwenImageEdit(config: {
|
|
1026
|
+
proxyUrl: string;
|
|
1027
|
+
headers?: Record<string, string>;
|
|
1028
|
+
debug?: boolean;
|
|
1029
|
+
})
|
|
1030
|
+
```
|
|
1031
|
+
|
|
773
1032
|
### OpenAI Providers
|
|
774
1033
|
|
|
775
1034
|
#### GptImage1.Text2Image
|
|
@@ -918,6 +1177,7 @@ const myImageProvider = {
|
|
|
918
1177
|
- IdeogramV3: `ly.img.ai.fal-ai/ideogram/v3`
|
|
919
1178
|
- IdeogramV3Remix: `ly.img.ai.fal-ai/ideogram/v3/remix`
|
|
920
1179
|
- GeminiFlashEdit: `ly.img.ai.fal-ai/gemini-flash-edit`
|
|
1180
|
+
- QwenImageEdit: `ly.img.ai.fal-ai/qwen-image-edit`
|
|
921
1181
|
- GptImage1.Text2Image: `ly.img.ai.open-ai/gpt-image-1/text2image`
|
|
922
1182
|
- GptImage1.Image2Image: `ly.img.ai.open-ai/gpt-image-1/image2image`
|
|
923
1183
|
- FluxProKontextEdit: `ly.img.ai.fal-ai/flux-pro/kontext`
|
|
@@ -933,6 +1193,7 @@ Generated images are automatically stored in asset sources with the following ID
|
|
|
933
1193
|
- IdeogramV3: `fal-ai/ideogram/v3.history`
|
|
934
1194
|
- IdeogramV3Remix: `fal-ai/ideogram/v3/remix.history`
|
|
935
1195
|
- GeminiFlashEdit: `fal-ai/gemini-flash-edit.history`
|
|
1196
|
+
- QwenImageEdit: `fal-ai/qwen-image-edit.history`
|
|
936
1197
|
- GptImage1.Text2Image: `open-ai/gpt-image-1/text2image.history`
|
|
937
1198
|
- GptImage1.Image2Image: `open-ai/gpt-image-1/image2image.history`
|
|
938
1199
|
- FluxProKontextEdit: `fal-ai/flux-pro/kontext.history`
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ImageOutput, type Provider, type CommonProviderConfiguration } from '@imgly/plugin-ai-generation-web';
|
|
2
|
+
import CreativeEditorSDK from '@cesdk/cesdk-js';
|
|
3
|
+
type QwenImageEditInput = {
|
|
4
|
+
prompt: string;
|
|
5
|
+
image_url: string;
|
|
6
|
+
num_images?: number;
|
|
7
|
+
image_size?: string;
|
|
8
|
+
acceleration?: 'none' | 'regular' | 'high';
|
|
9
|
+
output_format?: 'jpeg' | 'png';
|
|
10
|
+
guidance_scale?: number;
|
|
11
|
+
num_inference_steps?: number;
|
|
12
|
+
sync_mode?: boolean;
|
|
13
|
+
seed?: number;
|
|
14
|
+
negative_prompt?: string;
|
|
15
|
+
enable_safety_checker?: boolean;
|
|
16
|
+
};
|
|
17
|
+
export declare function QwenImageEdit(config: CommonProviderConfiguration<QwenImageEditInput, ImageOutput>): (context: {
|
|
18
|
+
cesdk: CreativeEditorSDK;
|
|
19
|
+
}) => Promise<Provider<'image', QwenImageEditInput, ImageOutput>>;
|
|
20
|
+
declare function getProvider(cesdk: CreativeEditorSDK, config: CommonProviderConfiguration<QwenImageEditInput, ImageOutput>): Provider<'image', QwenImageEditInput, ImageOutput>;
|
|
21
|
+
export default getProvider;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type Provider } from '@imgly/plugin-ai-generation-web';
|
|
2
2
|
import CreativeEditorSDK from '@cesdk/cesdk-js';
|
|
3
|
-
import {
|
|
3
|
+
import type { Recraft20bConfiguration } from './recraftTypes';
|
|
4
4
|
type Recraft20bOutput = {
|
|
5
5
|
kind: 'image';
|
|
6
6
|
url: string;
|
|
@@ -11,24 +11,15 @@ type Recraft20bInput = {
|
|
|
11
11
|
width: number;
|
|
12
12
|
height: number;
|
|
13
13
|
};
|
|
14
|
-
style?:
|
|
14
|
+
style?: string;
|
|
15
15
|
colors?: Array<{
|
|
16
16
|
r: number;
|
|
17
17
|
g: number;
|
|
18
18
|
b: number;
|
|
19
19
|
}>;
|
|
20
20
|
};
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Base URL used for the UI assets used in the plugin.
|
|
24
|
-
*
|
|
25
|
-
* By default, we load the assets from the IMG.LY CDN You can copy the assets.
|
|
26
|
-
* from the `/assets` folder to your own server and set the base URL to your server.
|
|
27
|
-
*/
|
|
28
|
-
baseURL?: string;
|
|
29
|
-
}
|
|
30
|
-
export declare function Recraft20b(config: ProviderConfiguration): (context: {
|
|
21
|
+
export declare function Recraft20b(config: Recraft20bConfiguration): (context: {
|
|
31
22
|
cesdk: CreativeEditorSDK;
|
|
32
23
|
}) => Promise<Provider<'image', Recraft20bInput, Recraft20bOutput>>;
|
|
33
|
-
declare function getProvider(cesdk: CreativeEditorSDK, config:
|
|
24
|
+
declare function getProvider(cesdk: CreativeEditorSDK, config: Recraft20bConfiguration): Provider<'image', Recraft20bInput, Recraft20bOutput>;
|
|
34
25
|
export default getProvider;
|
|
@@ -1,22 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type Provider } from '@imgly/plugin-ai-generation-web';
|
|
2
2
|
import { type RecraftV3TextToImageInput } from '@fal-ai/client/endpoints';
|
|
3
3
|
import CreativeEditorSDK from '@cesdk/cesdk-js';
|
|
4
|
+
import type { RecraftV3Configuration } from './recraftTypes';
|
|
4
5
|
type RecraftV3Output = {
|
|
5
6
|
kind: 'image';
|
|
6
7
|
url: string;
|
|
7
8
|
};
|
|
8
9
|
export type StyleId = Extract<RecraftV3TextToImageInput['style'], string>;
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Base URL used for the UI assets used in the plugin.
|
|
12
|
-
*
|
|
13
|
-
* By default, we load the assets from the IMG.LY CDN You can copy the assets.
|
|
14
|
-
* from the `/assets` folder to your own server and set the base URL to your server.
|
|
15
|
-
*/
|
|
16
|
-
baseURL?: string;
|
|
17
|
-
}
|
|
18
|
-
export declare function RecraftV3(config: ProviderConfiguration): (context: {
|
|
10
|
+
export declare function RecraftV3(config: RecraftV3Configuration): (context: {
|
|
19
11
|
cesdk: CreativeEditorSDK;
|
|
20
12
|
}) => Promise<Provider<'image', RecraftV3TextToImageInput, RecraftV3Output>>;
|
|
21
|
-
declare function getProvider(cesdk: CreativeEditorSDK, config:
|
|
13
|
+
declare function getProvider(cesdk: CreativeEditorSDK, config: RecraftV3Configuration): Provider<'image', RecraftV3TextToImageInput, RecraftV3Output>;
|
|
22
14
|
export default getProvider;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/fal-ai/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { FluxProKontextEdit } from './FluxProKontextEdit';
|
|
|
5
5
|
import { FluxProKontextMaxEdit } from './FluxProKontextMaxEdit';
|
|
6
6
|
import { IdeogramV3 } from './IdeogramV3';
|
|
7
7
|
import { IdeogramV3Remix } from './IdeogramV3Remix';
|
|
8
|
+
import { QwenImageEdit } from './QwenImageEdit';
|
|
8
9
|
import { NanoBanana } from './NanoBanana';
|
|
9
10
|
import { NanoBananaEdit } from './NanoBananaEdit';
|
|
10
11
|
declare const FalAi: {
|
|
@@ -13,6 +14,7 @@ declare const FalAi: {
|
|
|
13
14
|
GeminiFlashEdit: typeof GeminiFlashEdit;
|
|
14
15
|
IdeogramV3: typeof IdeogramV3;
|
|
15
16
|
IdeogramV3Remix: typeof IdeogramV3Remix;
|
|
17
|
+
QwenImageEdit: typeof QwenImageEdit;
|
|
16
18
|
NanoBanana: typeof NanoBanana;
|
|
17
19
|
NanoBananaEdit: typeof NanoBananaEdit;
|
|
18
20
|
Recraft20b: typeof Recraft20b;
|