@imgly/plugin-ai-generation-web 0.1.2 → 0.1.4
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/README.md +153 -0
- package/dist/generation/middleware/dryRunMiddleware.d.ts +9 -0
- package/dist/generation/provider.d.ts +7 -1
- package/dist/generation/quickAction/common/QuickActionBaseButton.d.ts +11 -0
- package/dist/generation/quickAction/common/QuickActionBasePrompt.d.ts +13 -0
- package/dist/generation/quickAction/common/QuickActionBaseSelect.d.ts +28 -0
- package/dist/generation/quickAction/common/QuickActionChangeImage.d.ts +17 -0
- package/dist/generation/quickAction/common/QuickActionImageVariant.d.ts +17 -0
- package/dist/generation/quickAction/common/QuickActionSwapImageBackground.d.ts +17 -0
- package/dist/generation/quickAction/common/enableImageFill.d.ts +8 -0
- package/dist/generation/quickAction/generate.d.ts +19 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.mjs +6 -6
- package/dist/index.mjs.map +4 -4
- package/package.json +1 -1
- package/dist/generation/getDryRunOutput.d.ts +0 -3
package/README.md
CHANGED
|
@@ -485,6 +485,159 @@ quickActions: {
|
|
|
485
485
|
}
|
|
486
486
|
```
|
|
487
487
|
|
|
488
|
+
### Quick Action Helper Components
|
|
489
|
+
|
|
490
|
+
The package provides several helper components for common quick action patterns:
|
|
491
|
+
|
|
492
|
+
#### 1. QuickActionBaseButton
|
|
493
|
+
|
|
494
|
+
A simple button that triggers an action when clicked:
|
|
495
|
+
|
|
496
|
+
```typescript
|
|
497
|
+
import { QuickActionBaseButton } from '@imgly/plugin-ai-generation-web';
|
|
498
|
+
|
|
499
|
+
const quickAction = QuickActionBaseButton<MyInput, ImageOutput>({
|
|
500
|
+
quickAction: {
|
|
501
|
+
id: 'enhanceImage',
|
|
502
|
+
version: '1',
|
|
503
|
+
enable: true
|
|
504
|
+
},
|
|
505
|
+
buttonOptions: {
|
|
506
|
+
icon: '@imgly/MagicWand'
|
|
507
|
+
},
|
|
508
|
+
onClick: async (context) => {
|
|
509
|
+
await context.generate({
|
|
510
|
+
prompt: 'Enhance this image and improve quality'
|
|
511
|
+
});
|
|
512
|
+
}
|
|
513
|
+
});
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
#### 2. QuickActionBasePrompt
|
|
517
|
+
|
|
518
|
+
A button that expands to show a text prompt input:
|
|
519
|
+
|
|
520
|
+
```typescript
|
|
521
|
+
import { QuickActionBasePrompt } from '@imgly/plugin-ai-generation-web';
|
|
522
|
+
|
|
523
|
+
const quickAction = QuickActionBasePrompt<MyInput, ImageOutput>({
|
|
524
|
+
quickAction: {
|
|
525
|
+
id: 'changeImage',
|
|
526
|
+
version: '1',
|
|
527
|
+
enable: true,
|
|
528
|
+
confirmation: true
|
|
529
|
+
},
|
|
530
|
+
buttonOptions: {
|
|
531
|
+
icon: '@imgly/Edit'
|
|
532
|
+
},
|
|
533
|
+
textAreaOptions: {
|
|
534
|
+
placeholder: 'Describe the changes you want...'
|
|
535
|
+
},
|
|
536
|
+
onApply: async (prompt, context) => {
|
|
537
|
+
return context.generate({
|
|
538
|
+
prompt: prompt,
|
|
539
|
+
// other parameters
|
|
540
|
+
});
|
|
541
|
+
}
|
|
542
|
+
});
|
|
543
|
+
```
|
|
544
|
+
|
|
545
|
+
#### 3. QuickActionBaseSelect
|
|
546
|
+
|
|
547
|
+
A button that opens a menu with selectable options:
|
|
548
|
+
|
|
549
|
+
```typescript
|
|
550
|
+
import { QuickActionBaseSelect } from '@imgly/plugin-ai-generation-web';
|
|
551
|
+
|
|
552
|
+
const quickAction = QuickActionBaseSelect<MyInput, ImageOutput>({
|
|
553
|
+
cesdk: cesdk,
|
|
554
|
+
quickAction: {
|
|
555
|
+
id: 'styleTransfer',
|
|
556
|
+
version: '1',
|
|
557
|
+
enable: true,
|
|
558
|
+
confirmation: true
|
|
559
|
+
},
|
|
560
|
+
buttonOptions: {
|
|
561
|
+
icon: '@imgly/Appearance'
|
|
562
|
+
},
|
|
563
|
+
items: [
|
|
564
|
+
{
|
|
565
|
+
id: 'water',
|
|
566
|
+
label: 'Watercolor Painting',
|
|
567
|
+
prompt: 'Convert to watercolor painting.'
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
id: 'oil',
|
|
571
|
+
label: 'Oil Painting',
|
|
572
|
+
prompt: 'Render in oil painting style.'
|
|
573
|
+
}
|
|
574
|
+
],
|
|
575
|
+
mapInput: (input) => ({
|
|
576
|
+
prompt: input.item.prompt,
|
|
577
|
+
image_url: input.uri
|
|
578
|
+
})
|
|
579
|
+
});
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
### Ready-to-Use Image Quick Actions
|
|
583
|
+
|
|
584
|
+
The package includes several ready-to-use quick actions for common image manipulation tasks:
|
|
585
|
+
|
|
586
|
+
#### 1. QuickActionChangeImage
|
|
587
|
+
|
|
588
|
+
Changes an image based on a text prompt:
|
|
589
|
+
|
|
590
|
+
```typescript
|
|
591
|
+
import { QuickActionChangeImage } from '@imgly/plugin-ai-generation-web';
|
|
592
|
+
|
|
593
|
+
const changeImageAction = QuickActionChangeImage<MyInput, ImageOutput>({
|
|
594
|
+
cesdk: cesdk,
|
|
595
|
+
mapInput: (input) => ({
|
|
596
|
+
prompt: input.prompt,
|
|
597
|
+
image_url: input.uri
|
|
598
|
+
})
|
|
599
|
+
});
|
|
600
|
+
```
|
|
601
|
+
|
|
602
|
+
#### 2. QuickActionSwapImageBackground
|
|
603
|
+
|
|
604
|
+
Changes just the background of an image:
|
|
605
|
+
|
|
606
|
+
```typescript
|
|
607
|
+
import { QuickActionSwapImageBackground } from '@imgly/plugin-ai-generation-web';
|
|
608
|
+
|
|
609
|
+
const swapBackgroundAction = QuickActionSwapImageBackground<MyInput, ImageOutput>({
|
|
610
|
+
cesdk: cesdk,
|
|
611
|
+
mapInput: (input) => ({
|
|
612
|
+
prompt: input.prompt,
|
|
613
|
+
image_url: input.uri
|
|
614
|
+
})
|
|
615
|
+
});
|
|
616
|
+
```
|
|
617
|
+
|
|
618
|
+
#### 3. QuickActionImageVariant
|
|
619
|
+
|
|
620
|
+
Creates a variant of an image by duplicating it first:
|
|
621
|
+
|
|
622
|
+
```typescript
|
|
623
|
+
import { QuickActionImageVariant } from '@imgly/plugin-ai-generation-web';
|
|
624
|
+
|
|
625
|
+
const imageVariantAction = QuickActionImageVariant<MyInput, ImageOutput>({
|
|
626
|
+
cesdk: cesdk,
|
|
627
|
+
onApply: async ({ prompt, uri, duplicatedBlockId }, context) => {
|
|
628
|
+
return context.generate(
|
|
629
|
+
{
|
|
630
|
+
prompt,
|
|
631
|
+
image_url: uri
|
|
632
|
+
},
|
|
633
|
+
{
|
|
634
|
+
blockIds: [duplicatedBlockId]
|
|
635
|
+
}
|
|
636
|
+
);
|
|
637
|
+
}
|
|
638
|
+
});
|
|
639
|
+
```
|
|
640
|
+
|
|
488
641
|
### Simple Quick Action Example
|
|
489
642
|
|
|
490
643
|
```typescript
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Output, type OutputKind, type GetBlockInputResult } from '../provider';
|
|
2
|
+
import { Middleware } from './middleware';
|
|
3
|
+
interface DryRunOptions<K extends OutputKind> {
|
|
4
|
+
kind: K;
|
|
5
|
+
blockInputs?: GetBlockInputResult<K>;
|
|
6
|
+
blockIds?: number[];
|
|
7
|
+
}
|
|
8
|
+
declare function dryRunMiddleware<I, K extends OutputKind, O extends Output>(options: DryRunOptions<K>): Middleware<I, O>;
|
|
9
|
+
export default dryRunMiddleware;
|
|
@@ -22,7 +22,7 @@ interface Provider<K extends OutputKind, I, O extends Output, C = O> {
|
|
|
22
22
|
* Initialize the provider when the plugin is loaded.
|
|
23
23
|
* Can be used to initialize libraries, and register additional UI components.
|
|
24
24
|
*/
|
|
25
|
-
initialize
|
|
25
|
+
initialize?: (options: {
|
|
26
26
|
engine: CreativeEngine;
|
|
27
27
|
/**
|
|
28
28
|
* If undefined, this indicates that the plugin was loaded
|
|
@@ -345,6 +345,12 @@ export type QuickActionsInput<I, O extends Output> = {
|
|
|
345
345
|
};
|
|
346
346
|
export type QuickAction<I, O extends Output> = {
|
|
347
347
|
id: string;
|
|
348
|
+
/**
|
|
349
|
+
* If set, the quick action is shown in the menu for this kind, instead
|
|
350
|
+
* of the kind of the provider. E.g. a video provider can add a quick action,
|
|
351
|
+
* to add a button in the image menu to generate a video from.
|
|
352
|
+
*/
|
|
353
|
+
kind?: OutputKind;
|
|
348
354
|
version: '1';
|
|
349
355
|
/**
|
|
350
356
|
* Defines if the quick action is enabled or not by using the
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ButtonOptions } from '@cesdk/cesdk-js';
|
|
2
|
+
import { Output, QuickAction, QuickActionContext } from '../../provider';
|
|
3
|
+
/**
|
|
4
|
+
* Quick action base for quick actions to open a panel.
|
|
5
|
+
*/
|
|
6
|
+
declare function QuickActionBaseButton<I, O extends Output>(options: {
|
|
7
|
+
buttonOptions?: ButtonOptions;
|
|
8
|
+
quickAction: Omit<QuickAction<I, O>, 'render' | 'renderExpanded'>;
|
|
9
|
+
onClick: (context: QuickActionContext<I, O>) => Promise<void>;
|
|
10
|
+
}): QuickAction<I, O>;
|
|
11
|
+
export default QuickActionBaseButton;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ButtonOptions, TextAreaOptions } from '@cesdk/cesdk-js';
|
|
2
|
+
import { Output, QuickAction, QuickActionContext } from '../../provider';
|
|
3
|
+
/**
|
|
4
|
+
* Quick action base for quick actions that require a prompt.
|
|
5
|
+
* Will render a text area for the prompt.
|
|
6
|
+
*/
|
|
7
|
+
declare function QuickActionBasePrompt<I, O extends Output>(options: {
|
|
8
|
+
buttonOptions?: ButtonOptions;
|
|
9
|
+
textAreaOptions?: TextAreaOptions;
|
|
10
|
+
quickAction: Omit<QuickAction<I, O>, 'render' | 'renderExpanded'>;
|
|
11
|
+
onApply: (prompt: string, context: QuickActionContext<I, O>) => Promise<O>;
|
|
12
|
+
}): QuickAction<I, O>;
|
|
13
|
+
export default QuickActionBasePrompt;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import CreativeEditorSDK, { ButtonOptions } from '@cesdk/cesdk-js';
|
|
2
|
+
import { Output, QuickAction, QuickActionContext } from '../../provider';
|
|
3
|
+
interface QuickActionBaseSelectItem {
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
icon?: string;
|
|
7
|
+
prompt: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Quick action base for quick actions that require a selection of items.
|
|
11
|
+
*/
|
|
12
|
+
declare function QuickActionBaseSelect<I, O extends Output>(options: {
|
|
13
|
+
cesdk: CreativeEditorSDK;
|
|
14
|
+
items: QuickActionBaseSelectItem[];
|
|
15
|
+
buttonOptions?: ButtonOptions;
|
|
16
|
+
quickAction: Omit<QuickAction<I, O>, 'render' | 'renderExpanded'>;
|
|
17
|
+
mapInput?: (input: {
|
|
18
|
+
item: QuickActionBaseSelectItem;
|
|
19
|
+
uri: string;
|
|
20
|
+
blockId: number;
|
|
21
|
+
}) => I;
|
|
22
|
+
onApply?: (options: {
|
|
23
|
+
item: QuickActionBaseSelectItem;
|
|
24
|
+
uri: string;
|
|
25
|
+
blockId: number;
|
|
26
|
+
}, context: QuickActionContext<I, O>) => Promise<O>;
|
|
27
|
+
}): QuickAction<I, O>;
|
|
28
|
+
export default QuickActionBaseSelect;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import CreativeEditorSDK from '@cesdk/cesdk-js';
|
|
2
|
+
import { ImageOutput, QuickAction, QuickActionContext } from '../../provider';
|
|
3
|
+
declare function QuickActionChangeImage<I, O extends ImageOutput>(options: {
|
|
4
|
+
id?: string;
|
|
5
|
+
cesdk: CreativeEditorSDK;
|
|
6
|
+
mapInput?: (input: {
|
|
7
|
+
prompt: string;
|
|
8
|
+
uri: string;
|
|
9
|
+
blockId: number;
|
|
10
|
+
}) => I;
|
|
11
|
+
onApply?: (options: {
|
|
12
|
+
prompt: string;
|
|
13
|
+
uri: string;
|
|
14
|
+
blockId: number;
|
|
15
|
+
}, context: QuickActionContext<I, O>) => Promise<O>;
|
|
16
|
+
}): QuickAction<I, O>;
|
|
17
|
+
export default QuickActionChangeImage;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import CreativeEditorSDK from '@cesdk/cesdk-js';
|
|
2
|
+
import { ImageOutput, QuickAction, QuickActionContext } from '../../provider';
|
|
3
|
+
declare function QuickActionImageVariant<I, O extends ImageOutput>(options: {
|
|
4
|
+
id?: string;
|
|
5
|
+
mapInput?: (input: {
|
|
6
|
+
prompt: string;
|
|
7
|
+
uri: string;
|
|
8
|
+
duplicatedBlockId: number;
|
|
9
|
+
}) => I;
|
|
10
|
+
onApply?: (options: {
|
|
11
|
+
prompt: string;
|
|
12
|
+
uri: string;
|
|
13
|
+
duplicatedBlockId: number;
|
|
14
|
+
}, context: QuickActionContext<I, O>) => Promise<O>;
|
|
15
|
+
cesdk: CreativeEditorSDK;
|
|
16
|
+
}): QuickAction<I, O>;
|
|
17
|
+
export default QuickActionImageVariant;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import CreativeEditorSDK from '@cesdk/cesdk-js';
|
|
2
|
+
import { ImageOutput, QuickAction, QuickActionContext } from '../../provider';
|
|
3
|
+
declare function QuickActionChangeImage<I, O extends ImageOutput>(options: {
|
|
4
|
+
id?: string;
|
|
5
|
+
mapInput?: (input: {
|
|
6
|
+
prompt: string;
|
|
7
|
+
uri: string;
|
|
8
|
+
blockId: number;
|
|
9
|
+
}) => I;
|
|
10
|
+
onApply?: (options: {
|
|
11
|
+
prompt: string;
|
|
12
|
+
uri: string;
|
|
13
|
+
blockId: number;
|
|
14
|
+
}, context: QuickActionContext<I, O>) => Promise<O>;
|
|
15
|
+
cesdk: CreativeEditorSDK;
|
|
16
|
+
}): QuickAction<I, O>;
|
|
17
|
+
export default QuickActionChangeImage;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import CreativeEditorSDK from '@cesdk/cesdk-js';
|
|
2
|
+
import { QuickActionMenu, ApplyCallbacks } from './types';
|
|
3
|
+
import Provider, { Output, OutputKind, QuickAction } from '../provider';
|
|
4
|
+
import { InitProviderConfiguration } from '../types';
|
|
5
|
+
declare function generate<K extends OutputKind, I, O extends Output>(options: {
|
|
6
|
+
input: I;
|
|
7
|
+
blockIds: number[];
|
|
8
|
+
cesdk: CreativeEditorSDK;
|
|
9
|
+
quickAction: QuickAction<I, O>;
|
|
10
|
+
quickActionMenu: QuickActionMenu;
|
|
11
|
+
provider: Provider<K, I, O>;
|
|
12
|
+
abortSignal: AbortSignal;
|
|
13
|
+
confirmationComponentId: string;
|
|
14
|
+
}, config: InitProviderConfiguration): Promise<{
|
|
15
|
+
dispose: () => void;
|
|
16
|
+
returnValue: O;
|
|
17
|
+
applyCallbacks?: ApplyCallbacks;
|
|
18
|
+
}>;
|
|
19
|
+
export default generate;
|
package/dist/index.d.ts
CHANGED
|
@@ -15,4 +15,11 @@ export { getPanelId, getDurationForVideo, getThumbnailForVideo, getLabelFromId }
|
|
|
15
15
|
export { default as registerDockComponent } from './registerDockComponent';
|
|
16
16
|
export { default as getQuickActionMenu } from './generation/quickAction/getQuickActionMenu';
|
|
17
17
|
export { default as registerQuickActionMenuComponent } from './generation/quickAction/registerQuickActionMenuComponent';
|
|
18
|
+
export { default as QuickActionBasePrompt } from './generation/quickAction/common/QuickActionBasePrompt';
|
|
19
|
+
export { default as QuickActionBaseButton } from './generation/quickAction/common/QuickActionBaseButton';
|
|
20
|
+
export { default as QuickActionBaseSelect } from './generation/quickAction/common/QuickActionBaseSelect';
|
|
21
|
+
export { default as QuickActionChangeImage } from './generation/quickAction/common/QuickActionChangeImage';
|
|
22
|
+
export { default as QuickActionImageVariant } from './generation/quickAction/common/QuickActionImageVariant';
|
|
23
|
+
export { default as QuickActionSwapImageBackground } from './generation/quickAction/common/QuickActionSwapImageBackground';
|
|
24
|
+
export { default as enableQuickActionForImageFill } from './generation/quickAction/common/enableImageFill';
|
|
18
25
|
export { isGeneratingStateKey, abortGenerationStateKey } from './generation/renderGenerationComponents';
|