@genfeedai/workflow-ui 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/dist/canvas.d.mts +16 -2
- package/dist/canvas.mjs +10 -8
- package/dist/chunk-6PSJTBNV.mjs +638 -0
- package/dist/chunk-7H3WJJYS.mjs +52 -0
- package/dist/{chunk-HCXI63ME.mjs → chunk-AUQGOJOQ.mjs} +27 -4
- package/dist/{chunk-AOTUCJMA.mjs → chunk-GWBGK3KL.mjs} +2 -2
- package/dist/chunk-JTPADIUO.mjs +130 -0
- package/dist/{chunk-SQK4JDYY.mjs → chunk-LT3ZJJL6.mjs} +9 -2
- package/dist/{chunk-7P2JWDC7.mjs → chunk-O5II6BOJ.mjs} +1198 -254
- package/dist/{chunk-AUZR6REQ.mjs → chunk-OQREHJXK.mjs} +1 -1
- package/dist/chunk-OY7BRSGG.mjs +60 -0
- package/dist/{chunk-E3YBVMYZ.mjs → chunk-PANZDSP6.mjs} +274 -305
- package/dist/chunk-PCIWWD37.mjs +90 -0
- package/dist/{chunk-RIGVIEYB.mjs → chunk-R727OFBR.mjs} +11 -1
- package/dist/chunk-ZD2BADZO.mjs +1294 -0
- package/dist/contextMenuStore-DMg0hJQ1.d.mts +22 -0
- package/dist/hooks.d.mts +53 -244
- package/dist/hooks.mjs +6 -6
- package/dist/index.d.mts +11 -7
- package/dist/index.mjs +13 -11
- package/dist/lib.d.mts +250 -4
- package/dist/lib.mjs +562 -2
- package/dist/nodes.d.mts +3 -1
- package/dist/nodes.mjs +6 -6
- package/dist/panels.mjs +3 -4
- package/dist/{promptLibraryStore-zqb59nsu.d.mts → promptLibraryStore-Bgw5LzvD.d.mts} +33 -5
- package/dist/provider.d.mts +2 -2
- package/dist/provider.mjs +0 -1
- package/dist/stores.d.mts +4 -3
- package/dist/stores.mjs +3 -40
- package/dist/toolbar.d.mts +3 -1
- package/dist/toolbar.mjs +5 -4
- package/dist/{types-ipAnBzAJ.d.mts → types-CF6DPx0P.d.mts} +8 -3
- package/dist/ui.d.mts +1 -1
- package/dist/ui.mjs +0 -1
- package/dist/{hooks.d.ts → useCommentNavigation-NzJjkaj2.d.mts} +15 -2
- package/dist/workflowStore-UAAKOOIK.mjs +2 -0
- package/package.json +32 -26
- package/dist/canvas.d.ts +0 -27
- package/dist/canvas.js +0 -45
- package/dist/chunk-3SPPKCWR.js +0 -458
- package/dist/chunk-3TMV3K34.js +0 -534
- package/dist/chunk-3YFFDHC5.js +0 -300
- package/dist/chunk-4MZ62VMF.js +0 -37
- package/dist/chunk-5HJFQVUR.js +0 -61
- package/dist/chunk-5LQ4QBR5.js +0 -2
- package/dist/chunk-6DOEUDD5.js +0 -254
- package/dist/chunk-AXFOCPPP.js +0 -998
- package/dist/chunk-BMFRA6GK.js +0 -1546
- package/dist/chunk-E323WAZG.mjs +0 -272
- package/dist/chunk-ECD5J2BA.js +0 -6022
- package/dist/chunk-EMGXUNBL.js +0 -120
- package/dist/chunk-EMUMKW5C.js +0 -107
- package/dist/chunk-FOMOOERN.js +0 -2
- package/dist/chunk-IASLG6IA.mjs +0 -118
- package/dist/chunk-IHF35QZD.js +0 -1095
- package/dist/chunk-JLWKW3G5.js +0 -2
- package/dist/chunk-KDIWRSYV.js +0 -375
- package/dist/chunk-L5TF4EHW.mjs +0 -1
- package/dist/chunk-RJ262NXS.js +0 -24
- package/dist/chunk-RXNEDWK2.js +0 -141
- package/dist/chunk-SEV2DWKF.js +0 -744
- package/dist/chunk-ZJWP5KGZ.mjs +0 -33
- package/dist/hooks.js +0 -56
- package/dist/index.d.ts +0 -29
- package/dist/index.js +0 -180
- package/dist/lib.d.ts +0 -164
- package/dist/lib.js +0 -144
- package/dist/nodes.d.ts +0 -128
- package/dist/nodes.js +0 -151
- package/dist/panels.d.ts +0 -22
- package/dist/panels.js +0 -21
- package/dist/promptLibraryStore-BZnfmEkc.d.ts +0 -464
- package/dist/provider.d.ts +0 -29
- package/dist/provider.js +0 -17
- package/dist/stores.d.ts +0 -96
- package/dist/stores.js +0 -113
- package/dist/toolbar.d.ts +0 -73
- package/dist/toolbar.js +0 -34
- package/dist/types-ipAnBzAJ.d.ts +0 -46
- package/dist/ui.d.ts +0 -67
- package/dist/ui.js +0 -84
- package/dist/workflowStore-7SDJC4UR.mjs +0 -3
- package/dist/workflowStore-LNJQ5RZG.js +0 -12
package/dist/lib.d.mts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { HandleDefinition, NodeType, WorkflowNodeData, EasingPreset, CubicBezier, ImageModel, VideoModel, LipSyncModel, TextModel } from '@genfeedai/types';
|
|
1
|
+
import { HandleDefinition, NodeType, WorkflowNodeData, EasingPreset, CubicBezier, WorkflowNode, ImageModel, VideoModel, LipSyncModel, TextModel } from '@genfeedai/types';
|
|
2
|
+
import * as react from 'react';
|
|
3
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
4
|
|
|
3
5
|
/**
|
|
4
6
|
* Generates dynamic input handles from a model's input schema.
|
|
@@ -70,7 +72,7 @@ declare function getMediaFromNode(nodeType: NodeType, data: WorkflowNodeData): M
|
|
|
70
72
|
/**
|
|
71
73
|
* Get the dimensions of an image from its source URL or data URL.
|
|
72
74
|
*/
|
|
73
|
-
declare function getImageDimensions(src: string): Promise<{
|
|
75
|
+
declare function getImageDimensions$1(src: string): Promise<{
|
|
74
76
|
width: number;
|
|
75
77
|
height: number;
|
|
76
78
|
}>;
|
|
@@ -85,11 +87,68 @@ declare function getVideoMetadata(src: string): Promise<{
|
|
|
85
87
|
};
|
|
86
88
|
}>;
|
|
87
89
|
|
|
90
|
+
type EasingFunction = (t: number) => number;
|
|
88
91
|
/**
|
|
89
92
|
* Easing presets based on easy-peasy-ease patterns
|
|
90
93
|
* Each preset is a cubic bezier curve: [x1, y1, x2, y2]
|
|
91
94
|
*/
|
|
92
95
|
declare const EASING_PRESETS: Record<EasingPreset, CubicBezier>;
|
|
96
|
+
declare const DEFAULT_CUSTOM_BEZIER: CubicBezier;
|
|
97
|
+
/** Named presets for the CubicBezierEditor */
|
|
98
|
+
declare const PRESET_BEZIERS: {
|
|
99
|
+
readonly easeInExpoOutCubic: [0.85, 0, 0.15, 1];
|
|
100
|
+
readonly easeInOutExpo: [0.87, 0, 0.13, 1];
|
|
101
|
+
readonly easeInQuartOutQuad: [0.8, 0, 0.2, 1];
|
|
102
|
+
readonly easeInOutCubic: [0.65, 0, 0.35, 1];
|
|
103
|
+
readonly easeInOutSine: [0.37, 0, 0.63, 1];
|
|
104
|
+
};
|
|
105
|
+
type EasingPresetName = keyof typeof PRESET_BEZIERS;
|
|
106
|
+
/**
|
|
107
|
+
* Full bezier map covering all standard easings from easings.net.
|
|
108
|
+
* Hybrid easings (easeInExpoOutCubic, easeInQuartOutQuad) are approximations
|
|
109
|
+
* since asymmetric compositions can't be exactly represented by a single cubic bezier.
|
|
110
|
+
*/
|
|
111
|
+
declare const EASING_BEZIER_MAP: Record<string, CubicBezier>;
|
|
112
|
+
/** Look up a preset bezier from PRESET_BEZIERS by name */
|
|
113
|
+
declare function getPresetBezier(preset?: string | null): CubicBezier;
|
|
114
|
+
/** Look up any easing bezier from the full EASING_BEZIER_MAP */
|
|
115
|
+
declare function getEasingBezier(name?: string | null): CubicBezier;
|
|
116
|
+
declare function createAsymmetricEase(easeIn: EasingFunction, easeOut: EasingFunction): EasingFunction;
|
|
117
|
+
/** All parametric easing functions (22 base + 2 hybrids) */
|
|
118
|
+
declare const easing: {
|
|
119
|
+
readonly easeInExpoOutCubic: EasingFunction;
|
|
120
|
+
readonly easeInQuartOutQuad: EasingFunction;
|
|
121
|
+
readonly linear: (t: number) => number;
|
|
122
|
+
readonly easeInQuad: (t: number) => number;
|
|
123
|
+
readonly easeOutQuad: (t: number) => number;
|
|
124
|
+
readonly easeInOutQuad: (t: number) => number;
|
|
125
|
+
readonly easeInCubic: (t: number) => number;
|
|
126
|
+
readonly easeOutCubic: (t: number) => number;
|
|
127
|
+
readonly easeInOutCubic: (t: number) => number;
|
|
128
|
+
readonly easeInQuart: (t: number) => number;
|
|
129
|
+
readonly easeOutQuart: (t: number) => number;
|
|
130
|
+
readonly easeInOutQuart: (t: number) => number;
|
|
131
|
+
readonly easeInQuint: (t: number) => number;
|
|
132
|
+
readonly easeOutQuint: (t: number) => number;
|
|
133
|
+
readonly easeInOutQuint: (t: number) => number;
|
|
134
|
+
readonly easeInSine: (t: number) => number;
|
|
135
|
+
readonly easeOutSine: (t: number) => number;
|
|
136
|
+
readonly easeInOutSine: (t: number) => number;
|
|
137
|
+
readonly easeInExpo: (t: number) => number;
|
|
138
|
+
readonly easeOutExpo: (t: number) => number;
|
|
139
|
+
readonly easeInOutExpo: (t: number) => number;
|
|
140
|
+
readonly easeInCirc: (t: number) => number;
|
|
141
|
+
readonly easeOutCirc: (t: number) => number;
|
|
142
|
+
readonly easeInOutCirc: (t: number) => number;
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* Create an easing function from cubic bezier control points
|
|
146
|
+
*/
|
|
147
|
+
declare function createBezierEasing(p1x: number, p1y: number, p2x: number, p2y: number): EasingFunction;
|
|
148
|
+
/** Resolve easing function by name */
|
|
149
|
+
declare function getEasingFunction(name: string): EasingFunction;
|
|
150
|
+
/** List all available easing function names */
|
|
151
|
+
declare function getAllEasingNames(): string[];
|
|
93
152
|
/**
|
|
94
153
|
* Evaluate a cubic bezier curve at parameter t
|
|
95
154
|
*/
|
|
@@ -102,7 +161,194 @@ declare function applySpeedCurve(duration: number, curve: CubicBezier, sampleRat
|
|
|
102
161
|
/**
|
|
103
162
|
* Get display name for easing preset
|
|
104
163
|
*/
|
|
105
|
-
declare function getEasingDisplayName(preset: EasingPreset): string;
|
|
164
|
+
declare function getEasingDisplayName(preset: EasingPreset | string): string;
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Speed Curve Utility
|
|
168
|
+
*
|
|
169
|
+
* Advanced time-warping for video speed ramps using easing functions.
|
|
170
|
+
* Maps original video timestamps to warped timestamps through easing curves.
|
|
171
|
+
*/
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Maps original video timestamps to warped timestamps using any easing function.
|
|
175
|
+
*
|
|
176
|
+
* @param originalTime - Original timestamp in seconds (0 to inputDuration)
|
|
177
|
+
* @param inputDuration - Input video duration in seconds (default: 5)
|
|
178
|
+
* @param outputDuration - Output video duration in seconds (default: 1.5)
|
|
179
|
+
* @param easingFunction - Easing function or function name string (default: easeInOutCubic)
|
|
180
|
+
* @returns Warped timestamp for the output video
|
|
181
|
+
*/
|
|
182
|
+
declare function warpTime(originalTime: number, inputDuration?: number, outputDuration?: number, easingFunction?: EasingFunction | string): number;
|
|
183
|
+
/**
|
|
184
|
+
* Calculate the duration of a frame after warping.
|
|
185
|
+
*/
|
|
186
|
+
declare function calculateWarpedDuration(originalStart: number, originalDuration: number, inputDuration?: number, outputDuration?: number, easingFunction?: EasingFunction | string): number;
|
|
187
|
+
/**
|
|
188
|
+
* Validate that a warp time function produces valid output.
|
|
189
|
+
*/
|
|
190
|
+
declare function validateWarpFunction(easingFunction?: EasingFunction | string, inputDuration?: number, outputDuration?: number, tolerance?: number): {
|
|
191
|
+
valid: boolean;
|
|
192
|
+
errors: string[];
|
|
193
|
+
};
|
|
194
|
+
/**
|
|
195
|
+
* Generate statistics about the warp curve.
|
|
196
|
+
*/
|
|
197
|
+
declare function analyzeWarpCurve(easingFunction?: EasingFunction | string, inputDuration?: number, outputDuration?: number, samples?: number): {
|
|
198
|
+
speedMultipliers: number[];
|
|
199
|
+
minSpeed: number;
|
|
200
|
+
maxSpeed: number;
|
|
201
|
+
avgSpeed: number;
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Grid Splitter Utility
|
|
206
|
+
*
|
|
207
|
+
* Detects and splits contact sheet grids into component images.
|
|
208
|
+
* Uses a regularity-first approach that assumes grids are uniform,
|
|
209
|
+
* scoring candidates based on how well the image dimensions divide
|
|
210
|
+
* into cells with common photo aspect ratios.
|
|
211
|
+
*/
|
|
212
|
+
interface GridCell {
|
|
213
|
+
x: number;
|
|
214
|
+
y: number;
|
|
215
|
+
width: number;
|
|
216
|
+
height: number;
|
|
217
|
+
}
|
|
218
|
+
interface GridDetectionResult {
|
|
219
|
+
rows: number;
|
|
220
|
+
cols: number;
|
|
221
|
+
cells: GridCell[];
|
|
222
|
+
confidence: number;
|
|
223
|
+
}
|
|
224
|
+
interface GridCandidate {
|
|
225
|
+
rows: number;
|
|
226
|
+
cols: number;
|
|
227
|
+
cellWidth: number;
|
|
228
|
+
cellHeight: number;
|
|
229
|
+
cellAspectRatio: number;
|
|
230
|
+
score: number;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Analyzes an image and detects grid boundaries.
|
|
234
|
+
*/
|
|
235
|
+
declare function detectGrid(imageDataUrl: string): Promise<GridDetectionResult>;
|
|
236
|
+
/**
|
|
237
|
+
* Creates a grid result for a specific rows x cols configuration.
|
|
238
|
+
*/
|
|
239
|
+
declare function createGridForDimensions(width: number, height: number, rows: number, cols: number): GridDetectionResult;
|
|
240
|
+
/**
|
|
241
|
+
* Detects grid with user-specified dimensions (most reliable).
|
|
242
|
+
*/
|
|
243
|
+
declare function detectGridWithDimensions(imageDataUrl: string, rows: number, cols: number): Promise<GridDetectionResult>;
|
|
244
|
+
/**
|
|
245
|
+
* Gets ranked grid candidates based on geometric analysis.
|
|
246
|
+
*/
|
|
247
|
+
declare function getGridCandidates(width: number, height: number): GridCandidate[];
|
|
248
|
+
/**
|
|
249
|
+
* Splits an image into grid cells and returns them as separate data URLs.
|
|
250
|
+
*/
|
|
251
|
+
declare function splitImage(imageDataUrl: string, grid: GridDetectionResult): Promise<string[]>;
|
|
252
|
+
/**
|
|
253
|
+
* Convenience function that detects and splits in one call.
|
|
254
|
+
*/
|
|
255
|
+
declare function detectAndSplitGrid(imageDataUrl: string): Promise<{
|
|
256
|
+
grid: GridDetectionResult;
|
|
257
|
+
images: string[];
|
|
258
|
+
}>;
|
|
259
|
+
/**
|
|
260
|
+
* Split with user-specified dimensions (most reliable method).
|
|
261
|
+
*/
|
|
262
|
+
declare function splitWithDimensions(imageDataUrl: string, rows: number, cols: number): Promise<{
|
|
263
|
+
grid: GridDetectionResult;
|
|
264
|
+
images: string[];
|
|
265
|
+
}>;
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Node Dimensions Utility
|
|
269
|
+
*
|
|
270
|
+
* Calculate node dimensions based on output aspect ratio,
|
|
271
|
+
* respecting min/max constraints.
|
|
272
|
+
*/
|
|
273
|
+
/**
|
|
274
|
+
* Extract dimensions from a base64 data URL image.
|
|
275
|
+
*/
|
|
276
|
+
declare function getImageDimensions(base64DataUrl: string): Promise<{
|
|
277
|
+
width: number;
|
|
278
|
+
height: number;
|
|
279
|
+
} | null>;
|
|
280
|
+
/**
|
|
281
|
+
* Extract dimensions from a video data URL or blob URL.
|
|
282
|
+
*/
|
|
283
|
+
declare function getVideoDimensions(videoUrl: string): Promise<{
|
|
284
|
+
width: number;
|
|
285
|
+
height: number;
|
|
286
|
+
} | null>;
|
|
287
|
+
/**
|
|
288
|
+
* Calculate node dimensions that maintain aspect ratio within constraints.
|
|
289
|
+
*
|
|
290
|
+
* @param aspectRatio - Width divided by height (e.g., 16/9 for landscape)
|
|
291
|
+
* @param baseWidth - Starting width to calculate from (default 300px)
|
|
292
|
+
*/
|
|
293
|
+
declare function calculateNodeSize(aspectRatio: number, baseWidth?: number): {
|
|
294
|
+
width: number;
|
|
295
|
+
height: number;
|
|
296
|
+
};
|
|
297
|
+
/**
|
|
298
|
+
* Calculate node dimensions preserving current height if provided.
|
|
299
|
+
*
|
|
300
|
+
* @param aspectRatio - Width divided by height
|
|
301
|
+
* @param currentHeight - Optional current height to preserve (if within constraints)
|
|
302
|
+
*/
|
|
303
|
+
declare function calculateNodeSizePreservingHeight(aspectRatio: number, currentHeight?: number): {
|
|
304
|
+
width: number;
|
|
305
|
+
height: number;
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* Deduplicated Fetch Utility
|
|
310
|
+
*
|
|
311
|
+
* When multiple callers request the same URL concurrently, only one
|
|
312
|
+
* actual network request is made. All callers receive the same response
|
|
313
|
+
* data once the request completes. Responses are cached for 5 seconds.
|
|
314
|
+
*/
|
|
315
|
+
/**
|
|
316
|
+
* Fetch with request deduplication.
|
|
317
|
+
*
|
|
318
|
+
* Multiple concurrent calls to the same URL (with same headers) will
|
|
319
|
+
* share a single network request. The response is cloned for each caller.
|
|
320
|
+
*/
|
|
321
|
+
declare function deduplicatedFetch(url: string, options?: RequestInit): Promise<Response>;
|
|
322
|
+
/**
|
|
323
|
+
* Clear all cached responses.
|
|
324
|
+
*/
|
|
325
|
+
declare function clearFetchCache(): void;
|
|
326
|
+
|
|
327
|
+
interface NodeCostEstimate {
|
|
328
|
+
nodeId: string;
|
|
329
|
+
nodeLabel: string;
|
|
330
|
+
nodeType: string;
|
|
331
|
+
model: string;
|
|
332
|
+
unit: string;
|
|
333
|
+
cost: number;
|
|
334
|
+
}
|
|
335
|
+
interface CostBreakdown {
|
|
336
|
+
total: number;
|
|
337
|
+
nodes: NodeCostEstimate[];
|
|
338
|
+
}
|
|
339
|
+
declare function calculateWorkflowCost(nodes: WorkflowNode[]): CostBreakdown;
|
|
340
|
+
declare function formatCost(amount: number): string;
|
|
341
|
+
|
|
342
|
+
interface CubicBezierEditorProps {
|
|
343
|
+
value: CubicBezier;
|
|
344
|
+
onChange: (value: CubicBezier) => void;
|
|
345
|
+
onCommit?: (value: CubicBezier) => void;
|
|
346
|
+
disabled?: boolean;
|
|
347
|
+
width?: number;
|
|
348
|
+
height?: number;
|
|
349
|
+
}
|
|
350
|
+
declare function CubicBezierEditorComponent({ value, onChange, onCommit, disabled, width, height, }: CubicBezierEditorProps): react_jsx_runtime.JSX.Element;
|
|
351
|
+
declare const CubicBezierEditor: react.MemoExoticComponent<typeof CubicBezierEditorComponent>;
|
|
106
352
|
|
|
107
353
|
interface ImageModelConfig {
|
|
108
354
|
value: ImageModel;
|
|
@@ -161,4 +407,4 @@ declare function getLipSyncModelLabel(model: LipSyncModel): string;
|
|
|
161
407
|
declare function getLLMModelLabel(model: TextModel): string;
|
|
162
408
|
declare function lipSyncModelSupportsImage(model: LipSyncModel): boolean;
|
|
163
409
|
|
|
164
|
-
export { CONNECTION_FIELDS, DEFAULT_IMAGE_MODEL, DEFAULT_LIPSYNC_MODEL, DEFAULT_LLM_MODEL, DEFAULT_VIDEO_MODEL, EASING_PRESETS, IMAGE_MODELS, IMAGE_MODEL_ID_MAP, IMAGE_MODEL_MAP, type ImageModelConfig, LIPSYNC_MODELS, LIPSYNC_SYNC_MODES, LLM_MODELS, LLM_MODEL_ID_MAP, LLM_MODEL_MAP, type LipSyncModelConfig, type MediaInfo, type TextModelConfig, VIDEO_MODELS, VIDEO_MODEL_ID_MAP, VIDEO_MODEL_MAP, type VideoModelConfig, applySpeedCurve, evaluateBezier, extractEnumValues, generateHandlesFromSchema, getEasingDisplayName, getImageDimensions, getImageModelLabel, getLLMModelLabel, getLipSyncModelLabel, getMediaFromNode, getSchemaDefaults, getVideoMetadata, getVideoModelLabel, isSchemaHandle, lipSyncModelSupportsImage, supportsImageInput, validateRequiredSchemaFields };
|
|
410
|
+
export { CONNECTION_FIELDS, type CostBreakdown, CubicBezierEditor, DEFAULT_CUSTOM_BEZIER, DEFAULT_IMAGE_MODEL, DEFAULT_LIPSYNC_MODEL, DEFAULT_LLM_MODEL, DEFAULT_VIDEO_MODEL, EASING_BEZIER_MAP, EASING_PRESETS, type EasingFunction, type EasingPresetName, type GridCandidate, type GridCell, type GridDetectionResult, IMAGE_MODELS, IMAGE_MODEL_ID_MAP, IMAGE_MODEL_MAP, type ImageModelConfig, LIPSYNC_MODELS, LIPSYNC_SYNC_MODES, LLM_MODELS, LLM_MODEL_ID_MAP, LLM_MODEL_MAP, type LipSyncModelConfig, type MediaInfo, type NodeCostEstimate, PRESET_BEZIERS, type TextModelConfig, VIDEO_MODELS, VIDEO_MODEL_ID_MAP, VIDEO_MODEL_MAP, type VideoModelConfig, analyzeWarpCurve, applySpeedCurve, calculateNodeSize, calculateNodeSizePreservingHeight, calculateWarpedDuration, calculateWorkflowCost, clearFetchCache, createAsymmetricEase, createBezierEasing, createGridForDimensions, deduplicatedFetch, detectAndSplitGrid, detectGrid, detectGridWithDimensions, easing, evaluateBezier, extractEnumValues, formatCost, generateHandlesFromSchema, getAllEasingNames, getEasingBezier, getEasingDisplayName, getEasingFunction, getGridCandidates, getImageDimensions$1 as getImageDimensions, getImageDimensions as getImageDimensionsFromDataUrl, getImageModelLabel, getLLMModelLabel, getLipSyncModelLabel, getMediaFromNode, getPresetBezier, getSchemaDefaults, getVideoDimensions as getVideoDimensionsFromUrl, getVideoMetadata, getVideoModelLabel, isSchemaHandle, lipSyncModelSupportsImage, splitImage, splitWithDimensions, supportsImageInput, validateRequiredSchemaFields, validateWarpFunction, warpTime };
|