refactor(__init__.py, debug_civitai.py): update import error handling to use logger for warnings and errors instead of print statements
feat(tests): replace print statements with logger calls for better logging in media selection tests
feat(install): integrate logging for installation process in install.py
feat(cache): implement logging for cache operations in cache.py
refactor(debug_utils): enhance debug_print function to use a dedicated logger for consistent debug output
feat(helper_nodes.py, lora_hash_cache.py): integrate logging functionality to replace print statements with logger calls for better debugging and monitoring
chore(lora_manager): remove deprecated LoRA Manager files as they are no longer needed in the project
chore(file_api.py): remove deprecated file API implementation to streamline codebase and reduce maintenance overhead
chore(lora_utils.py): remove unused LoRA utility functions to clean up the codebase and improve maintainability
chore(nd_super_lora_node.py): remove nd_super_lora_node.py file as it is no longer needed in the project
chore(template_manager.py): remove the template management system as it is no longer needed in the project
chore(version_utils.py): remove version utility file as it is no longer needed in the project
chore(web_api.py): remove deprecated web API endpoints for ND Super Nodes to clean up the codebase and improve maintainability
refactor(media_describe.py): replace print statements with logger calls for better logging management and consistency
refactor(media_describe.py): replace print statements with logger calls to standardize logging and improve maintainability
feat(logging): integrate logging functionality into nodes.py and restart_api.py for better debugging and monitoring
- Initialize logging in both files to replace print statements with logger calls.
- Use logger to capture debug and info messages for improved traceability.
docs(LLM_STUDIO_VIDEO_DESCRIBE.md): add notes on logging behavior and environment variable respect for debug settings
refactor(media_describe): replace print statements with logger calls for better log management and consistency
docs: remove edge_threshold parameter from example workflow to align with new automatic edge thresholding feature
docs(README): simplify and condense VACE Annotator Scribble documentation for clarity and ease of use
docs: add help-page style documentation for VACEScribbleAnnotator node to improve user guidance and usability
feat(annotator_models): add ContourInference and VendorResidualBlock classes for enhanced model architecture
feat(annotator_models): implement postprocess_vendor_scribble_output function for vendor-specific output processing
fix(annotator_models): update load_scribble_model to handle vendor state dicts and improve model loading logic
refactor(preprocess_scribble_input): add normalize_mode parameter for flexible input normalization options
fix(_quantile_threshold): improve scale handling for user-defined thresholds in quantile calculations
refactor(vace_scribble_annotator.py): remove edge_threshold parameter and use a default constant for edge detection to simplify the code
feat(vace_scribble_annotator.py): add support for vendor-specific postprocessing of scribble output to enhance functionality
- Introduced vendoring for the VACE scribble generator to allow usage without the full upstream repository.
- Added `VENDORING.md` to document vendored files and update instructions.
- Updated `README.md` to include vendoring notes.
- Modified `IMPLEMENTATION_SUMMARY.md` to reflect changes in the scribble node.
- Enhanced `VACE_ANNOTATORS.md` with new parameters for inference mode and edge threshold.
- Created `scribble.py` and `scribble_loader.py` for model loading and preprocessing.
- Updated `vace_scribble_annotator.py` to integrate new model loading logic and fallback mechanisms.
- Added smoke tests for both fallback and model inference scenarios.
- Included a sample input image for testing purposes.
- Sort files by os.path.getctime() instead of alphabetically
- Seed 0 now selects oldest file by creation date
- Updated documentation to reflect chronological ordering
- Tests confirm oldest file is selected first
Co-authored-by: sammykumar <1479861+sammykumar@users.noreply.github.com>
- Changed seed behavior from random selection to deterministic index-based selection
- Seed 0 now always selects first file, seed N wraps around using modulo
- Added file deduplication to handle files found by both recursive and non-recursive patterns
- Added sorting for consistent ordering across runs
- Removed unused imports (random, requests, mimetypes, urlparse, unescape)
- Updated info message to show index and file count
- Documented new behavior in MEDIA_SELECTION.md
Co-authored-by: sammykumar <1479861+sammykumar@users.noreply.github.com>
📝 (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
📝 (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
This reverts commits:
- 080f961 (v2.9.7): LLM Studio prompt architecture update
- 220397b (v2.9.6): LLM Studio enhanced prompts
- e53fc9b (v2.9.5): Movement description enhancements
Reverting back to v2.9.4 state (enhanced scene descriptions) and bumping to v2.9.8.
📝 (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
to reflect the node's functionality more accurately
📝 (docs): update documentation across multiple files to ensure
consistency with the new node name and its features
♻️ (code): refactor class and variable names from LLMStudioMediaDescribe
to LLMStudioVideoDescribe for clarity and to align with the updated
documentation
✨ (llm_studio_picture_describe.py): add LLM Studio Picture Describe node for image analysis using vision-language models
♻️ (nodes.py): update node mappings to include LLMStudioPictureDescribe and LLMStudioVideoDescribe
⬆️ (pyproject.toml): bump version to 2.8.4 for new feature addition
✨ Introduce new file: add OPTIONS_VERIFICATION.md to document verification of the simplified options integration with the Media Describe node.
⬆️ Upgrade version: bump version number in pyproject.toml from 2.7.2 to 2.7.3 to reflect recent changes and improvements.
📝 (SYSTEM_PROMPT_FIELD_STANDARDIZATION.md): standardize system prompt fields for Gemini to ensure consistent output structure across image and video processing
♻️ (gemini_util_options.py): refactor options creation logic to hardcode previously toggled fields as always enabled for improved workflow efficiency
📝 (mediia_describe.py): update JSON field descriptions to always include all 6 fields in consistent order for clarity and completeness
⬆️ (pyproject.toml): bump version from 2.7.1 to 2.7.2 to reflect recent changes and improvements
♻️ (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
✨ (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
♻️ (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
🐛 (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
♻️ (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
📝 (RESTART_BUTTON.md): document the implementation of a restart button feature for ComfyUI server, detailing files modified and user experience
♻️ (control_panel.py): refactor input types in ControlPanel class to simplify input handling by using all_media_describe_data instead of multiple individual fields
📝 (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
⬆️ (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
✨ (Dockerfile, docker-compose.yml): update CMD to include --base-directory for better temp file management
📝 (TEMP_DIRECTORY_UTILS.md): add documentation for temporary directory utilities to explain usage and benefits
♻️ (temp_utils.py): create utility functions for ComfyUI-aware temporary file and directory management
♻️ (media_selection, media_describe, frame_extractor): refactor to use ComfyUI-aware temp utilities for better file handling
📝 (media-selection README, WORKFLOW_EXAMPLE.md, REDDIT_POST_MEDIA_SOURCE.md): update documentation to reflect changes in temp file management
💡 (media_selection): add comments to clarify the use of ComfyUI-aware temp directory functions
📝 (README): add comprehensive documentation for new nodes, including usage examples, workflow guides, and technical details to assist users in implementing the new features effectively.
🐛 (media_selection): fix issues with media type detection and improve error handling for media selection from Reddit and local paths to ensure robustness and user-friendly feedback.
✅ (test_nodes): add test script for Media Selection and Frame Extraction nodes to validate functionality and ensure reliability of the new features.
💡 (subreddit_randomization): implement a new feature for randomizing media selection from subreddits, enhancing user experience by providing more diverse media sources.
♻️ (frame_extractor): refactor frame extraction logic to support multiple extraction methods and improve performance and usability.
🔧 (configuration): update configuration files to accommodate new nodes and ensure compatibility with existing workflows.