@genfeedai/types 0.2.2 → 0.3.0

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 (48) hide show
  1. package/dist/{chunk-KXAKQO3U.js → chunk-74STGUJY.js} +2 -0
  2. package/dist/chunk-74STGUJY.js.map +1 -0
  3. package/dist/{chunk-WT2F5CAF.mjs → chunk-CVFAILC4.mjs} +2 -0
  4. package/dist/chunk-CVFAILC4.mjs.map +1 -0
  5. package/dist/chunk-DVR3GE4F.js +4 -0
  6. package/dist/chunk-DVR3GE4F.js.map +1 -0
  7. package/dist/chunk-G2BD5ZTF.mjs +3 -0
  8. package/dist/chunk-G2BD5ZTF.mjs.map +1 -0
  9. package/dist/{chunk-P4XY3T5T.js → chunk-MRTGK3CK.js} +601 -578
  10. package/dist/chunk-MRTGK3CK.js.map +1 -0
  11. package/dist/{chunk-QNWQE2LJ.mjs → chunk-ZMENGANG.mjs} +601 -578
  12. package/dist/chunk-ZMENGANG.mjs.map +1 -0
  13. package/dist/comfyui.d.mts +44 -44
  14. package/dist/comfyui.d.ts +44 -44
  15. package/dist/comfyui.js +3 -1
  16. package/dist/comfyui.js.map +1 -0
  17. package/dist/comfyui.mjs +3 -1
  18. package/dist/comfyui.mjs.map +1 -0
  19. package/dist/index.d.mts +341 -3
  20. package/dist/index.d.ts +341 -3
  21. package/dist/index.js +28 -26
  22. package/dist/index.js.map +1 -0
  23. package/dist/index.mjs +11 -9
  24. package/dist/index.mjs.map +1 -0
  25. package/dist/nodes.d.mts +2 -2
  26. package/dist/nodes.d.ts +2 -2
  27. package/dist/nodes.js +15 -13
  28. package/dist/nodes.js.map +1 -0
  29. package/dist/nodes.mjs +3 -1
  30. package/dist/nodes.mjs.map +1 -0
  31. package/dist/replicate.js +2 -0
  32. package/dist/replicate.js.map +1 -0
  33. package/dist/replicate.mjs +2 -0
  34. package/dist/replicate.mjs.map +1 -0
  35. package/dist/{union-BVaWc1Cx.d.mts → union-D5EesBEB.d.mts} +142 -142
  36. package/dist/{union-BVaWc1Cx.d.ts → union-D5EesBEB.d.ts} +142 -142
  37. package/dist/{workflow-B_Q38s-U.d.ts → workflow-Cd_F9hZk.d.ts} +1 -1
  38. package/dist/{workflow-BbAp7VSK.d.mts → workflow-D9M1Yoiy.d.mts} +1 -1
  39. package/dist/workflow.d.mts +2 -2
  40. package/dist/workflow.d.ts +2 -2
  41. package/dist/workflow.js +4 -2
  42. package/dist/workflow.js.map +1 -0
  43. package/dist/workflow.mjs +3 -1
  44. package/dist/workflow.mjs.map +1 -0
  45. package/package.json +37 -37
  46. package/src/replicate/schemas.json +319 -319
  47. package/dist/chunk-7NJUD2WZ.mjs +0 -1
  48. package/dist/chunk-RNGYPX4W.js +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/enums.ts","../src/nodes/base.ts","../src/nodes/handles.ts","../src/nodes/providers.ts","../src/nodes/registry.ts"],"names":["WorkflowTemplateCategory","ReframeNodeType","UpscaleNodeType","KlingQuality","ProcessingNodeType","NodeTypeEnum","NodeCategoryEnum","NodeStatusEnum","HandleTypeEnum","ProviderTypeEnum","ModelCapabilityEnum","ModelUseCaseEnum"],"mappings":"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","file":"chunk-ZMENGANG.mjs","sourcesContent":["export enum WorkflowTemplateCategory {\n IMAGE = 'image',\n VIDEO = 'video',\n AUDIO = 'audio',\n FULL_PIPELINE = 'full-pipeline',\n}\n\n/**\n * Reframe node types (Luma)\n */\nexport enum ReframeNodeType {\n REFRAME = 'reframe',\n LUMA_REFRAME_IMAGE = 'lumaReframeImage',\n LUMA_REFRAME_VIDEO = 'lumaReframeVideo',\n}\n\n/**\n * Upscale node types (Topaz)\n */\nexport enum UpscaleNodeType {\n UPSCALE = 'upscale',\n TOPAZ_IMAGE_UPSCALE = 'topazImageUpscale',\n TOPAZ_VIDEO_UPSCALE = 'topazVideoUpscale',\n}\n\n/**\n * Processing node types - all nodes handled by the processing processor\n */\nexport enum KlingQuality {\n STANDARD = 'std',\n PRO = 'pro',\n}\n\nexport enum ProcessingNodeType {\n // Reframe (Luma)\n REFRAME = 'reframe',\n LUMA_REFRAME_IMAGE = 'lumaReframeImage',\n LUMA_REFRAME_VIDEO = 'lumaReframeVideo',\n // Upscale (Topaz)\n UPSCALE = 'upscale',\n TOPAZ_IMAGE_UPSCALE = 'topazImageUpscale',\n TOPAZ_VIDEO_UPSCALE = 'topazVideoUpscale',\n // Other processing nodes\n VIDEO_FRAME_EXTRACT = 'videoFrameExtract',\n LIP_SYNC = 'lipSync',\n TEXT_TO_SPEECH = 'textToSpeech',\n VOICE_CHANGE = 'voiceChange',\n TRANSCRIBE = 'transcribe',\n SUBTITLE = 'subtitle',\n VIDEO_STITCH = 'videoStitch',\n WORKFLOW_REF = 'workflowRef',\n}\n","// =============================================================================\n// NODE TYPES & BASE NODE DATA\n// =============================================================================\n\nexport enum NodeTypeEnum {\n // Input nodes\n IMAGE_INPUT = 'imageInput',\n AUDIO_INPUT = 'audioInput',\n VIDEO_INPUT = 'videoInput',\n PROMPT = 'prompt',\n PROMPT_CONSTRUCTOR = 'promptConstructor',\n // AI generation nodes\n IMAGE_GEN = 'imageGen',\n VIDEO_GEN = 'videoGen',\n LLM = 'llm',\n LIP_SYNC = 'lipSync',\n VOICE_CHANGE = 'voiceChange',\n TEXT_TO_SPEECH = 'textToSpeech',\n TRANSCRIBE = 'transcribe',\n MOTION_CONTROL = 'motionControl',\n // Processing nodes\n RESIZE = 'resize',\n ANIMATION = 'animation',\n VIDEO_STITCH = 'videoStitch',\n VIDEO_TRIM = 'videoTrim',\n VIDEO_FRAME_EXTRACT = 'videoFrameExtract',\n REFRAME = 'reframe',\n UPSCALE = 'upscale',\n IMAGE_GRID_SPLIT = 'imageGridSplit',\n ANNOTATION = 'annotation',\n SUBTITLE = 'subtitle',\n OUTPUT_GALLERY = 'outputGallery',\n IMAGE_COMPARE = 'imageCompare',\n // Output nodes\n DOWNLOAD = 'download',\n // Composition nodes (workflow-as-node)\n WORKFLOW_INPUT = 'workflowInput',\n WORKFLOW_OUTPUT = 'workflowOutput',\n WORKFLOW_REF = 'workflowRef',\n}\n\nexport type NodeType = `${NodeTypeEnum}`;\n\nexport enum NodeCategoryEnum {\n INPUT = 'input',\n AI = 'ai',\n PROCESSING = 'processing',\n OUTPUT = 'output',\n COMPOSITION = 'composition',\n}\n\nexport type NodeCategory = `${NodeCategoryEnum}`;\n\nexport enum NodeStatusEnum {\n IDLE = 'idle',\n PENDING = 'pending',\n PROCESSING = 'processing',\n COMPLETE = 'complete',\n ERROR = 'error',\n}\n\nexport type NodeStatus = `${NodeStatusEnum}`;\n\nexport interface BaseNodeData extends Record<string, unknown> {\n label: string;\n status: NodeStatus;\n error?: string;\n progress?: number;\n // Lock state for skipping during execution\n isLocked?: boolean;\n cachedOutput?: unknown;\n lockTimestamp?: number;\n // Optional comment/note for the node (used for comment navigation)\n comment?: string;\n // Optional custom color for the node (hex color string)\n color?: string;\n}\n","// =============================================================================\n// HANDLE TYPES\n// =============================================================================\n\nexport enum HandleTypeEnum {\n IMAGE = 'image',\n TEXT = 'text',\n VIDEO = 'video',\n NUMBER = 'number',\n AUDIO = 'audio',\n}\n\nexport type HandleType = `${HandleTypeEnum}`;\n\nexport interface HandleDefinition {\n id: string;\n type: HandleType;\n label: string;\n multiple?: boolean;\n required?: boolean;\n /** True if handle was dynamically generated from model schema */\n fromSchema?: boolean;\n}\n\n// Connection validation rules\nexport const CONNECTION_RULES: Record<HandleType, HandleType[]> = {\n audio: ['audio'],\n image: ['image'],\n number: ['number'],\n text: ['text'],\n video: ['video'],\n};\n","// =============================================================================\n// PROVIDER TYPES\n// =============================================================================\n\nexport enum ProviderTypeEnum {\n REPLICATE = 'replicate',\n FAL = 'fal',\n HUGGINGFACE = 'huggingface',\n GENFEED_AI = 'genfeed-ai',\n}\n\nexport type ProviderType = `${ProviderTypeEnum}`;\n\nexport enum ModelCapabilityEnum {\n TEXT_TO_IMAGE = 'text-to-image',\n IMAGE_TO_IMAGE = 'image-to-image',\n TEXT_TO_VIDEO = 'text-to-video',\n IMAGE_TO_VIDEO = 'image-to-video',\n TEXT_GENERATION = 'text-generation',\n}\n\nexport type ModelCapability = `${ModelCapabilityEnum}`;\n\nexport enum ModelUseCaseEnum {\n STYLE_TRANSFER = 'style-transfer',\n CHARACTER_CONSISTENT = 'character-consistent',\n IMAGE_VARIATION = 'image-variation',\n INPAINTING = 'inpainting',\n UPSCALE = 'upscale',\n GENERAL = 'general',\n}\n\nexport type ModelUseCase = `${ModelUseCaseEnum}`;\n\nexport interface ProviderModel {\n id: string;\n displayName: string;\n provider: ProviderType;\n capabilities: ModelCapability[];\n description?: string;\n thumbnail?: string;\n pricing?: string;\n inputSchema?: Record<string, unknown>;\n /** Component schemas containing enum definitions (aspect_ratio, duration, etc.) */\n componentSchemas?: Record<string, unknown>;\n /** Use cases this model supports (style transfer, upscale, etc.) */\n useCases?: ModelUseCase[];\n}\n\nexport interface SelectedModel {\n /** Alias for modelId - used by hooks that expect id */\n id?: string;\n provider: ProviderType;\n modelId: string;\n displayName: string;\n inputSchema?: Record<string, unknown>;\n /** Component schemas containing enum definitions (aspect_ratio, duration, etc.) */\n componentSchemas?: Record<string, unknown>;\n}\n","// =============================================================================\n// NODE DEFINITION & REGISTRY\n// =============================================================================\n\nimport type { NodeCategory, NodeType } from './base';\nimport type { HandleDefinition } from './handles';\nimport type { WorkflowNodeData } from './union';\n\nexport interface NodeDefinition {\n type: NodeType;\n label: string;\n description: string;\n category: NodeCategory;\n icon: string;\n inputs: HandleDefinition[];\n outputs: HandleDefinition[];\n defaultData: Partial<WorkflowNodeData>;\n}\n\n// =============================================================================\n// NODE REGISTRY\n// =============================================================================\n\nexport const NODE_DEFINITIONS: Record<NodeType, NodeDefinition> = {\n animation: {\n category: 'processing',\n defaultData: {\n curveType: 'preset',\n customCurve: [0.645, 0.045, 0.355, 1],\n inputVideo: null,\n label: 'Animation',\n outputVideo: null,\n preset: 'easeInOutCubic',\n speedMultiplier: 1,\n status: 'idle',\n },\n description: 'Apply easing curve to video',\n icon: 'Wand2',\n inputs: [{ id: 'video', label: 'Video', required: true, type: 'video' }],\n label: 'Animation',\n outputs: [{ id: 'video', label: 'Animated Video', type: 'video' }],\n type: 'animation',\n },\n annotation: {\n category: 'processing',\n defaultData: {\n annotations: [],\n hasAnnotations: false,\n inputImage: null,\n label: 'Annotation',\n outputImage: null,\n status: 'idle',\n },\n description: 'Add shapes, arrows, and text to images',\n icon: 'Pencil',\n inputs: [{ id: 'image', label: 'Image', required: true, type: 'image' }],\n label: 'Annotation',\n outputs: [{ id: 'image', label: 'Annotated Image', type: 'image' }],\n type: 'annotation',\n },\n audioInput: {\n category: 'input',\n defaultData: {\n audio: null,\n duration: null,\n filename: null,\n label: 'Audio',\n source: 'upload',\n status: 'idle',\n },\n description: 'Upload an audio file (MP3, WAV)',\n icon: 'Volume2',\n inputs: [],\n label: 'Audio',\n outputs: [{ id: 'audio', label: 'Audio', type: 'audio' }],\n type: 'audioInput',\n },\n\n // Output nodes\n download: {\n category: 'output',\n defaultData: {\n inputImage: null,\n inputType: null,\n inputVideo: null,\n label: 'Download',\n outputName: 'output',\n status: 'idle',\n },\n description: 'Download workflow output with custom filename',\n icon: 'Download',\n inputs: [\n { id: 'image', label: 'Image', type: 'image' },\n { id: 'video', label: 'Video', type: 'video' },\n ],\n label: 'Download',\n outputs: [],\n type: 'download',\n },\n imageCompare: {\n category: 'output',\n defaultData: {\n imageA: null,\n imageB: null,\n label: 'Image Compare',\n status: 'idle',\n },\n description: 'Side-by-side A/B comparison with draggable slider',\n icon: 'Columns2',\n inputs: [\n { id: 'image', label: 'Image A', type: 'image' },\n { id: 'image-1', label: 'Image B', type: 'image' },\n ],\n label: 'Image Compare',\n outputs: [],\n type: 'imageCompare',\n },\n // AI nodes\n imageGen: {\n category: 'ai',\n defaultData: {\n aspectRatio: '1:1',\n inputImages: [],\n inputPrompt: null,\n jobId: null,\n label: 'Image Generator',\n model: 'nano-banana-pro',\n outputFormat: 'jpg',\n outputImage: null,\n outputImages: [],\n resolution: '2K',\n status: 'idle',\n },\n description: 'Generate images with nano-banana models',\n icon: 'Sparkles',\n inputs: [\n { id: 'prompt', label: 'Prompt', required: true, type: 'text' },\n {\n id: 'images',\n label: 'Reference Images',\n multiple: true,\n type: 'image',\n },\n ],\n label: 'Image Generator',\n outputs: [{ id: 'image', label: 'Generated Image', type: 'image' }],\n type: 'imageGen',\n },\n imageGridSplit: {\n category: 'processing',\n defaultData: {\n borderInset: 10,\n gridCols: 3,\n gridRows: 2,\n inputImage: null,\n label: 'Grid Split',\n outputFormat: 'jpg',\n outputImages: [],\n quality: 95,\n status: 'idle',\n },\n description: 'Split image into grid cells',\n icon: 'Grid3X3',\n inputs: [{ id: 'image', label: 'Image', required: true, type: 'image' }],\n label: 'Grid Split',\n outputs: [\n { id: 'images', label: 'Split Images', multiple: true, type: 'image' },\n ],\n type: 'imageGridSplit',\n },\n // Input nodes\n imageInput: {\n category: 'input',\n defaultData: {\n dimensions: null,\n filename: null,\n image: null,\n label: 'Image',\n source: 'upload',\n status: 'idle',\n },\n description: 'Upload or reference an image',\n icon: 'Image',\n inputs: [],\n label: 'Image',\n outputs: [{ id: 'image', label: 'Image', type: 'image' }],\n type: 'imageInput',\n },\n lipSync: {\n category: 'ai',\n defaultData: {\n activeSpeaker: false,\n inputAudio: null,\n inputImage: null,\n inputVideo: null,\n jobId: null,\n label: 'Lip Sync',\n model: 'sync/lipsync-2',\n outputVideo: null,\n status: 'idle',\n syncMode: 'loop',\n temperature: 0.5,\n },\n description:\n 'Generate talking-head video from image/video and audio using Replicate',\n icon: 'Mic',\n inputs: [\n { id: 'image', label: 'Face Image', type: 'image' },\n { id: 'video', label: 'Source Video', type: 'video' },\n { id: 'audio', label: 'Audio', required: true, type: 'audio' },\n ],\n label: 'Lip Sync',\n outputs: [{ id: 'video', label: 'Generated Video', type: 'video' }],\n type: 'lipSync',\n },\n llm: {\n category: 'ai',\n defaultData: {\n inputPrompt: null,\n jobId: null,\n label: 'LLM',\n maxTokens: 1024,\n model: 'meta-llama-3.1-405b-instruct',\n outputText: null,\n status: 'idle',\n systemPrompt:\n 'You are a creative assistant helping generate content prompts.',\n temperature: 0.7,\n topP: 0.9,\n },\n description: 'Generate text with meta-llama',\n icon: 'Brain',\n inputs: [{ id: 'prompt', label: 'Prompt', required: true, type: 'text' }],\n label: 'LLM',\n outputs: [{ id: 'text', label: 'Generated Text', type: 'text' }],\n type: 'llm',\n },\n\n motionControl: {\n category: 'ai',\n defaultData: {\n aspectRatio: '16:9',\n cameraIntensity: 50,\n cameraMovement: 'static',\n characterOrientation: 'image',\n duration: 5,\n inputImage: null,\n inputPrompt: null,\n inputVideo: null,\n jobId: null,\n keepOriginalSound: true,\n label: 'Motion Control',\n mode: 'video_transfer',\n motionStrength: 50,\n negativePrompt: '',\n outputVideo: null,\n qualityMode: 'pro',\n seed: null,\n status: 'idle',\n trajectoryPoints: [],\n },\n description: 'Generate video with precise motion control using Kling AI',\n icon: 'Navigation',\n inputs: [\n { id: 'image', label: 'Image', required: true, type: 'image' },\n { id: 'video', label: 'Motion Video', type: 'video' },\n { id: 'prompt', label: 'Prompt', type: 'text' },\n ],\n label: 'Motion Control',\n outputs: [{ id: 'video', label: 'Video', type: 'video' }],\n type: 'motionControl',\n },\n\n outputGallery: {\n category: 'output',\n defaultData: {\n images: [],\n label: 'Output Gallery',\n status: 'idle',\n },\n description: 'Thumbnail grid with lightbox for multi-image outputs',\n icon: 'LayoutGrid',\n inputs: [{ id: 'image', label: 'Images', multiple: true, type: 'image' }],\n label: 'Output Gallery',\n outputs: [],\n type: 'outputGallery',\n },\n prompt: {\n category: 'input',\n defaultData: {\n label: 'Prompt',\n prompt: '',\n status: 'idle',\n variables: {},\n },\n description: 'Text prompt for AI generation',\n icon: 'MessageSquare',\n inputs: [],\n label: 'Prompt',\n outputs: [{ id: 'text', label: 'Prompt', type: 'text' }],\n type: 'prompt',\n },\n promptConstructor: {\n category: 'input',\n defaultData: {\n label: 'Prompt Constructor',\n outputText: null,\n status: 'idle',\n template: '',\n unresolvedVars: [],\n },\n description:\n 'Template-based prompt with @variable interpolation from connected Prompt nodes',\n icon: 'Puzzle',\n inputs: [{ id: 'text', label: 'Variables', multiple: true, type: 'text' }],\n label: 'Prompt Constructor',\n outputs: [{ id: 'text', label: 'Prompt', type: 'text' }],\n type: 'promptConstructor',\n },\n reframe: {\n category: 'processing',\n defaultData: {\n aspectRatio: '16:9',\n gridPosition: { x: 0.5, y: 0.5 },\n inputImage: null,\n inputType: null,\n inputVideo: null,\n jobId: null,\n label: 'Reframe',\n model: 'photon-flash-1',\n outputImage: null,\n outputVideo: null,\n prompt: '',\n status: 'idle',\n },\n description:\n 'Reframe images or videos to different aspect ratios with AI outpainting',\n icon: 'Crop',\n inputs: [\n { id: 'image', label: 'Image', type: 'image' },\n { id: 'video', label: 'Video', type: 'video' },\n ],\n label: 'Reframe',\n outputs: [\n { id: 'image', label: 'Reframed Image', type: 'image' },\n { id: 'video', label: 'Reframed Video', type: 'video' },\n ],\n type: 'reframe',\n },\n\n // Processing nodes\n resize: {\n category: 'processing',\n defaultData: {\n gridPosition: { x: 0.5, y: 0.5 },\n inputMedia: null,\n inputType: null,\n jobId: null,\n label: 'Resize',\n outputMedia: null,\n prompt: '',\n status: 'idle',\n targetAspectRatio: '16:9',\n },\n description:\n 'Resize images or videos to different aspect ratios using Luma AI',\n icon: 'Maximize2',\n inputs: [{ id: 'media', label: 'Media', required: true, type: 'image' }],\n label: 'Resize',\n outputs: [{ id: 'media', label: 'Resized Media', type: 'image' }],\n type: 'resize',\n },\n subtitle: {\n category: 'processing',\n defaultData: {\n backgroundColor: 'rgba(0,0,0,0.7)',\n fontColor: '#FFFFFF',\n fontFamily: 'Arial',\n fontSize: 24,\n inputText: null,\n inputVideo: null,\n jobId: null,\n label: 'Subtitle',\n outputVideo: null,\n position: 'bottom',\n status: 'idle',\n style: 'modern',\n },\n description: 'Burn subtitles into video using FFmpeg',\n icon: 'Subtitles',\n inputs: [\n { id: 'video', label: 'Video', required: true, type: 'video' },\n { id: 'text', label: 'Subtitle Text', required: true, type: 'text' },\n ],\n label: 'Subtitle',\n outputs: [{ id: 'video', label: 'Video with Subtitles', type: 'video' }],\n type: 'subtitle',\n },\n textToSpeech: {\n category: 'ai',\n defaultData: {\n inputText: null,\n jobId: null,\n label: 'Text to Speech',\n outputAudio: null,\n provider: 'elevenlabs',\n similarityBoost: 0.75,\n speed: 1.0,\n stability: 0.5,\n status: 'idle',\n voice: 'rachel',\n },\n description: 'Convert text to natural-sounding speech using ElevenLabs',\n icon: 'AudioLines',\n inputs: [{ id: 'text', label: 'Text', required: true, type: 'text' }],\n label: 'Text to Speech',\n outputs: [{ id: 'audio', label: 'Audio', type: 'audio' }],\n type: 'textToSpeech',\n },\n transcribe: {\n category: 'ai',\n defaultData: {\n inputAudio: null,\n inputVideo: null,\n jobId: null,\n label: 'Transcribe',\n language: 'auto',\n outputText: null,\n status: 'idle',\n timestamps: false,\n },\n description: 'Convert video or audio to text transcript',\n icon: 'FileText',\n inputs: [\n { id: 'video', label: 'Video', type: 'video' },\n { id: 'audio', label: 'Audio', type: 'audio' },\n ],\n label: 'Transcribe',\n outputs: [{ id: 'text', label: 'Transcript', type: 'text' }],\n type: 'transcribe',\n },\n upscale: {\n category: 'processing',\n defaultData: {\n comparisonPosition: 50,\n faceEnhancement: false,\n faceEnhancementCreativity: 0,\n faceEnhancementStrength: 80,\n inputImage: null,\n inputType: null,\n inputVideo: null,\n jobId: null,\n label: 'Upscale',\n model: 'topaz-standard-v2',\n originalPreview: null,\n outputFormat: 'png',\n outputImage: null,\n outputPreview: null,\n outputVideo: null,\n showComparison: true,\n status: 'idle',\n targetFps: 30,\n targetResolution: '1080p',\n upscaleFactor: '2x',\n },\n description: 'AI-powered upscaling for images and videos',\n icon: 'Maximize',\n inputs: [\n { id: 'image', label: 'Image', type: 'image' },\n { id: 'video', label: 'Video', type: 'video' },\n ],\n label: 'Upscale',\n outputs: [\n { id: 'image', label: 'Upscaled Image', type: 'image' },\n { id: 'video', label: 'Upscaled Video', type: 'video' },\n ],\n type: 'upscale',\n },\n videoFrameExtract: {\n category: 'processing',\n defaultData: {\n inputVideo: null,\n jobId: null,\n label: 'Frame Extract',\n outputImage: null,\n percentagePosition: 100,\n selectionMode: 'last',\n status: 'idle',\n timestampSeconds: 0,\n videoDuration: null,\n },\n description: 'Extract a specific frame from video as image',\n icon: 'Film',\n inputs: [{ id: 'video', label: 'Video', required: true, type: 'video' }],\n label: 'Frame Extract',\n outputs: [{ id: 'image', label: 'Extracted Frame', type: 'image' }],\n type: 'videoFrameExtract',\n },\n videoGen: {\n category: 'ai',\n defaultData: {\n aspectRatio: '16:9',\n duration: 8,\n generateAudio: true,\n inputImage: null,\n inputPrompt: null,\n jobId: null,\n label: 'Video Generator',\n lastFrame: null,\n model: 'veo-3.1-fast',\n negativePrompt: '',\n outputVideo: null,\n referenceImages: [],\n resolution: '1080p',\n status: 'idle',\n },\n description: 'Generate videos with veo-3.1 models',\n icon: 'Video',\n inputs: [\n { id: 'prompt', label: 'Prompt', required: true, type: 'text' },\n { id: 'image', label: 'Starting Frame', type: 'image' },\n { id: 'lastFrame', label: 'Last Frame (interpolation)', type: 'image' },\n ],\n label: 'Video Generator',\n outputs: [{ id: 'video', label: 'Generated Video', type: 'video' }],\n type: 'videoGen',\n },\n videoInput: {\n category: 'input',\n defaultData: {\n dimensions: null,\n duration: null,\n filename: null,\n label: 'Video',\n source: 'upload',\n status: 'idle',\n video: null,\n },\n description: 'Upload or reference a video file',\n icon: 'FileVideo',\n inputs: [],\n label: 'Video',\n outputs: [{ id: 'video', label: 'Video', type: 'video' }],\n type: 'videoInput',\n },\n videoStitch: {\n category: 'processing',\n defaultData: {\n inputVideos: [],\n label: 'Video Stitch',\n outputVideo: null,\n seamlessLoop: false,\n status: 'idle',\n transitionDuration: 0.5,\n transitionType: 'crossfade',\n },\n description: 'Concatenate multiple videos',\n icon: 'Layers',\n inputs: [\n {\n id: 'videos',\n label: 'Videos',\n multiple: true,\n required: true,\n type: 'video',\n },\n ],\n label: 'Video Stitch',\n outputs: [{ id: 'video', label: 'Stitched Video', type: 'video' }],\n type: 'videoStitch',\n },\n videoTrim: {\n category: 'processing',\n defaultData: {\n duration: null,\n endTime: 60,\n inputVideo: null,\n jobId: null,\n label: 'Video Trim',\n outputVideo: null,\n startTime: 0,\n status: 'idle',\n },\n description: 'Trim video to a specific time range',\n icon: 'Scissors',\n inputs: [{ id: 'video', label: 'Video', required: true, type: 'video' }],\n label: 'Video Trim',\n outputs: [{ id: 'video', label: 'Trimmed Video', type: 'video' }],\n type: 'videoTrim',\n },\n voiceChange: {\n category: 'ai',\n defaultData: {\n audioMixLevel: 0.5,\n inputAudio: null,\n inputVideo: null,\n jobId: null,\n label: 'Voice Change',\n outputVideo: null,\n preserveOriginalAudio: false,\n status: 'idle',\n },\n description: 'Replace or mix audio track in a video',\n icon: 'AudioLines',\n inputs: [\n { id: 'video', label: 'Video', required: true, type: 'video' },\n { id: 'audio', label: 'New Audio', required: true, type: 'audio' },\n ],\n label: 'Voice Change',\n outputs: [{ id: 'video', label: 'Output Video', type: 'video' }],\n type: 'voiceChange',\n },\n\n // Composition nodes (workflow-as-node)\n workflowInput: {\n category: 'composition',\n defaultData: {\n description: '',\n inputName: 'input',\n inputType: 'image',\n label: 'Workflow Input',\n required: true,\n status: 'idle',\n },\n description:\n 'Define an input port for when this workflow is used as a subworkflow',\n icon: 'ArrowRightToLine',\n inputs: [],\n label: 'Workflow Input',\n outputs: [{ id: 'value', label: 'Value', type: 'image' }], // Type is dynamic based on inputType\n type: 'workflowInput',\n },\n workflowOutput: {\n category: 'composition',\n defaultData: {\n description: '',\n inputValue: null,\n label: 'Workflow Output',\n outputName: 'output',\n outputType: 'image',\n status: 'idle',\n },\n description:\n 'Define an output port for when this workflow is used as a subworkflow',\n icon: 'ArrowLeftFromLine',\n inputs: [{ id: 'value', label: 'Value', required: true, type: 'image' }], // Type is dynamic based on outputType\n label: 'Workflow Output',\n outputs: [],\n type: 'workflowOutput',\n },\n workflowRef: {\n category: 'composition',\n defaultData: {\n cachedInterface: null,\n childExecutionId: null,\n inputMappings: {},\n label: 'Subworkflow',\n outputMappings: {},\n referencedWorkflowId: null,\n referencedWorkflowName: null,\n status: 'idle',\n },\n description: 'Reference another workflow as a subworkflow',\n icon: 'GitBranch',\n inputs: [], // Dynamic based on referenced workflow interface\n label: 'Subworkflow',\n outputs: [], // Dynamic based on referenced workflow interface\n type: 'workflowRef',\n },\n\n // Multi-format nodes removed - format conversion now handled by schema-driven engine\n};\n\n// Explicit ordering for each category (most used first)\nexport const NODE_ORDER: Record<NodeCategory, NodeType[]> = {\n ai: [\n 'imageGen',\n 'videoGen',\n 'llm',\n 'lipSync',\n 'textToSpeech',\n 'transcribe',\n 'voiceChange',\n 'motionControl',\n ],\n composition: ['workflowRef', 'workflowInput', 'workflowOutput'],\n input: [\n 'imageInput',\n 'videoInput',\n 'audioInput',\n 'prompt',\n 'promptConstructor',\n ],\n output: ['download', 'outputGallery', 'imageCompare'],\n processing: [\n 'reframe',\n 'upscale',\n 'resize',\n 'videoStitch',\n 'videoTrim',\n 'videoFrameExtract',\n 'imageGridSplit',\n 'annotation',\n 'subtitle',\n 'animation',\n ],\n};\n\n// Helper to get nodes by category with explicit ordering\nexport function getNodesByCategory(): Record<NodeCategory, NodeDefinition[]> {\n const categories: Record<NodeCategory, NodeDefinition[]> = {\n ai: [],\n composition: [],\n input: [],\n output: [],\n processing: [],\n };\n\n for (const category of Object.keys(NODE_ORDER) as NodeCategory[]) {\n for (const nodeType of NODE_ORDER[category]) {\n const def = NODE_DEFINITIONS[nodeType];\n if (def) {\n categories[category].push(def);\n }\n }\n }\n\n return categories;\n}\n"]}
@@ -1,47 +1,3 @@
1
- /**
2
- * A ComfyUI prompt is a graph of nodes, keyed by node ID.
3
- * Each node has a class_type (e.g. "KSampler", "CLIPTextEncode") and inputs.
4
- */
5
- interface ComfyUINode {
6
- class_type: string;
7
- inputs: Record<string, unknown>;
8
- }
9
- interface ComfyUIPrompt {
10
- [nodeId: string]: ComfyUINode;
11
- }
12
- /**
13
- * Describes a dynamic input that can be injected into a ComfyUI prompt template.
14
- * Used to map user-facing workflow params to specific ComfyUI node fields.
15
- */
16
- interface ComfyUITemplateInput {
17
- /** Display name shown to the user (e.g. "Prompt", "Seed", "Face Photo") */
18
- key: string;
19
- /** Which ComfyUI node ID to inject the value into */
20
- nodeId: string;
21
- /** Which input field on the node */
22
- field: string;
23
- /** The type of the input */
24
- type: 'string' | 'number' | 'image' | 'boolean' | 'select';
25
- /** Default value if none provided */
26
- default?: unknown;
27
- /** Whether this input is required */
28
- required?: boolean;
29
- /** Description shown in the UI */
30
- description?: string;
31
- /** Options for select-type inputs */
32
- options?: string[];
33
- }
34
- /**
35
- * A ComfyUI workflow template: a prompt with metadata about dynamic inputs.
36
- * This is what gets stored on a workflow/listing for "run on your own ComfyUI" export.
37
- */
38
- interface ComfyUIWorkflowTemplate {
39
- /** The raw ComfyUI prompt JSON (node graph) */
40
- prompt: ComfyUIPrompt;
41
- /** Dynamic inputs that can be customized per execution */
42
- inputs: ComfyUITemplateInput[];
43
- }
44
-
45
1
  /**
46
2
  * A single output image/file from a ComfyUI execution.
47
3
  */
@@ -88,4 +44,48 @@ interface ComfyUIQueuePromptResponse {
88
44
  node_errors: Record<string, unknown>;
89
45
  }
90
46
 
47
+ /**
48
+ * A ComfyUI prompt is a graph of nodes, keyed by node ID.
49
+ * Each node has a class_type (e.g. "KSampler", "CLIPTextEncode") and inputs.
50
+ */
51
+ interface ComfyUINode {
52
+ class_type: string;
53
+ inputs: Record<string, unknown>;
54
+ }
55
+ interface ComfyUIPrompt {
56
+ [nodeId: string]: ComfyUINode;
57
+ }
58
+ /**
59
+ * Describes a dynamic input that can be injected into a ComfyUI prompt template.
60
+ * Used to map user-facing workflow params to specific ComfyUI node fields.
61
+ */
62
+ interface ComfyUITemplateInput {
63
+ /** Display name shown to the user (e.g. "Prompt", "Seed", "Face Photo") */
64
+ key: string;
65
+ /** Which ComfyUI node ID to inject the value into */
66
+ nodeId: string;
67
+ /** Which input field on the node */
68
+ field: string;
69
+ /** The type of the input */
70
+ type: 'string' | 'number' | 'image' | 'boolean' | 'select';
71
+ /** Default value if none provided */
72
+ default?: unknown;
73
+ /** Whether this input is required */
74
+ required?: boolean;
75
+ /** Description shown in the UI */
76
+ description?: string;
77
+ /** Options for select-type inputs */
78
+ options?: string[];
79
+ }
80
+ /**
81
+ * A ComfyUI workflow template: a prompt with metadata about dynamic inputs.
82
+ * This is what gets stored on a workflow/listing for "run on your own ComfyUI" export.
83
+ */
84
+ interface ComfyUIWorkflowTemplate {
85
+ /** The raw ComfyUI prompt JSON (node graph) */
86
+ prompt: ComfyUIPrompt;
87
+ /** Dynamic inputs that can be customized per execution */
88
+ inputs: ComfyUITemplateInput[];
89
+ }
90
+
91
91
  export type { ComfyUIHistoryEntry, ComfyUIHistoryResponse, ComfyUINode, ComfyUINodeOutput, ComfyUIOutputFile, ComfyUIPrompt, ComfyUIPromptStatus, ComfyUIQueuePromptResponse, ComfyUITemplateInput, ComfyUIWorkflowTemplate };
package/dist/comfyui.d.ts CHANGED
@@ -1,47 +1,3 @@
1
- /**
2
- * A ComfyUI prompt is a graph of nodes, keyed by node ID.
3
- * Each node has a class_type (e.g. "KSampler", "CLIPTextEncode") and inputs.
4
- */
5
- interface ComfyUINode {
6
- class_type: string;
7
- inputs: Record<string, unknown>;
8
- }
9
- interface ComfyUIPrompt {
10
- [nodeId: string]: ComfyUINode;
11
- }
12
- /**
13
- * Describes a dynamic input that can be injected into a ComfyUI prompt template.
14
- * Used to map user-facing workflow params to specific ComfyUI node fields.
15
- */
16
- interface ComfyUITemplateInput {
17
- /** Display name shown to the user (e.g. "Prompt", "Seed", "Face Photo") */
18
- key: string;
19
- /** Which ComfyUI node ID to inject the value into */
20
- nodeId: string;
21
- /** Which input field on the node */
22
- field: string;
23
- /** The type of the input */
24
- type: 'string' | 'number' | 'image' | 'boolean' | 'select';
25
- /** Default value if none provided */
26
- default?: unknown;
27
- /** Whether this input is required */
28
- required?: boolean;
29
- /** Description shown in the UI */
30
- description?: string;
31
- /** Options for select-type inputs */
32
- options?: string[];
33
- }
34
- /**
35
- * A ComfyUI workflow template: a prompt with metadata about dynamic inputs.
36
- * This is what gets stored on a workflow/listing for "run on your own ComfyUI" export.
37
- */
38
- interface ComfyUIWorkflowTemplate {
39
- /** The raw ComfyUI prompt JSON (node graph) */
40
- prompt: ComfyUIPrompt;
41
- /** Dynamic inputs that can be customized per execution */
42
- inputs: ComfyUITemplateInput[];
43
- }
44
-
45
1
  /**
46
2
  * A single output image/file from a ComfyUI execution.
47
3
  */
@@ -88,4 +44,48 @@ interface ComfyUIQueuePromptResponse {
88
44
  node_errors: Record<string, unknown>;
89
45
  }
90
46
 
47
+ /**
48
+ * A ComfyUI prompt is a graph of nodes, keyed by node ID.
49
+ * Each node has a class_type (e.g. "KSampler", "CLIPTextEncode") and inputs.
50
+ */
51
+ interface ComfyUINode {
52
+ class_type: string;
53
+ inputs: Record<string, unknown>;
54
+ }
55
+ interface ComfyUIPrompt {
56
+ [nodeId: string]: ComfyUINode;
57
+ }
58
+ /**
59
+ * Describes a dynamic input that can be injected into a ComfyUI prompt template.
60
+ * Used to map user-facing workflow params to specific ComfyUI node fields.
61
+ */
62
+ interface ComfyUITemplateInput {
63
+ /** Display name shown to the user (e.g. "Prompt", "Seed", "Face Photo") */
64
+ key: string;
65
+ /** Which ComfyUI node ID to inject the value into */
66
+ nodeId: string;
67
+ /** Which input field on the node */
68
+ field: string;
69
+ /** The type of the input */
70
+ type: 'string' | 'number' | 'image' | 'boolean' | 'select';
71
+ /** Default value if none provided */
72
+ default?: unknown;
73
+ /** Whether this input is required */
74
+ required?: boolean;
75
+ /** Description shown in the UI */
76
+ description?: string;
77
+ /** Options for select-type inputs */
78
+ options?: string[];
79
+ }
80
+ /**
81
+ * A ComfyUI workflow template: a prompt with metadata about dynamic inputs.
82
+ * This is what gets stored on a workflow/listing for "run on your own ComfyUI" export.
83
+ */
84
+ interface ComfyUIWorkflowTemplate {
85
+ /** The raw ComfyUI prompt JSON (node graph) */
86
+ prompt: ComfyUIPrompt;
87
+ /** Dynamic inputs that can be customized per execution */
88
+ inputs: ComfyUITemplateInput[];
89
+ }
90
+
91
91
  export type { ComfyUIHistoryEntry, ComfyUIHistoryResponse, ComfyUINode, ComfyUINodeOutput, ComfyUIOutputFile, ComfyUIPrompt, ComfyUIPromptStatus, ComfyUIQueuePromptResponse, ComfyUITemplateInput, ComfyUIWorkflowTemplate };
package/dist/comfyui.js CHANGED
@@ -1,4 +1,6 @@
1
1
  'use strict';
2
2
 
3
- require('./chunk-RNGYPX4W.js');
3
+ require('./chunk-DVR3GE4F.js');
4
4
 
5
+ //# sourceMappingURL=comfyui.js.map
6
+ //# sourceMappingURL=comfyui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"comfyui.js"}
package/dist/comfyui.mjs CHANGED
@@ -1 +1,3 @@
1
- import './chunk-7NJUD2WZ.mjs';
1
+ import './chunk-G2BD5ZTF.mjs';
2
+ //# sourceMappingURL=comfyui.mjs.map
3
+ //# sourceMappingURL=comfyui.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"comfyui.mjs"}