Commit Graph
62 Commits
Author SHA1 Message Date
Sammy Kumar 6af3a3eb93 feat: update CLI usage and output handling for VACEScribbleAnnotator 2025-11-15 11:32:21 -06:00
Sammy Kumar d64284a9dc feat(VACEScribbleAnnotator): add mask support and CLI runner for external usage 2025-11-15 11:17:01 -06:00
Sammy Kumar a1f1298cd2 feat(VACE Annotators): add batch_size parameter to process frames in chunks to reduce VRAM usage
docs(VACE Annotators): update documentation to include batch_size parameter and its usage for VRAM management
2025-11-12 16:00:41 -06:00
Sammy Kumar a33835da33 docs: add detailed descriptions for FrameExtractor, MediaSelection, and MultiCaptionCombiner nodes 2025-11-12 14:08:41 -06:00
Sammy Kumar c1665a8e28 chore: update docs 2025-11-12 13:58:02 -06:00
Sam Kumar e576631aad ✨ (DEBUG_MODE_IMPLEMENTATION.md): introduce centralized debug mode setting for both frontend and backend to enhance logging control
📝 (DEBUG_MODE_IMPLEMENTATION.md): update documentation to reflect new debug mode implementation and usage instructions
♻️ (debug_utils.py): refactor debug logging utilities to check both environment variable and frontend settings for debug mode
🐛 (civitai_service.py): replace print statements with debug_print for consistent logging in CivitAI service
♻️ (config_api.py): refactor API to cache debug mode setting and expose it through a new endpoint
📝 (swiss-army-knife.js): update logging to use dynamic debug mode check and remove legacy loading of debug config
♻️ (video_preview.js): refactor video preview extension to use dynamic debug mode check for logging
📝 (extension.js): add dynamic debug logging wrapper for LoRA Manager to improve logging consistency across extensions
2025-10-30 07:06:42 -05:00
Sam Kumar 75ea6446b4 ✨ (azure_storage_upload): introduce Azure Storage Upload node to enable file uploads to Azure Blob Storage
📝 (azure_storage_upload): add comprehensive documentation for Azure Storage Upload node
🔧 (config_api.py): add support for Azure Storage connection string in settings
♻️ (swiss-army-knife.js): refactor API key synchronization to include Azure Storage connection string
✅ (requirements.txt): add azure-storage-blob as a dependency for Azure Storage functionality
2025-10-30 06:51:28 -05:00
Sam Kumar 5ccc63c4ad ✨ (pyproject.toml): bump version from 2.9.1 to 2.9.2 to reflect new changes
♻️ (swiss-army-knife.js): remove CivitMetadataHelper node implementation to simplify code and improve maintainability
2025-10-18 16:03:59 -05:00
Sam Kumar 8269eec3f2 ✨ (pyproject.toml): bump version from 2.9.0 to 2.9.1 to reflect new changes
♻️ (gemini_options_security.js): remove deprecated Gemini Util Options Security Extension as it is no longer needed
♻️ (swiss-army-knife.js): update API key settings to use consistent casing for SwissArmyKnife in multiple locations
2025-10-17 09:07:02 -05:00
Sam Kumar bf5240d00e ✨ (docs): add ComfyUI settings integration documentation for secure API key management
📝 (docs): update implementation status and README to reflect new settings integration
🔧 (docs): create SETTINGS_INTEGRATION.md and SETTINGS_INTEGRATION_SUMMARY.md for detailed implementation overview

✨ (civitai_service.py, config_api.py, gemini_util_options.py, nodes.py): implement API key management through ComfyUI settings instead of environment variables to enhance security and usability
♻️ (gemini_options_security.js): disable outdated security extension for API key handling as it is no longer needed
⬆️ (pyproject.toml): bump version to 2.9.0 to reflect recent changes and improvements

✨ (swiss-army-knife.js): update extension version to 2.8.11 for consistency
✨ (swiss-army-knife.js): add helper functions to retrieve API keys from settings
✨ (swiss-army-knife.js): implement sync function to send API keys to backend
💡 (swiss-army-knife.js): update comments to reflect changes in API key handling
✨ (swiss-army-knife.js): register settings for Gemini and Civitai API keys with sync functionality
2025-10-17 09:00:14 -05:00
Sam Kumar b7c58d6e01 bug: fix upload image button 2025-10-17 08:06:47 -05:00
Sam Kumar 03ea59f357 bug: debugging upload media button 2025-10-17 07:52:44 -05:00
Sam Kumar d5b404dec6 feat: combine cinematic aesthetic and stylization tone into visual style 2025-10-17 06:50:37 -05:00
Sam Kumar a613e1a9bd ✨ (docs): add JSON Field Order Standardization documentation to ensure consistency across codebase
♻️ (mediia_describe.py): standardize JSON field order in MediaDescribe class to improve maintainability and clarity

