ugcinc 2.99.5 → 2.99.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.
@@ -167,6 +167,22 @@ function getAllNodes() {
167
167
  },
168
168
  ],
169
169
  },
170
+ {
171
+ type: "video-import",
172
+ label: "Import Video",
173
+ description: "Import videos from YouTube, TikTok, Instagram & more",
174
+ category: "Sources",
175
+ nodeCategory: "source",
176
+ inputs: [],
177
+ outputs: [
178
+ {
179
+ id: "video",
180
+ title: "video",
181
+ type: "video",
182
+ required: true,
183
+ },
184
+ ],
185
+ },
170
186
  // Hidden legacy source nodes (replaced by media node)
171
187
  {
172
188
  type: "image",
@@ -315,6 +331,17 @@ function getAllNodes() {
315
331
  },
316
332
  ],
317
333
  },
334
+ {
335
+ type: "custom-model",
336
+ label: "Custom Model",
337
+ description: "Call any fal.ai model",
338
+ category: "AI Generation",
339
+ nodeCategory: "generator",
340
+ // Dynamic inputs based on selected model's schema
341
+ inputs: [],
342
+ // Dynamic output based on model's output type
343
+ outputs: [],
344
+ },
318
345
  {
319
346
  type: "llm",
320
347
  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' | 'video-generation' | 'llm' | 'output' | 'manual-trigger' | 'recurrence' | 'workflow' | 'account' | 'post-video' | 'post-slideshow' | 'save-to-media' | 'deduplicate';
828
+ export type NodeTypeEnum = 'image' | 'video' | 'audio' | 'social-audio' | 'text' | 'media' | 'video-import' | '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';
@@ -927,7 +927,9 @@ export interface WorkflowNodeDefinition {
927
927
  postSlideshowConfig?: PostSlideshowNodeConfig;
928
928
  saveToMediaConfig?: SaveToMediaNodeConfig;
929
929
  deduplicateConfig?: DeduplicateNodeConfig;
930
+ videoImportConfig?: VideoImportNodeConfig;
930
931
  videoGeneration?: VideoGenerationNodeConfig;
932
+ customModelConfig?: CustomModelNodeConfig;
931
933
  };
932
934
  }
933
935
  export interface OutputInput {
@@ -1092,6 +1094,29 @@ export interface DeduplicateNodeConfig {
1092
1094
  /** Deduplication settings - preset level or custom config */
1093
1095
  deduplication: DeduplicationInput;
1094
1096
  }
1097
+ /**
1098
+ * Supported platforms for video import
1099
+ */
1100
+ export type VideoImportPlatform = 'youtube' | 'tiktok' | 'instagram' | 'twitter' | 'reddit';
1101
+ /**
1102
+ * Video quality options for video import
1103
+ */
1104
+ export type VideoImportQuality = '360' | '480' | '720' | '1080' | '1440' | '2160';
1105
+ /**
1106
+ * Video Import node configuration - imports videos from social media platforms
1107
+ */
1108
+ export interface VideoImportNodeConfig {
1109
+ /** Platform to import from */
1110
+ platform: VideoImportPlatform;
1111
+ /** URL options (like textOptions in text node) */
1112
+ urlOptions: string[];
1113
+ /** Video quality preference */
1114
+ videoQuality?: VideoImportQuality;
1115
+ /** Selection mode for multiple URLs */
1116
+ selectionConfig?: {
1117
+ mode: 'random' | 'sequential';
1118
+ };
1119
+ }
1095
1120
  /**
1096
1121
  * Video Generation Model IDs
1097
1122
  * Text-to-video models take just a prompt, image-to-video models require an image input
@@ -1112,6 +1137,40 @@ export interface VideoGenerationNodeConfig {
1112
1137
  /** Video duration in seconds (model-dependent) */
1113
1138
  duration?: number;
1114
1139
  }
1140
+ /**
1141
+ * Custom Model input parameter type
1142
+ */
1143
+ export type CustomModelParamType = 'string' | 'number' | 'boolean' | 'image' | 'video' | 'audio';
1144
+ /**
1145
+ * Custom Model input parameter definition
1146
+ */
1147
+ export interface CustomModelInputParam {
1148
+ /** Parameter name (used as port ID) */
1149
+ name: string;
1150
+ /** Parameter type */
1151
+ type: CustomModelParamType;
1152
+ /** Whether this parameter is required */
1153
+ required: boolean;
1154
+ /** Description from OpenAPI schema */
1155
+ description?: string;
1156
+ /** Default value */
1157
+ default?: unknown;
1158
+ }
1159
+ /**
1160
+ * Custom Model node configuration - call any fal.ai model
1161
+ */
1162
+ export interface CustomModelNodeConfig {
1163
+ /** fal.ai model ID (e.g., "fal-ai/flux/dev") */
1164
+ modelId: string;
1165
+ /** Display name for the model */
1166
+ modelName: string;
1167
+ /** Expected output type (determines how to extract result) */
1168
+ outputType: 'image' | 'video' | 'audio';
1169
+ /** Dynamic input parameters parsed from OpenAPI schema */
1170
+ inputParams: CustomModelInputParam[];
1171
+ /** Custom fal.ai API key (optional - uses platform key if not provided) */
1172
+ apiKey?: string;
1173
+ }
1115
1174
  export interface CanvasState {
1116
1175
  zoom: number;
1117
1176
  panX: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugcinc",
3
- "version": "2.99.5",
3
+ "version": "2.99.7",
4
4
  "description": "TypeScript/JavaScript client for the UGC Inc API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",