@imgly/plugin-ai-video-generation-web 0.2.12 → 0.2.15

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.
Files changed (34) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +319 -0
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/eachlabs/KlingO1.image2video.d.ts +23 -0
  5. package/dist/eachlabs/KlingV26Pro.image2video.d.ts +23 -0
  6. package/dist/eachlabs/KlingV26Pro.text2video.d.ts +24 -0
  7. package/dist/eachlabs/Veo31.image2video.d.ts +25 -0
  8. package/dist/eachlabs/Veo31.text2video.d.ts +25 -0
  9. package/dist/eachlabs/createEachLabsClient.d.ts +37 -0
  10. package/dist/eachlabs/createVideoProvider.d.ts +107 -0
  11. package/dist/eachlabs/index.d.ts +19 -0
  12. package/dist/eachlabs/index.mjs +142 -0
  13. package/dist/eachlabs/index.mjs.map +7 -0
  14. package/dist/eachlabs/types.d.ts +10 -0
  15. package/dist/eachlabs/utils.d.ts +23 -0
  16. package/dist/fal-ai/index.mjs.map +2 -2
  17. package/dist/index.mjs +1 -1
  18. package/dist/index.mjs.map +2 -2
  19. package/dist/runware/Sora2.image2video.d.ts +32 -0
  20. package/dist/runware/Sora2.text2video.d.ts +30 -0
  21. package/dist/runware/Sora2Pro.image2video.d.ts +32 -0
  22. package/dist/runware/Sora2Pro.text2video.d.ts +30 -0
  23. package/dist/runware/Veo31.image2video.d.ts +33 -0
  24. package/dist/runware/Veo31.text2video.d.ts +31 -0
  25. package/dist/runware/Veo31Fast.image2video.d.ts +34 -0
  26. package/dist/runware/Veo31Fast.text2video.d.ts +32 -0
  27. package/dist/runware/createRunwareClient.d.ts +57 -0
  28. package/dist/runware/createVideoProvider.d.ts +109 -0
  29. package/dist/runware/index.d.ts +28 -0
  30. package/dist/runware/index.mjs +142 -0
  31. package/dist/runware/index.mjs.map +7 -0
  32. package/dist/runware/types.d.ts +10 -0
  33. package/dist/runware/utils.d.ts +5 -0
  34. package/package.json +43 -23