✨ (control_panel.py): update variable names for clarity and consistency
✨ (control_panel.py): enhance JSON parsing to support new input structure
✨ (swiss-army-knife.js): modify UI to display additional columns for prompt breakdown
⬆️ (pyproject.toml): bump version to 2.7.0 for new features and improvements
2025-10-13 15:38:29 -05:00
Sam Kumar 84c1bbac8e ✨ (Media Describe): add prompt_prefix to overrides and update final JSON structure for positive prompt integration 2025-10-13 15:24:20 -05:00
Sam Kumar 0798063987 ✨ (docs): add JSON response format documentation for Gemini prompts to provide structured output details
✨ (docs): add Control Panel Prompt Breakdown documentation to detail JSON parsing updates and benefits
♻️ (nodes): simplify Media Describe module by removing legacy input and updating parsing logic for cleaner code

✨ (mediia_describe.py): enhance JSON support for image descriptions and improve parsing logic
♻️ (mediia_describe.py): refactor return values to include raw JSON output for better integration
📝 (mediia_describe.py): update docstrings to clarify functionality and output format
🔧 (nodes.py): remove MediaDescribePromptBreakdown class and related mappings to streamline codebase

✨ (control_panel.py): update input type from all_media_describe_data to raw_gemini_json for better clarity
♻️ (control_panel.py): refactor display_info method to parse structured JSON response from Gemini API
💡 (control_panel.py): enhance logging for better debugging and user feedback

♻️ (swiss-army-knife.js): remove MediaDescribePromptBreakdown node implementation to streamline code and improve maintainability
2025-10-13 14:23:34 -05:00
Sam Kumar adec3ddfe4 ✨ (docs): add documentation for Control Panel Prompt Breakdown implementation to provide detailed information on its purpose, input, output, and implementation details
♻️ (control_panel.py): create ControlPanelPromptBreakdown class to handle prompt breakdown logic and refactor existing ControlPanel class for clarity
♻️ (swiss-army-knife.js): update frontend to support new ControlPanelPromptBreakdown node and ensure proper data handling and display
⬆️ (pyproject.toml): increment version to 2.6.1 to reflect new features and improvements
2025-10-13 12:59:01 -05:00
Sam Kumar 128acb2b04 ✨ (Control Panel): add comprehensive debugging documentation for data population issues
🐛 (Control Panel): fix field name mismatch and message structure handling to ensure data displays correctly
♻️ (Control Panel): refactor data extraction logic to check multiple sources and improve clarity
🔧 (Control Panel): update display logic to show only essential metadata and reduce clutter
⬆️ (version): bump version to 2.6.0 for new features and fixes
2025-10-11 12:01:45 -05:00
Sam Kumar 9e9d46a365 ✨ (CONTROL_PANEL_CHANGES.md): add documentation for control panel simplification changes to provide clarity on updates
♻️ (swiss-army-knife.js): refactor control panel to accept only `all_media_describe_data` as input for better usability
🔧 (pyproject.toml): update version to 2.5.15 to reflect recent changes and improvements
2025-10-11 11:28:08 -05:00
Sam Kumar a67b106651 ✨ Add restart button feature to ComfyUI topbar menu
- Introduce a new API endpoint `/swissarmyknife/restart` to handle server
 restarts.
- Modify `__init__.py` to register the new restart API routes.
- Update `swiss-army-knife.js` to include a restart button in the topbar
 menu with a confirmation dialog and toast notifications.
- Create a new CSS file for styling the restart button to enhance user
 experience.
- Implement error handling for the restart process to inform users of
 any issues.

