- Update input names and types in BaseListAdapter, ImageListAdapter, and TextListAdapter
- Remove MONTAGENDESCTYPE from TimeRangeNode
- Adjust RETURN_TYPES order in TimeRangeNode
- Remove desc_list parameter from sync_time_images_range in LGraphNode
- Update related imports and usages across affected modules
- Rename class names and update descriptions for consistency
- Add default_name class method to BaseListAdapter and BaseMediaAdapter
- Update input types and descriptions for various nodes
- Adjust save_func and sync methods in LGraphNode
- Add update_data method to MontagenClip
- Update Utils.py with new type constants
- Add template listing and file serving endpoints
- Implement template caching and user-specific template loading
- Update template cover image path handling
- Refactor template workflow loading process
- Add new action types and update node synchronization logic
- Remove unused input enable/disable functionality
- Introduce machine ID generation for unique user identification
- Update text and image list adapter nodes to support new action types
- Modify time range node to include action selection
- Update TimeRangeNode to use MontagenTimeRange for time range management
- Modify BaseListAdapter, ImageListAdapter, and TextListAdapter to work with new time range structure
- Refactor LGraphNode to remove time_range property and update sync functions
- Simplify MontagenTimeRange class and add support for selected time units
- Include workflowId in the dictionary returned by the LGraphNode serialization method
- This change allows the workflow ID to be easily accessed and used in serialized node data
- Update time range handling in BaseListAdapter and ImageListAdapter
- Refactor image processing logic in ImageListAdapter
- Fix duration calculation in LGraphNode
- Add TimeRangeNode to handle time range creation and modification
- Update BaseListAdapter, ImageListAdapter, and TextListAdapter to support time range
- Implement MontagenTimeRange class to manage time range data
- Modify LGraphNode and LGraphNodeItem to support time range operations
- Add new constants and utilities for time range handling
- Add meta property to LGraphNode
- Implement to_timeline_json method in LGraphNode
- Update MontagenWorkflow and MontagenTimeline to use new node-based structure
- Modify LGraphNodeItem to handle meta data
- Update API endpoint for updating node meta data
- Add thumb() method to LGraphNode for generating thumbnails
- Implement get_thumb_file_path() and get_thumb_file_url() in MontagenWorkflow
- Add thumbnail extraction functions for images, GIFs, and videos
- Update BaseWorkflow to handle thumbnail generation
- Add temporary file server route for thumbnails
- Move create_default_option function from Utils.py to LGraphNodeItem class
- Update create_item method in LGraphNode to use new default property
- Adjust set_main_content method in LGraphNodeItem to handle codec settings
- Add template functionality for projects and workflows
- Implement item metadata synchronization and editing
- Update item handling in nodes, including filtering by used items
- Refactor timeline and workflow methods for better item management
- Adjust utility functions to support new features
- Remove unused node classes and imports
- Rename nodes to use "MediaAdapter" and "ListAdapter" suffixes
- Update node mappings and display names
- Simplify project structure by removing unnecessary files and directories
- Add file_output_index attribute to various clip adapter classes
- Implement set_file_output method in LGraphNode class
- Update BaseClipAdapter to set file output for nodes
- Modify BaseTrackAdapter to include src in protocol_return
- Update BaseClipAdapter to use super() for create_clip and create_max_clip methods
- Modify TimelineExcNode to return UI assets information
- Update nodes/__init__.py to comment out unused track adapter imports
- Adjust LGraphNode to use -1 as default value for start and duration
- Modify MontagenTimeline to include non-configurable clips in timeline JSON
- Set default values for 'ss' and 'to' parameters to -1 in AudioFile and AudioStream nodes
- This change allows for more flexible trimming operations and prevents potential errors with default values of 0
- Remove defaultDelete property from multiple properties in LGraphNode class
- This property was likely unused or its functionality has been removed
- Cleaning up the code improves readability and reduces potential confusion
- Update BaseClipAdapter and BaseTrackAdapter to use duration instead of end time
- Modify LGraphNode to remove end time and use duration for clip and audio properties
- This change simplifies the clip representation and avoids potential confusion with end time
- Add 'type' field to clip information response
- Introduce 'meta' object to encapsulate configuration data
- Update structure of clip information to include new fields
- Merge clip and track concepts into a single node entity
- Refactor clip creation and processing logic
- Update node properties and methods to handle clips consistently
- Adjust API endpoints to use clip_id instead of timeline_clip_id
- Remove redundant code and simplify project structure
- Add get_timeline_clip method to LGraphNode class
- Implement get_workflow_timeline_clip method in MontagenProj class
- Update MontagenTimeline class to include timeline clip information in JSON output
- Add get_timeline_clip method to MontagenWorkflow class
- Modify workflow data processing to include timeline name for each clip
- Fix typo in 'duration' variable name
- Remove redundant timeline clip update logic
- Initialize timeline children with a spine structure
- Import test module and add to node mappings
- Refactor BaseClipAdapter to BaseTrackAdapter for better structure
- Implement track support in LGraphNode and MontagenWorkflow
- Update clip creation and configuration handling
- Improve timeline and workflow synchronization
- Remove unnecessary code and optimize existing logic
- Implement TextClipNode class and add it to the node mappings
- Define text-specific fields and options in LGraphNode
- Update supported_config_type to include text clip configuration
- Modify build_tree and flatten_tree methods to handle text-specific properties
- Implement material deletion checks in MontagenMaterial
- Comment out unused workflow-related routes in MontagenProjManager
- Add cleanup for old workflow files in MontagenWorkflow
- Batch asset deletion: Implement delete_material_batch method in MontagenMaterial to handle multiple asset deletion requests efficiently.
- Clip existence check: Add is_in_clip method to MontagenProj and MontagenWorkflow to check if a file is used in any clip.
- Rename material: Improve rename_material method to prevent renaming assets used in clips.
- LGraphNode enhancements: Add new properties and methods to support complex clip configurations.
- AudioClipAdapter and ImageClipAdapter: Update set_clip method to handle new clip properties.
- MontagenProjManager: Update delete_project_asset route to use batch deletion.
- Comment out MontagenProjManager.onProcessEnd calls in BaseClipAdapter and TimelineNode
- Update TimelineNode to return UI assets instead of calling onProcessEnd
- Rename 'rotation' property to 'rotate' in LGraphNode for consistency with other nodes
- Add timeline functionality to MontagenProj
- Implement syn_clip and set_clip methods in LGraphNode
- Update nodes to support new clip options and metadata
- Refactor project_save and project_change_time methods
- Add AudioClipAdapter, ImageClipAdapter and GifClipAdapter classes
- Refactor BaseClipAdapter to support different clip types
- Update VideoClipAdapter to inherit from ImageClipAdapter
- Modify MontagenWorkflow to handle multiple clip types
- Update LGraphNode to use properties directly instead of nested dictionary
- Update workflow synchronization logic to handle version conflicts
- Refactor material handling to support parent-child relationships
- Improve clip creation and updating process
- Optimize workflow initialization and saving
- Add rename_material method in MontagenMaterial class to handle asset renaming
- Update LGraph and LGraphNode classes to support new functionalities
- Modify MontagenProj class to include new workflow handling methods
- Update MontagenProjManager class to manage new asset renaming endpoint
- Add smbprotocol to project dependencies in pyproject.toml
- Move to_base36_random() function to Utils module for reuse
- Enhance clip and workflow synchronization in MontagenProjManager
- Update LGraph and LGraphNode for better Montagen node handling
- Refactor VideoClipAdapter to use the new to_base36_random() function
- Remove static GraphNodeTemplate dictionary from LGraphNode class
- Create a static method createTemplage() to generate node templates
- Add random positions for node placement
- Update CreateNode method to use the new createTemplage() method
- Add exportNode and importNode methods to LGraph
- Implement copyClipToOtherProject method in MontagenProjManager
- Update related files to support the new functionality
- Remove projectId property from LGraphNode and replace with tag
- Update addEmptyNode method in LGraph to use tag instead of projectId
- Modify CreateNode method in LGraphNode to accept optional tag parameter
- Adjust MontagenProjManager to use new node creation process
- Update VideoClipAdapter to handle clip_id or old_clip_id in getOutputPath
- Add support for creating, renaming, and deleting workflows
- Implement adding, renaming, and deleting clips within workflows
- Update project initialization to include default workflow and clip
- Refactor clip management to use new workflow structure
- Add new API endpoints for workflow and clip operations