ugcinc 2.99.4 → 2.99.6

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.
@@ -315,6 +315,17 @@ function getAllNodes() {
315
315
  },
316
316
  ],
317
317
  },
318
+ {
319
+ type: "custom-model",
320
+ label: "Custom Model",
321
+ description: "Call any fal.ai model",
322
+ category: "AI Generation",
323
+ nodeCategory: "generator",
324
+ // Dynamic inputs based on selected model's schema
325
+ inputs: [],
326
+ // Dynamic output based on model's output type
327
+ outputs: [],
328
+ },
318
329
  {
319
330
  type: "llm",
320
331
  label: "Text Generation",
package/dist/types.d.ts CHANGED
@@ -825,7 +825,7 @@ export interface NodeControlConfig {
825
825
  */
826
826
  isInitializer?: boolean;
827
827
  }
828
- export type NodeTypeEnum = 'image' | 'video' | 'audio' | 'social-audio' | 'text' | 'media' | 'image-editor' | 'video-editor' | 'image-generation' | 'llm' | 'output' | 'manual-trigger' | 'recurrence' | 'workflow' | 'account' | 'post-video' | 'post-slideshow' | 'save-to-media';
828
+ export type NodeTypeEnum = 'image' | 'video' | 'audio' | 'social-audio' | 'text' | 'media' | 'image-editor' | 'video-editor' | 'image-generation' | 'video-generation' | 'custom-model' | 'llm' | 'output' | 'manual-trigger' | 'recurrence' | 'workflow' | 'account' | 'post-video' | 'post-slideshow' | 'save-to-media' | 'deduplicate';
829
829
  export interface OutputSchemaProperty {
830
830
  type: 'string' | 'number' | 'boolean' | 'array' | 'object';
831
831
  items?: 'string' | 'number' | 'boolean';
@@ -928,6 +928,7 @@ export interface WorkflowNodeDefinition {
928
928
  saveToMediaConfig?: SaveToMediaNodeConfig;
929
929
  deduplicateConfig?: DeduplicateNodeConfig;
930
930
  videoGeneration?: VideoGenerationNodeConfig;
931
+ customModelConfig?: CustomModelNodeConfig;
931
932
  };
932
933
  }
933
934
  export interface OutputInput {
@@ -1092,20 +1093,59 @@ export interface DeduplicateNodeConfig {
1092
1093
  /** Deduplication settings - preset level or custom config */
1093
1094
  deduplication: DeduplicationInput;
1094
1095
  }
1096
+ /**
1097
+ * Video Generation Model IDs
1098
+ * Text-to-video models take just a prompt, image-to-video models require an image input
1099
+ */
1100
+ export type VideoGenerationTextToVideoModel = 'fal-ai/veo3.1' | 'fal-ai/veo3' | 'fal-ai/veo3/fast' | 'fal-ai/kling-video/v2.6/pro/text-to-video' | 'fal-ai/kling-video/v2.5/pro/text-to-video' | 'fal-ai/luma-dream-machine/ray-2' | 'fal-ai/luma-dream-machine/ray-2-flash' | 'fal-ai/minimax/hailuo-2.3/pro/text-to-video' | 'wan/v2.6/text-to-video' | 'fal-ai/sora-2/text-to-video';
1101
+ export type VideoGenerationImageToVideoModel = 'fal-ai/veo3.1/image-to-video' | 'fal-ai/veo3/image-to-video' | 'fal-ai/kling-video/v2.6/pro/image-to-video' | 'fal-ai/kling-video/v2.5/pro/image-to-video' | 'fal-ai/luma-dream-machine/ray-2/image-to-video' | 'fal-ai/luma-dream-machine/ray-2-flash/image-to-video' | 'fal-ai/minimax/hailuo-2.3/pro/image-to-video' | 'wan/v2.6/image-to-video' | 'fal-ai/sora-2/image-to-video/pro';
1102
+ export type VideoGenerationModel = VideoGenerationTextToVideoModel | VideoGenerationImageToVideoModel;
1095
1103
  /**
1096
1104
  * Video Generation node configuration - AI video generation
1097
1105
  */
1098
1106
  export interface VideoGenerationNodeConfig {
1099
- /** AI model provider */
1100
- provider: 'fal';
1101
- /** Model to use (e.g., 'kling', 'runway') */
1102
- model: string;
1103
- /** Generation mode: text-to-video or image-to-video */
1104
- mode: 'text' | 'image';
1105
- /** Video duration in seconds */
1106
- duration?: number;
1107
- /** Aspect ratio (e.g., '16:9', '9:16') */
1107
+ /** Selected model ID */
1108
+ model: VideoGenerationModel;
1109
+ /** Custom fal.ai API key (optional - uses platform key if not provided) */
1110
+ apiKey?: string;
1111
+ /** Video aspect ratio (e.g., "16:9", "9:16", "1:1") */
1108
1112
  aspectRatio?: string;
1113
+ /** Video duration in seconds (model-dependent) */
1114
+ duration?: number;
1115
+ }
1116
+ /**
1117
+ * Custom Model input parameter type
1118
+ */
1119
+ export type CustomModelParamType = 'string' | 'number' | 'boolean' | 'image' | 'video' | 'audio';
1120
+ /**
1121
+ * Custom Model input parameter definition
1122
+ */
1123
+ export interface CustomModelInputParam {
1124
+ /** Parameter name (used as port ID) */
1125
+ name: string;
1126
+ /** Parameter type */
1127
+ type: CustomModelParamType;
1128
+ /** Whether this parameter is required */
1129
+ required: boolean;
1130
+ /** Description from OpenAPI schema */
1131
+ description?: string;
1132
+ /** Default value */
1133
+ default?: unknown;
1134
+ }
1135
+ /**
1136
+ * Custom Model node configuration - call any fal.ai model
1137
+ */
1138
+ export interface CustomModelNodeConfig {
1139
+ /** fal.ai model ID (e.g., "fal-ai/flux/dev") */
1140
+ modelId: string;
1141
+ /** Display name for the model */
1142
+ modelName: string;
1143
+ /** Expected output type (determines how to extract result) */
1144
+ outputType: 'image' | 'video' | 'audio';
1145
+ /** Dynamic input parameters parsed from OpenAPI schema */
1146
+ inputParams: CustomModelInputParam[];
1147
+ /** Custom fal.ai API key (optional - uses platform key if not provided) */
1148
+ apiKey?: string;
1109
1149
  }
1110
1150
  export interface CanvasState {
1111
1151
  zoom: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugcinc",
3
- "version": "2.99.4",
3
+ "version": "2.99.6",
4
4
  "description": "TypeScript/JavaScript client for the UGC Inc API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",