This feature allows users to easily restart the ComfyUI server from the
topbar, improving usability and control over the server process.
2025-10-11 11:13:15 -05:00
Sam Kumar 73e4280529 ✨ (pyproject.toml): bump version from 2.5.12 to 2.5.13 to reflect updates
♻️ (swiss-army-knife.js): refactor layout of columns to improve UI structure and readability
2025-10-11 10:54:04 -05:00
Sam Kumar 109825b91c ✨ (gemini_util_options.py): implement environment variable fallback for API key to enhance security
⬆️ (pyproject.toml): bump version to 2.5.12 to reflect recent changes
✨ (gemini_options_security.js): add security extension to prevent saving API keys in cleartext
2025-10-11 10:46:42 -05:00
Sam Kumar 695caa20bc ✨ (control_panel.py, swiss-army-knife.js): enhance control panel layout to a three-column format for better organization of inputs and outputs
📝 (control_panel.py): update documentation to reflect new input fields and layout structure
💡 (swiss-army-knife.js): improve comments to clarify the purpose of each column in the control panel
2025-10-11 10:33:45 -05:00
Sam Kumar 5ca59db450 ✨ (civit_metadata_helper.py): add seed parameter for random generation to enhance control over output
📝 (civit_metadata_helper.py): update documentation to include seed parameter in metadata collection
🔧 (pyproject.toml): bump version from 2.5.8 to 2.5.9 to reflect new feature addition
✨ (swiss-army-knife.js): integrate seed input value into the application for user configuration
💡 (swiss-army-knife.js): add seed display in preview output for better user feedback
2025-10-09 11:42:43 -05:00
Sam Kumar 30367e35c1 ✨ (CivitMetadataHelper): introduce CivitAI metadata helper node to collect and format metadata for submissions
📝 (init.py): add import statements for CivitMetadataHelper node and handle import errors
♻️ (swiss-army-knife.js): update node registration to include CivitMetadataHelper and add metadata preview functionality
⬆️ (pyproject.toml): bump version to 2.5.8 to reflect new features and updates
2025-10-09 07:19:45 -05:00
Sam Kumar f5c80166bb ♻️ (mediia_describe.py): remove unused variables system_prompt and user_prompt to clean up code
⬆️ (pyproject.toml): bump version from 2.5.6 to 2.5.7 to reflect changes
♻️ (swiss-army-knife.js): simplify field formatting by removing prompt handling logic to enhance readability
2025-10-08 17:24:35 -05:00
Sam Kumar d019659827 ✨ (media-selection): add video resizing functionality to Media Selection node to enhance media processing capabilities
📝 (README.md): update documentation to include new resize options and modes for clarity
📝 (VIDEO_RESIZE_IMPLEMENTATION.md): create detailed implementation guide for video resizing feature
📝 (VIDEO_RESIZE_SUMMARY.md): add quick summary of video resizing functionality and usage examples
♻️ (media_selection.py): refactor video processing methods to support resizing and maintain code consistency
⬆️ (pyproject.toml): bump version to 2.5.6 to reflect new features
🔧 (swiss-army-knife.js): update extension version to match pyproject.toml version for consistency
2025-10-08 09:32:24 -05:00
Sam Kumar 1835187071 ✨ (media_selection.py): add image resizing functionality to MediaSelection class to enhance media processing capabilities
🔧 (pyproject.toml): update version to 2.5.5 to reflect new features and changes
✨ (swiss-army-knife.js): update extension version to 2.5.5 and improve debug logging for better traceability
2025-10-08 08:59:18 -05:00
Sam Kumar 867f3e55f8 ✨ (helper_nodes.py, gemini_util_options.py, media_describe_overrides.py, mediia_describe.py, prompt_breakdown.py, frame_extractor.py, media_selection.py, multi_caption_combiner.py, nodes.py, control_panel.py, video_preview.py, video_preview_native.py, swiss-army-knife.js): update categories to include "Swiss Army Knife 🔪" for better organization and clarity
♻️ (mediia_describe.py): refactor media processing logic to streamline handling of media paths and improve code readability
📝 (mediia_describe.py): update function signatures and documentation to reflect changes in parameters and improve clarity for future developers