@@ -0,0 +1,32 @@
1
+ import { type Provider, type VideoOutput } from '@imgly/plugin-ai-generation-web';
2
+ import type CreativeEditorSDK from '@cesdk/cesdk-js';
3
+ import { RunwareProviderConfiguration } from './types';
4
+ /**
5
+ * Input interface for Sora 2 Image-to-Video
6
+ */
7
+ export type Sora2Image2VideoInput = {
8
+ image_url: string;
9
+ prompt?: string;
10
+ format?: '1280x720' | '720x1280';
11
+ duration?: '4' | '8' | '12';
12
+ };
13
+ /**
14
+ * Sora 2 Image-to-Video - OpenAI's video generation from images
15
+ *
16
+ * AIR: openai:3@1
17
+ *
18
+ * Features:
19
+ * - First frame image input
20
+ * - Accurate physics simulation
21
+ * - Synchronized dialogue and high-fidelity visuals
22
+ *
23
+ * Specifications:
24
+ * - Prompt: 1-4,000 characters
25
+ * - Input image: 300-2048 pixels, 20MB max
26
+ * - Resolutions: 1280x720, 720x1280
27
+ * - Duration: 4, 8, or 12 seconds
28
+ */
29
+ export declare function Sora2Image2Video(config: RunwareProviderConfiguration): (context: {
30
+ cesdk: CreativeEditorSDK;
31
+ }) => Promise<Provider<'video', Sora2Image2VideoInput, VideoOutput>>;
32
+ export default Sora2Image2Video;
@@ -0,0 +1,30 @@
1
+ import { type Provider, type VideoOutput } from '@imgly/plugin-ai-generation-web';
2
+ import type CreativeEditorSDK from '@cesdk/cesdk-js';
3
+ import { RunwareProviderConfiguration } from './types';
4
+ /**
5
+ * Input interface for Sora 2 Text-to-Video
6
+ */
7
+ export type Sora2Text2VideoInput = {
8
+ prompt: string;
9
+ format?: '1280x720' | '720x1280';
10
+ duration?: '4' | '8' | '12';
11
+ };
12
+ /**
13
+ * Sora 2 - OpenAI's video generation model
14
+ *
15
+ * AIR: openai:3@1
16
+ *
17
+ * Features:
18
+ * - Text-to-video and image-to-video support
19
+ * - Accurate physics simulation
20
+ * - Synchronized dialogue and high-fidelity visuals
21
+ *
22
+ * Specifications:
23
+ * - Prompt: 1-4,000 characters
24
+ * - Resolutions: 1280x720, 720x1280
25
+ * - Duration: 4, 8, or 12 seconds
26
+ */
27
+ export declare function Sora2Text2Video(config: RunwareProviderConfiguration): (context: {
28
+ cesdk: CreativeEditorSDK;
29
+ }) => Promise<Provider<'video', Sora2Text2VideoInput, VideoOutput>>;
30
+ export default Sora2Text2Video;
@@ -0,0 +1,32 @@
1
+ import { type Provider, type VideoOutput } from '@imgly/plugin-ai-generation-web';
2
+ import type CreativeEditorSDK from '@cesdk/cesdk-js';
3
+ import { RunwareProviderConfiguration } from './types';
4
+ /**
5
+ * Input interface for Sora 2 Pro Image-to-Video
6
+ */
7
+ export type Sora2ProImage2VideoInput = {
8
+ image_url: string;
9
+ prompt?: string;
10
+ format?: '1280x720' | '720x1280' | '1792x1024' | '1024x1792';
11
+ duration?: '4' | '8' | '12';
12
+ };
13
+ /**
14
+ * Sora 2 Pro Image-to-Video - OpenAI's higher-quality video generation from images
15
+ *
16
+ * AIR: openai:3@2
17
+ *
18
+ * Features:
19
+ * - First frame image input
20
+ * - Expanded resolution options
21
+ * - Refined control for professional applications
22
+ *
23
+ * Specifications:
24
+ * - Prompt: 1-4,000 characters
25
+ * - Input image: 300-2048 pixels, 20MB max
26
+ * - Resolutions: 1280x720, 720x1280, 1792x1024, 1024x1792
27
+ * - Duration: 4, 8, or 12 seconds
28
+ */
29
+ export declare function Sora2ProImage2Video(config: RunwareProviderConfiguration): (context: {
30
+ cesdk: CreativeEditorSDK;
31
+ }) => Promise<Provider<'video', Sora2ProImage2VideoInput, VideoOutput>>;
32
+ export default Sora2ProImage2Video;
@@ -0,0 +1,30 @@
1
+ import { type Provider, type VideoOutput } from '@imgly/plugin-ai-generation-web';
2
+ import type CreativeEditorSDK from '@cesdk/cesdk-js';
3
+ import { RunwareProviderConfiguration } from './types';
4
+ /**
5
+ * Input interface for Sora 2 Pro Text-to-Video
6
+ */
7
+ export type Sora2ProText2VideoInput = {
8
+ prompt: string;
9
+ format?: '1280x720' | '720x1280' | '1792x1024' | '1024x1792';
10
+ duration?: '4' | '8' | '12';
11
+ };
12
+ /**
13
+ * Sora 2 Pro - OpenAI's higher-quality video generation model
14
+ *
15
+ * AIR: openai:3@2
16
+ *
17
+ * Features:
18
+ * - Text-to-video and image-to-video support
19
+ * - Expanded resolution options
20
+ * - Refined control for professional applications
21
+ *
22
+ * Specifications:
23
+ * - Prompt: 1-4,000 characters
24
+ * - Resolutions: 1280x720, 720x1280, 1792x1024, 1024x1792
25
+ * - Duration: 4, 8, or 12 seconds
26
+ */
27
+ export declare function Sora2ProText2Video(config: RunwareProviderConfiguration): (context: {
28
+ cesdk: CreativeEditorSDK;
29
+ }) => Promise<Provider<'video', Sora2ProText2VideoInput, VideoOutput>>;
30
+ export default Sora2ProText2Video;
@@ -0,0 +1,33 @@
1
+ import { type Provider, type VideoOutput } from '@imgly/plugin-ai-generation-web';
2
+ import type CreativeEditorSDK from '@cesdk/cesdk-js';
3
+ import { RunwareProviderConfiguration } from './types';
4
+ /**
5
+ * Input interface for Veo 3.1 Image-to-Video
6
+ */
7
+ export type Veo31Image2VideoInput = {
8
+ image_url: string;
9
+ prompt?: string;
10
+ format?: '1280x720' | '720x1280' | '1920x1080' | '1080x1920';
11
+ generate_audio?: boolean;
12
+ };
13
+ /**
14
+ * Veo 3.1 Image-to-Video - Google's cinematic video generation from images
15
+ *
16
+ * AIR: google:3@2
17
+ *
18
+ * Features:
19
+ * - First frame image input
20
+ * - Native audio generation
21
+ * - Cinematic quality with natural sound and smooth motion
22
+ *
23
+ * Specifications:
24
+ * - Prompt: 2-3,000 characters
25
+ * - Input image: 300-2048 pixels, 20MB max
26
+ * - Resolutions: 1280x720, 720x1280, 1920x1080, 1080x1920
27
+ * - Frame rate: 24 FPS
28
+ * - Duration: 8 seconds (fixed)
29
+ */
30
+ export declare function Veo31Image2Video(config: RunwareProviderConfiguration): (context: {
31
+ cesdk: CreativeEditorSDK;
32
+ }) => Promise<Provider<'video', Veo31Image2VideoInput, VideoOutput>>;
33
+ export default Veo31Image2Video;
@@ -0,0 +1,31 @@
1
+ import { type Provider, type VideoOutput } from '@imgly/plugin-ai-generation-web';
2
+ import type CreativeEditorSDK from '@cesdk/cesdk-js';
3
+ import { RunwareProviderConfiguration } from './types';
4
+ /**
5
+ * Input interface for Veo 3.1 Text-to-Video
6
+ */
7
+ export type Veo31Text2VideoInput = {
8
+ prompt: string;
9
+ format?: '1280x720' | '720x1280' | '1920x1080' | '1080x1920';
10
+ generate_audio?: boolean;
11
+ };
12
+ /**
13
+ * Veo 3.1 - Google's cinematic video generation model
14
+ *
15
+ * AIR: google:3@2
16
+ *
17
+ * Features:
18
+ * - Text-to-video and image-to-video support
19
+ * - Native audio generation
20
+ * - Cinematic quality with natural sound and smooth motion
21
+ *
22
+ * Specifications:
23
+ * - Prompt: 2-3,000 characters
24
+ * - Resolutions: 1280x720, 720x1280, 1920x1080, 1080x1920
25
+ * - Frame rate: 24 FPS
26
+ * - Duration: 8 seconds (fixed)
27
+ */
28
+ export declare function Veo31Text2Video(config: RunwareProviderConfiguration): (context: {
29
+ cesdk: CreativeEditorSDK;
30
+ }) => Promise<Provider<'video', Veo31Text2VideoInput, VideoOutput>>;
31
+ export default Veo31Text2Video;
@@ -0,0 +1,34 @@
1
+ import { type Provider, type VideoOutput } from '@imgly/plugin-ai-generation-web';
2
+ import type CreativeEditorSDK from '@cesdk/cesdk-js';
3
+ import { RunwareProviderConfiguration } from './types';
4
+ /**
5
+ * Input interface for Veo 3.1 Fast Image-to-Video
6
+ */
7
+ export type Veo31FastImage2VideoInput = {
8
+ image_url: string;
9
+ prompt?: string;
10
+ format?: '1280x720' | '720x1280' | '1920x1080' | '1080x1920';
11
+ generate_audio?: boolean;
12
+ };
13
+ /**
14
+ * Veo 3.1 Fast Image-to-Video - Google's fast video generation from images
15
+ *
16
+ * AIR: google:3@3
17
+ *
18
+ * Features:
19
+ * - First frame image input
20
+ * - Native audio generation
21
+ * - Optimized for high-speed generation with cinematic quality
22
+ * - Ultra-low latency for rapid creative iteration
23
+ *
24
+ * Specifications:
25
+ * - Prompt: 2-3,000 characters
26
+ * - Input image: 300-2048 pixels, 20MB max
27
+ * - Resolutions: 1280x720, 720x1280, 1920x1080, 1080x1920
28
+ * - Frame rate: 24 FPS
29
+ * - Duration: 8 seconds (fixed)
30
+ */
31
+ export declare function Veo31FastImage2Video(config: RunwareProviderConfiguration): (context: {
32
+ cesdk: CreativeEditorSDK;
33
+ }) => Promise<Provider<'video', Veo31FastImage2VideoInput, VideoOutput>>;
34
+ export default Veo31FastImage2Video;
@@ -0,0 +1,32 @@
1
+ import { type Provider, type VideoOutput } from '@imgly/plugin-ai-generation-web';
2
+ import type CreativeEditorSDK from '@cesdk/cesdk-js';
3
+ import { RunwareProviderConfiguration } from './types';
4
+ /**
5
+ * Input interface for Veo 3.1 Fast Text-to-Video
6
+ */
7
+ export type Veo31FastText2VideoInput = {
8
+ prompt: string;
9
+ format?: '1280x720' | '720x1280' | '1920x1080' | '1080x1920';
10
+ generate_audio?: boolean;
11
+ };
12
+ /**
13
+ * Veo 3.1 Fast - Google's fast cinematic video generation model
14
+ *
15
+ * AIR: google:3@3
16
+ *
17
+ * Features:
18
+ * - Text-to-video and image-to-video support
19
+ * - Native audio generation
20
+ * - Optimized for high-speed generation with cinematic quality
21
+ * - Ultra-low latency for rapid creative iteration
22
+ *
23
+ * Specifications:
24
+ * - Prompt: 2-3,000 characters
25
+ * - Resolutions: 1280x720, 720x1280, 1920x1080, 1080x1920
26
+ * - Frame rate: 24 FPS
27
+ * - Duration: 8 seconds (fixed)
28
+ */
29
+ export declare function Veo31FastText2Video(config: RunwareProviderConfiguration): (context: {
30
+ cesdk: CreativeEditorSDK;
31
+ }) => Promise<Provider<'video', Veo31FastText2VideoInput, VideoOutput>>;
32
+ export default Veo31FastText2Video;
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Runware HTTP REST API client for video generation
3
+ * Uses the REST API instead of the WebSocket SDK
4
+ * API documentation: https://runware.ai/docs/en/video-inference/api-reference
5
+ *
6
+ * Video generation uses async delivery with polling:
7
+ * 1. Submit task with deliveryMethod: "async"
8
+ * 2. Receive taskUUID in response
9
+ * 3. Poll with getResponse until status is "success" or "failed"
10
+ */
11
+ export interface FrameImage {
12
+ inputImage: string;
13
+ frame?: 'first' | 'last' | number;
14
+ }
15
+ export interface RunwareVideoInferenceParams {
16
+ model: string;
17
+ positivePrompt?: string;
18
+ width?: number;
19
+ height?: number;
20
+ negativePrompt?: string;
21
+ numberResults?: number;
22
+ outputType?: 'URL' | 'base64Data' | 'dataURI';
23
+ outputFormat?: 'MP4' | 'WEBM' | 'GIF';
24
+ duration?: number;
25
+ fps?: number;
26
+ seed?: number;
27
+ frameImages?: FrameImage[];
28
+ providerSettings?: Record<string, unknown>;
29
+ [key: string]: unknown;
30
+ }
31
+ /**
32
+ * Partial params that can be spread together to form complete params.
33
+ * Used when some params come from options and some from mapInput.
34
+ */
35
+ export type RunwareVideoInferenceInput = Partial<RunwareVideoInferenceParams> & {
36
+ [key: string]: unknown;
37
+ };
38
+ export interface RunwareVideoResult {
39
+ taskType: string;
40
+ taskUUID: string;
41
+ status?: 'processing' | 'success' | 'failed';
42
+ videoURL?: string;
43
+ videoUUID?: string;
44
+ seed?: number;
45
+ NSFWContent?: boolean;
46
+ cost?: number;
47
+ errorMessage?: string;
48
+ }
49
+ export interface RunwareErrorResponse {
50
+ errorId: number;
51
+ errorMessage: string;
52
+ taskUUID?: string;
53
+ }
54
+ export interface RunwareClient {
55
+ videoInference: (params: RunwareVideoInferenceInput, abortSignal?: AbortSignal) => Promise<RunwareVideoResult[]>;
56
+ }
57
+ export declare function createRunwareClient(proxyUrl: string, headers?: Record<string, string>): RunwareClient;
@@ -0,0 +1,109 @@
1
+ import { type OpenAPIV3 } from 'openapi-types';
2
+ import type CreativeEditorSDK from '@cesdk/cesdk-js';
3
+ import type { CreativeEngine } from '@cesdk/cesdk-js';
4
+ import { VideoOutput, RenderCustomProperty, GetBlockInput, Provider, Middleware } from '@imgly/plugin-ai-generation-web';
5
+ import { VideoQuickActionSupportMap } from '../types';
6
+ /**
7
+ * Configuration for Runware video providers.
8
+ */
9
+ type VideoProviderConfiguration = {
10
+ /**
11
+ * HTTP endpoint URL for the Runware proxy. The proxy handles API key injection.
12
+ */
13
+ proxyUrl: string;
14
+ /**
15
+ * Enable debug logging for provider creation and API calls.
16
+ */
17
+ debug?: boolean;
18
+ /**
19
+ * Middleware functions to process inputs/outputs.
20
+ */
21
+ middlewares?: Middleware<any, any>[];
22
+ /**
23
+ * @deprecated Use `middlewares` instead.
24
+ */
25
+ middleware?: Middleware<any, any>[];
26
+ /**
27
+ * Override provider's default history asset source.
28
+ */
29
+ history?: false | '@imgly/local' | '@imgly/indexedDB' | (string & {});
30
+ /**
31
+ * Configure supported quick actions.
32
+ */
33
+ supportedQuickActions?: {
34
+ [quickActionId: string]: Partial<VideoQuickActionSupportMap<any>[string]> | false | null;
35
+ };
36
+ };
37
+ /**
38
+ * Options for creating a Runware video provider.
39
+ */
40
+ interface CreateProviderOptions<I extends Record<string, any>> {
41
+ /**
42
+ * Runware model identifier (AIR format, e.g., 'openai:sora-2@1').
43
+ */
44
+ modelId: string;
45
+ /**
46
+ * Unique provider identifier for registration.
47
+ */
48
+ providerId: string;
49
+ /**
50
+ * Human-readable provider name displayed in the UI.
51
+ */
52
+ name: string;
53
+ /**
54
+ * OpenAPI schema document describing the input parameters.
55
+ */
56
+ schema: OpenAPIV3.Document;
57
+ /**
58
+ * JSON reference to the input schema (e.g., '#/components/schemas/Input').
59
+ */
60
+ inputReference: string;
61
+ /**
62
+ * User flow mode for the provider panel.
63
+ */
64
+ useFlow?: 'placeholder' | 'generation-only';
65
+ /**
66
+ * Initialization callback when the provider is registered.
67
+ */
68
+ initialize?: (context: {
69
+ cesdk?: CreativeEditorSDK;
70
+ engine: CreativeEngine;
71
+ }) => void;
72
+ /**
73
+ * Custom property renderers for the input panel.
74
+ */
75
+ renderCustomProperty?: RenderCustomProperty;
76
+ /**
77
+ * Quick actions this provider supports.
78
+ */
79
+ supportedQuickActions?: VideoQuickActionSupportMap<I>;
80
+ /**
81
+ * Get block dimensions from input parameters.
82
+ */
83
+ getBlockInput: GetBlockInput<'video', I>;
84
+ /**
85
+ * Transform input parameters to Runware API format.
86
+ */
87
+ mapInput: (input: I) => Record<string, any>;
88
+ /**
89
+ * Provider-specific middleware functions.
90
+ */
91
+ middleware?: Middleware<I, VideoOutput>[];
92
+ /**
93
+ * Custom headers to include in API requests.
94
+ */
95
+ headers?: Record<string, string>;
96
+ /**
97
+ * CE.SDK instance for image URL conversion.
98
+ */
99
+ cesdk?: CreativeEditorSDK;
100
+ }
101
+ /**
102
+ * Creates a Runware video provider from schema. This should work out of the box
103
+ * but may be rough around the edges and should/can be further customized.
104
+ */
105
+ declare function createVideoProvider<I extends Record<string, any> & {
106
+ image_url?: string;
107
+ }>(options: CreateProviderOptions<I>, config: VideoProviderConfiguration): Provider<'video', I, VideoOutput>;
108
+ export default createVideoProvider;
109
+ export type { VideoProviderConfiguration as RunwareProviderConfiguration };
@@ -0,0 +1,28 @@
1
+ import { Veo31Text2Video } from './Veo31.text2video';
2
+ import { Veo31Image2Video } from './Veo31.image2video';
3
+ import { Veo31FastText2Video } from './Veo31Fast.text2video';
4
+ import { Veo31FastImage2Video } from './Veo31Fast.image2video';
5
+ import { Sora2Text2Video } from './Sora2.text2video';
6
+ import { Sora2Image2Video } from './Sora2.image2video';
7
+ import { Sora2ProText2Video } from './Sora2Pro.text2video';
8
+ import { Sora2ProImage2Video } from './Sora2Pro.image2video';
9
+ declare const Runware: {
10
+ Veo31: {
11
+ Text2Video: typeof Veo31Text2Video;
12
+ Image2Video: typeof Veo31Image2Video;
13
+ };
14
+ Veo31Fast: {
15
+ Text2Video: typeof Veo31FastText2Video;
16
+ Image2Video: typeof Veo31FastImage2Video;
17
+ };
18
+ Sora2: {
19
+ Text2Video: typeof Sora2Text2Video;
20
+ Image2Video: typeof Sora2Image2Video;
21
+ };
22
+ Sora2Pro: {
23
+ Text2Video: typeof Sora2ProText2Video;
24
+ Image2Video: typeof Sora2ProImage2Video;
25
+ };
26
+ };
27
+ export default Runware;
28
+ export type { RunwareProviderConfiguration } from './types';