✨ (swiss-army-knife.js.bak): add Swiss Army Knife extension with various media handling features to enhance user experience and functionality. This includes dynamic widget management, media upload capabilities, and improved logging for debugging. The extension aims to streamline media processing and provide a more interactive interface for users.
2025-10-08 08:20:55 -05:00
Sam Kumar cdba3567fe ✨ (swiss-army-knife.js): add image and video upload handlers with state clearing
💡 (swiss-army-knife.js): implement clearCurrentMediaState method to reset state before uploads
📝 (swiss-army-knife.js): improve user experience by providing feedback during uploads
2025-10-08 07:58:14 -05:00
Sam Kumar 27ad7bbde3 ✨ (UI_DYNAMIC_FIELDS.md): add documentation for Media Selection node's dynamic field visibility to enhance user understanding
⬆️ (pyproject.toml): bump version from 2.5.3 to 2.5.4 to reflect new features
♻️ (swiss-army-knife.js): implement dynamic field visibility for MediaSelection node to improve UI clarity and user experience
2025-10-08 07:48:51 -05:00
Sam Kumar c5fb43987f feat: added overrides and updated system prompt for json output 2025-10-08 04:57:39 -05:00
Sam Kumar 594e414807 ✨ (pyproject.toml): bump version from 2.3.5 to 2.3.6 to reflect new changes
✨ (swiss-army-knife.js): add subreddit_url widget handling for improved state persistence and restoration
2025-10-07 11:18:21 -05:00
Sam Kumar b1e2a5d714 ♻️ (swiss-army-knife.js): refactor Subreddit URL widget handling to improve
widget management and visibility based on media source selection.

This change enhances the user experience by ensuring that the
Subreddit URL widget is dynamically shown or hidden according to
the selected media source, allowing for a more intuitive
interaction with the application.
2025-10-07 07:36:46 -05:00
Sam Kumar 4dd464ca07 ♻️ (swiss-army-knife.js): refactor formatField function to add skipTruncate parameter for better control over value truncation
✨ (swiss-army-knife.js): update right column population to avoid truncation for final_string field for improved data visibility
2025-10-07 05:12:41 -05:00
Sam Kumar a34158669d ✨ (env.example, UNIFIED_DEBUG_SYSTEM.md, VIDEO_PREVIEW_PROGRESSIVE_LOADING.md, debug_utils.py, video_preview.js): introduce a unified debug logging system and progressive video loading to enhance user experience and debugging capabilities
📝 (env.example): add DEBUG environment variable to enable verbose logging

📝 (UNIFIED_DEBUG_SYSTEM.md): document the new centralized debug logging system and its usage

📝 (VIDEO_PREVIEW_PROGRESSIVE_LOADING.md): document the implementation of progressive video loading for improved user experience

♻️ (debug_utils.py, video_preview.js): refactor debug logging to use centralized utilities and implement progressive loading logic
2025-10-02 17:58:28 -05:00
Sam Kumar adb736b7c0 ⬆️ (pyproject.toml): bump version from 2.3.1 to 2.3.2 to reflect new changes
💡 (video_preview.js): enable debug mode for verbose logging during development
2025-10-02 17:26:26 -05:00
Sam Kumar a014274946 Refactor video preview handling and path normalization
- Removed the clearVideoPreview method as it was redundant and not utilized effectively in the media state clearing process.
- Updated the clearAllMediaState method to directly clear video-related state without calling the removed method.
- Enhanced video path normalization in video_preview.js to handle multiple possible prefixes, improving compatibility with different deployment environments.
2025-10-02 17:18:06 -05:00
Sam Kumar 8a331f259e 💡 (video_preview.js): add debug mode for verbose logging to assist in troubleshooting and development 2025-10-02 16:57:59 -05:00
Sam Kumar 9b29220a29 ✨ (video_preview.js): add video controls and timeline scrubber for better user experience
♻️ (video_preview.js): refactor video preview container to use flexbox for layout
📝 (video_preview.js): update comments for clarity and maintainability
2025-10-02 16:55:18 -05:00
Sam Kumar 8328477f66 Add Video Preview Widget implementation
- Introduced a new Video Preview widget in `web/js/video_preview/` for ComfyUI.
- Implemented the main functionality in `video_preview.js`, allowing for interactive video previews with auto-sizing, mute/unmute, and error handling.
- Removed the old implementation from `web/video_preview/video_preview.js`.
- Updated README.md to document the purpose, integration, features, and usage of the new widget.
2025-10-02 16:10:32 -05:00
Sam Kumar a9badfc05d ✨ (video preview): implement Video Preview node with Python backend and JavaScript widget for displaying video inputs with interactive controls
📝 (documentation): add comprehensive documentation for Video Preview node, including usage, features, and implementation details
♻️ (video preview): reorganize JavaScript widget into dedicated directory for better structure and scalability
🐛 (video preview): fix TypeError in Video Preview node by ensuring all return values are lists for ComfyUI compatibility
✅ (video preview): validate and test Video Preview node functionality, ensuring all features work as intended
2025-10-02 15:00:10 -05:00
Sam Kumar 347d36482c ✨ (Control Panel): add documentation for JSON data format fix and update Control Panel layout
♻️ (mediia_describe.py): refactor MediaDescribe node to output structured JSON data instead of formatted string
♻️ (swiss-army-knife.js): refactor Control Panel to display data in a two-column layout for better organization and readability
2025-10-02 13:47:12 -05:00
Sam Kumar 0d5b9015ff ✨ (docs): add comprehensive documentation for the new all_media_describe_data output feature in MediaDescribe node to enhance usability and understanding
📝 (docs): create Cache Verification Summary to document the verification process and fixes applied to the caching mechanism
📝 (docs): add Control Panel Implementation documentation to detail the features and usage of the Control Panel node
♻️ (media_describe.py): refactor MediaDescribe node to include an aggregated output for better data presentation
♻️ (control_panel.py): refactor Control Panel node to support dynamic wildcard inputs and improve data display functionality
🗑️ (example_node.py): remove outdated example node file to clean up the project structure
2025-10-02 12:53:42 -05:00
Sam Kumar d6dfe5daa9 ✨ (JAVASCRIPT_NODE_NAME_UPDATE.md, swiss-army-knife.js): update all JavaScript references from GeminiUtilMediaDescribe to MediaDescribe to align with Python backend changes and ensure proper functionality of widgets and event handlers. 2025-10-02 10:19:23 -05:00
Sam Kumar e5095cd9f6 ✨ Update documentation and rename GeminiMediaDescribe to MediaDescribe
- Renamed the class `GeminiMediaDescribe` to `MediaDescribe` for better clarity and organization.
- Updated all references in the codebase and documentation to reflect the new class name.
- Ensured backward compatibility by keeping the ComfyUI node ID as `GeminiUtilMediaDescribe`.
- Improved logging messages to use the new class name for consistency.
2025-10-02 10:02:51 -05:00
Sam Kumar dfe27520c1 ✨ (init.py, config_api.py, swiss-army-knife.js): add DEBUG mode support to control console logging via environment variable
📝 (DEBUG_MODE_IMPLEMENTATION.md): document the implementation details and usage of DEBUG mode
🔧 (init.py): register config API routes to expose DEBUG setting to frontend
♻️ (swiss-army-knife.js): refactor console logging to use conditional debugLog function for cleaner output
2025-10-02 09:37:39 -05:00
Sam Kumar 015145752d ♻️ (swiss-army-knife.js): refactor reddit_url restoration logic to store and restore it separately for better clarity and maintainability 2025-10-02 08:57:55 -05:00
Sam Kumar 7460630e65 ✨ (swiss-army-knife.js): add functionality to persist and restore reddit_url widget value for better user experience
💡 (swiss-army-knife.js): add debug logs for tracking reddit_url widget value during persistence and restoration
2025-10-02 08:53:33 -05:00
Sam Kumar 930ba2f0db ✨ (CivitAI Service Consolidation): consolidate two CivitAI service implementations into a single service for improved maintainability and functionality
📝 (CIVITAI_SERVICE_CONSOLIDATION.md): add documentation for the consolidation of CivitAI services, detailing the problem, solution, and benefits
📝 (CLEAR_VIDEO_PREVIEW_FUNCTION_ORDER_FIX.md): add documentation for fixing function order issue in clearVideoPreview method
📝 (DIMENSIONS_DISPLAY_TROUBLESHOOTING.md): add troubleshooting guide for dimensions display widget in GeminiUtilMediaDescribe node
📝 (DIMENSIONS_DISPLAY_WIDGET.md): add documentation for the new dimensions display widget in GeminiUtilMediaDescribe node
♻️ (civitai_service.py): refactor CivitAI service to include trigger word extraction methods and improve error handling
♻️ (lora_hash_cache.py): refactor hash calculation methods for better readability and maintainability
🐛 (swiss-army-knife.js): fix function definition order for clearVideoPreview to prevent TypeError
🐛 (web/js/swiss-army-knife.js): update dimensions display logic to handle multiple message structures and improve logging
🐛 (web/js/swiss-army-knife.js): ensure dimensions display widget updates correctly after node execution
2025-10-02 07:52:07 -05:00